コンテンツに移動
脅威インテリジェンス

カレンダーを悪用した C2 : APT41 の革新的な戦術

2025年7月4日
Google Threat Intelligence Group

【Next Tokyo ’25】

【Next Tokyo】120 以上のセッションをアーカイブ公開中。話題の Gemini、生成 AI、AI エージェントなどの Google Cloud のアップデートや顧客事例をチェックしましょう。

視聴はこちら

※この投稿は米国時間 2025 年 5 月 29 日に、Google Cloud blog に投稿されたものの抄訳です。

Google Threat Intelligence グループ(GTIG)の使命は、Google の何十億ものユーザーと Google の多種多様なプロダクトやサービスを保護することです。2024 年 10 月下旬、GTIG は、政府のウェブサイトが悪用されていることを発見しました。このウェブサイトでは、他の複数の政府機関を標的にするために使用されているマルウェアがホストされていました。攻撃を受けたサイトは、Google カレンダーをコマンド&コントロール(C2)に利用した「TOUGHPROGRESS」と呼ばれるマルウェア ペイロードを配信しました。C2 のためにクラウド サービスを悪用することは、多くの脅威アクターが正当なアクティビティに紛れ込むために利用する手法です。

Google は、このマルウェアが中華人民共和国(PRC)を拠点とする脅威アクター APT41(HOODOO としても追跡されている)によって使用されているものであると、高い確度で評価しています。APT41 の標的は世界中に広がっており、政府の他にも、世界的な配送と物流、メディアとエンターテイメント、テクノロジー、自動車といった分野の組織も標的となっています。

概要

このブログ投稿では、マルウェアの配信方法、マルウェア攻撃チェーンの技術的な詳細を分析し、その他の最近の APT41 の活動について取り上げ、セキュリティ担当者が同様の攻撃を防御できるよう、セキュリティ侵害インジケーター(IoC)を共有します。また、GTIG がカスタム検出シグネチャを使用してこのキャンペーンを阻止し、攻撃者が制御するインフラストラクチャをシャットダウンした方法と、セーフ ブラウジングに追加された保護機能についても詳しく説明します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/apt41-innovative-tactics-fig1.max-1800x1800.png

図 1: TOUGHPROGRESS キャンペーンの概要

配信

APT41 は、侵害された政府機関のウェブサイトでホストされている ZIP アーカイブへのリンクが記載されたスピア フィッシング メールを配信しました。アーカイブには、PDF を装った LNK ファイルとディレクトリが含まれています。このディレクトリ内を確認したところ、節足動物の JPG 画像が 7 つほどありました。ペイロードが LNK を介して実行されると、その LNK は削除され、代わりに、これらの種は輸出の際に申告する必要があると書かれた PDF のおとりファイルがユーザーに表示されます。

$ unzip -l 出境海關申報清單.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2024-10-23 11:00   image/
    12633  2024-10-23 10:53   image/1.jpg
    10282  2024-10-23 10:54   image/2.jpg
     8288  2024-10-23 10:54   image/3.jpg
     4174  2024-10-23 10:54   image/4.jpg
   181656  2024-10-23 10:54   image/5.jpg
   997111  2024-10-23 11:00   image/6.jpg
   124928  2024-10-23 11:00   image/7.jpg
    88604  2024-10-23 11:03   申報物品清單.pdf.lnk
---------                     -------
  1427676                      9 個のファイル

「6.jpg」と「7.jpg」のファイルは偽の画像です。1 つ目のファイルは実際には暗号化されたペイロードであり、2 つ目のファイルによって復号されます。2 つ目のファイルは、ターゲットが LNK をクリックしたときに起動される DLL ファイルです。

マルウェア感染チェーン

このマルウェアには 3 つの異なるモジュールがあり、それぞれが連続してデプロイされ、異なる機能を果たします。各モジュールには、ステルス手法と回避手法も実装されています。メモリのみのペイロード、暗号化、圧縮、プロセスの空洞化、制御フローの難読化、C2 向けの Google カレンダーの活用などです。

  1. PLUSDROP - メモリ内の次のステージを復号して実行する DLL。

  2. PLUSINJECT - 正当な「svchost.exe」プロセスを起動してプロセスの空洞化を実行し、最終ペイロードを挿入します。

  3. TOUGHPROGRESS - 侵害された Windows ホストでアクションを実行します。C2 では Google カレンダーを使用します。

TOUGHPROGRESS の分析

TOUGHPROGRESS は、ハードコードされた 16 バイトの XOR 鍵を使用して、サンプルの「.pdata」領域に保存されている埋め込みシェルコードを復号することから始まります。次に、シェルコードが COMPRESSION_FORMAT_LZNT1 を使用して、メモリ内の DLL を解凍します。この DLL は、複数の難読化手法を重ねて、制御フローをわかりにくくします。

  1. レジスタベースの間接呼び出し

  2. 動的アドレス演算

  3. 64 ビットのレジスタのオーバーフロー

  4. 関数ディスパッチ テーブル

レジスタベースの間接呼び出しは、レジスタに保存するアドレスを動的に計算した後に実行されます。この計算には、64 ビットのレジスタを意図的にオーバーフローさせる 2 つ以上のハードコードされた値が関与しています。CreateThread を呼び出す例を次に示します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/apt41-innovative-tactics-fig2.max-800x800.png

図 2: 動的アドレス演算と 64 ビット オーバーフローによるレジスタベースの間接呼び出し

Python の「ctypes」を使用して 64 ビットのレジスタ演算をシミュレートすることで、この動作を再現できます。2 つの値を加算すると 64 ビットのアドレス空間がオーバーフローし、その結果が呼び出される関数のアドレスになります。

https://storage.googleapis.com/gweb-cloudblog-publish/images/apt41-innovative-tactics-fig3.max-800x800.png

図 3: 64 ビット アドレスのオーバーフローのデモ

https://storage.googleapis.com/gweb-cloudblog-publish/images/apt41-innovative-tactics-fig4.max-800x800.png

図 4: ディスパッチ テーブルの CreateThread

これらの難読化手法は、制御フローの難読化戦術として現れます。間接呼び出しと算術演算が原因で、逆アセンブラは制御フローグラフを正確に再現できません。

カレンダー C2

TOUGHPROGRESS は、攻撃者が制御する Google カレンダーで予定を読み書きする機能を備えています。実行されると、TOUGHPROGRESS は、ハードコードされた日付 2023-05-30 に 0 分間のカレンダーの予定を作成します。侵害されたホストから収集したデータは暗号化され、カレンダーの予定の説明に書き込まれます。

オペレーターは、2023-07-30 と 2023-07-31 のカレンダーの予定に暗号化されたコマンドを配置します。これらの日付は事前に決められており、マルウェアにもハードコードされています。その後、TOUGHPROGRESS はこれらの予定についてカレンダーのポーリングを開始します。予定が取得されると、予定の説明が復号され、その説明に含まれるコマンドが侵害されたホスト上で実行されます。コマンドの実行結果は暗号化され、別のカレンダーの予定に書き戻されます。

GTIG は Mandiant FLARE チームと協力して、TOUGHPROGRESS が利用している C2 暗号化プロトコルをリバース エンジニアリングしました。マルウェアは、ハードコードされた 10 バイトの XOR 鍵を使用し、メッセージごとに 4 バイトの XOR 鍵を生成します。

  1. LZNT1 でメッセージを圧縮する

  2. 4 バイトの XOR 鍵でメッセージを暗号化する

  3. 4 バイトの鍵をメッセージ ヘッダーの末尾に追加する(合計 10 バイト)

  4. 10 バイトの XOR 鍵でヘッダーを暗号化する

  5. 暗号化されたヘッダーをメッセージの先頭に追加する

  6. 暗号化されたヘッダーとメッセージを組み合わせたものがカレンダーの予定の説明になる

https://storage.googleapis.com/gweb-cloudblog-publish/images/apt41-innovative-tactics-fig5.max-1500x1500.png

図 5: カレンダーの予定の説明の TOUGHPROGRESS 暗号化ルーチン

https://storage.googleapis.com/gweb-cloudblog-publish/images/apt41-innovative-tactics-fig6.max-1700x1700.png

図 6: TOUGHPROGRESS が作成したカレンダーの予定の例

攻撃者を阻止して Google、Google のユーザー、Google のお客様を保護する

GTIG は、脅威をモニタリングするだけでなく、脅威に対抗し、脅威を阻止することを目標としています。Google は、Google のプロダクト全体でマルウェア キャンペーンを事前にブロックし、ユーザーとお客様を大規模に保護することを目指しています。

APT41 と TOUGHPROGRESS マルウェアを阻止するために、Google は、攻撃者が制御するカレンダーを特定して削除するカスタム フィンガープリントを開発しました。また、攻撃者が制御する Workspace プロジェクトも停止し、APT41 がこのキャンペーンで利用したインフラストラクチャを事実上解体しました。さらに、ファイル検出を更新し、Google セーフ ブラウジングのブロックリストに悪意のあるドメインと URL を追加しました。

GTIG は、Mandiant Consulting と連携して、侵害を受けた組織に通知しました。通知を受けた組織には、検出とインシデント対応を支援するために、TOUGHPROGRESS ネットワーク トラフィック ログのサンプルと脅威アクターに関する情報を提供しました。

進行中のアクティビティに対する保護

GTIG は、Workspace アプリケーションを使用して、数年間にわたり APT41 の攻撃を積極的にモニタリングして、防御してきました。この脅威グループは、創造的なマルウェア キャンペーンで知られており、Workspace アプリケーションを利用することもあります。

  • Google Cloud の CISO オフィスは、2023 年 4 月に Threat Horizons レポートを公開しました。このレポートでは、HOODOO がマルウェアの C2 のために Google スプレッドシートと Google ドライブを使用した経緯を詳しく説明しています。

  • 2024 年 10 月、Proofpoint が公開したレポートでは、VOLDEMORT マルウェア ファミリーが APT41 に属するものであると結論づけています。

  • 2024 年 7 月に GTIG と Mandiant が報告した DUSTTRAP マルウェア ファミリーは、C2 のためにパブリック クラウド ホスティングを使用していました。

いずれの場合も、GTIG は攻撃者が制御する Workspace プロジェクトと、APT41 がこれらのキャンペーンで利用していたインフラストラクチャを特定し、停止しました。

無料のウェブ ホスティング インフラストラクチャ

少なくとも 2024 年 8 月以降、APT41 がマルウェアの配布に無料のウェブ ホスティング ツールを使用していることが確認されています。これには、VOLDEMORT、DUSTTRAP、TOUGHPROGRESS に加えて、他のペイロードも含まれる可能性があります。これらの無料ホスティング サイトへのリンクは、さまざまな地域や業界の何百ものターゲットに送信されています。

APT41 は Cloudflare Worker サブドメインを最も頻繁に使用していますが、InfinityFree や TryCloudflare の使用も確認されています。下記のサブドメインと URL は、過去のキャンペーンで確認されたものですが、現在は APT41 では使用されていない可能性があります。

Cloudflare Workers

  • word[.]msapp[.]workers[.]dev

  • cloud[.]msapp[.]workers[.]dev

TryCloudflare

  • term-restore-satisfied-hence[.]trycloudflare[.]com

  • ways-sms-pmc-shareholders[.]trycloudflare[.]com

InfinityFree

  • resource[.]infinityfreeapp[.]com

  • pubs[.]infinityfreeapp[.]com

また、APT41 は、フィッシング メッセージで URL 短縮サービスを使用していることが確認されています。短縮 URL にアクセスすると、無料ホスティング アプリケーションのサブドメインでホストされているマルウェアにリダイレクトされます。

  • https[:]//lihi[.]cc/6dekU

  • https[:]//tinyurl[.]com/hycev3y7

  • https[:]//my5353[.]com/nWyTf

  • https[:]//reurl[.]cc/WNr2Xy

このブログ投稿で紹介したすべてのドメインと URL は、セーフ ブラウジングのブロックリストに追加されています。これにより、サイトへのアクセス時に警告が表示されるようになり、ユーザーによるマルウェアのダウンロードを防げます。

セキュリティ侵害インジケーター

このブログ投稿で紹介した IOC は、Google Threat Intelligence のコレクションとしても利用できます。

ハッシュ

 

名前

ハッシュ(SHA256 / MD5)

出境海關申報清單.zip

469b534bec827be03c0823e72e7b4da0b84f53199040705da203986ef154406a 876fb1b0275a653c4210aaf01c2698ec

申報物品清單.pdf.lnk

3b88b3efbdc86383ee9738c92026b8931ce1c13cd75cd1cda2fa302791c2c4fb 65da1a9026cf171a5a7779bc5ee45fb1

6.jpg

50124174a4ac0d65bf8b6fd66f538829d1589edc73aa7cf36502e57aa5513360 1ca609e207edb211c8b9566ef35043b6

7.jpg

151257e9dfda476cdafd9983266ad3255104d72a66f9265caa8417a5fe1df5d7 2ec4eeeabb8f6c2970dcbffdcdbd60e3

ドメイン

  • word[.]msapp[.]workers[.]dev

  • cloud[.]msapp[.]workers[.]dev

  • term-restore-satisfied-hence[.]trycloudflare[.]com

  • ways-sms-pmc-shareholders[.]trycloudflare[.]com

  • resource[.]infinityfreeapp[.]com

  • pubs[.]infinityfreeapp[.]com

URL 短縮リンク

  • https[:]//lihi[.]cc/6dekU

  • https[:]//lihi[.]cc/v3OyQ

  • https[:]//lihi[.]cc/5nlgd

  • https[:]//lihi[.]cc/edcOv

  • https[:]//lihi[.]cc/4z5sh

  • https[:]//tinyurl[.]com/mr42t4yv

  • https[:]//tinyurl[.]com/hycev3y7

  • https[:]//tinyurl[.]com/mpa2c5wj

  • https[:]//tinyurl[.]com/3wnz46pv

  • https[:]//my5353[.]com/ppOH5

  • https[:]//my5353[.]com/nWyTf

  • https[:]//my5353[.]com/fPUcX

  • https[:]//my5353[.]com/ZwEkm

  • https[:]//my5353[.]com/vEWiT

  • https[:]//reurl[.]cc/WNr2Xy

カレンダー

  • 104075625139-l53k83pb6jbbc2qbreo4i5a0vepen41j.apps.googleusercontent.com

  • https[:]//www[.]googleapis[.]com/calendar/v3/calendars/ff57964096cadc1a8733cf566b41c9528c89d30edec86326c723932c1e79ebf0@group.calendar.google.com/events

YARA ルール

rule G_Backdoor_TOUGHPROGRESS_LNK_1 {
	meta:
		author = "GTIG"
		date_created = "2025-04-29"
		date_modified = "2025-04-29"
		md5 = "65da1a9026cf171a5a7779bc5ee45fb1"
		rev = 1
	strings:
		$marker = { 4C 00 00 00 }
		$str1 = "rundll32.exe" ascii wide
		$str2 = ".\\image\\7.jpg,plus" wide
		$str3 = "%PDF-1"
		$str4 = "PYL="
	condition:
		$marker at 0 and all of them
}
rule G_Dropper_PLUSDROP_1 {
	meta:
		author = "GTIG"
		date_created = "2025-04-29"
		date_modified = "2025-04-29"
		md5 = "9492022a939d4c727a5fa462590dc0dd"
		rev = 1
	strings:
		$decrypt_and_launch_payload = { 48 8B ?? 83 ?? 0F 0F B6 ?? ?? ?? 
30 04 ?? 48 FF ?? 49 3B ?? 72 ?? 80 [1-5] 00 75 ?? B? 5B 55 D2 56 [0-8] E8 
[4-32] 33 ?? 33 ?? FF D? [0-4] FF D? }
	condition:
		uint16(0) == 0x5a4d and all of them
}

その他の YARA ルール

これは、別の TOUGHPROGRESS キャンペーンで PLUSDROP を開始するために使用される 2 つ目のドロッパーです。

rule G_Dropper_TOUGHPROGRESS_XML_1 {
    meta:
        author = "GTIG"
        description = "XML lure file used to launch a PLUSDROP dll."
        md5 = "dccbb41af2fcf78d56ea3de8f3d1a12c"
    strings:
        $str1 = "System.Convert.FromBase64String"
        $str2 = "VirtualAlloc"
        $str3 = ".InteropServices.Marshal.Copy"
        $str4 = ".DllImport"
        $str5 = "kernel32.dll"
        $str6 = "powrprof.dll"
        $str7 = ".Marshal.GetDelegateForFunctionPointer"
    condition:
        uint16(0)!= 0x5A4D and all of them and filesize > 500KB and 
filesize < 5MB
}

PLUSBED は、他の TOUGHPROGRESS キャンペーンで確認された追加のステージです。

rule G_Dropper_PLUSBED_2 {
	meta:
		author = "GTIG"
		date_created = "2025-04-29"
		date_modified = "2025-04-29"
		md5 = "39a46d7f1ef9b9a5e40860cd5f646b9d"
		rev = 1
	strings:
		$api1 = { BA 54 B8 B9 1A }
		$api2 = { BA 78 1F 20 7F }
		$api3 = { BA 62 34 89 5E }
		$api4 = { BA 65 62 10 4B }
		$api5 = { C7 44 24 34 6E 74 64 6C 66 C7 44 24 38 6C 00 FF D0 }
	condition:
		uint16(0) != 0x5A4D and all of them
}

-Google Threat Intelligence グループ、執筆者: Patrick Whitsell

投稿先