Stuxnet (シマンテックの分析レポート「W32.Stuxnet Dossier」 、バージョン1.4、2011年2月からの情報、pdf):
- メインモジュールはdllです。
- dllには、2つの署名されたファイルを含むいくつかのリソースが含まれています-USBフラッシュドライブの感染の事実を隠すためのオートロードドライバーとルートキット。
- 構成データのブロックがあります(前半はXOR 0xFF操作を使用して暗号化され、後半は異なる方法で暗号化されます)。
- インストール中に、メインモジュールと署名されたファイルは、構成データブロックで指定された名前でディスクに保存されました。
- 自動起動の場合、署名されたドライバーを使用するサービスが作成されました。
- 「データ」キーのアドレス「HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ MrxCls」のレジストリで、インジェクションが実行されたターゲットプロセス(services.exe、S7tgtopx.exe、CCProjectMgr.exe)の名前は暗号化された形式で保存されました。
Duqu (シマンテックの分析レポート「W32 Duqu The Next Stuxnetの前身」 、バージョン1.4、2011年11月、pdfからの情報):
- インストーラーはdllです。
- dllには、署名済みドライバー、メインモジュール、インストーラー構成データを含む3つのデータブロックが含まれています。
- インストーラー構成データブロックは、7バイトキー(0x2b 0x72 0x73 0x34 0x99 0x71 0x98)を使用して暗号化されます。
- インストール中、メインモジュールと署名されたドライバーは、構成データブロックで指定された名前でディスクに保存されました。
- 自動起動の場合、署名されたドライバーを使用するサービスが作成されました。
- キー「FILTER」のアドレス「HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ JmiNET3」のレジストリで、インジェクションが実行されたターゲットプロセス(services.exe)の名前が暗号化されました。
一般的に、一般的なアルゴリズムが表示されます:
- 署名済みドライバーのダウンロード
- 彼はレジストリのデータを解読します(マッピング「ターゲットプロセス-モジュール」を含む)。
- ターゲットプロセスへのモジュールの注入。
ただし、これは同じ人がコードにコードを実装したことを意味するものではありません。
StuxnetとDuquは、同じ手法を使用してdllライブラリ関数を呼び出します。これは、LoadLibraryを使用したアンチウイルス保護を使用した監視のバイパスを目的としています。 Ntdll.dllの場合、フック関数がインストールされます。
- ZwMapViewOfSection;
- ZwCreateSection;
- ZwOpenFile;
- ZwCloseFile;
- ZwQueryAttributesFile;
- ZwQuerySection。
次に、システム上に存在しない特別に選択されたdllライブラリ名を使用してLoadLibraryが呼び出されます。 通常の状態(インターセプトなし)では、これによりエラーが発生します。 実際のライブラリをアドレス空間にロードするのはインターセプターです。
また、Esetによると 、StuxnetとDuquは、ローカルネットワーク上のマルウェアコンポーネントを更新するように設計された同じプロセス間通信システム(RPC)を使用しています。
これらの事実は、StuxnetとDuquの関係の明確な証拠ですか? どうやら。 上記は、実装メソッドまたはRPCプロシージャコードをシステムに取り入れた結果である可能性があります。
今、ドライバーのために。 Stuxnetは、Realtek証明書で署名されたmrxcls.sysドライバーを使用しました。 その後、JMicronによって署名された別のドライバーjmidebs.sysが発見されました。 後者は次のStuxnetドライバーとして随所に発表されましたが、そのようなドライバーを備えたメインモジュールは見つかりませんでした。 他にも矛盾があり、mrxcls.sysドライバーはAPI関数への名前による直接呼び出しを使用し、jmidebs.sysドライバーはハッシュによって関数を検索しました。 メインモジュールを実装するために、mrxcls.sysはサイズが6332バイトのスタブファイル(exe)、jmidebs.sys-サイズが7061バイトのスタブファイル(exe)を作成しました。 珍しいことに、mrxcls.sysとjmidebs.sysは同じキーを使用してレジストリ内の文字列を解読しました-0xAE240682ですが、Duquの他のバージョンでは異なっていました。 Duquドライバーの1つには、同じjmidebs.sysの特性(スタブファイルサイズと復号化キー)がありました。 したがって、以前Stuxnetに関連付けられていたjmidebs.sysは、実際にはDuquの一部であると主張できます。 別の間接記号があります-Duquブランチの場合、レジストリ内のパラメーター名は大文字になります-'IDE'および 'FILTER'、Stuxnetブランチにはありません( 'Data'、 'Config'および 'Action')。 Dell SecureWorksは、両方の悪意のあるプログラムのいくつかの要素の類似性は偶然であると考えています。 たとえば、マルウェアの他のサンプルでも同様の手法が使用されています。 文字「〜」で始まるワークファイル名を使用することも、親族関係の証拠ではありません。 また、模倣などを軽視しないでください。 Duquの個々の部分のコンパイルタイムスタンプに基づいて、その開発は2007年初頭まで遡ります。 その初期の兆候は、〜DO(おそらくスパイウェアモジュールの1つによって作成された)の形式の一時ファイルの検出に関連付けられています。作成日は2008年11月28日です( 記事 「Duqu&Stuxnet:A Timeline of Interesting Events」)。 したがって、Stuxnetは後で複数のDuquテクノロジーを使用して作成するか、開発者が1つのソースから情報(またはソースコード)をすくい取ることができます。 F-Secure Mikko Hipponenの声明は次のとおりです。「DuquとStuxnetのコードの類似性は明らかです。 Duquカーネルドライバー(jminet7.sys)はStuxnetドライバー(mrxcls.sys)と非常に類似しているため、当社のシステムはそれがStuxnetであると判断しました。 CrySyS研究所のスタッフ)。