|
必聴講座ご紹介 Cloud Days Tokyo 2012 エムオーテックス Cloud Days Tokyo 2012 ヴイエムウェア Cloud Days Osaka 2012 アマゾン データ サービス ジャパン |
ルートキットの正体を暴く(後編)悪意あるソフトをシステム深部に隠す巧妙な仕組み■ソニーBMGの音楽CDに含まれていたRootkit(ルートキット)を発見した技術者によるRootkit解説記事の後編。カーネル・モードで動作するRootkitの仕組みや,Rootkitの防御法,Rootkitが仕掛けられた場合にそれを削除する方法などについて説明する。記事で紹介されている「RootkitRevealer」というRootkit検出ツールは,Russinovich氏らが開発したものである。Rootkitに関して不安を感じているユーザーは,試してみてはいかがだろうか(ITpro編集部)。
カーネル・モードのルートキットは低レベルのAPIを横取り
「カーネル・モード・ルートキット技術」という手法もある。これはルートキット・コミュニティでよく知られるようになったもので,カーネル・オブジェクトを直接操作する仕組みだ。この手法では,カーネルのデータ構造自体を攻撃し,カーネルのデータ構造に関する情報を返すAPIは攻撃しない。例えば,このタイプのルートキットはプロセスを隠すとき,カーネルが保持するアクティブなプロセスのリストからそのプロセスを削除するのである。その結果,NtQuerySystemInformation関数はそのプロセスを報告しなくなる。これはNtQuerySystemInformationが自らの情報を作るとき,カーネルが持つアクティブ・プロセスのリストを利用するためだ。ただし,カーネルはプロセス内で動作するスレッドをスケジュールし続ける。この手法は,デバイス・ドライバ構造を隠すときに利用されてきた。とはいえ,レジストリ・キー,レジストリ値,ファイル,ディレクトリの偽装には適用できない。理由は,これらのオブジェクトが単純な静的構造で維持されていないことだ。直接的なカーネル・オブジェクトの操作で偽装を実現しているルートキットとしては,FUがある。 3つ目に説明するカーネル・モードのルートキットの手法は,「ファイル・システム・フィルタ・ドライバ」と呼ばれるものに隠ぺい機能を実装するというものだ。ファイル・システム・フィルタ・ドライバは,NTFSのようなファイル・システム・ドライバの上で,かつシステムコールAPIレイヤーの下に位置するプログラムである。これにより,ファイル・システム・フィルタ・ドライバは,すべてのファイル・システムの処理を監視できる。常駐型ウイルス対策ソフトは,この仕組みを使い,ファイルのオープン操作を横取りし,ウイルス・ファイルを検出することで,ウイルスの活動を未然に防いでいる。 この手法を採用するルートキットの例はNT Rootkitで,ディレクトリ一覧表示処理を横取りし,ファイル・システム・ドライバから返される出力からマルウエアのファイル名を取り除く。その結果,ディレクトリ表示動作を実行するあらゆるプログラムがNT Rootkitの隠ぺい処理を見破れなくなる。ユーザー・モードのWindowsエクスプローラはもちろん,カーネル・モードのドライバも影響を受ける。
実行中の正当なプロセスの中に隠れる場合も
|