エクスプロイト&脆弱性
Windows Defender SmartScreen関連の脆弱性「CVE-2024-21412」、マルウェアDarkGateによるゼロデイ攻撃を確認
標的型攻撃(APT)グループWater Hydraに関するゼロデイ攻撃の分析に加え、Zero Day Initiative(ZDI)は2024年1月中旬に発見したDarkGateキャンペーンについても注目しました。この攻撃キャンペーンでは、マルウェアDarkGateの攻撃者が脆弱性CVE-2024-21412を悪用していることが明らかになりました。
Zero Day Initiative(ZDI)が2024年1月中旬に発見したDarkGate攻撃キャンペーンでは、偽のソフトウェアインストーラを使用して脆弱性CVE-2024-21412が悪用されました。この攻撃キャンペーンでは、Google DoubleClick Digital Marketing(DDM)のオープンリダイレクトを含むPDFファイルを介してユーザを誘い、リダイレクトにより気づかないうちに危険なサイトへ誘導されていました。そしてMicrosoft Windows SmartScreenの検出を回避するため、脆弱性CVE-2024-21412が悪用され、不正なMicrosoft(.MSI)インストーラが配布されていました。このフィッシング攻撃キャンペーンでは、Googleの広告技術を利用したオープンリダイレクトURLを通じて、Apple iTunes、Notion、NVIDIAなどの正規のソフトウェアに偽装したMicrosoftソフトウェアインストーラ(.MSI)が配布されました。これらの偽インストーラには、マルウェアDarkGateのペイロードを復号してユーザのデバイスに感染させるため、サイドロードされたDLLファイルも含まれていました。
この攻撃キャンペーンは、標的型攻撃(APT)グループWater Hydraのより大規模なゼロデイ攻撃の一部となっていました。ZDIでは、この攻撃キャンペーンを監視し、その戦術に注目していました。偽のソフトウェアインストーラとオープンリダイレクトを組み合わせた手法は非常に有効であり、多数の感染被害につながる恐れがあります。ユーザは、公式の配布元以外から提供されるソフトウェアインストーラを信用しない注意が必要です。企業も個人も、このような脅威から自らのシステムを守るため、先手を打った対策を講じるべきでしょう。
DarkGateは、サービスとしてのマルウェア(MaaS)モデルを採用し、サイバー犯罪者の間で最も活発で洗練されたマルウェアの1つとして知られています。このマルウェアは、北米、ヨーロッパ、アジア、アフリカの企業や組織を狙う金銭目的の攻撃者によって頻繁に使用されています。
トレンドマイクロの顧客は、2024年1月17日以降、このゼロデイ攻撃の脅威から保護されています。脆弱性CVE-2024-21412は、2024年2月13日にMicrosoft 社のセキュリティパッチで公式に対応されました。ZDIでは「Zero Day Initiative Patch Report」(英語)の特別版でCVE-2024-21412のデモ動画を提供しています。また、本脆弱性を悪用した攻撃手法や対策について解説するウェビナーをオンデマンドで配信していますので是非ご覧ください。
感染チェーンを解析する
以下のセクションでは、図1で示された各要素を詳しく見ることで、DarkGateの攻撃キャンペーンについて掘り下げていきます。
Google DoubleClick Digital Marketing(DDM)におけるオープンリダイレクトの問題
近年、サイバー攻撃者がGoogle Adsの技術を悪用してマルウェアを拡散しています。その際、広告スペースやスポンサー記事の購入だけでなく、Google DDM技術内のオープンリダイレクトも悪用しています。オープンリダイレクトの悪用は、脆弱性CVE-2023-36025や脆弱性CVE-2024-21412などによる検出回避の手法と組み合わせることで、リモートコード実行につながるリスクがあります。このような悪用は、多くのユーザが普段信頼している大手ウェブサービスや技術に対する信頼を利用しているといえます。
DarkGateの感染チェーン開始にあたり、攻撃者はフィッシング攻撃キャンペーンで使用するPDFファイル内で、ドメインdoubleclick[.]netからのオープンリダイレクトを使用しました。このリダイレクトはパラメータ「adurl」パラメータを使って侵害されたウェブサーバ(図2)にユーザを誘導します。この場合、被害者のユーザがPDF内のボタンをクリックすることで脆弱性CVE-2024-21412の悪用とDarkGateの感染が発生するようになっています。
Googleは、広告プラットフォームやその他のオンライン広告サービスの一部として、URLリダイレクトを利用しています。Google DoubleClickは、広告主、出版社、広告代理店がオンライン広告キャンペーンを管理し、最適化するためのソリューションを提供します。以前には、Google Adsのエコシステムが悪用され、RhadamanthysやAtomic Stealer(AMOS)などの人気のあるサービスとしてのマルウェア(MaaS)型情報窃取ツールを使って、不正なソフトウェアが配信されるケースが確認されました。攻撃者は、特定の広告キャンペーンや視聴者をターゲットにし、Google Adsのテクノロジーを悪用することでマルウェアを拡散させることができます。
ユーザがGoogle検索エンジンを利用してコンテンツを検索する際には、スポンサー付きの広告が表示されます。これらの広告は、Google DoubleClickなどのテクノロジーを活用して、企業やマーケティングチームによって配置されます。こうした広告技術では、ユーザが入力したクエリが追跡され、そのクエリに基づいて関連性の高い広告が表示されます。
広告をクリックすると、ユーザは広告主が設定したターゲットリソースにリダイレクトされるリクエストチェーンを開始します(図3)。そしてGoogle DoubleClickのテクノロジーにより、HTTP/2プロトコルで動作することで、ネットワークを通じたリダイレクションの流れが復号されます。
広告スペースを直接購入する方法以外にも、攻撃者がマルウェアを効率的に広める手段として、Google DDMに関連したURLのオープンリダイレクトを利用することがあります。オープンリダイレクトの乱用は、脆弱性CVE-2023-36025や脆弱性CVE-2024-21412などの悪用による検出回避をする際に特に、さらにリモートコード実行の攻撃につながる可能性があります。Microsoft Windowsには、Webなどの信頼されないソースからのコンテンツを識別するMark-of-the-Web(MotW)という機能がありますが、DarkGateの攻撃者はCVE-2024-21412を悪用することでWindows Defender SmartScreenの保護機能を回避し、DarkGateの感染を引き起こすことが可能となります。この攻撃チェーンでは、DarkGateの攻撃者がGoogle関連のドメインに対する信頼を悪用し、GoogleのオープンリダイレクトとCVE-2024-21412を組み合わせてMicrosoft Defender SmartScreenの保護機能を回避し、結果として被害者をマルウェアの感染に導いています。
実行:CVE-2024-21412(ZDI-CAN-23100)を悪用してWindows Defender SmartScreenの検出を回避
脆弱性CVE-2024-21412の悪用において、DarkGateの攻撃者はGoogle DoubleClickのオープンリダイレクトを利用して侵害されたウェブサーバにユーザを誘導します。このサーバには、最初の.インターネットショートカットファイル「.URL」が含まれています。
このインターネットショートカットファイルは、図4のとおり、別のインターネットショートカットファイルへリダイレクトすることで脆弱性CVE-2024-21412を悪用します。インターネットショートカットファイルは、パラメータ「URL=」を用いて、感染プロセスの次の段階を指示します。この段階でこのファイルは、攻撃者が管理するWebDAVサーバにホストされています。
次の段階では、図5のとおり、脆弱性CVE-2023-36025悪用のパスにあるzipアーカイブ(ZIP)を含むファイル「.MSI」を指し示しています。
このインターネットショートカットのリダイレクトの流れでは、信頼できないソースからMicrosoftソフトウェアインストーラが実行され、Mark-of-the-Web(MotW)が適用されます。これにより、ウェブなど信頼できないソースからスクリプトが実行されようとしている際、Microsoft Defender SmartScreenを通じてユーザーが警告され、実行が阻止されます。しかし、脆弱性CVE-2024-21412を悪用することで、MotWが正しく適用されず、Microsoft Defender SmartScreenの警告が出ないため、被害者のユーザは、DarkGateの感染の次の段階、具体的にはファイル「.MSI」を使用した偽のソフトウェアインストーラの脅威にさらされます。
実行ステージ1 - DarkGate Microsoft ソフトウェア インストーラ
感染チェーンの次の段階では、DLLファイルをサイドロードするためにファイル「.MSI」が使用され、DarkGateのペイロードを解読して展開するためにAutoItスクリプトが使用されます。表1に示された検体の例では、DarkGateの攻撃者は、NVIDIAインストーラに見せかけた.MSIインストーラーパッケージ内にDarkGateペイロードを包み込んでいます(図6)。このインストーラは、Windowsのユーティリティ「msiexec.exe」を使って実行されます(図7)。被害者のユーザにとっては、インストーラが表示され、通常のNVIDIAソフトウェアのインストールが行われているように見えます。
この.MSIインストーラは、「CustomActionDLL」という特別なDLLファイルを利用しています。このDLLファイルには、インストールを行うためのプロセスが記述されています(図8)。
プロセスの開始時、CustomActionDLLはフォルダ「%tmp%」内に「MW-」という名称のディレクトリを作成します。そのディレクトリには、「files.cab」というWindowsキャビネットアーカイブ(CAB)ファイルが配置されます。次に、Windowsの組み込みツールである「expand.exe」を使用して、CABファイルの内容を解凍します。その後、デジタル署名された正規のバイナリファイル「NVIDIA Share.exe」が実行されます。
実行ステージ2 - DLLサイドローディング
ペイロード実行の第2段階で、DarkGateは正規のアプリが不正なDLLファイルを読み込むDLLサイドローディングの手法を使用します。具体的には、NVIDIA Share.exeアプリケーションを利用して、トロイの木馬化されたライブラリ「libcef.dll」を読み込みます。今回の調査によると、さまざまな攻撃キャンペーンにおいてこのDLLサイドローディングの手法に際して多くの正規アプリが使用されています。侵害されたファイルの一覧は本稿の末尾に記載しています。
不正なコードは、ライブラリ「libcef.dll」内の以下の関数に格納されており、DLLのエントリーポイントから実行されます。
GetHandleVerifier
このDLLの主な目的は、XORで暗号化された次のステージのローダ(「sqlite3.dll」と命名)を復号することです(図9)。DarkGateのスタブビルダーは、ビルド内の全てのモジュールとコンポーネントで使用される8バイトのマスターキーを生成します。この攻撃でのマスターキーは「zhRVKFlX」となっており、実行の各段階でこのキーを異なる方法で使用します。例えば、ファイル内の異なるペイロードを識別するマーカーとして使用したり、カスタムXORアルゴリズムでこのキーを復号してペイロードを解読するための新たなキーを生成したりします。
実行:ステージ3 - AutoItローダ
ファイル「sqlite3.dll」は、以下の4つの異なる部分に分割されています。
- セグメント1: 暗号化されたローダ
- セグメント2: 暗号化されたAutoit3.exe
- セグメント3: 平文のscript.au3
- セグメント4: 平文のtest.txt
セグメント1は321KBで、暗号化されたAutoItローダの実行ファイルです。このファイルは以前のステージで復号されました。ローダのバイナリはヘッダ「MZRE」で始まり、これによりシェルコードとして実行されます。このシェルコードは、システムのメモリにPEファイル(AutoItローダ)を動的にマッピングしてロードするように設計されています。PEファイルがメモリにマッピングされると、このシェルコードはペイロード実行ファイルのオリジナルエントリーポイント(OEP)を実行します。
ローダは実行されると、元のファイル「sqlite3.dll」を読み取り、「delimitador」というキーワードを探します(図10)。このキーワードは、内包されたファイルを識別して分離するためのマーカーとして使用されます。その後、これらのファイルを抽出してディレクトリ「C:\temp」に保存します。
実行: ステージ4 - AutoItスクリプトの解析
script.au3は、2つのセクションを含む事前にコンパイルされたAutoItスクリプトです(図11)。第1セクションは、以下のマジックバイトがあり、ファイル「AutoIt.exe」によって実行される正規のAutoItコンパイルスクリプトです。
"AU3!EA06"(0x4155332145413036)
第2セクションには、"zhRVKFlX"で始まりと終わりがマークされて暗号化されたDarkGateのリモートアクセス型トロイの木馬型(RAT)が含まれています。
script.au3は、メモリ内で第5ステージのDarkGateローダを読み込んで実行する役割を果たします。図12に示された部分は、逆コンパイルされたAutoItスクリプトです。
ファイル「test.txt」は、外部データソースとして機能します。このスクリプトは「test.txt」の内容(図13)を読み込み、それを個別の文字の配列に分割します。その後、予め定義されたインデックスに基づき、特定の文字を選択的に連結してコマンドや式を構築します。
変数「$ZZNDMOFL」は、バイナリファイルを保持しており、最後にはこのバイナリをメモリに読み込み、APIのコールバック関数を介して実行プロセスを引き継ぐロジックとなります。図14に示されている部分は、難読化を解除したロジックです。
このコードのスクリプトは、システムに以下のディレクトリが存在するかどうかを確認しますが、このディレクトリ名は難読化の影響で変わっているようです。
CProgramDataSophos
前のバージョンでは、チェック対象は、以下のフォルダでした。これは、現在のバージョンでのディレクトリ名に誤りがあることを示しています。
C:\Program Files(x86)\Sophos
このスクリプトは、メモリ内にC言語風の構造を「DllStructCreate」を用いて作成し、DLL関数を呼び出す際に使用します。これは、DarkGateローダのペイロードに必要な空間を割り当てるためです。その後、システムは「DllCall」を通じてファイル「kernel32.dll」を呼び出し、以下の関数を実行します。
VirtualProtect
この関数はプロセスの仮想アドレス空間内のメモリ領域の保護を変更するために使われ、以下に設定し、そのメモリ領域を実行、読み込み、書き込み可能にします。
0x40(「PAGE_EXECUTE_READWRITE」に対応)
このスクリプトは、事前に作成された構造体に、文字列から変換したバイナリデータを格納します。具体的には、まず、以下の変数に保存された16進数の文字列を以下の関数を用いてバイナリに変換します。
変数「$ZZNdmOFL」
関数「BinaryToString」
そして「$PT」の最初のセグメントに以下の関数を用いてそのバイナリデータを設定します。
DllStructSetData
この手順により、DarkGate Delphiローダーのバイナリが効率的に読み込まれます。
最後に、このスクリプトは、APIコールバック関数を使って、実行フローを次のステージのペイロードに向けてリダイレクトします。コールバック関数はWindows API関数にパラメータとして渡される動作となっています。そしてこのスクリプトは、「EnumWindows」を呼び出すため、「user32.dll」へのシステムコールを発行し、「$ZZNdmOFL」の値に対応するポインタを使用します。
実行:ステージ5 - DarkGate シェルコードPEローダ
このシェルコードの実行は、バイナリヘッダへの3回のジャンプから始まります。そこから、PEローダのカスタム実装に対して呼び出しが行われます(図15)。
DarkGateローダは、バイナリファイルをメモリ内にマッピングするためにPEローダを必要とします。この問題を解決するため、以下の変数には、メモリ内でPEファイルをロードして実行するシェルコードが含まれています(図16)。
$ZZNdmOFL
実行:ステージ 5.1 - DarkGate Delphi ローダの解析
DarkGate ローダの主な役割は、AutoIt スクリプトから最終的なペイロードである DarkGate RAT を抽出し、それをメモリに読み込んで復号し、実行することです。
ローダが起動されると、まず AutoIt.exe プロセスのコマンドライン引数を確認します。これには AutoIt スクリプトのパスが含まれています。引数が指定されていれば、スクリプトの内容をバッファに読み込みます。次に、「zhRVKFLX」という 8 バイトのマーカーを使って内容を検索し、そのマーカーの直後に始まる暗号化されたデータブロックを見つけ出します。
ペイロードの復号キーは XOR 暗号化されています。このローダは、図 18 に示されているように、キーの長さから減少する値を使って XOR 演算を各バイトに適用することで、キーを復号します。
復号キー「roTSOEnY」を手に入れた後、独自のXOR復号法を使用してペイロードが復号(図 19)されます。この復号プロセスは、各バイトにXOR演算を施し、復号されたキーに対応するバイトと組み合わせることから始まります。このバイトの組み合わせは、プロセスを通じて動的に更新されるキーのインデックスに基づいています。このインデックスは、各XOR演算の後、現在のキーバイトの値をインデックスに加算し、キーの全長で割った余りを取ることで再計算されます。これにより、インデックスがキーを疑似乱数的に循環することを保証します。インデックスが更新後にゼロになった場合は、キーの最終位置にリセットされます。このプロセスはペイロード内の全バイトに対して繰り返され、全データが復号されるまで続けられます。
このローダがペイロードを復号した後、関数「mw_Execute_Payload」へ引き渡され、メモリ上で直接ペイロードが実行されます(図20)。この実行プロセスは、以下の5つのステップに分けられます。
- メモリ割り当て:この関数は、ペイロードをホストするためのメモリを割り当てることから始まります。「VirtualAlloc」API呼び出しを「MEM_COMMIT」と保護フラグ0x40(PAGE_EXECUTE_READWRITE)で使用し、割り当てられたメモリが実行可能であることを許可します。
- ヘッダーとセクションのマッピング:次に、PEファイルのPEヘッダーと各セクションを割り当てられたメモリにコピーします。これには、実行可能コードセクションとデータセクションの両方が含まれます。
- インポート解決:その次に、関数はインポートディレクトリを通過しながらインポートを解決します。各インポートされたDLLに対して、「LoadLibraryA」を使用してライブラリを読み込み、その後「GetProcAddress」で必要な関数を解決します。これらの関数のアドレスはインポートアドレステーブル(IAT)で更新されます。
- ベースリロケーション処理:コードはベースリロケーションを実行して、読み込まれたイメージ内のメモリアドレスを調整します。
- 実行:最後に、このローダは、読み込まれたPEファイルのエントリポイント(OEP)に実行制御を移します。この動作は、アセンブリジャンプ命令「__asm { jmp eax }」を通じて行われるとされており、eaxはエントリポイントのアドレスを含みます。
DarkGate RATの解析
DarkGateは、Borland Delphiで書かれたRAT(リモートアクセスツール/トロイの木馬)で、2018年以降、ロシア語圏のサイバー犯罪フォーラムにおいてサービスとしてのマルウェア(MaaS)として提供されています。このマルウェアは、プロセス注入、ファイルのダウンロードと実行、情報窃取、シェルコマンドの実行、キーロギングなど、多様な機能を備えており、さらに多数の検出回避の手法も採用しています。
今回の攻撃キャンペーンで展開されているものは、DarkGateのバージョン6.1.7となっています。バージョン6では、設定におけるXOR暗号化の導入、新しい設定値の追加、バージョン5の自動設定抽出ツールを回避するための設定順序の変更、そしてコマンド&コントロール(C&C)コマンド値の更新など、主な変更が施されています。
実行された際、DarkGateはDirect System Call(直接システム呼び出し)という手法を使用して、anti-ntdll.dllフッキングを有効化します。これは、マルウェアがntdll.dllから直接ネイティブAPIを呼び出す必要がある際に特別に設計されています。この手法により、DarkGateは標準のユーザモードAPI層を迂回して、カーネルモード関数を直接呼び出すことが可能になります。また、syscallを使うことで、プロセスホローイング技術を巧妙に隠ぺいし、この技術がAPI呼び出しの監視時に検出されるのを回避します。この方法はマルウェアの潜伏性を高めるだけでなく、セキュリティ対策での検出や解析をより困難にします。この隠ぺい手法により、不正活動に際して重要なシステム機能が利用されている状況を見えにくくするからです。
DarkGateは、以下のファイルが存在するかどうかを確認することで、オペレーティングシステムのアーキテクチャを判断します。
C:\Windows\SysWOW64\ntdll.dll
そしてアーキテクチャが64ビットか32ビットかに応じて、は異なるsyscall方法を使用します。32ビットアーキテクチャの場合、syscallは、命令「sysenter」を使ってインラインアセンブリを通じて直接実行されます。64ビットアーキテクチャでは、ポインタ「FS:[0xC0]」を使用します。このポインタは以下を指し、syscallの実行に使用されます(図22)。
wow64cpu!KiFastSystemCall
DarkGateは、はしばしばAPI関数を呼び出し、ペイロードファイル内に文字列などの静的な痕跡を残します。これらの痕跡をもとに、セキュリティ解析者は、バイナリファイルが実行可能な機能の範囲を推定できます。これは通常、インポートアドレステーブル(IAT)を調べることで行われます。
DarkGateは、静的な分析を避け、不審なAPIの呼び出しを目立たなくし、不正な機能を隠ぺいし、セキュリティ解析の効果を低下させるために、実行時にAPI関数を動的に解決します。DarkGateが実行時に動的に解決するAPI関数のリストは、以下のとおりです。
- user32.dll
- MessageBoxTimeoutA
- GetWindowTextA
- GetWindowTextW
- FindWindowExA
- GetForegroundWindow
- FindWindowA
- GetKeyState
- EnumDisplayDevicesA
- GetKeyboardState
- GetWindow
- GetWindowThreadProcessId
- SendMessageA
- GetWindowTextLengthW
- Advapi32.dll
- RegSetValueExA
- RegDeleteValueA
- RegCloseKey
- RegOpenKeyExA
- Shell32.dll
- ShellExecuteA
DarkGateバージョン5では設定が平文であるのに対し、バージョン6では設定がXOR暗号化されています。図23のとおり、復号プロセスは図21のDelphiローダに似ています。この関数は、暗号化されたバッファ、ハードコードされたキー、バッファサイズを受け取ります。その後、与えられたキーに基づいて新しい復号キーを生成し、設定バッファを復号します。
以下の表6では、DarkGateバージョン6の主要な設定項目を、パラメータキー、値タイプ、説明と共に概説しています。
DarkGateバージョン6の重要な設定項目は、以下の表6のとおりとなります。パラメータキー、値のタイプ、それぞれの詳細を示しています。
初期設定が完了した後、HTTP POSTリクエストを介して感染端末がC&Cサーバに登録されます。以下のスニペットは、登録メッセージの構造を示しています。
<Foreground Window title – utf16 – Hex encoded>|||<Bool: IsUserAnAdmin>||||
この構造は以下から成り立っています:
- フォアグラウンドウィンドウのタイトル:現在アクティブ、または感染端末上でフォアグラウンドにあるウィンドウのタイトルです。タイトルはUTF-16でエンコードされ、その後16進数に変換されます。
- 秒単位のアイドル時間:最後のユーザインタラクション(キーボードまたはマウス入力)からの経過時間、秒単位で表されます。
- ミリ秒単位のシステムアップタイム:Windows API関数「GetTickCount」を使用して取得され、システムが最後に起動されてから経過した時間、ミリ秒単位で示されます。
- ユーザが管理者であるか:感染端末上で管理者権限を持っているかどうかを示す、Yes/Noのフラグです。
- DarkGateマルウェアのバージョン:システムに感染したDarkGateのバージョンを指定します。
C&Cサーバへのデータ伝送のため、以下のような詳細なステップが実行されます。
1. データパケットの初期化:外部に持ち出すために指定されたデータは、追跡を容易にするために特有のトラフィック識別子で前置されます。例えば、整数「1000」は初期のC&C登録トラフィックやコマンドの取得に利用されます。
2. 固有識別ハッシュの計算:カスタムエンコードされたMD5ハッシュは、Windows製品ID、プロセッサ情報、および16進数エンコードされたコンピュータ名を組み合わせて生成されます。このハッシュは、さまざまな操作で使用され、最初の実行時に生成されます。この計算に使用されるコンポーネントには以下が含まれます:
a. Windows製品ID:レジストリパス「HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductId」で確認
b. プロセッサ情報:「KLM\HARDWARE\DESCRIPTION\System\CentralProcessor\0\ProcessorNameString」から抽出され、関数「GetSystemInfo」を通じて取得されたプロセッサの総数
c. コンピュータ名:UTF-16 16進数形式でエンコードされたコンピュータの名称
d. カスタムエンコーディング:得られたMD5ダイジェストは、特殊なアルファベット「abcdefKhABCDEFGH」でエンコードされる
3. キー生成:MD5ハッシュにXOR操作を適用して、新しい暗号キーを生成します。
4. データ暗号化:新たに生成されたキーを使用して、XOR暗号を通じて元のデータが暗号化されます。
5. エンコードされたハッシュの前置:元の(暗号化前の)エンコードされたMD5ハッシュが暗号化されたデータに前置されます。このハッシュはDarkGate C&Cサーバの復号キーとして機能し、データの取得を保証します。
6. 最終エンコーディング:エンコードされたハッシュと暗号化されたデータを含むデータパケットは、カスタムアルファベットを使用してBase64形式に変換されます。
“zLAxuU0kQKf3sWE7ePRO2imyg9GSpVoYC6rhlX48ZHnvjJDBNFtMd1I5acwbqT+=”
DarkGateバージョン6におけるC&Cサーバの初期ネットワークトラフィックの例は、図25のとおりとなります。
復号された内容は以下の通りです:
"10004100750074006F006900740033002E0065007800650[...REDACTED...]|0|317394|No|6.1.7|||"
C&Cサーバが期待されるコマンドを返さない場合、DarkGateは無限ループに入り、期待されるコマンドを受け取るまでトラフィックを送り続けます。図26は、感染したシステムからのコマンドリクエストとC&Cサーバーからの応答の例です。
復号されたリクエスト内容は以下の通りです。
1000|87|283|Yes|6.1.7|||"
結論
今回の調査では、以前の標的型攻撃(APT)グループWater Hydraのゼロデイ攻撃キャンペーンの分析に引き続き、DarkGateの攻撃者がどのようにして脆弱性CVE-2024-21412をゼロデイ攻撃として悪用し、複雑で進化し続けるマルウェアDarkGateを展開できたのかを探りました。さらに、Google Adsエコシステムのような技術におけるオープンリダイレクトと組み合わせて、セキュリティ機能バイパス関連の脆弱性も悪用し、マルウェアを拡散させ、企業や組織が基本的なWeb技術に寄せる信頼を逆手に取る手口についても調査しました。
ソフトウェアをより安全にし、顧客をゼロデイ攻撃から守るため、ZDIはセキュリティリサーチャーやベンダーと協力して、APTグループが攻撃で使用する前にソフトウェアの脆弱性を修正し、適切に公開する取り組みをしています。また、ZDIのスレットハンティングチームは、セキュリティ業界を牽引するため、悪用されているゼロデイ攻撃をプロアクティブに探索しています。
企業や組織はTrend Vision Oneを使用することで、さまざまな攻撃から自らを守ることが可能です。これにより、セキュリティチームは、既知・未知のもの、管理下にあるものから管理外のものまで、サイバー資産のアタックサーフェスを絶えず特定できるようになります。こうして、脆弱性を含む潜在的リスクへの優先順位付けと対処を支援し、潜在的攻撃の可能性や影響などの重要な要因を考慮し、予防、検出、対応の各機能を提供します。これらはすべて、高度な脅威研究、スレットインテリジェンス、AIにより支えられており、問題箇所の検出から対応、修復までの時間を短縮します。これらによりTrend Vision Oneは、ゼロデイ攻撃を含め、企業や組織のセキュリティ体制の向上に有効となります。
不審な侵入や行動、動作等に直面したとき、企業や組織は、システムがすでに侵害されているか、あるいは何らかの被害が発生しているはずと見なし、直ちに影響を受けたとされるデータやツールチェーンを隔離するべきです。このような広範な視野と迅速な対応で侵害に対処する際、Trend Micro™ Endpoint SecurityやTrend Micro Network Securityのような技術、現代の脅威状況において不正なコンテンツを検出・スキャン・ブロックするTrend Micro™ XDRなどの包括的なセキュリティソリューションを使用して、システムの安全を確保することが可能となります。
トレンドマイクロの対策
以下の保護機能は、ゼロデイ脆弱性CVE-2024-21412(ZDI-CAN-23100)マルウェアDarkGateのペイロードからトレンドの顧客を検出し保護するために提供されています。
Trend Vision One検出モデル
- Potential Exploitation of Microsoft SmartScreen Detected (ZDI-CAN-23100)
- Exploitation of Microsoft SmartScreen Detected (CVE-2024-21412)
- Suspicious Activities Over WebDav
ネットワーク対策(Trend Micro Cloud One - Network Security & TippingPoint Filters)
- 43700 - HTTP: Microsoft Windows Internet Shortcut SmartScreen Bypass Vulnerability
- 43701 - ZDI-CAN-23100: Zero Day Initiative Vulnerability (Microsoft Windows SmartScreen)
Trend Vision One Network Sensor and Trend Micro Deep Discovery Inspector (DDI) Rule
- 4983 - CVE-2024-21412: Microsoft Windows SmartScreen Exploit - HTTP(Response)
エンドポイント対策(Trend Vision One Endpoint Security, Trend Cloud One - Workload and Endpoint Security, Deep Security and Vulnerability Protection IPS Rules)
- 1011949 - Microsoft Windows Internet Shortcut SmartScreen Bypass Vulnerability (CVE-2024-21412)
- 1011950 - Microsoft Windows Internet Shortcut SmartScreen Bypass Vulnerability Over SMB (CVE-2024-21412)
- 1011119 - Disallow Download Of Restricted File Formats (ATT&CK T1105)
- 1004294 - Identified Microsoft Windows Shortcut File Over WebDav
- 1005269 - Identified Download Of DLL File Over WebDav (ATT&CK T1574.002)
- 1006014 - Identified Microsoft BAT And CMD Files Over WebDav
侵入の痕跡(Indicators of Compromise、IoC)
侵入の痕跡(IoC)について、こちらで確認してください。
参考記事:
CVE-2024-21412: DarkGate Operators Exploit Microsoft Windows SmartScreen Bypass in Zero-Day Campaign
By: Peter Girnus, Aliakbar Zahravi, Simon Zuckerbraun
翻訳:与那城 務(Core Technology Marketing, Trend Micro™ Research)