Windows HotFix Briefings

緊急ワーム対策スペシャル
ネットワーク管理者のためのBlasterワーム対策

―― Blasterワーム感染の有無の確認、排除、防御の手順 ――

DA Lab Windowsセキュリティ
2003/08/16
2003/08/18 更新

 Windowsのセキュリティ・ホール(MS03-026:RPCインターフェイスのバッファ・オーバーランによりコードが実行される)を攻撃する「Blaster」と呼ばれるワームが全世界で急速に感染を広げている。国内でも一部の企業や自治体などがワームに感染し、業務を停止するなどの影響が出ている。この問題は、新聞やテレビを始めとして、多くの報道機関が取り上げたことから、多くの方がすでにご存じのことだろう。

 今回は、HotFix Briefingsの特別編として、企業のWindowsネットワーク管理者を対象に、自身が管理するネットワークにおいてBlasterワームの感染がないかどうかを確認し、感染があった場合の除去方法、修正プログラムを適用して以後の感染を根本的に防止する方法をまとめる。

感染はなぜ拡大したのか

 このBlasterワームは、TCPの135番ポートやUDPの69番ポートなどを介して感染を広げる(技術的な詳細は後述)。まず、感染が懸念されるのは、ファイアウォールなどを正しく設置せずに(前出のポートなどを正しくフィルタリングせずに)インターネットに接続している個人ユーザーのコンピュータで、MS03-026のセキュリティ・ホールが放置されているものだ。正確な数字は明らかではないが、このケースでインターネットにBlasterワームの感染パケットを垂れ流しているコンピュータは少なくないと予想される。

 一方、企業のコンピュータはどうか。通常、企業のインターネット接続では、ファイアウォールによって外部から社内LANへの前記ポートのアクセスは遮断されている。従ってファイアウォールのフィルタリングが完全なら、たとえ社内にMS03-026のセキュリティ・ホールが放置されたコンピュータがあっても、感染を防止することが可能だ。しかし実際には、国内でも一部の企業や自治体などがBlasterワームに感染し、業務に支障をきたしている。感染経路は明らかになっていない場合が多いようだ。現在のコンピュータ・ネットワークでは、ダイヤルアップ接続(RAS:Remote Access Service)やVPN接続で社内LANに接続するモバイル・ユーザーがいたり、ノートPCを持ち込んでLANに接続するユーザーがいたりと、ネットワーク利用の幅が広がっている。このことは、必ずしもファイアウォールを管理するだけでは、ワームなどの攻撃から社内ネットワーク防御できないことを示している。やはり根本的には、使用するすべてのコンピュータに対し、公開されている修正プログラムを鋭意適用していくしか予防法はないだろう。HotFix管理の詳細については、本フォーラムの以下の記事を参照されたい。

Blasterワームの攻撃対象

 Blasterワームの攻撃によって影響を受けるWindowsのバージョンは以下のとおりである。

攻撃対象OS
Windows NT Workstation 4.0
Windows NT Server 4.0
Windows NT Server, Enterprise Edition 4.0
Windows NT Server 4.0, Terminal Server Edition
Windows 2000 Professional
Windows 2000 Server
Windows 2000 Advanced Server
Windows 2000 Datacenter Edition
Windows 2000 Powered
Windows XP Home Edition
Windows XP Professional
Windows XP Tablet PC Edition
Windows Server 2003 Standard Edition
Windows Server 2003 Enterprise Edition
Windows Server 2003 Datacenter Edition
Windows Server 2003 Web Edition

 このように、実質的に、現在企業で利用されているほとんどすべてのサーバ/クライアントPCが対象となっている。自身が管理するネットワークにBlasterワームに感染したものがないかどうか、Blasterワームの攻撃対象となるセキュリティ・ホール(MS03-026)が放置されたコンピュータがないかどうかを至急に確認し、対策する必要がある。

Blasterワームの攻撃手法

 Blasterワームの技術的な詳細については、すでにマイクロソフトやウイルス対策ソフト・ベンダ各社、セキュリティ関連ベンダから多数のドキュメントが公開されている。なかでも最も詳しいのは、米Symantecが公開している以下のレポートである。

 日本語のドキュメントとしては、冒頭でも紹介した以下のマイクロソフトのページにリンクが一覧になっている。

 詳細はこれらに譲るとして、ここでは、Blasterワームの攻撃手法のポイントについてまとめておこう。

 まずBlasterワームは、Windows OSに感染すると、「BILLY」というミューテックス(スレッドの同期を制御するために使用されるWin32のカーネル・オブジェクト)を作成し、自分自身が2度以上起動(感染)しないように保護する。続いてレジストリに以下のキーを登録し、Windowsの起動時にmsblast.exe(ワームの実行ファイル)が自動的に実行されるように設定する。

キー:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
値 :"windows auto update" = "MSBLAST.EXE"

 また、ほかのコンピュータに自分自身を提供するためのtftpサーバ機能を開始させる(tftpは、UDPの69番でリッスンする簡易ファイル転送プロトコル)。この後Blasterワームは、別のコンピュータに自身のコピーを送り込んで感染を広げるための活動を開始する。まず、攻撃先のコンピュータ(IPアドレス)を次のようにして決定する。

  1. 乱数を20で割り、その余りが12以上の場合には、攻撃のターゲットをローカルIPアドレスをベースとするものにする。ローカル・ホスト(感染した元のコンピュータ)のIPアドレスをA.B.C.Dとすると、まずDを0に設定し、さらにCが20よりも大きければ、20以下の乱数をCから引く。

  2. 乱数を割った余りが12未満の場合には、攻撃先のIPアドレスをランダムに生成する。

 このようにBlasterワームは、60%の確率でローカルのLAN(同一サブネット上のコンピュータ)を攻撃対象とし、40%の確率でグローバル・アドレスを含む外部ネットワークを攻撃対象とする。いったんIPアドレスが決定すれば、以後は1つずつ増加させながら以下の攻撃を繰り返す。

 攻撃対象のIPアドレスが決定したら、TCPの135番ポートに攻撃用のデータを送信し、MS03-026のセキュリティ・ホールが修正されていないコンピュータを探す。未修正のコンピュータが見つかったら、MS-RPCのバッファ・オーバーフローの脆弱性を使って、TCPの4444番ポートで待機するリモート・シェルを作成する。そして、感染元のコンピュータからmsblast.exeの本体を取得するコマンド(「tftp <ホスト名> get msblast.exe」)をリモート・シェルに送り込み、実行させる。これにより、Blasterワームの本体が攻撃先のコンピュータに送られる。次にmsblast.exeを起動させるコマンドを送り込むと、Blasterワームが実行を開始し、さらに感染を広げることになる。

 ただし、最初の攻撃(TCP 135番ポートへの攻撃用データの送信)を受けたとき、感染はせずにシステムが再起動するコンピュータがある。この場合には、感染の拡大には加担せずに済むこともあるが、セキュリティ・ホールを解消しないかぎり、攻撃用データを受信するたびにシステムが再起動を繰り返すことになる。

 なおBlasterワームには、システムの現在の日付カレンダが8月16日以降なら、マイクロソフトのWindows Updateサイト(windowsupdate.com)に接続し、DoS攻撃(サービス拒否攻撃)をしかけるコードが埋め込まれている。ワームが攻撃するセキュリティ・ホールの修正プログラムを適用させないようにする措置と思われる。

 オリジナルのBlasterワームは、感染を広げるだけで、システム破壊などは行わない。しかし、すでにBlasterワームの亜種がいくつか確認されており、今後も安全だとはいえない。

 以上、セキュリティ・ホールが放置されており、Blasterワームの攻撃を受けたコンピュータの挙動は、再起動を繰り返すか、感染して、さらにほかのコンピュータへと感染を広げるかのいずれかである。

Blasterワームの攻撃を受けた脆弱なコンピュータの挙動
MS03-026のセキュリティ・ホールが放置されたコンピュータがBlasterワームの攻撃用データを受信したとき、再起動を繰り返す場合と、自身が感染して感染を広げる場合の2種類がある。

Blasterワームの被害確認(まず始めに)

 まずは、ネットワークがすでにBlasterワームの攻撃によって影響を受けていないかを手早く確認する。これには次の点に注目する。

  1. ネットワーク内に再起動を繰り返しているコンピュータが存在しないか
  2. ネットワーク・トラフィックが異常ではないか

 万能ではないが、2.を手っ取り早く知るには、スイッチング・ハブのLEDに注目するという方法がある。通常のLAN上の通信では、クライアントとサーバ間での比較的決まった経路でのパケットが多いはずだ。そのため、特定の2つのLEDが同時に点滅することが多い。これに対し、Blasterワームではランダムに通信先のIPアドレスを生成してアクセスしようとする。もちろん、存在しない相手先IPアドレスへの通信も多く発生する。このためスイッチング・ハブのポート別のLEDは、いくつかの決まったポートだけが点滅するのではなく、各ポートのLED全体が激しく点滅することになるだろう。まるで、ブロードキャストがずっと送信されっぱなしのような状態に見える。この場合はBlasterワームの感染を疑った方がよい。ただし、ハブのLEDの応答速度が鈍い場合など、この方法が使えない場合もある。また、攻撃対象がローカルのLAN以外のIPアドレス範囲にさしかかると、そのトラフィックはすべてデフォルト・ゲートウェイへと向くことになるので、今度はデフォルト・ゲートウェイに対するトラフィックが異常に増えることになる(つまりインターネットとのトラフィックがずっと発生し続けるという状態になる)。

 より厳密にトラフィックを調査するには、ネットワーク内に流れているパケットをキャプチャして内部を調査する。この方法については、コラム「Blasterワーム・パケットをキャプチャする」を参照されたい。

 すでに感染が疑われる場合には、パケットのモニタリングなどによって対象のコンピュータを急いで見つけ出し、ワームの駆除と修正プログラムの適用を実施する。

Blasterワームの被害確認と除去、予防の手順

 当面緊急の感染対策が不要そうだからといって安心してはいけない。自身が管理しているネットワークに対し、Blasterワームの攻撃によって被害を受けたコンピュータがないかどうか、Blasterワームに感染したコンピュータがいないかどうかを確認し、感染したコンピュータが存在した場合の除去方法、将来の感染を防止するための措置について手順を追ってみていこう。

1.ファイアウォールのフィルタリング設定を確認する
 まずは、攻撃用パケットが外部から侵入することを防止する。冒頭でも述べたとおり、通常はTCP 135番ポートなどはファイアウォールによってフィルタリングしているはずだが、念のため確認する必要がある。これを最初に行っておかないと、以後の作業途中で攻撃を受ける可能性があるからだ。また、すでに社内にBlasterワームに感染し、感染活動を開始しているコンピュータが存在するかもしれないので、インターネット(社外)から社内に向かうパケットだけでなく、社内からインターネットに向かうパケットについても同様にフィルタリング設定を行う。

 ファイアウォールのフィルタリング設定を確認できない場合には、ネットワーク自体を遮断する必要があるが、その場合には、次の2.の手順で述べるファイル群(OS別の修正プログラム、コラムに示したISSのツールやマイクロソフト提供のツール、Blasterワームの駆除ツールなど)を遮断前に入手するか、別の手段で入手する必要がある。

2.作業に必要なファイル群を入手する
 以後の作業で必要になるファイル群をインターネットからダウンロードする。具体的には次のものを入手する。

  • MS0-026の修正プログラム(マイクロソフトより入手。対象となるコンピュータごとにファイルが異なるので、必要な環境用の修正プログラムをすべて入手すること)

  • ISS(Internet Security Systems)が提供するBlasterワーム用セキュリティ・ホール検出ツール(詳細はコラム「Internet Security Systemsが提供するBlasterワーム用セキュリティ・ホール検出ツール」を参照)*1

  • Blasterワーム駆除ツール(Blasterワームに感染したコンピュータから、ワームを除去するツール。ウイルス対策ソフト・ベンダなどが無償提供している)

  • ウイルス対策ソフト用の最新パターン・ファイル(必要な場合)

*1 [追加情報]この原稿の執筆後、マイクロソフトからもMS03-026の未適用コンピュータをリモートから検出するコマンドライン・ツール(KB 823980 Scanning Tool [KB823980scan.exe] )の提供が開始された。記事中ではISSツールを利用した方法について解説しているが、このKB 823980 Scanning Toolを使っても同様の処理を行うことができる。

KB 823980 Scanning Toolを使用して、セキュリティ修正プログラム23980(MS03-026) がインストールされていないホスト・コンピュータを特定する方法(マイクロソフト・サポート技術情報)

 Blasterワームの駆除ツールは、ウイルス対策ソフト・ベンダ各社が無償提供している。以下のページからダウンロード可能である。

 ウイルス対策ソフトを利用してBlasterワームの感染を検出するなら、最新のパターン・ファイルが必要だろう。

3.ISSのScanmsツールを利用して、脆弱なコンピュータを洗い出す
 2.で入手したScanmsツールを利用して、MS03-026のセキュリティ・ホールが放置されたコンピュータをネットワークから洗い出す。Scanmsコマンドの利用法についてはコラム「Internet Security Systemsが提供するBlasterワーム用セキュリティ・ホール検出ツール」を参照。

4.脆弱なコンピュータのネットワークの切断とBlasterワーム感染の検出と除去
 3.でセキュリティ・ホールが放置されたコンピュータが見つかったら、まずはそれらのコンピュータをネットワーから切断し、Blasterワームの除去ツールを使って感染有無を確認し、感染しているなら除去を行う。

 なお、3.のScanmsツールでは、電源の入っていないコンピュータは検出対象外となるので、これらのコンピュータについても同様にネットワークを切断した後、除去ツールを適用する。

5.修正プログラム(MS03-026)の適用
 4.のコンピュータに対し、MS03-026の修正プログラムを適用する。

Internet Security Systemsが提供するBlasterワーム用セキュリティ・ホール検出ツール
 Internet Security Systems(ISS)は、MS03-026のセキュリティ・ホールが放置されたコンピュータをネットワーク内から探し出し、一覧表示するコマンドライン検出ツール(Scanms)の無償提供を開始した(ただしサポートなどはないので、自身のリスクで利用すること)。

 Scanmsでは、検出したいIPアドレスの範囲を指定して、その範囲内にMS03-026の修正プログラムが適用されていないコンピュータが存在しないかどうかを検出する。実行方法は次のとおり。

 scanms.exe [開始IPアドレス]-[終了IPアドレス]

 例えば、開始IPアドレスを「192.168.0.1」、終了IPアドレスを「192.168.0.100」として実行すると、以下のように結果が表示される。

c:\> scanms.exe 192.168.0.1-192.168.0.100
---- ScanMs Tool --- (c) 2003 Internet Security Systems ---
Scans for systems vulnerable to MS03-026 vuln
More accurate for WinXP/Win2k, less accurate for WinNT ISS provices no warrantees for any purpose, use at own risk
IP Address              REMACT  SYSACT  DCOM Version
-----------------------------------------------------
192.168.0.31            [....]  [ptch]  0.0
192.168.0.55            [ptch]  [ptch]  5.6
192.168.0.54            [ptch]  [ptch]  5.6
192.168.0.100           [....]  [ptch]  0.0
192.168.0.51            [ptch]  [ptch]  5.6
192.168.0.70            [ptch]  [ptch]  5.6
192.168.0.57            [ptch]  [ptch]  5.6
192.168.0.56            [....]  [VULN]  0.0
192.168.0.69            [ptch]  [ptch]  5.6
192.168.0.53            [ptch]  [ptch]  5.6
192.168.0.71            [ptch]  [ptch]  5.6

 Scanmsでは、「REMACT」と「SYSACT」という2種類の検出方法を利用している(具体的な検出方法は不明)。これらそれぞれについて検出結果が一覧表示されている。ここでどちらか一方でも[VULN]と表示されたら(この例では「192.168.0.56」のコンピュータ)、MS03-026の修正プログラムが適用されていない可能性がある。

 このようにScanmsを利用すれば、多数のコンピュータから、MS03-026を未適用のコンピュータを効率よく探し出すことができる。

修正プログラムの最新動向

■Windows 2000 SP2も修正プログラムの対象プラットフォームに追加
 マイクロソフトは、Blasterワームの感染が拡大しているため、従来はサポート対象外としていたWindows 2000 SP2に対しても、MS03-026の修正プログラムを適用可能にした。

Windows NT Workstation 4.0 SP6aへの適用
 マイクロソフトのサポート技術情報「823980」によれば、Windows NT Workstation 4.0 SP6aは正式な適用対象ではないものの、修正プログラムの適用が可能だとされている。

修正プログラム適用時の注意事項

 Windows NT 4.0 SP6aおよびWindows 2000 SP2からRPCのセキュリティ・ホールを取り除くには、MS03-026の修正プログラムだけでなく、MS01-041(不正なRPCリクエストがサービスを異常終了させる)の修正プログラムを適用する必要がある。これらの環境では、MS01-041とMS03-026の修正プログラムを両方とも必ず適用すること。DA Labで検証した結果、MS03-026の適用後にMS01-041を適用しても、ファイルのバージョンが戻ることはなかった。

 MS01-041は、Windows 2000 SP3に含まれているため、Windows 2000 SP3以降の環境(Windows 2000 SP3/SP4)では、MS02-041を個別に適用する必要はない。

 MS01-041の修正プログラムは、以下のダウンロード・ページで「日本語」もしくは「Japanese Language Version」を選択してダウンロードする。なお、Windows NT 4.0 SP6aに対するMS01-041の修正プログラムは単体では配布されておらず、ほかのセキュリティ修正プログラムを累積した「セキュリティ ロールアップ パッケージ」に含まれている。End of Article

Blasterワーム・パケットをキャプチャする
 Blasterワームのパケットのキャプチャ例を以下に示す。これは、インターネットに直接接続されているマシンに対して、外部からのTCPの接続要求をキャプチャしたものである(ネットワーク・モニタの使い方は別稿の「Windowsネットワーク・プロトコルの理解と検証」などを参照)。あて先ポート番号が135番となっているものが、Blasterワームである。ここでは、2時間弱で15回ほどの攻撃要求があったことが分かる。ちなみにあて先ポート番号が445番(ダイレクト・ホスティングSMBサービス・プロトコル)となっているものは、Tzetワームのようである(詳細はシマンテックの「W32.Tzet.Worm」やトレンドマイクロの「TROJ_DELSHA.C」などを参照)。やはり10回ほど捕捉されている。このように、注意すべきはBlasterワームだけではない。だが、そもそもはこのようなファイル共有サービスなどのポートがインターネットに向けて公開されていることそのものが間違いなので、これらは必ずファイアウォールでブロックするようにしておこう。


キャプチャされたBlasterワームなどの攻撃
インターネットに接続したWindows Server 2003マシンに対して送信された、インターネット側からのTCP接続要求パケットを、管理ツールのネットワーク・モニタでキャプチャしたもの。このマシンでは外部には何もサービスは公開していないので、これらの要求はすべてワームやウイルスの攻撃によるものと考えられる。あて先ポート番号が135番のものがBlasterワームであるが、ほかにも445番(ファイル共有サービス用のポート。「TIPS―ポート445(ダイレクト・ホスティングSMBサービス)に注意」などを参照)を狙ったTzetワームも多く見られる。一般的には、これらのサービスはインターネットに対して公開するようなものではないので、必ずファイアウォールでブロックしておくべきである。攻撃元のIPアドレスの先頭アドレスの数値が61とか218などと、ほぼ同じになっているのは、最近のワームの特徴である。完全にランダムなIPアドレスでなく、送信元のIPアドレスと近い範囲に限定することにより(IPアドレスが近いと、地理的に近い場所に存在している確率が高い)、効率的に攻撃している。
  パケットの受信時刻。ここでは2時間弱で30個程度の攻撃を受けている。
  インターネット側からのTCPの接続要求(SフラグはTCPの最初に送られる要求を表している)だけを選択的に表示している。
  あて先ポート番号。135(MS-RPC)や445(ダイレクト・ホスティングSMB)、139(NetBIOSセッション・サービス)、80(HTTP)などが見える。
  このように、あて先ポート番号が135となっているのがBlasterワーム。
  パケットの送信元IPアドレス。最上位バイトが61や218などとなっているものが多い。これはなるべくIPアドレス的に近いコンピュータをターゲットとしているからである。これにより、(地理的にもネットワーク的にも)近いコンピュータを効率よく、攻撃している。

更新履歴
【2003/08/18】当初の原稿執筆後にマイクロソフトから公開されたMS03-026未適用コンピュータ検出ツール「KB 823980 Scanning Tool 」の情報を追加しました。

 Windows HotFix Briefings


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間