米国時間8月11日以降,感染を拡大している「Blaster(MSBlaster,RPC DCOM WORM)」(関連記事1関連記事2)。Blasterのまん延に合わせて,「Windowsを勝手に再起動させられる」という報告が相次いでいるものの,セキュリティ・ベンダーなどが公開する情報の多くには,そのことが明記されていない。Windowsが再起動されるのはBlasterのせいなのか,どのタイミングで再起動させられるのか——について,シマンテック Symantec Security Responseマネージャの星澤裕二氏に聞いた。結論から言うと,BlasterにはWindowsを再起動する“機能”はない。Blasterによって不安定になったRPCサービスが,Windowsを再起動させる。

 セキュリティ・ベンダーが公開する情報をまとめると,Blasterは次の手順で感染を広げると考えられる。

  1. 攻撃対象のIPアドレスをランダムに決定する。ただし,全くのランダムではない。攻撃元(現在Blasterが動作している)マシンのIPアドレスの“近傍”が選択される場合もある。
  2. 攻撃対象マシンのTCPポート135番へ,「RPCインターフェイスのバッファオーバーランによりコードが実行される (823980) (MS03-026)」のセキュリティ・ホールを悪用するような,RPCメッセージを送信する。
  3. 対象マシンのTCPポート135番にアクセス可能で,かつそのマシンに「MS03-026」のセキュリティ・ホールがある場合には,バッファ・オーバーフローを発生させて,RPCメッセージに含まれたコード(ペイロード)を実行させる。コードには,TCPポート4444番でアクセスを待つシェル(cmd.exe)を起動する命令が書かれている。Blasterワームの“本体”は記述されていない。
  4. TCPポート4444番経由で対象マシンに接続し,ワーム本体である「msblast.exe」を攻撃元(現在Blasterが動作している)マシンから対象マシンにコピーするtftpコマンドを実行する。
  5. TCPポート4444番経由で対象マシンに接続し,msblast.exeを実行する。
  6. 対象マシン上でBlasterが動き始めるとともに,Windowsを起動するとBlasterが起動されるようにレジストリを変更する。また,システムの日付が8月16日になると,「Windows Update」サイト(windowsupdate.com)へDoS攻撃を仕掛ける。

 星澤氏によると,セキュリティ・ホールがあるRPCサービスが,攻撃メッセージを受信してバッファ・オーバーフローが発生した段階で,RPCサービスが不安定になるという。つまり,上記の 3 の時点で不安定になる。この時点で,RPCサービス自身がRPCに関するエラー・メッセージを表示して,Windowsを再起動させる可能性がある。BlasterがWindowsを再起動させるのではなく,攻撃を受けたRPCサービスが再起動させるのである。

 ここで注意する必要があるのは,必ずしも3の時点で再起動するとは限らないということだ。もし 3 の時点で再起動すれば,msblast.exeがコピーされることはないので,Blasterが対象マシン上で動き出すことはない。つまり,感染することはない。しかし,5 や 6,すなわち,感染後に再起動する場合も十分ありうる。この段階では,レジストリが変更されているので,Blasterは再起動するたびに動き出す。

 Windowsが再起動されることなく,Blasterが感染することもある。ただし星澤氏によると,再起動される可能性が高いという。また,バッファ・オーバーフローが発生した後のどの段階で再起動するのかは,システム環境などによって異なるので,一概には言えないという。

 まとめると,Windowsが再起動しなくても,セキュリティ・ホールをふさいでいなければ,Blasterに感染している可能性がある。また,Windowsが勝手に再起動したからといって,必ずしもBlasterに感染しているとは限らない。とはいえ,バッファ・オーバーフローが発生していることは確かであり,Blasterに感染している可能性もある。Windowsが勝手に再起動した場合には,早急に対策を施す必要がある。

 ただし,セキュリティ・ホールがあるWindowsマシンをインターネットに接続している限り,攻撃パケットを受け取るたびに再起動してしまうので,対策を施すことができない場合がある。その場合の対処法をマイクロソフトが公開している。具体的には,対処法のページをローカルに保存して,マシンをネットワークから切り離す。その後,オフラインで対策を施す。

 まず,同ページにあるように,「タスクマネージャ」の「プロセス」で,Blasterワームのプロセス「msblast.exe」が動いていないかどうかを調べる。

 存在しない場合には,バッファ・オーバーフローを発生させられただけなので,Blasterは感染していないと考えられる。とはいえ,感染する状態ではあるので,パッチを適用して対策を施す必要がある。未対策のマシンをネットワークに接続するのは危険なので,「対策済みのマシンでダウンロードしたパッチを適用する」「Windows XPの場合には『インターネット接続ファイアウォール』を有効にしてからパッチをダウンロードする(有効にする方法はマイクロソフトのページに詳しい)」「ブロードバンドルーターなどでTCP135番をフィルタリングするようにしてからダウンロードする」——といった対処を施したい。

 存在する場合には,Blasterに感染しているので,マイクロソフトの情報に従って,取り除く必要がある。また,アンチウイルス・ベンダーは駆除ツールを公開している。もちろん取り除いても,そのままでは再び感染する可能性は高い。「存在しない場合」と同様に,パッチを適用する必要がある。

 Blasterに感染したままネットワークに接続していると,感染を広げるばかりか,8月16日以降はDoS攻撃の踏み台に利用される。しかも,BlasterはデフォルトのWindowsに感染するので,個人ユーザーが知らないうちに感染している可能性が高い。IT Pro読者のほとんどは既に対策済みだろうが,ぜひ身の回りのユーザーにも注意を呼びかけていただきたい。経済産業省も,このまま感染が拡大すれば,8月16日にはDoS攻撃によるパケットにより,インターネット全体で深刻な障害が発生する恐れがあると注意を呼びかけている

◎参考資料
「Blaster に関する情報」(マイクロソフト)
「Blaster Worm Analysis」(米eEye Digital Security)
「マイクロソフトWindowsの脆弱性を狙ったワームの発生に関する注意喚起」(経済産業省)

(勝村 幸博=IT Pro)