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

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

リクルートテクノロジーズでセキュリティアナリストをしている市田です。
まずはセキュリティアナリストの業務についてお話しし、マルウェア感染インシデントの初動における「プログラミング」についてお話しします。

「セキュリティアナリスト」

主にサイバー攻撃における攻撃イベントの検知時にその詳細(原因~影響範囲)を調査し、再発防止を検討できる人のことです。
脆弱性診断を行うホワイトハッカーを指す場合もあります。たいてい「セキュリティオペレーションセンター(SOC)」やCSIRTと呼ばれる組織に多く生息します。
さてセキュリティアナリストとして4年ほど働いてみて思ったのは、大変な仕事だ、好きでなければやっていけないな。ということです。

主な業務「攻撃イベントの検知時にその詳細(原因~影響範囲)を調査」において、もっとも大事なことは、正しい攻撃イベントなのか間違った脅威のないイベント、いわゆる誤検知/過検知なのかを判断することです。
さらに正しい攻撃イベントについては脅威度による優先度をつけて原因と影響範囲の深堀調査をします。

といってもどんなものが正しい攻撃イベントなのでしょう?
(攻撃イベント一例: http://malware-traffic-analysis.net/2015/04/01/index.html

1回目①

例を一つ引っ張ってきました。これは2015年にランサムウェアを配布する攻撃手法として流行したAngler Exploit Kitの一例です。後半に難読化されたJavaScriptコードがありますね。このJavaScriptは実行すると、「http://inspirablebacktxxxxxx。modernlifesxxxx。com/9Oj96BjEJ7Rpe-CuvXMl_DVaDQFeQV53vYrJekoio1vi9dIc」(セキュリティ上、一部xxxxxでマスキングしてます)

にHTTP GETリクエストを送信します。よって上記のJavaScript入りHTMLにアクセスすると自動で新たな攻撃コードもしくはマルウェアをダウンロードして次の攻撃につながるわけです。

このように明らかに不審なコードが見つかると判断が容易なのですが、実際はHTMLの<iframe>タグや<src>タグに不正なURLが埋め込まれているだけの場合もあるので一目で分かりづらいことも多いです。

加えて監視対象のトラヒックボリュームも多いため、常時はベンダーのセキュリティ機器に監視してもらい、その検知アラートを分析するのが一般的です。

誤検知/過検知判断

ベンダーのセキュリティ機器には少なからず誤検知/過検知がつきものです。
ユーザー企業独自に発生してしまう誤検知/過検知を判断するためには、まずは、自社で既知のアラートか初見のアラートかが大きな指針になります。
以前、まったく同じ内容で検知し、過検知判断がされたのであれば今回も過検知である可能性が非常に高まります。

次にvirustotalなどの第三者機関がすでに解析しているイベント(マルウェア)か確認し、既に存在していた攻撃であれば正しい攻撃イベントとみなせます。

時間があれば、上記Angler Explot Kitのように攻撃コードそのものの解析を行い判断することもできます。
また、セキュリティ機器の開発ベンダーに確認してみるのも初見のアラート時には必要だと思います。
なぜならシグニチャ更新に伴った過検知である可能性もあるからです。

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

既知アラートであるかを自動判断するためのプログラムも作成できます。
これは定義を綿密に書く必要があるだけで、プログラム自体は条件構文を書くだけです。

まず、何が一致したら同一かを定義します。
マルウェアであれば、その「ハッシュ値」がそれに該当します。
少しあいまいではありますが、自社で業務利用しているファイルヘッダやファイル内の署名が誤検知の原因や共通点として発見できたのであればYaraというルールセットを使って以下のように記載することもできます。strings:で文字(アスキーおよびバイナリ)を定義し、conditionで定義した変数を使って条件を書くのがYaraの一般的な利用方法です。

以下の例はWindows Portable Executableファイルに過検知シグニチャ「e3 83 aa e3 82 af e3 83 ab e3 83 bc e3 83 88」が含まれていた場合にTRUE(該当)を返します。

1回目②

Yaraルールの詳細に関しては、公式サイトのドキュメントが参考になります。http://yara.readthedocs.org/en/v3.4.0/index.html

このルールを検知されたファイルに適用させることにより同一の誤検知かを一瞬で判断することも可能になります。Yaraはセキュリティベンダーやマルウェア研究者にとてもよく利用されています。
また昨今のセキュリティ機器は自身でカスタマイズしたYaraルールを適用できるものも多く、その場合、誤検知そのものを出しにくくすることも可能です。

しかしながら、Yaraのマッチングにもあいまいさが残り、誤検知や見逃しのリスクが残るので、企業独自の誤検知も含めセキュリティ機器にて検知による可視化をさせて、その後アナリストが判断するほうがいいでしょう。

つまり検知量に応じて稼働がかかるため、このような自動化による工夫をして、日々の監視/分析業務を行う、それが「セキュリティアナリスト」の仕事だと思います。
次回は、第三者機関のレピュテーションを利用した自動化についてお話しします。

キャリア採用の関連職種ページはこちら

関連職種の採用情報
詳しくはこちら

リクルートの採用TOPページはこちら