写真1:Telecom-ISAC Japanの小山覚氏
写真1:Telecom-ISAC Japanの小山覚氏
[画像のクリックで拡大表示]
写真2:ボット・プログラムのソースコード例
写真2:ボット・プログラムのソースコード例
[画像のクリックで拡大表示]
写真3:ボットネットの概念図
写真3:ボットネットの概念図
[画像のクリックで拡大表示]
写真4:ボットネットはIRCサーバーを使用する
写真4:ボットネットはIRCサーバーを使用する
[画像のクリックで拡大表示]
写真5:ボットネットのIRCチャンネルに参加するにはパスワード認証が必要
写真5:ボットネットのIRCチャンネルに参加するにはパスワード認証が必要
[画像のクリックで拡大表示]
写真6:ボットネットが備える機能
写真6:ボットネットが備える機能
[画像のクリックで拡大表示]
写真7:ボットネットが引き起こしたDDoS攻撃の例
写真7:ボットネットが引き起こしたDDoS攻撃の例
[画像のクリックで拡大表示]
写真8:ボットネットが備えるボットの情報収集コマンドの例
写真8:ボットネットが備えるボットの情報収集コマンドの例
[画像のクリックで拡大表示]
写真9:コマンドを使ってボットのシステム構成などを表示した画面
写真9:コマンドを使ってボットのシステム構成などを表示した画面
[画像のクリックで拡大表示]

 Telecom-ISAC Japanの企画調整部副部長である小山覚氏は4月26日,「RSA Conference Japan 2006」の講演で,「ボットネット」を実際に運用することで判明した調査結果を公開した(写真1)

 小山氏らはインターネットでボット「rxBOT」のソース・コードを入手して,検証ネットワーク内にボットネットを自作した。その上で,ボットネットの命令伝達体系やサーバー攻撃手法などを調査した。小山氏は「最近のボットネットは,使い勝手も良く機能も豊富で,非常に洗練されている。真剣に対策を講じなければならない」と訴えた。

 Telecom-ISAC Japanは,国内の通信事業者やISPで構成するセキュリティ組織である。小山氏はボットネットを自ら運用した背景について,次のように語った。「去年までは,ボットネットの管理者(Herder)からボット(ボット・プログラムに感染して乗っ取られたパソコン)に送られるコマンド(命令)が平文でやりとりされていたので,ボットの動きはある程度分かった。しかし最近では,コマンドが暗号化されるようになっており,ボットが何をしているのか分からなくなった。ボットの仕組みを理解するためには,ボットネットを運用するしかないと考えた」。

スクリプト・キディでも使いこなせる

 小山氏らはまず,インターネットで「rxBOT」というボット・プログラムのソース・コードを入手した。ソース・コードはC++で記述されていた。ソース・コードに対して,ボットに命令を送るIRCのアドレスやチャンネル名などのパラメータを加えてコンパイルすると,実際に動作するボット・プログラムになった。

 小山氏によると,「ソース・コードは非常に分かりやすく書かれていた。技術水準の低いスクリプト・キディでも簡単にボット・プログラムをコンパイルできる」と語っている(写真2)

 ボットネットは,小山氏らが構築した検証用の疑似的なインターネット環境で運用した。当然のことながら,実際のインターネットでは運用していない。1台目のボットは,ボット・プログラムをローカルで実行させることで作り出した。この段階で,ボット・プログラムには,自分自身の存在を隠す機能があることが判明した。

 「OSがデバッグ・モードになっていたり,VMwareが起動していたりすると,ボット・プログラムは自動終了した」(小山氏)という。VMwareに反応するのは,ボットの調査用に設けられた罠である「ハニーポット」においてVMwareが使われているケースが多いためである。つまりボットは,自らに対する調査を“拒む”機能を備えている。

 また,ウイルス対策ソフトが動作していると,Hostsファイルを書き換え,ウイルス対策ソフト・ベンダーが運用するシグネチャ配布サーバーなどのアドレスを,ローカル・アドレスに置き換えた。

 続いてボットが実行したのが,同一ネットワーク・セグメントに存在するコンピュータに対するスキャンと感染活動である。ネットワーク経由でボットに感染したコンピュータは,ボットネットが指定するWebサイトからボットの本体プログラムをダウンロードして実行する(写真3)

ボットネットは「二重のパスワード」で保護されている

 ボットネットの管理者(Herder)は,IRCサーバーを使ってボットに命令を送る(写真4)。ボット・プログラムにはIRCサーバーに接続するためのユーザー名とパスワードが埋め込まれている。ボットネットが使用しているIRCチャンネルには,このユーザー名とパスワードがないと接続できない(写真5)。また,ボットに対して命令を送るためには別のユーザー名とパスワードが必要だ。「ボットネットは二重のパスワードで保護されている」(小山氏)。

 ボットネットは様々な目的で悪用できる(写真6)。ボットに感染したマシン上の情報を盗み出したり,他のマシンにボットを感染させたり,DDoS攻撃を仕掛けたり,スパム・メールを送信したりできる。

 例えばボットは,プロセッサの処理のほとんどをDDoS攻撃に割り当てたりする。そのためボットネットを使ったDDoS攻撃は大規模になる傾向がある。2005年12月23日には,「コマンド&コントロール・サーバー(ボットネットの中央サーバー)」が日本に置かれたボットネットから,米国のあるプロバイダに対して大規模なDDoS攻撃が実行されているという。その攻撃のトラフィックは毎秒6Gビットに及んだ(写真7)

 スパム・メール送信機能については,意外な事実が判明した。小山氏は「検証するまでは,ボット自身が送信者になってスパム・メールを送信すると考えていた。しかし実際には,ボットはメールの第三者中継をしているのではなく,リダイレクトをしているだけだった。つまりISPがPort 25のアウトバウンド規制をしただけでは,ボットによるスパム・メール送信を防げないことが分かった」と語る。

 ボットネット管理者は,ボットをスパム送信者に時間貸ししているという。スパム送信者からボットへは,任意のポートを使ってメールが配信されているため,この部分でスパム・メールを防ぐのも難しい。

ボットによる情報漏えいは「Winny問題よりも深刻」

 小山氏は「ボットネットの情報公開機能,情報漏えい機能は恐ろしい」と語る。今回テストしたボットRxbotには,写真8のような情報収集コマンドが実装されていた。「キーロガー(ユーザーのキー入力を盗むソフト)のオン/オフを実行するコマンドまである」(小山氏)。これらのコマンドはIRCサーバーを経由してボットに送られる。

 写真9は,実際にコマンドを使ってボットのシステム構成などを表示した画面である。「山田オルタナティブ」ワームのように,ボット上にWebサーバーを立ててディスク内容をすべて公開する機能もある。小山氏は「Winnyはユーザーに情報漏えいを気づかせてくれるが,ボットは感染したことも情報流出も気づかせない。ボットネットの情報漏えい機能は,Winnyを使うウイルスよりも深刻」と語る。

ボットネットの中央サーバーは冗長化されている

 ボットネットの活動を止める「特効薬」もないことが分かった。ボットネットに対する命令はIRCサーバーを通じて送信される。このIRCサーバーは冗長化されているので,もしISP事業者などがIRCサーバーへの通信を遮断したとしても,すぐに第二のIRCサーバーに機能が切り替わる。

 しかもボットネットには,ボットのネットワーク接続速度の調査機能も備わっていて,IRCサーバーがダウンした場合は,ネットワーク接続速度が高速であるボットを次のIRCサーバーに昇格させる。IRCサーバーや本体プログラムの配布サーバーは,ダイナミックDNSによって管理されているので,こういったサーバー役割の移行が可能になっている。

 小山氏は「ボットの中には,『ボット制御用のチャンネル』『ボットに感染したIPアドレスを連絡する専用のチャンネル』といった具合に,複数のIRCサーバーを使ってボットネットを運用しているものもある。1台のIRCサーバーをつぶしただけでは,ボットネットの活動を止められない」と語る。

 「ボットネット対策の特効薬はない。ボットネットを知り尽くした上で,対策を講じる必要がある。一番効果があるのは,ボットに感染したパソコンを減らすことだろう」(小山氏)。

 ボットネットは現在も進化している。同時に講演したJPCERTコーディネーションセンターの中谷昌幸氏は「現在は中央サーバーが存在するIRCボットが主流だ。しかし将来的には,ボットネット管理者がボットに対して直接命令を送るP2Pボットが出現するだろう。P2PボットはIRCボットよりも活動を止めにくい」と警告する。

 また最近の傾向として,サーバーを狙ったボットが増えていることを挙げた「サーバー管理者の中には『安定して動作しているシステムにパッチをあてない』という昔ながらのUNIXの“風習”を守っている人がいるからだ。サーバーはクライアントと比べて,ボットの感染に気づきにくい一方で,ボットネットにとって利用価値が高い。インターネットに直結しているし,ファイアウオールで守られていないケースが多いからだ」(中谷氏)。