McAfee Avert Labs Blog
「New Wine in a Old Bottle - StealthMBR Rootkit」より
January 24, 2008 Posted by Anil Ramabhatta and Raghavendra Ellur

 最近のマルウエア作者は,アンチウイルスから発見されるのを避けるために,最新のさまざまな感染/拡散方法を組み合わせて攻撃を仕掛ける。こうした手法を使うマルウエアは,検出や除去しにくいことが多い。

 かつてMS-DOSが使われていたころ,マスター・ブート・レコード(MBR)に感染するウイルスを見つけたことがある。ところが,近年この手口を使うルートキットが増えてきた。米マカフィーは2008年1月,MBR感染能力を兼ね備えたルートキット「StealthMBR」という新たな脅威を発見した。

 StealthMBRはWebブラウザのセキュリティ・ホールを悪用し,攻撃用サイトを閲覧した被害者のパソコンに感染する。感染過程で自分自身を「%temp%」にコピーし,サービスとして活動を始める。このサービスは自分自身のコードでMBRの内容を上書きし,元々のMBRコードを62番セクターにバックアップとして保存しておく。さらに,60番および61番セクターにルートキットのロード用コード,アクティブ・パーティションの最終セクターにルートキット本体を上書きした上で,システムを再起動する。

図1 感染済みMBRの内容
図1 感染済みMBRの内容

 再起動後は,感染済みMBRがシステムを乗っ取り,ルートキットのロード用コードに制御権を渡す。システムを操れるようになったロード用コードはカーネルにパッチを当て,ルートキット本体をロード/起動する。

 ルートキットは「\\driver\Disk」内のI/O要求パケット(IRP)テーブルにある「IRP_MJ_READ」と「IRP_MJ_WRITE」にフックを設け,自分自身が書き換えられることを防ぐ。こうしておくと,感染済みMBRの内容が読まれた際に,62番セクターにバックアップした本物のMBRコードを返せる。その結果,多くのセキュリティ・ツールがマルウエアの検出/除去に失敗する。

図2 61番セクターに存在するルートキット・ロード用コードの一部
図2 61番セクターに存在するルートキット・ロード用コードの一部

 この種の脅威(MBR感染機能付きルートキット)に対しては,一般的なアンチウイルス技術にとって実行の難しい,複雑な除去手順が必要となる。

 今までなら,こうした脅威の除去には「Windows回復コンソール」が適していた。一方McAfee Anti-Virus Emergency Response Team Labs(AVERT:米マカフィーのウイルス対策技術研究機関)は新たな除去手法を開発し,ウイルス定義ファイル(DAT)「5212」以降に組み込んだ(「VirusScan Enterprise(VSE)8.5」および「VirusScan Online(VSO)」でもルートキット・スキャン・オプションを利用できるようにした)。さらに,われわれの除去手法はメモリー上の\\driver\Disk内のIRPテーブルにあるIRP_MJ_READとIRP_MJ_WRITEからフックを外し,本物のMBRコードを62番セクターから0番に書き戻す。

図3 ルートキット除去後に62番セクターから書き戻したMBRコード
図3 ルートキット除去後に62番セクターから書き戻したMBRコード

 この卑劣な脅威に対する解決策を提供してくれたHarinath Ramachetty氏とRachit Mathur氏に感謝する。


Copyrights (C) 2007 McAfee, Inc. All rights reserved.

本記事の内容は執筆時点のものであり,含まれている情報やリンクの正確性,完全性,妥当性について保証するものではありません。
◆この記事は,マカフィーの許可を得て,米国のセキュリティ・ラボであるMcAfee Avert Labsの研究員が執筆するブログMcAfee Avert Labs Blogの記事を抜粋して日本語化したものです。
オリジナルの記事は,「New Wine in a Old Bottle - StealthMBR Rootkit」でお読みいただけます。