バージョン 1.x と同様、Stuxnet 0.5 にも限定的ながらコマンド & コントロール(C&C)の機能が備わっています。詳しく言うと、作成者が Stuxnet 0.5 を細かいレベルまで制御できるわけではなく、Stuxnet 0.5 が新しいコードをダウンロードし、自身を更新するだけです。Stuxnet は分離されたネットワーク上で拡散させる必要があるため、自律性を前提に設計されており、細かい調整が可能なしっかりとした C&C 機能を持つ必要はありません。また Stuxnet 0.5 は、インターネットにアクセスできないネットワーク上のピアにコードの更新を伝播するために、予備としてピアツーピア(P2P)のメカニズムも利用します。
Stuxnet 0.5 には 4 つの C&C サーバーがありますが、いずれも現在は使用不可になっているか、すでに無関係の第三者によって登録されています。
Stuxnet 0.5 は 2009 年 1 月 11 日に C&C サーバーへの接続を停止するようプログラムされていますが、拡散を停止する期日はそれより数カ月も遅い 2009 年 7 月 4 日にプログラムされているという点が興味深いところです。
C&C サーバーのドメインは 2005 年に作成されており、最初に表示されるページはすべて共通です。Media Suffix という名前のインターネット広告代理店のサイトと称し、「Believe What the Mind Can Dream(夢見る心を信じよう)」というキャッチフレーズが掲載されています。
図 1. Stuxnet の C&C サーバーのトップページ
サーバーのホストは、米国、カナダ、フランス、タイに置かれた商用ホスティングプロバイダのものでした。
ほとんどの場合、Stuxnet 0.5 の最終的な標的は、インターネットから分離されたネットワークです。分離された環境にあるコンピュータで更新を実行するために、Stuxnet 0.5 は P2P のメカニズムを使っていました。更新されたバージョンのいずれかが、たとえば USB メモリを介してネットワークに侵入すると、同じネットワーク上の他の感染コンピュータもすべて、更新や新しいコードモジュールを受信します。
Stuxnet 0.5 は、P2P 通信に Windows のメールスロットを利用します。メールスロットを使うと、リモートコンピュータ上のプロセス間でメッセージを受け渡すことができます。Stuxnet 0.5 はネットワーク上のすべてのコンピュータを列挙し、以下の名前のメールスロットに接続しようとします。
\\
次に、以下のコールバックメールスロット名を指定します。
\\
Stuxnet 0.5 はこのようなメールスロットを使って P2P 通信を実現し、他のバージョンに更新を配布します。しかも、匿名ログインを許可して 4 つのファイル共有(temp$、msagent$、SYSADMIN$、WebFiles$)を開くようにシステムを設定できるので、一連のファイルを共有してピア感染によって取り込めるようになります。
Stuxnet 1.x でも P2P による更新メカニズムは採用されていますが、実装方法が異なり、リモートプロシージャコールが使われています。
Stuxnet 0.5 の各コンポーネントについて詳しくは、以下のブログ、ビデオ、テクニカルホワイトペーパーを参照してください。
- Stuxnet 0.5: ミッシングリンク見つかる
- Stuxnet 0.5: その進化の過程
- Stuxnet 0.5: ナタンズのウラン濃縮施設に対する攻撃
- ビデオ: Stuxnet Timeline and Attack Strategy(Stuxnet の歴史と攻撃戦略)
Stuxnet 0.5 について詳しくは、シマンテックのホワイトペーパー(英語)をご覧ください。
* 日本語版セキュリティレスポンスブログの RSS フィードを購読するには、http://www.symantec.com/connect/ja/item-feeds/blog/2261/feed/all/jaにアクセスしてください。