はじめに
Stuxnet はコード内にバージョン番号を格納しています。コードを解析した結果、バージョン 0.5 について新しい事実が判明しました。Web サイトのドメイン登録情報によると、Stuxnet 0.5 は 2005 年には活動を開始していた可能性があります。バージョン 0.5 が拡散し始めた正確な日付は不明ですが、この初期バージョンは 2009 年 7 月 4 日にコンピュータへの感染活動を停止しています。これはバージョン 1 の作成日のわずか 12 日前です。
表 1. Stuxnet の既知の亜種(メインモジュールの PE タイムスタンプに基づく)
ここでは、Stuxnet の歴史と、Stuxnet 0.5 がその歴史のどこに位置付けられるかに焦点を当て、Stuxnet バージョン 1 までの進化をまとめてみます。
進化
Stuxnet 0.5 は、現在までに解析された Stuxnet で最も古い亜種です。この亜種は 2009 年 7 月 4 日にコンピュータへの感染活動を停止し、コマンド & コントロール(C&C)サーバーとの通信も同年 1 月 11 日に停止しています。コードの随所でコンパイルのタイムスタンプが見つかっており、当てにはなりませんが、ほとんどが 2001 年のようです。
Stuxnet 0.5 とそれ以降のバージョンの主な違いは、以下のとおりです。
- 後続のバージョンは、拡散機能と脆弱性の悪用が大幅に強化されている。
- Flamer プラットフォームのコードから Tilded プラットフォームのコードに移行した。
- 後続のバージョンは、ウラン濃縮のバルブ破損から、遠心分離機の速度改変へと攻撃の戦略が変わっている。
1. 拡散機能と脆弱性の悪用の大幅な強化
Stuxnet は、複数の脆弱性を悪用することにより、その拡散機能と攻撃性が大幅に強化されました。Stuxnet 0.5 で確認された複製機能は、Siemens Step 7 プロジェクトファイルの感染による方法だけでした。バージョン 1.x と違い、Stuxnet 0.5 は、コンピュータ間を移動するときに Microsoft 製品のの脆弱性を悪用していません。
表 2 と表 3 に、悪用される脆弱性と拡散メカニズムの相違点をまとめました。
表 2. Stuxnet の脆弱性悪用の進化
表 3. Stuxnet の複製メカニズムの進化
2. Flamer から Tilded への移行
これまで Stuxnet は、Flamer プラットフォームのソースコードすべてではなく、一部のコンポーネントを利用できる何者かによって開発されたプロジェクトであると考えられてきました。しかし Stuxnet 0.5 の発見により、Stuxnet の開発者は Flamer プラットフォームの全ソースコードにアクセスできたことが明らかになっています。
Stuxnet 0.5 が部分的に Flamer をベースにしているのに対して、バージョン 1.x は主に Tilded プラットフォームをベースにしています。この間に、開発者は Tilded プラットフォームへの移行を進めたものと見られます。実際には、後のバージョンになると Tilded プラットフォームを使って Flamer プラットフォームのコンポーネントが再実装されています。
Flamer プラットフォームと Tilded プラットフォームではコードベースがまったく異なることから、別々の開発者が関与したものと推測されます。
3. 攻撃戦略の変化
Stuxnet バージョン 1 には、遠心分離機の回転速度を制御する Siemens 315 PLC を標的としたコードが含まれるほか、Siemens 417 PLC を標的としたコードシーケンスが不完全ながら含まれています。後者がどんな意味を持つか、当時は判明していませんでした。
Siemens 417 PLC を攻撃する完全機能版は、バージョン 0.5 ですでに発見されており、これはウラン濃縮時のバルブ動作に手を加えることを目的としています。
Stuxnet 0.5 には、この 417 を攻撃するコードしか含まれず、315 を攻撃するコードは含まれていません。
417 攻撃コードについて詳しくは、「Stuxnet 0.5: ナタンズのウラン濃縮施設に対する攻撃」を参照してください。
まとめ
Stuxnet 0.5 の発見により、Stuxnet の進化についてかなり解明することができました。この進化を全体の状況の中で把握するために、イランのナタンズにおける低濃縮ウラン(LEU)の生産量を表すグラフに、Stuxnet の開発上の主な日付を重ね合わせてみました。このグラフで興味深いのは、六フッ化ウラン(UF6)の供給量や LEU の生産量が落ち込んでいる部分があるほか、供給量と生産量の間で差が開いている部分があることです。
図 1. LEU 生産量(出典: ISIS)
まだ発見されていないバージョンの Stuxnet が、バージョン 0.5 より前にも、また特にバージョン 0.5 と 1.001 の間にも存在する可能性があります。2010 年に発見された部分的なコンポーネントも、依然として既知のバージョンの Stuxnet とは一致を見ていません。既知の各バージョンの主な相違点を、表 4 にまとめました。
表 4. Stuxnet の各バージョンの比較
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にアクセスしてください。