リクルート メンバーズブログ  セキュリティアナリストとプログラミング【後編】

セキュリティアナリストとプログラミング【後編】

リクルートテクノロジーズでセキュリティアナリストをしている市田です。
前回は誤検知/過検知判断での既知アラートの自動判定について紹介しました。
今回は、第三者機関のレピュテーションを利用した自動化についてお話しします。

プログラミングによる自動化 その2

誤検知/過検知判断のための判断材料としてvirustotalなどの第三者機関がすでに解析しているイベント(マルウェア)かを確認し、既に存在していた攻撃であれば正しい攻撃イベントとみなせます。
前回の一次対応でvirustotalの結果を確認とありますが、みなさんはどのように確認すると思いますか?

  1. Webサイトhttps://www.virustotal.com/ja/ にブラウザアクセス
  2. 自動化ツールによりvirustotalへアクセス

検知イベントが数十を超えてくると①では数十分の調査時間と稼働がかかってしまいます。
よって調査対象のボリュームが多ければ多いほど、②の自動化が活きてきます。

プログラム言語Pythonで書いたプログラム例を載せます。IPアドレスを対象にクエリを自動投入し、
そのレスポンス結果から、レポートに必要な部分のみを抽出しtsvファイルとして出力するものです。
virustotalはWebAPIを公開してくれているため、容易に実装できます。
※APIの利用にはvirustotalコミュニティに参加し、ユーザー登録後に付与されるapikeyが必要です。

(参考)https://www.virustotal.com/ja/documentation/public-api/

2回目①

本プログラムの工夫点としては、当たり前のことですがインターネット上のvirustotalデータベースとのマッチング処理になりますので、データベースに結果がない場合を考慮してきちんとエラー処理を入れることでしょうか。
あとは欲しい情報はデータベース上のなんなのかを整理し、出力がアナリストにとって見やすい形にすることです。

すでにあるツールではダメなのか!?

答えはYesでもありNoでもあります。

もちろん、世の中には様々な有用なフリーツールや有償ツールも我々の助けとなります。しかしツール一つ一つの使い方を把握することは数が増えるごとに実は結構大変で、私もよく間違えそうになります。

またフリーツールでは攻撃の高度化にバージョンアップが対応しきれていなかったりして、部分的な利用にとどまる場合も多いのが現状です。

言い換えると、ファイルタイプAの暗号化手法Bを用いられている挙動Cを起こすマルウェアの分析はツール「○○」でできますといった部分的な感じです。

またフリーツールが散在していたため、米国のアナリストたちは「Kali Linux」「REMnux」「SIFT Workstation」などといったLinuxディストリビューションとしてパッケージ化して提供してくれています。

2回目②

これらも非常に有用なのですが、時折どこかかゆいところに手が届かないときがあります。
また企業によってアナリストの報告書のフォーマットもまちまちでしょうし、自社のフォーマットで報告書を自動作成するプログラムがあれば、アナリストの稼働も大きく削減できます。

残念ながらここでは紹介できませんが、Office文書も「.docx」、「xlsx」、「.pptx」などのOffice Open XMLで書かれたフォーマットであれば、プログラミングにより自動作成が可能です。

また最近ではCTF(Capture The Flag)への参加を通して、問題を解くために必要なツールを開発する機会もあり、セキュリティアナリストのプログラミング能力の必要性がより身近に感じられます。

私もまだまだ未熟ではありますが、チームメイトとの勉強会などを通して、日々精進したいと思います。
ご一読ありがとうございました!