ファイア・アイ、検出が困難で危険なブートキットによりカード決済情報を狙う脅威グループを確認
ファイア・アイの一部門であるマンディアント・コンサルティングは、今年9月、OS起動前に実行される高度なマルウェアを使用してカード決済情報を狙う、金銭目的の脅威グループを確認しました。この脅威グループは「ブートキット(bootkit)」と呼ばれる極めて特殊な手法を使用し、下位レベルのシステムコンポーネントにマルウェアを感染させるため、その特定・検出が非常に困難です。したがって、この手法が使われると、マルウェア根絶の最も有効な手段として広く認められているOSの再インストールを実施しても、マルウェアを削除できないことになります。
ファイア・アイは、金融業界のある組織で実施した最近の調査において、この活動を最初に確認しました。ファイア・アイでは確認した脅威グループに名前を付け、それらを継続的に監視・調査していますが、その一つとして、数年前から活動を続ける「FIN1」と呼ばれる金銭目的の脅威グループの存在を特定しています。またFIN4は、悪意あるファイルやユーティリティを多数展開しており、それらはすべて、「Nemesis(ネメシス)」と呼ばれるマルウェア・エコシステムの構成要素になっています[i]。FIN1は、このマルウェアを用いて被害者の環境にアクセスし、カード保有者のデータを窃取します。攻撃者が使用する多くのカスタムツールの言語設定から、同グループの拠点はロシアかロシア語を話す地域の可能性が高く、銀行や信用組合のほか、ATM業務、金融取引処理、金融サービス関連の企業などから換金性の高いデータを窃取することで知られています。
FIN1が使用するマルウェア・エコシステムのNemesisには、コマンド&コントロール(C2)サーバ用のネットワーク・プロトコルや通信チャネルに幅広く対応する、包括的なバックドアが使用されています。Nemesisはファイル転送、画面キャプチャ、キーロガー、プロセス・インジェクション、プロセス操作、タスク・スケジューリングなど、強力な機能セットを備えています。この脅威グループは、被害者の環境に継続的にアクセスする間に、Nemesisマルウェアを更新し続けており、同一のツールで複数の異なる亜種を展開して、バージョンアップのたびに機能を追加していました。FIN1は2015年前半にツールセットを更新してユーティリティを導入しており、正規システムのボリューム・ブート・レコード(VBR)を改ざんして、システムの起動プロセスをハイジャックし、Windows OSのコードより先にNemesisコンポーネントのロードを開始します。ファイア・アイでは、このユーティリティを「BOOTRASH(ブートラッシュ)」と呼んでいます。
短時間でのリフレッシュ
Windowsシステムにとって、マスター・ブート・レコード(MBR)は起動プロセスに不可欠な要素です。MBRには、パーティションの数や構成、起動プロセスで使用される短いコードなど、ディスクに関する情報が保存されています[ii]。このコードは、最もアクティブなパーティションを検索し、そのパーティションのVBRに対してコントロールを渡します[iii]。
パーティショニングされた端末のVBRの場所は、個別のパーティションの最初のセクタにあります。VBRには、パーティション上のOSやプログラムに固有のマシン語のコードが記載されています。例えば、コンピュータに複数のOSがインストールされている状況では、それぞれのOSは別個のパーティションにインストールされており、各パーティションには、対応するOSの起動方法に関する命令を記載したVBRが格納されています[iv]。VBRはOSを起動するのに必要なソフトウェアをメモリにロードするなど、起動プロセスの開始を命令します。
図1は、起動プロレスを簡略化したものです。MBRがVBRをロードし、VBRがOSのコードをロードします。BOOTRASHは、この起動プロセスをハイジャックすることで、OSが起動する前にNemesisのペイロードをロードします。
図1:通常の起動プロセスの簡略図
BOOTRASHの多段階プロセス
起動プロセスのハイジャックを成功させるため、マルウェアはまず、複雑な多段階プロセスを使用してカスタム仮想ファイルシステムを作成し[i]、パーティション間の未使用領域にNemesisコンポーネントを保存します。次に、ブートストラップ・コードを自らの悪意あるコードで上書きし、正規のVBRをハイジャックします。ブートストラップ・コードによって呼び出されたNemesisブートキットは特定の起動プロセス機能を傍受して、NemesisコンポーネントをWindowsカーネルに注入します。インストールとハイジャックのプロセスを以下に説明します。
■ステップ1:システムチェック
インストール前のBOOTRASHインストーラは、OSのバージョンやアーキテクチャなどシステムに関する統計情報を収集します。インストーラは、システムのプロセッサ・アーキテクチャに合わせて、32ビット版か64ビット版のNemesisコンポーネントを展開します。インストーラは、ハードディスクの種別に関わらず、MBRの起動パーティションがあるハードディスク上にブートキットをインストールします。しかし、MBRのパーティショニング・スキームとは異なり、パーティションがGUIDパーティションテーブルのディスク・アーキテクチャを使用する場合、マルウェアがインストール・プロセスを継続することはありません。
マルウェアは、BOOTRASHインストーラのコピーがすでにシステム上で実行されていないかを確認します。また、マルウェアの必須コンポーネントであるMicrosoft NET 3.5フレームワークがシステムにインストールされているかも確認します。インストーラがすでに実行中の場合や、.NETフレームワークがインストールされていない場合、マルウェアは停止します。
■ステップ2:空き領域の計算と仮想ファイルシステムの作成
BOOTRASHは、独自のカスタム仮想ファイルシステム(VFS)を作成し、Nemesisエコシステムのコンポーネントを保存します。マルウェアはさまざまな計算を実行してファイルシステムの位置を特定し、ファイル構造に見合うだけの十分な領域がシステムに存在するかを確認します。
インストールに必要な領域スペースを特定するため、マルウェアはWindows Management Instrumentation(WMI)を使用し、システムの起動ディスクとパーティションに問合わせます。次に、32ビットまたは64ビットのコンポーネントの合計サイズを計算し、システムのパーティション間の空き領域の中に、カスタムファイルシステム用の十分な領域があることを確認します。
■ステップ3:ブートセクタのハイジャック
インストーラは、正規のブートセクタをメモリに読み込み、パーティションの開始から0xEのセクタにVBRコードの符号化されたバックアップコピーを保存します。次に、マルウェアはその後のインテグリティ・チェックのために、正規のブートセクタに2つのアルゴリズム(CRC16-CCITTとMD5)を適用します。正規のブートセクタが保存されると、マルウェアは組み込みリソースの1つから新たなブートストラップ・コードを解読し、既存のブートストラップ・コードを上書きすることで、感染システムの起動プロセスを効果的にハイジャックします。
■ステップ4:Nemesisコンポーネントのインストール
ブートキットの作成とインストールを担当する3つのコンポーネント(vbr.bin、vbs.bin、bootldr.sys)の保存に際して、インストーラは常に仮想ファイルシステムを使用します。それ以外のコンポーネントについては、仮想ファイルシステム内に保存される場合と、HKCU\.Default\Identitiesレジストリキー内のバイナリデータとして保存される場合があります。これらのコンポーネントは、ファイル転送、画面キャプチャ、キーロガー、プロセス・インジェクション、プロセス操作、タスク・スケジューリングなど、Nemesisエコシステムの主要C2機能を担当しています。
表1は、関連するレジストリキーの詳細です。
レジストリ値の名前 | ファイル内容 |
HKCU\.Default\Identities\{3D04DDFA-AE6F-4BC2-9AE6-4A76A471147A} | core.sys |
HKCU\.Default\Identities\{424D9649-5B57-4C9B-A55A-00D6CD382092} | vfs.sys |
HKCU\.Default\Identities\{AA1F2588-670C-450E-833B-C8CAAF26DA5E} | nemesis.sys |
HKCU\.Default\Identities\{95E4F335-E152-4778-B3B0-3422B37B3A3D} | injproxy.dll |
HKCU\.Default\Identities\{C34C01DC-8E9D-40AF-82FF-79DB2735C333} | loader.dll |
HKCU\.Default\Identities\{4EED1600-54C9-471E-B74F-2A88BAC188B4} | nemesis.dll |
HKCU\.Default\Identities\{36203264-DFF1-43AC-94AD-096592297776} | nmscfg.dat |
■ステップ5:起動プロセスのハイジャック
前述の通り、通常の起動プロセスの場合、MBRがVBRをロードし、VBRがOSのコードをロードします。しかし、ハイジャックされた起動プロセスの場合、感染したシステムのMBRによって、悪意あるBOOTRASHブートストラップ・コードによって上書きされている起動パーティションのVBRのロードが試みられます。このコードは、カスタム仮想ファイルシステムから、Nemesisブートキット・コンポーネントをロードします。ブートキットは次に、インストール・プロセス中にディスクに保存された、正規のブートセクタにコントロールを渡します。この段階から、起動プロセスはOSのソフトウェアのロードと実行を継続します。ハイジャックされた起動プロセスの状況を図2に示します。
図2:ハイジャックされた起動プロセスの簡略図
ブートキットは、いくつかのシステム割り込みを傍受することで、起動プロセス中のNemesisの主要コンポーネントのインジェクションを手助けします。ブートキットは、さまざまなシステムサービスを担当するBIOS割り込み[i]をハイジャックし、関連する割り込みベクターテーブルのエントリーにパッチを適用することで、OSローダーがコントロールを得た後のメモリのクエリを傍受できます。ブートキットはその後、正規のVBRにコントロールを渡し、起動プロセスの継続を許可します。OSのロード中にも、ブートキットは割り込みの傍受を行い、リアルモードからプロテクト・モードへとCPUを移す固有の命令を探して、OSのローダメモリをスキャンします[ii]。これにより、CPUがリアルモードからプロテクト・モードへと変わるその都度、ブートキットは割り込み記述子テーブルにパッチを適用できます。このパッチには、修正版割り込みハンドラーが含まれており、特定アドレスが実行されるたびにブートキットにコントロールをリダイレクトします。この結果、ブートキットは、OSのローダー実行の特定ポイントを検出・傍受して、通常のカーネルのロードの一環としてNemesisコンポーネントをインジェクトできます。
アンインストール・オプション
脅威グループがハイジャック・プロセスを除去したい時のために、BOOTRASHには正規のブートセクタを復元させる組み込みオプションが用意されています。このオプションは、正規のブートセクタを復元させるだけであり、カスタム仮想ファイルシステムやBOOTRASHが作成したバックアップVBRを除去することはありません。
その他のブートキット
MBRまたはVBRを危険にさらしても存続するマルウェアは珍しいですが、知られていないわけではありません。 2011年、ESETは「TDL4(別名:Olmarik)」「Necurs」「Rovnix」として知られているブートキット・マルウェア・ファミリーに関する技術研究を文書化しており[iii]、2012年には、様々なMBRとVBR感染ベクトルをカタログ化しています[iv]。
さらに、ブートキットを活用した、金銭目的のマルウェアに関しては他にもいくつかのレポートが存在しています。2013年のRSAの警告によると、バンキング用トロイの木馬「KINS」には、VBRブートキット機能が搭載されていた可能性が高く、これはロシア語のオンライン・フォーラムで宣伝されていました[v]。さらに2013年には、これとは別のバンキング用トロイの木馬(通称「Carberp」)のソースコードが公に漏えいしたという報告もありました。レポートによると、このトロイの木馬は、ブックキット機能の追加により4万ドルで販売されていました[vi]。その後の報告では、このブックキット・コンポーネントは完全には機能していなかった可能性が示されていました[vii]。それにもかかわらず、本マルウェアにこれほどの高価格が設定されていたという事実は、ブックキット・コードの複雑さや、この回避機能を持つバンキング・マルウェアの需要の高さを物語っています。
金融だけの脅威ではない
マンディアントは2012年、(VBRではなく)MBRのブートキットを悪用する、中国由来と思われる脅威グループを観察しました。これは、ゲーム業界の組織を対象に持続的なバックドアを確立する手法で、ファイア・アイではこれを「ROCKBOOT」と呼んでいます。ファイア・アイが追跡している脅威グループの大半がそうであるように、この脅威グループもマルウェアの働きを持続させるため、Windowsレジストリキーの修正や、DLL検索順序のハイジャック手法など、比較的従来型の手法を主に使用しています。この脅威グループは、被害組織から知的財産を窃取するのに使用されるツールセットの一部としてブートキットを展開しました。
持続性のためにブートキットを選択して使用している事実から、一部の脅威グループはより高度なツールセットを入手している可能性も考えられます。こうした高度なツールセットは、被害組織への侵入が困難な場合や、標的となるデータの価値が高く、脅威グループが感染環境への継続的なアクセスを確保したいと考える場合に選択的に展開される可能性があります。
検出機能の進化
BOOTRASHをはじめとするブートキットは、Windows OSのほぼ完全に外部でインストール・実行される可能性があるため、その検出は極めて困難です[viii]。この悪意あるブートローダーは、Windows自身が完全にロードされる前に実行されるため、一般的なOSのインテグリティ・チェックでは見つかりません。マルウェアのペイロードをロードするのに使用されるコンポーネントは、Windowsファイルシステム外のVFSに保存されるため、アンチウイルス・ソフトウェアではスキャンされません。さらに、このマルウェア・コンポーネント自身も、アンチウイルス製品では一般的にスキャンされない場所である、VFSかWindowsレジストリに保存されます。これにより、マルウェアの検出の可能性がある場所は、ライブメモリのみとなります。そして、ブートキットとVFSコンポーネントが除去されない限り、マルウェアはシステムが起動するたびに実行とロードを行います。オペレーティングシステムのパーティションの消去や再インストールでは、未使用領域に書かれたブートキットあるいはVFSコンポーネントを除去できません。
BOOTRASHの調査に際し、ファイア・アイでは独自のホストベース技術であるマンディアント・インテリジェント・レスポンス(MIR)を使用しました。これは、RAWディスクアクセスにより、OS外部に持続的に存在するマルウェアを検索するものです。このツールによって、改ざんされたVBRを持つシステムを特定できました。
結論
OS外部に存続するマルウェアに対しては、検出・根絶に通常とは異なるアプローチが要求されます。ブートキット機能を備えたマルウェアは、Windows OSからほぼ完全に独立した形でインストールと実行が可能です。その結果、インシデント・レスポンス担当者は、ブートキットの証拠となるRAWディスクのフォレンジック・イメージにアクセス・検索できるツールが必要です。同様に、感染後のOSの再インストールはもはや十分な対策ではありません。システム管理者は、ブートキットで感染したシステムの完全な物理的消去を実行してから、OSを再ロードする必要があります。
付録:関連するMD5ハッシュ
MD5ハッシュ | 機能 |
372f1e4d2d5108bbffc750bb0909fc49 | BOOTRASHドロッパー |
ac64ef80f8209ae7b67be0be9ea6400e | Windows 7以降の32ビット修正版VBR |
073a2998a6f1ccf0ea89fe60ce4bdeaf | Windows 7以降の64ビット修正版VBR |
c145624f148980ad026ea7b79e61212d | Windows XP 32ビット修正版VBR |
472926fe51fc6a4fdf687e8a4de64d78 | Windows XP 64ビット修正版VBR |
1c17c92519523a129e9abd298bb78521 | NTFS/MBRシステム向けのブートストラップ・コード |
15de35de527ebe2115746b4fd4f1ba1d | 32ビット・ブートローダ・ドライバ |
012e6f3ee70d6558f8002d0efce5c9e0 | 64ビット・ブートローダ・ドライバ |
dd366fcb810594e0620fdf672b03f4d5 | 32ビット・コアサービス・ドライバ |
fed12e07499e8cd3a5a47f1f7a8db0be | 64ビット・コアサービス・ドライバ |
21cd4a30ac322bfc9bd2401ea17acfc0 | 32ビットNemesisドライバ |
76b6dc622264e3ad822a691a7ec68865 | 64ビットNemesisドライバ |
d0b9f9bccbc3725bfcc9546986982ff3 | 32ビットVFSドライバ |
efbff3b08b5d368976eb4675bb4c000f | 64ビットVFSドライバ |
FireEye(ファイア・アイ)について
FireEye®は、次世代のサイバー攻撃から、世界中の民間企業や官公庁をリアルタイムで防御するために専用設計された、仮想マシンベースのセキュリティ・プラットフォームを発明した企業です。高度なサイバー攻撃は、次世代ファイアウォールやIPS、アンチウイルス、各種ゲートウェイなど、シグネチャベースのセキュリティ対策を容易にすり抜けてしまいます。FireEye®脅威対策プラットフォーム™は、攻撃ライフサイクル全体で、モバイル、Web、電子メール、ファイル・システムといった主要な攻撃経路にわたり、シグネチャを利用しないリアルタイムでダイナミックな脅威防御策を組織へ提供します。FireEyeプラットフォームの核となる仮想実行エンジンは、Dynamic
Threat
Intelligenceによって補完されており、サイバー攻撃をリアルタイムに検出・防御することができます。FireEyeのソリューションは、世界67か国以上の4,000を超える組織に導入されており、「Forbes
Global 2000」企業の650社以上で利用されています。
FireEyeウェブサイト: http://www.fireeye.co.jp
FireEyeプラットフォームについて: http://www.fireeye.jp/products.html
【報道関係の方からのお問い合せ先】
ファイア・アイ広報事務局(ホフマンジャパン株式会社内)
担当: 青木 / 上田 / 鷲野 / 田中
TEL: 03-5159-5750
Email: FireEye_PR@hoffman.com
[1] 「Nemesis」の名称は、本マルウェアの複数のビルドパスで使用されています。
[2] https://technet.microsoft.com/en-us/library/cc976797.aspx
[3] https://en.wikipedia.org/wiki/Volume_boot_record
[4] http://windows.microsoft.com/en-us/windows/install-multiple-operating-system-multiboot#1TC=windows-7
[5] http://www.malwaretech.com/2014/11/virtual-file-systems-for-beginners.html
[6] BIOSの割り込みは、プロセッサが実行中の現在のコードの割り込みを要求する、ハードウェアまたはソフトウェアの主導による状況です。
[7] プロテクト・モードは、システムメモリの保護をハードウェア・レベルで実現するOSの状態です。リアルモードは、この保護に対応していません。
[8] http://www.welivesecurity.com/2011/08/23/hasta-la-vista-bootkit-exploiting-the-vbr/
[9] http://www.welivesecurity.com/2012/12/27/win32gapz-new-bootkit-technique/
[10] https://blogs.rsa.com/is-cybercrime-ready-to-crown-a-new-kins-inth3wild/
[11] http://threatpost.com/carberp-source-code-leaked/101070/
[12] http://krebsonsecurity.com/tag/carberp-bootkit/
[13] ブートキット機能付きのマルウェアは現在も、インストールの開始をOSに依存しています。しかし、実際のペイロード(ブートキット自身)は、OSの外部のディスクに割り当てることが可能です。
# # #