Q

インターネットと接続していないネットワークのため,セキュリティよりも互換性や安定性を優先し,すぐにはパッチを適用せずにWindows 2000 Serverを使っていました。ところがある日,サーバーのsvchost.exeがアプリケーション・エラーで異常終了していました。これは,Blaster系のワームに攻撃された場合の特徴と似ているため不安です。ワームの仕業かどうかをすぐに調べる方法はありますか?

A

Blasterやその亜種のワームが感染に失敗すると,svchost.exeがアプリケーション・エラーで異常終了することが報告されています(サポート技術情報:824146)。svchost.exeが異常終了した場合の原因を追及するには,本当はダンプ・ファイル(user.dmp)をきちんと解析するべきですが,解析にはある程度のスキルが必要ですし時間もかかります。

 異常終了した原因が,Blaster系のワームからの攻撃なのか,それとも通常のエラーなのかを簡単に知りたければ,ワトソン博士のログ・ファイルからも判断可能です。ただし,ワームやウイルスは日々改変されています。ここで紹介する方法は,あくまで記事執筆時点でのもので,必ずしも今後すべての場合に有効ではない可能性が高いことに留意してください。

ワトソン博士のログから簡易判定
 プロセスが異常終了するとワトソン博士のログ・ファイルに記録が残ります。そこで,再起動後にコマンド・プロンプトから「drwtsn32.exe」と入力してワトソン博士を起動し,[ログファイルパス]フィールドから,そのログ・ファイルのパスを確認します(ほとんどの標準環境ではC:\Documents and Settings\All Users\Documents\DrWatson\drwtsn32.log)。

 それから,そのdrwtsn32.logをテキスト・エディタなどで開き,発生日時の情報からログ中にある該当部分を探します。ちなみに,ワトソン博士のログはファイル末尾に向かって新しい内容が記録されています。具体的には,アプリケーション名がsvchost.exeであることを確認し,“フォールト”の文字列でアクセス違反の発生したスレッドを探せばいいでしょう。


△ 図をクリックすると拡大されます
図4●Blaster系ワームの攻撃で異常終了した場合のワトソン博士のログ

 例えば図4のようになっているはずです(この場合はスレッド0x5f4)。基本的には[ロウスタックダンプ]が,この図の内容と類似していれば,ほぼBlaster系の攻撃と見てよいでしょう

 それでは,どのような特徴に着目して“類似”と判断するのか,具体的なチェックポイントを示します。

●特徴1:[フォールト]のアドレスの内容に[???]と表示される

 コード・セクション外(実際にはカーネル空間)へジャンプしているので,[フォールト]のアドレス(図4では0xe0833a30)は[???]と表示されます。この部分は恐らくBlaster系ワームのバグで,これが原因で感染に失敗しています。

●特徴2:espの指すアドレスの値がロウ・スタック・ダンプ中を指している

 ステート・ダンプ中のespが指すアドレス(図4では0x00dcf75c)の値がロウ・スタック・ダンプ中のアドレスを指しています(0x68 0xf8 0xdc 0x00)。ダンプ・ファイルを解析して,このスタック・データを逆アセンブルすると,フォールトを発生させたcall関数などのコードが得られるはずです。これは,バッファ・オーバーランでリターン・アドレスを書き換え,スタック上に流し込んだコードを実行しようとした形跡と考えられます。

●特徴3:espの指すアドレスより少し後ろから0x90が連続する

 espの指すアドレスより少し後ろ(12バイト目くらい)から0x90が連続しています。この0x90は逆アセンブルしてニーモニックに戻すとnopで“何もしない”というNo OPerationの命令を指します。これは,誤って実行しても侵入先(svchost.exe)を異常終了させないようにスタックを書きつぶすためのパディング・データだと考えられます。

●特徴4:その後に0xeb,0x19 から始まるバイト列が始まる

 ダンプ・ファイルを解析して逆アセンブルすると,本来データしかないはずのスタック上に「jmp」「pop」「xor」「sub」といった何らかの意図を持ったコードが配置されていることを確認できます。

 アクセス違反による異常終了はワームのバグが原因のようですが,MS03-039として知られているぜい弱性が存在する限り,アクセス違反を起こさずに感染する可能性が常にあります。外部から“閉じたネットワーク”内でもワームは存在し得ると考え,修正プログラムの適用を検討するべきでしょう。

小森 博司