「このマルウェアは『bootstrap』というJScriptで書かれたファイルをダウンロードしているようだが、JScriptを利用して何をしているのか調べて欲しい。」
「スクリプトと言えば、PDFに埋め込まれているものや Gumblar攻撃でダウンロードされてくる JavaScript をよく見るけど、実行ファイルがスクリプトをダウンロードするなんて見たことないなぁ」
また、一般的な DLLファイルと同じように もありますが、それらの の処理を見てみると、実際には何も行っていません(図2参照)。
続いてエントリポイントからのコードを見ると、お客様から話のあったファイル名「bootstrap」のダウンロード元と思われるURLがバッチリ見えています(図3参照)。
つまりこのマルウェアは、スクリプトをダウンロードして実行するだけのプログラムだったのです。
追加されているメソッドには全て分かりやすい名前が付けられているので、その名前を見るだけでも大体の機能が想像できます。もちろん、IDA などを使って実際のコードを見てみれば、そこで使われている など実際の動きをより詳しく調べることができます。調べた結果、ファイルやレジストリ操作関連、プロセスやスレッド関連、ソケットを使った通信関連などの基本的な をスクリプトから呼び出せるようにしていることがわかりました。また、Internet Explorer(IE)の操作やメール送信、FTP関連のものもありました(図6参照)。
ダウンロードしたスクリプト「bootstrap」を見ると、スクリプト内で指定されたURL("tasks.xml")から データを5分おきにダウンロードし、そこに書かれている内容から「TASK」を取り出して実行しています(図8参照)。
つまり、この「bootstrap」は「タスク」の管理だけを行っているのです。実際にダウンロードした "tasks.xml" を見てみると(図9参照)、タスクとしてURL("thread1.script")が書かれています。
そこでさらにそのURLからダウンロードされるデータを見てみると、別のスクリプトが書かれており(図10参照)、そこではまた別のURLから "protod.exe" というファイルをダウンロードして実行しています。
つまり、結果としてはダウンローダとして機能しているのです。そう考えるとずいぶん手の込んだ回りくどいことをしているようですが、もちろん攻撃者はこのボットに追加したメソッドを駆使した様々な「タスク」を与えることを意図しているのでしょう。何せこのボットへの指令はスクリプトを組んで与えればよいので、スクリプト次第で柔軟に何でもさせられます。このような「コマンドの内容をスクリプトによって柔軟かつ容易に定義可能なボット」のことを、ここでは便宜上「スクリプトボット」と呼ぶことにしましょう。このスクリプトボットを従来のボットと比較してみると、なぜこのような仕組みを持つに至ったかが見えてきます。予めプログラム内に用意されたコマンドしか実行できない IRCボットや、独自プロトコルでダウンロードした機械語コードを直接実行する仕組みのため機械語レベルの緻密なプログラミングが必要であったり通信量が多くなるなどで検知されやすい「BKDR_POISON」などと比べると、多くのメリットを持つことがわかるでしょう(表1参照)。
このように柔軟性、接続性、使いやすさを兼ね備えたこのスクリプトボットは、従来のボットの進化の一形態であると言えそうです。