PCの動きがおかしいので診て欲しいという依頼。OSはWindows XP。起動時に何やらよくわからないDLLが見付からないエラーが出て、しかも動作がのろい。
タスクマネージャを見ると、CPU使用率が100%のまま。ところが、プロセスを見ると、タスクマネージャがそのCPU使用率のほとんどを占めているかのように表示されている。
ウイルスらしき実行ファイルがスタートアップ項目にあるかどうか、msconfigやregeditで確認したり、サービスに普段なさそうなサービスが登録されてないかもチェックするが、怪しげなプログラムは特になし。
「プログラムの追加と削除」を見ると、Norton Antivirus 2005がリストに上がっている。ところが、タスクトレイにはNortonのアイコンがないし、Nortonのプログラムフォルダを見ても、実行ファイルやDLLがすっかり消えてしまっている。
これはウイルスにNortonを消された可能性も考えられる。そこで、他のウイルス対策ソフトで検索しようとインストールしてみるが、インストールがうまくいかずに中断してしまう。Nortonもアンインストールが中断されてしまう。
残るはオンラインスキャン。トレンドマイクロ日本語サイトのオンラインスキャナを使ってみようとしても、途中でウィンドウが勝手に閉じてしまう。カスペルスキーのオンラインスキャナも途中でエラー終了してしまう。
試行錯誤した結果、トレンドマイクロ英語版サイトのオンラインスキャナでウイルス検索をかけてみると、ぞろぞろとウイルスが発見され始めた。
TROJ_BAGLE.AO
TROJ_INJECT.AB
WORM_BAGLE.TV
TROJ_VNCKILL.A
TSPY_BANCOS.ECI
CRCK_KEYGEN
ADW_STARWARE
ADWARE_SCREESAVERS
ADWARE_NEED2FIND
ADWARE_BHOT_STARWARE
Mal_MLWR-1
これで駆除できたと思ったのも束の間、症状は全く改善しない。TROJ_BAGLE.AOが削除しきれていないらしい。このウイルスは根深いところに潜伏しているようだった。
rootkitを捜索せよ
ウイルスによっては、rootkitというものを使って、自分自身の存在をウイルス対策ソフトから隠す事もある。今回私はその実例を初めて自分の目で見ることができた。
どうやら、タスクマネージャのCPU使用率がずっと100%のままで、プロセスにも怪しげなプログラムが表示されず、スタートアップのレジストリ項目やサービスもそうだったのは、あたかも正常なシステムであるかのようにrootkitが偽装しているからに違いない。
そこで、rootkit探しが始まった。RootkitRevealer という、rootkit検出ツールを使うと、普段見たことのないフォルダが見付かった。
C:\windows\system32\drivers\downld\
C:\Documents and Settings\(ユーザ名)\Application Data\m\
これらのフォルダそのものは、Windowsエクスプローラでは表示されない。コマンドプロンプトでdirコマンドを使っても一覧に表示されない。/Aオプションで隠しフォルダを表示させようとしても出てこない。
ところが、そのフォルダを名前で直接指定すると、フォルダに移動できるし、フォルダの中のファイル一覧も表示される。摩訶不思議なからくりだった。
さて、TROJ_BAGLE.AOについてネット検索してみると、
C:\windows\system32\drivers\
フォルダに、srosa.sysおよびhldrrr.exeという名前のrootkitが潜んでいることがあるとのこと。これまたリストには表示されないが、名前を指定すると出てくる。
ところが、どちらのファイルも、リネームも削除もできない。現在実行中(しかしタスクマネージャに表示されないので強制終了できない)なのだろうから当たり前なのだけれど。
そこで、以前に作ってあった、Windows PEのブートディスクでブートし、コマンドプロンプトからリネームしてやると、今度こそリネームが成功した。
サービスを停止せよ
rootkitの起動を阻止できると――ドラクエ2でいうなら「ハーゴンの幻」を打ち破るようなものだ――、今度こそ、Windowsエクスプローラにもregeditにも、本物のファイル名やレジストリエントリが表示されるようになる。
スタートアップ項目にwintems.exeというプログラムが登録されているのがやっと見えたので、このエントリを削除。やっと表示されたsrosaという名前のサービスはrootkitなので、コマンドラインからsc delete srosaで削除できる。
まだまだあった。C:\Program Files\Gbpluggin\gbiehcef.dll である。最初に書いた「DLLが見付からない」エラーは、これが関係していた。
これは、ブラジルの銀行のオンラインバンキング用プログラムを乗っ取るための、フィッシング用プログラムらしい。これはrootkitが有効な状態でも見えていたし、削除そのものは簡単。しかしそれだけでは、スタートアップ時にDLLがロードできずにエラーになってしまう。
rootkitが無効になったことで、これまたレジストリエディタの検索で引っ掛かるようになった。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\Run
に、このDLLをロードするためのエントリがあったので削除。加えて、IEのアドオンにもこのDLLが追加されてしまっていたので、IEのアドオンを削除するツールを使って削除(自分でインストールしたアドオンではないので、IE単体では削除できない)。
加えて、
C:\Documents and Settings\(ユーザ名)\Application Data\m\
にウイルスをホスティングしているサーバの一覧らしきものが入っていたり、
C:\windows\system32\drivers\downld\
にウイルスらしきexeファイルがぎょうさんあったので、どちらもフォルダごと削除。
そんなこんなで、ようやくrootkit付きウイルスの駆除が完了。ウイルスの妨害により、不完全にアンインストールされてしまっていたNortonは、SymUninst.exeツール*1で完全削除。今度こそウイルス対策ソフトがきちんと最後までインストールできるようになったし、Windows Updateもウイルスに妨害されずに実行できるように。めでたしめでたし。