今回は「CODERED(コードレッド)」を検証する。コードレッドは2001年7月に登場した,Windows標準のWebサーバー機能であるIISのセキュリティ・ホール(MS01-033:ISAPI エクステンションの未チェックのバッファによりサーバーへの攻撃が可能)」)を攻撃するネットワーク・ウイルスだ。コードレッドの登場はセキュリティ・ベンダー各社に大きな衝撃を与えた。攻撃開始から9時間で25万台に感染したとされるその感染スピードも衝撃的だったが,もっと衝撃的だったのはそれまでの常識を覆した活動内容である。コードレッドは,活動にファイルを必要としないのである。

 ウイルス対策ソフトの検索対象は,基本的にファイルである。プログラムはまずファイルの形でシステム内に作成された後で無ければ実行されない――というのがそれまでの常識だった。不正プログラムといえども1個のプログラムである。必ずその実体となるプログラム・ファイルがあり,それがメモリー中に読み込まれることにより活動を開始する。不正プログラムは必ず最初にファイルとしてシステム内に入り,その後に活動開始するという流れだった。従って,ハードディスクなどのメディア上に記録されているファイルを単位として検索,監視するという対応が,最も確実で効率的だった。

 しかし,コードレッドはシステム中にファイルを作成しない。直接,メモリー中で活動を開始する。ファイルを監視しているウイルス対策ソフトはファイルが作成されなければ検出できない。例えるなら,地上を監視していたら空から侵入されてしまったようなものだ。コードレッドの登場により,ウイルス対策ソフトはパーソナルファイアウオールのようなネットワーク通信を監視する機能を持つ必要性に迫られた。

 では,コードレッドの活動を検証してみよう。コードレッドは実体としてのプログラム・ファイルを持たないため,通常の検証のように用意したサンプル・ファイルを実行するというわけにはいかない。検証のためには,セキュリティ・ホールを持つ環境にコードレッドの攻撃コードを送信する必要がある。

 そこで,クローズのネットワーク内に被攻撃側サーバー(以下,サーバー)と攻撃PCを用意した(図1)。サーバーはService Packを適用していないWindows 2000 Serverの環境,攻撃PCには最新状態のWindows XP SP3環境を使用。この2台を1対1のクローズネットワーク内に置き,攻撃PCには「10.10.10.10」,サーバーには「10.10.10.80」のIPアドレスに設定した。また,通信内容の確認用として,パケット・アナライザ・ソフトである「Wireshark」を両サイドにインストールした。

図1●今回検証した環境
図1●今回検証した環境
テスト機1からテスト機2へ「CODERED」の攻撃コードを送信する

 まず,ネットワーク接続とサーバー上でのIISの稼働を確認するため,攻撃PCからサーバーにInternet Explorerでアクセスしてみる。するとデフォルトである「工事中」のページが表示された。Wireshark上でもこのHTTPのやり取りが確認できた(図2)。

図2●攻撃PCからサーバーにInternet Explorerでアクセスした(攻撃PCの画面)
図2●攻撃PCからサーバーにInternet Explorerでアクセスした(攻撃PCの画面)
[画像のクリックで拡大表示]