犯罪者の金儲けのプラットフォームとして使われるボット。攻撃者は,ユーザーに気付かれないようにボットを仕込もうとする。心のスキを狙い,ウイルス対策ソフトでは検出できない仕掛けを使うのである。今回はその手口について解説する。

 ボットを操る犯罪者はボットを迷惑メールの踏み台として貸し出したり,ボットから収集した情報を売りさばいたりすることをなりわいとしている。つまり,ある程度の数量のボットが常時支配下にいなければ“ビジネス”は成り立たない。犯罪者は感染を成功させること,そしてこの数を減らさないことに気を配る(図1)。

図1●ウイルス“見えない化”の手口
図1●ウイルス“見えない化”の手口

 感染のフェーズでは,メールで送り付けたボットをどれだけ効率よく実行させられるかが犯罪者の工夫のポイントとなる。感染時に怪しい挙動をしないように配慮し,感染したことに気付かせないことが重要となる。

 感染後はなるべく長い期間駆除されずに居座ることが大事である。見付からない時間が長ければ,それだけ情報を盗み出したり,踏み台として使える期間が長くなるからだ。犯罪者はウイルス対策ソフトやユーザーに見付からない仕掛けをボットに組み込むほか,ウイルス対策ソフト・ベンダーの対策を手間取らせる工夫を凝らす。以下では,感染時と感染後に分けて手口を見ていくことにしよう。

心のスキを狙ってパソコンに侵入

 感染時にファイルを開かせる際に使われるのは,心理攻撃「ソーシャル・エンジニアリング」だ。ユーザーの見たいという欲求や開かねばならないという義務感を刺激して添付ファイルを開かせる。ただし,実行形式(exe)のファイルだと,ユーザーが不審に思う可能性が高い。

 そこで犯罪者は,WordのDOCファイルやAcrobat ReaderのPDFファイルなど,定番アプリケーションのファイルにボットを忍ばせて攻撃を仕掛ける。これらのファイル形式の場合,通常の状態ではプログラムを埋め込むことができない。それでも,WordやAcrobat Readerにバッファ・オーバーフローのぜい弱性があればこうした攻撃が可能になる。

 しかも,最近では攻撃が巧妙化しており,アプリケーションが異常終了するようなことはない。何もなかったかのように添付ファイルが開かれるのである。注意を払っていても,攻撃されたことに気付くのは難しいだろう。

データをあふれさせ,メモリーを書き換える

 バッファ・オーバーフローを突くと,攻撃したコンピュータを攻撃者が思いのままにできるため,攻撃者にとって“魅惑的”なぜい弱性となる。一般にプログラムは,処理に使うデータを一時的に蓄えておくために,バッファと呼ぶメモリー領域を確保する。バッファ・オーバーフローはこの領域に納まらないサイズのデータを格納しなければならない場合に起こる。

 例えば,あるプログラムがファイルを読み込むとき,その作成日データを読み取り,そのデータをバッファに格納する処理を実行していたとしよう。このプログラムがデータ格納用に12文字分しかバッファ領域を確保していなかった場合,ここに100文字のデータを送り込んだらどうなるか。もちろん,格納するデータが12文字以内かどうかをチェックするプログラムが動いていれば,受け取りを拒否する。

 しかし,こうしたチェックが不十分なケースでは,指定された領域に100文字分を書き込もうとするが,領域が足りないので12文字を越える部分のデータは,指定したバッファ領域に隣接するメモリー領域にあふれ出てしまう。その際,もともと書き込まれてあったデータが上書きされる格好になる(図2)。これがバッファ・オーバーフローだ。

図2●バッファ・オーバーフローの仕組み
図2●バッファ・オーバーフローの仕組み  [画像のクリックで拡大表示]

 データ格納用に指定したバッファ領域のそばには,その処理が終わった後の戻り番地(リターン・アドレス)が書き込まれていることが多い。処理が終わると,戻り番地に戻って,そこにあるプログラムを実行するわけだ。もし,何らかの方法で戻り番地を変えると,処理が終わったときの挙動が変わってくる。攻撃者はここを狙う。あふれるデータをうまく調整し,戻り番地が書かれてある部分に,別のアドレスを上書きするのである。これと同時に,あふれるデータの中に,悪意あるプログラムを入れておく。そして,書き換える戻り番地を,あふれた結果,上書きして格納される悪意あるプログラムの先頭部分にセットしておく。こうして,悪意あるプログラムを,狙ったコンピュータ上で実行させてしまうのである。

一般化するバッファ・オーバーフロー

 もちろん,バッファ・オーバーフローのぜい弱性がなければ,WordやAcrobat Readerが扱うファイルにボットを仕込むことはできない。ところが,バッファ・オーバーフローのぜい弱性は頻繁に見付かっているのが実情だ。

 例えば,Wordのぜい弱性は2007年1月~3月の間に6件見付かっている。ExcelやOutlookを含めると20件近くになる。

 専門家によれば,ここ数年で効率的にバッファ・オーバーフローのぜい弱性を発見するツールが登場しており,攻撃者が未知のぜい弱性を簡単に見付けられる状態が生み出されているという。現時点では,多くのパソコンで動作するOfficeがターゲットになっているが,Officeのぜい弱性が見付からなくなれば,他の定番アプリケーションに攻撃の対象が移っていくのはほぼ確実。バッファ・オーバーフローでボットを組み込む攻撃は今後も続くと考えるべきだ。