本連載の第1回と第2回記事では、実際のセキュリティインシデントに触れる前に、その発生現場で生じている課題について触れた。今回は趣を変え、グローバルな組織で発生したインシデントにおいて攻撃に使われたマルウェアを中心に、日本のIBM X-Force IRISチームがインシデント対応するに当たり、どのように考え行動したのか、調査経過を中心に紹介したい。
なお、リバースエンジニアリングをした結果から、このマルウェアはかなり手の込んだ起動方法が利用されていたことが分かった。本稿で取り上げる内容に含まれるファイル名などの情報は、守秘義務などの理由で実際のものとは一部変更もしくは割愛していることをご容赦いただきたい。
さて、今回取り上げるのはグローバル規模のインシデント対応事例だ。日本向けのグローバル規模のインシデント案件といえば、本社が日本にあり、海外支社でインシデントが発生したケースを取り上げるのが一般的だが、本稿で取り上げるのはグローバルな海外企業において発生したインシデントになる。グローバルであるが故に、各地域のIBM X-Force IRISチームがそれぞれ活動し、グローバルに連携したケースだ。我々は日本のサイトで確認された事象を分析するために、グローバルから協力を要請された側となる。
グローバルチームからフォレンジックの協力要請
ある日突然、グローバルのIRISチームから、フォレンジックの協力要請が届いた。具体的な内容は伏せられていたが、グローバルとの協力体制を敷く珍しい機会ということもあり、了解の意思を伝えた。
数日後、要請内容が伝えられた。欧州地域に本社を持つ、あるグローバル企業が利用している日本のデータセンター内に存在するサーバをフォレンジックしてほしいというものだった。日本のサーバに保存されているデータは日本国外へ持ち出せないというのが理由だ。このようなデータ持ち出し制限は、グローバル展開する日本企業においても、大きな課題となる可能性があることは想像に難くないだろう。
図1:グローバルで生じたマルウェア感染
インシデントが発覚したきっかけは、日本でもよく耳にする「外部からの連絡」だった。外部から不審な通信の存在を指摘され、調査を行ったところ、欧州、アジア、日本のデータセンター内のサーバから不審な通信が外部に対して実施されていることを確認したという。その後の調査で、日本のデータセンター内で1台のサーバが特定され、そのサーバのメモリダンプとストレージイメージ、さらに不審な通信先のIPアドレス情報が日本のIRISチームにも提供された。フォレンジックの目的は、ここでのマルウェアを特定することだった。
第1ステップ:不審なIPアドレスと通信しているプロセスの特定
まず、不審なIPアドレスと通信しているプロセスを特定しなければならない。そのためにメモリダンプを調査するが、持ち込まれたメモリダンプのファイル形式は、我々が通常利用しているものとは異なり、変換作業の一手間が必要だった。なおメモリダンプの取得に際して、ツールや出力形式を統一しておくことは、余計な時間を取られないようにするための重要なポイントといえるだろう。
不審なIPアドレスと通信しているプロセスの情報は、次のようになっていた(注:プロセス番号や送信元ポート番号は実際のものとは異なる)。
<内部IP>:65043 <不審IP>:443 SYN_SENT 4093 svchost.exe
ここでは、プロセス番号「4093」のsvchost.exeプロセスが、不審なIPアドレスの443ポートに対して通信しようとしているのが分かる。なお、Windowsの「タスクマネージャー」を使って不審なsvchost.exeを発見することは困難であるため、攻撃者は、svchost.exeを使ってマルウェアを隠蔽する技術をよく利用している。図2はWindows 10のタスクマネージャーの表示例だ。
図2自体は今回のインシデントとは関係はなく、例示のために別のPCから取得したものだ。svchost.exeプロセスが多数表示されており、それぞれが何をしているのかはタスクマネージャーから判断できず、攻撃者にとっては利用しやすい特徴といえる。
図2:Windows 10の「タスクマネージャー」表示例