RootkitRevealer作成者: Bryce Cogswell、Mark Russinovich RootkitRevealer のダウンロード 概要RootkitRevealer は、高度なルートキット検出ユーティリティです。Windows NT 4.0 以降のオペレーティング システムで実行でき、出力には、ユーザー モードおよびカーネル モードのルートキットの存在を示すレジストリやファイル システムの API における不一致が一覧表示されます。RootkitRevealer は、AFX、Vanquish、HackerDefender など、多数の永続的なルートキットを正常に検出します (ただし、RootkitRevealer は、ファイルやレジストリ キーを隠そうとしない Fu などのルートキットを検出することを目的にはしていません)。RootkitRevealer を使用してルートキットの有無を特定する場合は、お知らせください。 コマンド ライン バージョンを公開しなくなった理由は、マルウェア作成者が RootkitRevealer の実行可能ファイル名を利用して RootkitRevealer のスキャンを標的にするようになったためです。このため、RootkitRevealer を更新して、Windows サービスを実行するランダムな名前の RootkitRevealer のコピーからスキャンを実行するようにしました。このような実行方法は、コマンド ライン インターフェイスに適していません。ただし、コマンド ライン オプションを使用して、結果がファイルにログ記録される自動スキャンを実行できます。この機能は、コマンド ライン バージョンの動作に相当します。 ページのトップへ ルートキットとはルートキットという用語は、ウイルス、スパイウェア、トロイの木馬などのマルウェアが、スパイウェア ブロッカー、ウイルス対策ソフトウェア、およびシステム管理ユーティリティからマルウェアの存在を隠すために使用するメカニズムや技術を示すのに使用されます。マルウェアが再起動後も有効かどうか、およびユーザー モードとカーネル モードのどちらで実行されるかによって、ルートキットはいくつかに分類されます。 永続的なルートキット メモリ ベースのルートキット ユーザー モードのルートキット Windows のネイティブ API は、ユーザー モードのクライアントとカーネル モードのサービス間のインターフェイスとして機能するので、さらに高度なユーザー モードのルートキットでは、ネイティブ API のファイル システム、レジストリ、およびプロセス列挙機能をインターセプトします。このため、Windows API の列挙の結果をネイティブ API の列挙によって返された結果と比較する検索プログラムでは、このようなルートキットが検出されません。 カーネル モードのルートキット ページのトップへ RootkitRevealer のしくみ永続的なルートキットは、API を使用したシステムの表示がストレージの実際の表示と異なるよう API の結果を変更することで機能しているので、RootkitRevealer では概要レベルのシステムのスキャン結果を詳細レベルのスキャン結果と比較します。概要レベルは Windows API、詳細レベルはファイル システムまたはレジストリ ハイブを直接読み取った内容です (ハイブ ファイルは、ディスクでのレジストリの格納形式です)。したがって、ユーザー モードのルートキットでもカーネル モードのルートキットでも、Windows API またはネイティブ API を操作してディレクトリ一覧から自己の存在を削除するルートキットは、RootkitRevealer では、Windows API によって返される情報と、FAT または NTFS ボリュームのファイル システム構造を直接スキャンすることで確認された情報の不一致により認識されます。 ルートキットが RootkitRevealer から隠される可能性 ルートキットの存在を検出する確実な方法 結論としては、万能のルートキット検索プログラムは決して存在しないでしょうが、ウイルス対策ソフトウェアと統合されてオンラインとオフラインの比較を行う検索プログラムが最も強力な検索プログラムと言えます。 ページのトップへ RootkitRevealer の使用RootkitRevealer では、実行するアカウントによって、"ファイルとディレクトリのバックアップ"、"デバイス ドライバーのロードとアンロード"、および "ボリュームの保守タスクを実行" (Windows XP 以降) の各特権が割り当てられている必要があります。Administrators グループには、これらの特権が既定で割り当てられています。誤検知を抑えるため、アイドル状態のシステムで RootkitRevealer を実行します。 適切な結果を得るために、すべてのアプリケーションを終了し、RootkitRevealer のスキャン処理中はシステムのアイドル状態を維持してください。 ご質問や問題がある場合は、Sysinternals RootkitRevealer フォーラム (英語) にアクセスしてください。 ページのトップへ 手動スキャンシステムをスキャンするには、システムで RootkitRevealer を起動し、[Scan] ボタンをクリックします。RootkitRevealer によってシステムがスキャンされます。ウィンドウの下部のステータス領域で処理内容が報告され、出力の一覧に不一致が表示されます。構成できるオプションは次のとおりです。
ページのトップへ 自動スキャンの起動RootkitRevealer では、次のように、システムを自動スキャンするためのオプションをいくつかサポートしています。 使用法: rootkitrevealer [-a [-c] [-m] [-r] <outputfile>] -a 自動的にスキャンし、スキャンの完了時に終了します。 -c 出力を CSV 形式にします。 -m NTFS メタデータ ファイルを表示します。 -r レジストリをスキャンしません。 ファイルの出力場所は、ローカル ボリューム上にある必要があります。 -c オプションを指定すると、進捗状況が表示されず、データベースに簡単にインポートできるように不一致が CSV ファイルに書き込まれます。次のようなコマンド ラインを使用して、Sysinternals PsExec ユーティリティと組み合わせて RootkitRevealer を実行すると、リモート システムをスキャンできます。 psexec \\remote -c rootkitrevealer.exe -a c:\windows\system32\rootkit.log ページのトップへ 出力の解釈よく知られている HackerDefender ルートキットの存在を検出している RootkitRevealer のスクリーンショットを以下に示します。レジストリ キーの不一致は、HackerDefender のデバイス ドライバーとサービス設定が格納されたレジストリ キーが Windows API に公開されていないのに、レジストリ ハイブ データを直接スキャンすると存在していることを示しています。同様に、HackerDefender に関連付けられたファイルは Windows API ディレクトリのスキャンでは検出されませんが、ファイル システム データを直接スキャンすると存在しています。 すべての不一致を調べて、ルートキットの存在が示されている可能性を特定してください。残念ながら、出力に基づいている場合、ルートキットが存在するかどうかを特定する決定的な方法はありません。しかし、すべての報告された不一致を調べて、説明できる不一致かどうかを確認してください。ルートキットがインストールされていることが判明した場合は、削除の手順を Web で検索します。ルートキットの削除方法がわからない場合は、システムのハード ディスクを再フォーマットして Windows をインストールしてください。 以下の RootkitRevealer の不一致に関する情報以外にも、Sysinternals の RootkitRevealer フォーラムでは、検出されたルートキットや具体的な誤検知について意見が交換されています。 ページのトップへ Hidden from Windows API.このような不一致は、ほとんどのルートキットで見られます。ただし、[Hide standard NTFS Metadata files] の隣にチェック マークが表示されていない場合は、すべての NTFS ボリュームに関するエントリが多数表示されます。これは、NTFS では $MFT、$Secure などのメタデータ ファイルが Windows API から隠されているためです。NTFS ボリュームに存在するメタデータ ファイルは、ボリュームで有効になっている NTFS のバージョンと NTFS 機能によって異なります。また、Kaspersky Anti-Virus など、ルートキットの手法を使用して、NTFS 代替データ ストリームに格納されているデータを隠すウイルス対策製品もあります。このようなウイルス検索プログラムを実行していると、すべての NTFS ファイル上の代替データ ストリームに対して "Hidden from Windows API." という不一致が表示されます。あらゆるフィルター処理がルートキットによって利用されるおそれがあるので、RootkitRevealer では出力のフィルターをサポートしていません。また、ファイルがスキャン中に削除された場合も、この不一致が表示されることがあります。 Windows Server 2003 の時点で定義されている NTFS メタデータ ファイルの一覧を以下に示します。
Access is Denied. RootkitRevealer では、システムのあらゆるファイル、ディレクトリ、またはレジストリ キーにアクセスできるメカニズムを使用しているので、この不一致が報告されることはありません。 Visible in Windows API, directory index, but not in MFT. ファイル システムのスキャンは、Windows API、NTFS マスター ファイル テーブル (MFT)、および NTFS のディスクにおけるディレクトリ インデックス構造の 3 つの要素で構成されています。上に示した不一致は、これらのスキャンの 1 つまたは 2 つだけにファイルが存在していることを示します。一般的な原因は、スキャン中にファイルが作成または削除されたことです。スキャン中に作成されたファイルに対する RootkitRevealer の不一致の報告例を以下に示します。 C:\newfile.txt Windows API length not consistent with raw hive data. ルートキットは、誤ったレジストリ値のサイズを報告してレジストリの内容が Windows API に認識されないようにすることで、存在を隠そうとする場合があります。このような不一致はすべて調べてください。ただし、スキャン中に変更されたレジストリ値が検出されることもあります。 Type mismatch between Windows API and raw hive data. レジストリ値には DWORD、REG_SZ などの型があり、この不一致は、Windows API から返された値の型が、ハイブ データから直接返された値の型と異なっていることを示します。ルートキットでは、データを REG_BINARY 値などとして格納し、Windows API には REG_SZ 値だと認識させることでデータをマスクできます。データの先頭に 0 が格納されていると、Windows API は以降のデータにアクセスできません。 Key name contains embedded nulls. キー名は、Windows API では null で終了する文字列として扱われますが、カーネルでは固定長の文字列として扱われます。このため、オペレーティング システムには公開されていても、Regedit などのレジストリ ツールでは部分的にしか公開されないレジストリ キーを作成できます。Sysinternals の Reghide サンプル コードは、この作成方法を示しています。この手法は、レジストリ データを隠すためにマルウェアでもルートキットでも使用されています。null が埋め込まれたキーを削除するには、Sysinternals Regdellnull (英語) ユーティリティを使用します。 Data mismatch between Windows API and raw hive data. レジストリのスキャン中にレジストリ値が更新されると、この不一致が発生します。頻繁に変更される値には、Microsoft SQL Server の稼働時間の値 (次の例参照)、ウイルス検索プログラムの "前回のスキャン" の値が挙げられます。報告された値をすべて調査して、正当なアプリケーションやシステムのレジストリ値であることを確認してください。 HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\RECOVERYMANAGER\MSSQLServer\uptime_time_utc ページのトップへ ルートキットの関連情報ルートキットの詳細については、以下の Web サイトおよび書籍を参照してください。 Understanding and Fighting Malware: Viruses, Spyware and Rootkits (Level 300) (英語) Sony によるルートキットとデジタル著作権管理の乱用 (英語) Unearthing Rootkits (英語) Rootkits: Subverting the Windows Kernel (英語) www.phrack.org (英語) research.microsoft.com/rootkit/ (英語) The Art of Computer Virus Research and Defense (英語)、Peter Szor 著 Malware: Fighting Malicious Code (英語)、Ed Skoudis および Lenny Zeltser 著 『インサイド Microsoft Windows 第4版』(上下)、Mark Russinovich および Dave Solomon 著 (ルートキットについて説明している書籍ではありませんが、Windows のアーキテクチャを理解するとルートキットを理解しやすくなります。)
Live.Sysinternals.com から直接 RootkitRevealer を実行する ページのトップへ |
トピック
ダウンロード
Live.Sysinternals.com から直接 RootkitRevealer を実行する 動作環境:
|