ルートキットの侵入を防ぎ検出するには?
 ここからはルートキットへの対策について解説しよう。ルートキット技術を採用するマルウエアは,初めからシステムへの侵入を防ぐほうがいい。既にシステムに導入されているものを検出して取り除くのは容易ではないからだ。具体的には,ウイルス/スパイウエア対策ソリューションやファイアウオールを導入したり,管理者グループではないアカウントを使ったりといったセキュリティ対策を実施することになる。

 もし,ルートキットが侵入したと思われるときは,入手可能なできる限り多くのツールでシステムを検査すべきである。現行のスパイウエア/ウイルス対策ソリューションは,ルートキットには効果がない。これに対して,ルートキット検知ソフト,カーネル・デバッガ,そしてプロセス診断ユーティリティなどなら,多くのルートキットを発見できる。

 現在公開されているすべてのルートキットは手口に「穴」があり,検知ソフトはそれを利用してルートキットを検出している。例えば,Windows APIレイヤーでファイルを隠すルートキットは,ネイティブAPIを使ってファイル・システムをスキャンするアプリケーションで検出しやすい。NT Rootkitは公開されている中で最も巧妙なルートキットの1つではあるが,カーネル・オブジェクトを直接操作するタイプではない。従って,「Microsoft Debugging Tools for Windows WinDbg」(入手サイト)などのカーネル・デバッガを使えば,カーネル内のプロセスのリストを調べられる。NT Rootkitのデバイス・ドライバ・オブジェクトなど,NT Rootkitが隠してしまう各種マルウエア・プロセスを表示可能だ。

 一般的にルートキットを検出するには,可能な限り多くの角度からシステムの状態を調べ,そしてそれらの結果を比較する必要がある。結果が食い違えば,ルートキットが存在する可能性がある。例えば隠されたマルウエアのプロセスを検出するには,各種プロセス診断ユーティリティとともにカーネル・デバッガの出力結果を集め,それらを比較すべきである。同様に隠されたファイルやディレクトリを検出する比較的簡単な方法は,調査対象のWindowsシステムのボリュームにあるものを詳細に調べ上げて,それをクリーン・インストールしたOSで起動したとき見えるボリュームと比較することである。Microsoftはソフトウエア・アシュアランス(SA)の契約者に「Windows PE(Preinstallation Environment)」という製品を提供している。SAユーザーなら,これをクリーンな環境として比較に使える。

 Microsoft Researchは「Strider Ghostbuster」というツールを開発しており,前述したオンライン状態(使用中のシステムの状態)対オフライン状態(クリーン・インストールしたOSで起動した状態)の比較を自動化できる。StriderのWebサイトによると,このツールは研究用の試作品あるいはMicrosoftの製品の一部として将来提供されるという。実際に提供されるまでは,このWebサイトに記してある手動のステップに従って,システム上のルートキットをチェックする。

 また,記事執筆中の段階では,少なくともウイルス対策会社のうちの1社(F-Secure社)が,ルートキット検出を目的とした「F-Secure Blacklight Rootkit Elimination Technology」というツールのベータ版をリリースした。ほかのウイルス対策会社も後に続くことになるだろう。