Endpoint Protection

 View Only

Zeusbot/Spyeye P2P の進化でボットネットがさらに強力化 

Feb 23, 2012 11:54 PM

パラレルの Zeusbot/Spyeye ビルドについては、このブログでも昨年終わり頃にお伝えしました。ボットネットに改良が加えられ、ネットワークアーキテクチャが単純なボット/C&C 型システムから進化して、ピアツーピア型が登場するようになったという趣旨でした。この新しい亜種は、ボットネットの稼動状態を維持して情報を収集し続けるために P2P 通信を独占的に利用します。

前回も説明したように、このボットネットでは感染したコンピュータそれぞれがピアとなり、そのピア間で、(C&C サーバーの URL が含まれる)設定ファイルが配布されていました。こうすると、C&C サーバーがダウンしてもボットネットは他のピアと通信して、新しい C&C サーバーの URL が載った設定ファイルを取得できるようになります。

最新の更新では、この機能に利用される C&C サーバーが完全に姿を消してしまったようです。これまで C&C サーバーとの間で送受信されていた制御メッセージが、現在は P2P ネットワークによって処理されています。

つまり、ボットネットの各ピアが、実際には C&C サーバーではなくても C&C サーバーとして機能できるようになったということです。ボットはコマンドや設定ファイル、実行可能ファイルを他のボットからダウンロードできるようになったわけで、感染したコンピュータのどれもが他のボットにデータを送信できるのです。盗み出したデータを攻撃者の元に送信する方法はまだわかっていませんが、このようなデータも攻撃者の制御下にある目的地点に到達するまで、ピア間で転送される可能性があります。

今回の変化でこのボットネットはさらにダウンしにくくなり、その背後に潜む攻撃者を追跡することも同じくらい困難になりましたが、攻撃者にとっての大きなメリットはそれだけではありません。Zeustracker は、全世界の Zeus C&C サーバーについて IP 遮断リストを追跡し公開することに威力を発揮してきたサイトですが、Zeus が P2P に移行したために、Zeustracker は Zeus C&C サーバーの正確な IP 遮断リストを生成できなくなるのです。

C&C サーバーはもう不要か

C&C サーバーに依存しなければならない状態には、限界があります。C&C サーバーはオフラインにできるので、つまりはボットネット運用者の追跡も可能ということになります。これが、初期の P2P 型ボットに見られた欠点です。ボットの実行可能ファイルをブラックボックス化するだけで、接続先の C&C サーバーを確認できるからです。ボットネットの運用者はこの問題に対処したようで、C&C サーバーに送信されていた制御メッセージが、現在は P2P ボットネット自体に送信されるようになっています。この場合のピアはもちろん感染したコンピュータなので、オフラインにすることはできませんし、ボットネットを悪用している攻撃者にたどり着くことは(ほとんどの場合)不可能です。

図 1: C&C のパラダイムが中央のサーバーからボットネットにシフト

UDP の増加と TCP の減少

もうひとつ特筆すべき変化は、通信に今まで以上に UDP が多用されるようになったことです。以前のブログでも説明したように、ボットはある種の自家製 UDP ハンドシェークを使って相互に通信しています。ハンドシェークに成功すると、ボットは設定ファイル、他のピアのリストなどを TCP データとして交換します。しかし、TCP 通信は追跡とダンプが容易なうえに、交換されるパケットに対して何の認証も実行されないため、ボットを偽装して他のボットと通信し、設定データなどをダウンロードすることが誰にでも可能です。

今回の新しい亜種では、データ交換が UDP でも実行されるようになりました。UDP プロトコルはステートレスな性質を持つため、ボットの通信を傍受してそこからデータを抽出することが難しくなります。

図 2a: 設定ファイルの交換に TCP を使っていた旧バージョン

図 2b: データをすべて UDP で交換する新しいバージョン

圧縮と暗号化における変更

ボットで使われる暗号化は、Zeusbot の標準的な亜種で使われる暗号化と大きな違いはありません。データを圧縮し、各バイトと 1 つ前のバイトを XOR 演算して、RC4 を適用しています。

新しい亜種でも、データの暗号化には引き続き RC4 が使われ、各バイトと 1 つ前のバイトの XOR も実行されますが、新しいレイヤーも追加されています。バイトごとの XOR が設定の各ブロックに適用され、それに対して次のコードを使って暗号化キーが計算されます。

図 3: 新しい暗号化レイヤーのコード

これは、次のような簡単な式に当たります。

 XorKey = ((BlockSize << 0x10) | BlockId) | (XorSeed << 8) 

復号レイヤーを通過すると、最終的に各データブロックの圧縮が解除されます。このボットでも以前のバージョンは Nrv2b 圧縮を使っていましたが、今回の亜種は Zlib 1.2.5 に移行しています。

各ボットが Web サーバーに

前述したように、これまで C&C サーバーによって処理されていた制御メッセージが、現在はボットネットの他のピアによって処理されるようになっています。制御メッセージが HTTP 経由で交換されることから、ボットには nGinx が追加されました。nGinx は、最小限の機能しか持たないオープンソースの Web ブラウザです。この変更によって、各ボットが HTTP 要求を処理できるようになり、C&C の機能も実行可能になりました。

図 4a: 旧バージョンは C&C サーバーに対して標準の HTTP POST 要求を使用

図 4b: 新しいバージョンはランダムな TCP ポートを使ってピアに POST 要求を送信

ボットに Web サーバーの機能を持たせる方法は、脅威を取りまく環境にあって目新しいものではありません。Waledac/Kelihos ボットも、自身を拡散する目的でデータの交換と悪質なコンテンツの公開に、すでにこの手法を利用していることが判明しています。

Zeusbot はマルウェアを拡散しているか

この新しい亜種についてシマンテックが確認したもうひとつ注目すべき点は、Zeus ボットネットがマルウェアを拡散していることです。ボットは他のピアと通信し、HTTP 要求を発行して 2 つの実行可能ファイルをダウンロードし、実行します。この 2 つの実行可能ファイルは、ボットネット上の別のピアにホストされており、分析の結果、偽のウイルス対策ソフトウェアとプロキシエンジンであることが判明しました。これは異例なことで、技術的には可能であるものの、Zeusbot が他のマルウェアを拡散するというのは、これまで前例がありませんでした。

それでは、C&C サーバーはなくなったのか

攻撃者は、C&C サーバーに対する依存を排除した(少なくとも緩和した)ように見えます。と言っても、C&C サーバーが完全になくなったわけではありません。特定の状況では、今でも C&C サーバーへの接続が選択されることがあります(たとえば、盗み出したデータを攻撃者に返信する場合など)。この脅威の分析は現在も進行中で、現時点ではこの点が大きな焦点になっています。

C&C サーバーの完全な排除が可能になったとしたら、それはボットネットが強力に進化するひとつのステップとなるでしょう。P2P のみで稼動するようになれば、それを操っている攻撃者の追跡は、ほぼ不可能になります。分析は現在も進行中であり、全体像を把握するためにこの謎についても明らかにしようと努めています。

Zeus の主な感染経路は、文書に見せかけた悪質なファイルが添付されている電子メールです。いつものように、不明な送信者から受け取った電子メールには注意し、送信元が不明なファイルはけっして開かないようにしてください。

 

* 日本語版セキュリティレスポンスブログの RSS フィードを購読するには、http://www.symantec.com/connect/ja/item-feeds/blog/2261/feed/all/ja にアクセスしてください。

Statistics
0 Favorited
0 Views
0 Files
0 Shares
0 Downloads

Tags and Keywords

Related Entries and Links

No Related Resource entered.