先週の終わりに、センセーショナルなルートキットTDL3の根本的に新しいバージョンが発見されました(この獣が以前にも登場したことを示唆するいくつかの事実があります)。このバージョンの主な機能はx64システムの完全サポートです。
TDL4は、x64バージョンのWindowsシステムでデジタル署名を検証するためのセキュリティメカニズムを正常にバイパスします。 TDL4の作成者は、
MBRに感染し、オペレーティングシステム自体よりも前に悪意のあるコードを起動する技術を使用する、かなりエレガントな回避策を使用しました。
Mebroot 、
StonedBootなどの悪意のあるプログラムでは、同様の方法論がすでに積極的に使用されています。
夏に詳細な
調査を行ったTDL3の最後の一般的なバージョンは3.273でした。 バージョンは最初からカウントされ、記事で考慮されるバージョンには0.02の番号が付けられます(バージョンはボットの構成ファイルで確認できます)。 このような奇妙なバージョン番号は、著者がこのバージョンに登場した新技術のみをデバッグしていることを示唆しており、将来はもっと面白いものが期待されます。 機能的な観点から、MBR感染によるドライバーの新しいインストール方法と隠しファイルシステムのマイナーな変更を除いて、根本的な変更はありませんでした。 このドライバーは、TDL3ですでに見たものと非常によく似ており、ほとんどの場合、x64システムの特性を考慮して単純に再構築されました。 ルートキットの以前のバージョンは、システムドライバーの感染メカニズムを使用して、サイズを変更せずに悪意のある機能をダウンロードしましたが、x64システムではドライバーがデジタル署名をチェックするため、攻撃者はこのメカニズムを拒否しました。
したがって、感染は次のように実行されます。
-物理デバイス記述子が開き(この例では
\\ ?? \ PhysicalDrive0 )、そこにCというセクションがあります:
-ファイルシステムのイメージが準備され、ハードドライブの最後に書き込まれます
-MBRによる上書き-事前に準備されたファイルシステムにモジュールをロードするコード
-x64システムでの感染に成功すると、
ExitWindowsEx()関数を呼び出して再起動します。
復号化されたMBRコードは次のようになります。ルートキットをさらに起動するために実行する必要がある悪意のあるモジュールの名前が表示されます。
暗号化アルゴリズムは非常に単純で、ループ内でRORプロセッサコマンドを呼び出すことになります。
デジタル署名検証メカニズムの回避を考慮した、TDL4の起動手順:
-BIOSはブートディスクの最初のセクターを読み取り、マスターブートレコードのMBRコードに制御を移し、TDL4コードの実行を開始します
-次に、コードはさらに実行するために解読され、ルートキットファイルシステムからldr16という名前のモジュールをロードするように設計されています。
-ロードされたldr16モジュールは13h割り込みをインターセプトします。これは、ハードディスクの操作を担当します。 このモジュールの主なタスクは、オペレーティングシステム(x32またはx64)のビット深度を決定することです。それに応じて、ldr32またはldr64がロードされます。
-ldr32およびldr64モジュールは両方とも、メインTDL4ドライバーをロードするように設計されています。これは、デジタル署名検証メカニズムをバイパスする標準APIを使用せずに実行されます。
-最初に、ドライバーコードはメモリのOSカーネルのアドレスに配置されます。 次に、ドキュメント化されていない関数
IoCreateDriver()を呼び出すことにより、OSドライバーとして登録されます。 その後、ドライバーはロードされたと見なすことができます。
その後、オペレーティングシステムはTDL4ドライバーをオンボードでロードし続けます。開始後、悪意のあるコードがいくつかのプロセスに導入され、その後の動作は以前のバージョンのTDL3と非常に似ています。 これはボット設定ファイルの外観です:
TDL4は、以前の兄弟と同様、Win32 / Olmarikマルウェアファミリーに分類され、Win32 / Olmarik.ADAルートキットとして検出されました。