本シリーズを開始するにあたって

このブログ・エントリは、Check Point SandBlast Agent のForensics機能によって生成されるレポートを取り上げる新シリーズの第1回目です。そのコンセプトは極めてシンプルで、チェック・ポイントのマルウェア研究機関にて、すべての保護機能を無効にした状態のPC上でマルウェア・サンプルを実行し、SandBlast Agent のForensics機能で自動分析するというものです。このブログに加え、こちらのインタラクティブなフォレンジック・レポートもご覧ください。CISOやセキュリティ管理者、インシデント対応担当者がSandBlast Agent のForensicsを実行した場合にもまったく同じレポートが生成されます。

SandBlast Agentの Forensics機能は、セキュリティ・インシデントに関連するあらゆる要素を特定してまとめ、強調表示します。インシデントを構成する要素は生のフォレンジック・データから自動的に抽出され、特許出願中のアルゴリズムによって、特化型インシデント・モデルに入力されます。モデルが構築されると、インタラクティブなフォレンジック・レポートにより簡潔で実用的な情報が提示されます。この情報に基づき、インシデント対応担当者は、インシデントのコンテキストや範囲、ビジネスへの潜在的な影響を判断できるようになります。

図1:SandBlast Agent Forensicsの[Overview]画面(画像をクリックして拡大イメージを表示)

背景

チェック・ポイントのパートナーであるAvananは6月、Microsoft Officeファイル「.dotm」を介して拡散するランサムウェア「Cerber」の感染について論じたブログ記事を公開しました。Avananがこの記事で説明しているとおり、その攻撃は、複数のユーザ宛のフィッシング・メールに添付されたdotmファイルを介して拡散しました。dotmファイルは基本的に、マクロの実行を可能にするMicrosoft Wordのテンプレート・ファイルです。Office 2007で導入されたdotmは、OpenXML形式を採用し、zipによる圧縮に対応しています。以下は、このマルウェアに関するフォレンジック・レポートの概要です。

フォレンジック分析の概要

図2:インシデント・ツリー。赤のノードは不正なプロセス、青と灰色のノードはWindowsのプロセス、それ以外はChromeのプロセスを示しています。(画像をクリックして拡大イメージを表示)

図2は、マルウェアによるシステム上のファイルの暗号化が完了した後に構築された、インシデント・ツリー全体の画面です。青と灰色のプロセスの数に注目してください。これらは、マルウェアが攻撃を実行するために使用していた未改ざんのWindowsオペレーティング・システム(OS)のプロセスです。今日のマルウェアが、その目標達成のために正規のプロセスを使用している実態がうかがえます。

文書を開く際、ユーザは編集を有効にし、コンテンツも有効にするよう求められます。コンテンツが有効になっていないと、マクロが実行されず、感染も発生しません。

図3: cmd.exeの実行を引き起こすマクロ(画像をクリックして拡大イメージを表示)

図3が示すように、マクロが実行されない場合は、Visual Basic Script(vbs)コードが含まれている、極めて大きな引数を持つコマンドライン(レポート内のcmd.exe/PID 1272)を実行します。このコマンドラインはまた、vbsファイル(レポートでは[File Ops]または[Suspicious Events]タブ内に「Dropped Script」として表示される28156.vbs)をドロップします。

図4:wscriptによるtmpファイルの作成(画像をクリックして拡大イメージを表示)

このコマンドラインは続いて、ドロップしたvbsファイル(28156.vbs)と一緒にwscript(wscript.exe/PID 1432)を実行します。その結果、以下のサイトにアクセスしたときに、最初のランサムウェアCerberの不正なファイル(図4の272730.tmp)がダウンロードされるようになります。

272730.tmpが作成されると、別のコマンドライン(PID 3068)経由で実行され、Cerberの感染が始まります。プロセスとしての拡張子「tmp」のファイルの実行は極めて不審であると見なされており(272730.tmp:PID 128および2152)、不審なイベント「Unusual Process Extension」としてフラグが設定されています。このバージョンのCerberは、私たちが以前執筆したブログ記事「Cerber Ransomware Targets U.S., Turkey and the UK in Two Waves」で紹介した種とそれほど違いはありません。

図5:コピーを作成し、元のtmp実行可能ファイルを削除(画像をクリックして拡大イメージを表示)

プロセス272730.tmp(PID 128)はその後、コピー(PID 2152)を実行します。次に、プロセス(PID 2152)が「appdata」フォルダに「raserver.exe」という別のファイル・コピーを作成します。これは、不審なイベント「Executable Copies」として強調表示されています。続いて、プロセスraserver.exe(PID 1432)を開始します。その後、コマンドライン(PID 2592)を実行して元の272730.tmpファイルを削除します。そのために、taskkill.exeを呼び出してプロセス272730.tmpを終了させてから、pingを呼び出してプロセスを消滅させるための時間を追加します。これで、ファイルを削除できるようになります。先ほどと同様、図5のグラフで示したとおり、不審なイベントとして検出されています。

図6:UACの迂回の試み(画像をクリックして拡大イメージを表示)

Malwarebytesは「Cerber Ransomware - New, But Mature」と題したブログで、Cerberが攻撃に関与するプロセスの権限を昇格させるために、ユーザ・アクセス制御(UAC)を迂回しようとする試みについて解説しています。特に、Cerberが独自のWindowsエクスプローラのインスタンスの開始を試み、このインスタンス・コードに挿入して、Windows OSのプロセスを使用したUACの迂回を可能としている点を詳しく取り上げています。

しかし、チェック・ポイントのラボでCerberをすべて実行しても、UACを迂回できず、代わりにUACに関するメッセージが表示されました。実際のところ、迂回に失敗するたびにUACに関する新しいメッセージを受け取りました。そしてその結果、図6に示すように、Cerberは、Windows OSの実行可能ファイルが異なる新たなエクスプローラのインスタンスを実行しました。このインシデントでは、プロセスraserver.exe(PID 2212)がUACを迂回しようとしました。私たちのマルウェア・リバース・エンジニアリング・チームは、迂回する際に使用される実行可能ファイルに、次の情報を含むマニフェストが埋め込まれていたと指摘しています。

図7:UACの迂回に失敗したときに表示されたメッセージの例

しばらく待ってから、すべてのメッセージに対し[Yes]をクリックしました。レポートで4つのエクスプローラのインスタンスが呼び出し中になっているのはこのためです。また、図6と図8が示すように、raserver.exe(PID 2540)は(赤い矢印で示したとおり)より高い権限を保持しているため、ユーザのドキュメントを暗号化できるようになります。

図8: データを人質に身代金要求、シャドウ・コピー削除、ブート改ざんなど (画像をクリックして拡大イメージを表示)

図8が示すとおり、プロセスraserver.exe(PID 2540)は高い権限を使用して、自身のコピー(PID 4688)を実行します。このプロセス(PID 4688)がユーザのドキュメントをすべて暗号化します。また、vssadmin.exeとwmic.exeを経由して、シャドウ・コピーを削除(ランサムウェアで一般的な戦術)しようとします。そして、bcdedit.exeを使用してブートの改ざんを試みます。

図9:デスクトップの背景に保存された身代金要求メッセージ

最後に、永続性の高いイベントがいくつか確認されました([Suspicious Events]内の「Persistence」)。すべての不正な実行可能ファイルは、ユーザのファイルがすべて暗号化されたと判断したCerberによって削除されたようです。そのため、再起動しても、感染は継続しません。しかし、画面にはメッセージが引き続き表示されます(図9参照)。