はじめに
Google Threat Intelligence Group (GTIG)は、2019年9月にリリースされたiOS 13.0から2023年12月にリリースされたバージョン17.2.1までを実行するApple iPhoneモデルをターゲットとした新しく強力なエクスプロイトキットを特定しました。開発者によって「Coruna」と名付けられたこのエクスプロイトキットには、5つの完全なiOSエクスプロイトチェーンと合計23個のエクスプロイトが含まれていました。このエクスプロイトキットのコア技術的価値は、その包括的なiOSエクスプロイトのコレクションにあり、最も高度なものは非公開の悪用技術と軽減策バイパスを使用しています。
Corunaエクスプロイトキットは高度な機能がどのように急速に普及するかの別の例を提供しています。2025年を通じて、GTIGはその使用を追跡しました。高度にターゲットを絞った作戦で、最初は監視ベンダーの顧客によって実施され、その後、ロシア諜報グループの疑いがあるUNC6353によるウォーターホール攻撃での展開が観察されました。その後、中国を拠点とする経済的動機を持つ脅威アクターであるUNC6691による大規模キャンペーンで使用されたとき、完全なエクスプロイトキットを回収しました。この普及がどのように発生したかは不明ですが、「中古」ゼロデイエクスプロイトの活発な市場があることを示唆しています。これらの特定されたエクスプロイトを超えて、複数の脅威アクターは現在、新たに特定された脆弱性で再利用および修正できる高度な悪用技術を取得しています。
当社の情報開示ポリシーに従い、業界全体でセキュリティを認識し推進するために研究を共有しています。また、特定されたすべてのウェブサイトとドメインをセーフブラウジングに追加し、ユーザーをさらなる悪用から保護しています。Corunaエクスプロイトキットは最新バージョンのiOSに対しては効果がなく、iPhoneユーザーはデバイスを最新バージョンのiOSにアップデートすることを強くお勧めします。アップデートが不可能な場合は、ロックダウンモードを有効にして、セキュリティを強化することをお勧めします。
発見タイムライン

図1:CorunaのiOSエクスプロイトキットタイムライン
最初の発見:商用監視ベンダーの役割
2025年2月に、監視会社の顧客によって使用されたiOSエクスプロイトチェーンの一部をキャプチャしました。エクスプロイトは、シンプルだが独特のJavaScriptオブファスケーション技術を使用した、以前に見られたことのないJavaScriptフレームワークに統合されていました。
[16, 22, 0, 69, 22, 17, 23, 12, 6, 17].map(x => {return String.fromCharCode(x ^ 101);}).join("")
i.p1=(1111970405 ^ 1111966034);
JavaScriptフレームワークは、これらの構成体を使用して文字列と整数をエンコードしていました
フレームワークは、デバイスが実物かどうか、およびどの特定のiPhoneモデルと実行しているiOSソフトウェアバージョンであるかを判定するために、様々なデータポイントを収集するフィンガープリンティングモジュールを開始します。収集されたデータに基づいて、図2で見られるオブファスケーション化されていないJavaScriptから、適切なWebKit遠隔コード実行(RCE)エクスプロイト、その後にポインタ認証コード(PAC)バイパスをロードします。

図2:Corunaエクスプロイトキットのオブファスケーション化されていないJavaScript
その時点で、iOS 17.2を実行しているデバイスに提供されたWebKit RCEを回収し、それがCVE-2024-23222であることを確認しました。これは、Appleが2024年1月22日にiOS 17.3で外部研究者に認定せずに対処した、以前にゼロデイとして特定された脆弱性です。図3は、当社の注釈付きで、実際に提供されたRCEエクスプロイトの開始を示しています。

図3:CVE-2024-23222を活用するRCEエクスプロイトが実際に提供されたもの
政府が支援する攻撃者による使用
2025年の夏、同じJavaScriptフレームワークがcdn.uacounter[.]comでホストされているのに気づきました。このWebサイトは、多くの侵害されたウクライナのWebサイトに隠されたiFrameとしてロードされており、産業用機器や小売ツールからローカルサービスやeコマースWebサイトまで様々です。フレームワークは特定の地理的位置からのiPhoneユーザーのみに提供されていました。
フレームワークは同一で、同じセットのエクスプロイトを提供していました。CVE-2024-23222、CVE-2022-48503、およびCVE-2023-43000を含むWebKit RCEを収集してから、サーバーはシャットダウンされました。当社は、CERT-UAに警告し、侵害されたすべてのWebサイトをクリーンアップするために協力しました。
中国の詐欺Webサイトからの完全なエクスプロイトチェーンコレクション
年の終わりに、JavaScriptフレームワークを非常に大規模な偽の中国Webサイトのセットで特定しました。主に金融関連で、まったく同じiOSエクスプロイトキットを落とします。Webサイトは、図4で見られた偽のWEEX暗号交換Webサイトから、ユーザーをiOSデバイスでWebサイトにアクセスするように説得しようとしました。

図4:ユーザーをエクスプロイトにドライブしようとしている偽の暗号通貨交換Webサイトのポップアップ
iOSデバイス経由でこれらのWebサイトにアクセスし、地理的位置に関係なく、隠されたiFrameが注入され、エクスプロイトキットを配信します。例として、図5は、3v5w1km5gv[.]xyzで見つかったのと同じCVE-2024-23222エクスプロイトを示しています。

図5:詐欺サイトから回収されたCVE-2024-23222エクスプロイトのスクリーンショット
当社は、終了ペイロードを含むすべてのオブファスケーション化されたエクスプロイトを取得しました。さらに分析すると、アクターがエクスプロイトキットのデバッグバージョンを展開したインスタンスに気づきました。これにより、内部コード名を含むすべてのエクスプロイトが明確に残されていました。その時点で、エクスプロイトキットが内部的に「Coruna」という名前である可能性が高いことがわかりました。合計で、合計5つの完全なiOSエクスプロイトチェーンをカバーする数百のサンプルを収集しました。エクスプロイトキットは、2019年9月にリリースされたiOS 13.0から2023年12月にリリースされたバージョン17.2.1までを実行する様々なiPhoneモデルをターゲットにすることができます。
以下のセクションでは、フレームワークの簡単な説明、エクスプロイトチェーンの内訳、および当社がキャプチャした関連インプラントを提供します。当社の収集されたデータの分析は進行中であり、新しいブログエントリまたはroot cause analyses(RCA)を介して追加の技術仕様を公開することを期待しています。
Corunaエクスプロイトキット
エクスプロイトキットを取り巻くフレームワークは、非常によくエンジニアリングされています。エクスプロイト部分はすべて自然に接続され、一般的なユーティリティおよび悪用フレームワークを使用してまとめられています。キットは以下の独特なアクションを実行します:
-
デバイスがロックダウンモードにある場合、またはユーザーがプライベートブラウジング中である場合はベイルアウト。
-
リソースURLを生成するために途中で使用される独特でハードコードされたクッキー。
-
リソースはハッシュによって参照され、独特なクッキーを使用してsha256(COOKIE + ID)[:40]で導出して、そのURLを取得する必要があります。
-
RCEとPACバイパスは暗号化されずに配信されます。
キットには、WebKit内のRCE後に適切なエクスプロイトチェーンをロードするバイナリローダーが含まれています。この場合、バイナリペイロード:
-
サポートされているチップとiOSバージョンが本当に何であるかを示す独特なメタデータがあります。
-
.min.jsで終わるURLから提供されます。
-
各ブロブあたり独特なキーを持つChaCha20を使用して暗号化されます。
-
0xf00dbeefをヘッダーとして開始するカスタムファイル形式にパッケージされます。
-
Lempel-Ziv-Welch(LZW)アルゴリズムで圧縮されます。
図6は、これらの偽の金融Webサイトの1つを閲覧するときに、ネットワークの観点からiPhone XRを実行しているiOS 15.8.5の感染がどのように見えるかを示しており、異なる部分の当社の注釈があります。

図6:iOS 15.8.5で配信されるCorunaエクスプロイトチェーン
エクスプロイトとそのコード名
このエクスプロイトキットのコア技術的価値は、その包括的なiOSエクスプロイトのコレクションにあります。エクスプロイトは、ネイティブ英語で記述された著者による広範なドキュメント、docstringおよびコメントを備えています。最も高度なものは、非公開の悪用技術と軽減策バイパスを使用しています。以下の表は、様々なエクスプロイトチェーンに関する当社の継続中の分析に関する概要を提供しています。ただし、完全な調査は進行中であるため、特定のCVE関連付けは改訂される可能性があります。iOS 13からiOS 17.2.1までのバージョンをカバーする合計23個のエクスプロイトがあります。
|
タイプ |
コード名 |
ターゲットバージョン(包括的) |
修正バージョン |
CVE |
|
WebContent R/W |
buffout |
13 → 15.1.1 |
15.2 |
|
|
WebContent R/W |
jacurutu |
15.2 → 15.5 |
15.6 |
|
|
WebContent R/W |
bluebird |
15.6 → 16.1.2 |
16.2 |
CVEなし |
|
WebContent R/W |
terrorbird |
16.2 → 16.5.1 |
16.6 |
|
|
WebContent R/W |
cassowary |
16.6 → 17.2.1 |
16.7.5, 17.3 |
|
|
WebContent PAC bypass |
breezy |
13 → 14.x |
? |
CVEなし |
|
WebContent PAC bypass |
breezy15 |
15 → 16.2 |
? |
CVEなし |
|
WebContent PAC bypass |
seedbell |
16.3 → 16.5.1 |
? |
CVEなし |
|
WebContent PAC bypass |
seedbell_16_6 |
16.6 → 16.7.12 |
? |
CVEなし |
|
WebContent PAC bypass |
seedbell_17 |
17 → 17.2.1 |
? |
CVEなし |
|
WebContent sandbox escape |
IronLoader |
16.0 → 16.3.116.4.0 (<= A12) |
15.7.8, 16.5 |
|
|
WebContent sandbox escape |
NeuronLoader |
16.4.0 → 16.6.1 (A13-A16) |
17.0 |
CVEなし |
|
PE |
Neutron |
13.X |
14.2 |
|
|
PE (infoleak) |
Dynamo |
13.X |
14.2 |
|
|
PE |
Pendulum |
14 → 14.4.x |
14.7 |
CVEなし |
|
PE |
Photon |
14.5 → 15.7.6 |
15.7.7, 16.5.1 |
|
|
PE |
Parallax |
16.4 → 16.7 |
17.0 |
|
|
PE |
Gruber |
15.2 → 17.2.1 |
16.7.6, 17.3 |
CVEなし |
|
PPL Bypass |
Quark |
13.X |
14.5 |
CVEなし |
|
PPL Bypass |
Gallium |
14.x |
15.7.8, 16.6 |
|
|
PPL Bypass |
Carbone |
15.0 → 16.7.6 |
17.0 |
CVEなし |
|
PPL Bypass |
Sparrow |
17.0 → 17.3 |
16.7.6, 17.4 |
|
|
PPL Bypass |
Rocket |
17.1 → 17.4 |
16.7.8, 17.5 |
表1:CVEからコード名へのマッピングを含むテーブル
PhotonとGalliumは、2023年にKasperskyによって発見されたOperation Triangulationの一部としてゼロデイとしても使用された脆弱性を悪用しています。Corunaエクスプロイトキットは、前述の脆弱性の悪用を容易にするためのリユーザブルモジュールも埋め込みます。例えば、ユーザーランドでのRWXメモリページの割り当てを防ぐ様々な軽減策をバイパスするために複数の技術を使用するrwx_allocatorというモジュールがあります。カーネルエクスプロイトは、カーネルモードPACなどのカーネルベースの軽減策をバイパスすることができる様々な内部モジュールも埋め込んでいます。
終了ペイロード
悪用チェーンの終了時に、PlasmaLoaderという名前のステージャーバイナリ(GTIGによってPLASMAGRIDとして追跡)は、com.apple.assistdを識別子として使用し、エクスプロイトによって確立されたカーネルコンポーネントとの通信を促進します。ローダーは自身をpowerdに注入しています。powerdはiOSでrootとして実行されるデーモンです。
注入されたペイロードは、監視ベンダーから期待する通常の機能を示していませんが、代わりに金融情報を盗みます。ペイロードはディスク上の画像からQRコードをデコードできます。また、テキストのブロブを分析してBIP39ワードシーケンスまたは「バックアップフレーズ」または「銀行口座」のような非常に特定のキーワードを探すモジュールがあります。そのようなテキストが「Apple Memos」にある場合、それはC2に送信されます。
さらに重要なことに、ペイロードは、http://<C2 URL>/details/show.htmlから取得された構成で、追加のモジュールをリモートで収集して実行する能力があります。構成と追加のモジュールは、独特なハードコードされたパスワードで保護された7-ZIPアーカイブとして圧縮されます。構成はJSONでエンコードされ、単にモジュール名とそれぞれのURL、ハッシュ、サイズのリストが含まれています。
{
"entries": [
{
"bundleId": "com.bitkeep.os",
"url": "http://<C2URL>/details/f6lib.js",
"sha256": "6eafd742f58db21fbaf5fd7636e6653446df04b4a5c9bca9104e5dfad34f547c",
"size": 256832,
"flags": {
"do_not_close_after_run": true
}
}
...
]
}
予想通り、特定されたすべてのモジュールはほぼ均一な設計を示しており、すべてが次のアプリケーションから暗号通貨ウォレットまたは機密情報を強制するための関数フックを配置しています:
com.bitkeep.oscom.bitpie.walletcoin98.crypto.finance.insightsorg.toshi.distributionexodus-movement.exodusim.token.appcom.kyrd.krystal.iosio.metamask.MetaMaskorg.mytonwallet.appapp.phantomcom.skymavis.Genesiscom.solflare.mobilecom.global.wallet.ioscom.tonhub.appcom.jbig.tonkeepercom.tronlink.hdwalletcom.sixdays.trustcom.uniswap.mobile
これらのモジュールはすべて、中国語で記述されたセンテンスを含む適切なログを含みます:
<PlasmaLogger> %s[%d]: CorePayload 管理器初始化成功,尝试启动...
このログ文字列は、CorePayload Managerが正常に初期化され、起動しようとしていることを示しています
以下のコメントなどの中には、絵文字も含まれており、LLM生成である可能性を示唆する方法で記述されています。
<PlasmaLogger> %s[%d]: [PLCoreHeartbeatMonitor] ✅ 心跳监控已启动 (端口=0x%x),等待 CorePayload 发送第一个心跳...
ネットワーク通信はHTTPSを介して行われ、収集されたデータはAESを使用して暗号化され、静的文字列のSHA256ハッシュをキーとして使用してPOST’edされます。一部のHTTPリクエストには、sdkvまたはx-ts,などの追加のHTTPヘッダーが含まれており、その後にタイムスタンプが続きます。インプラントにはハードコードされたC2のリストが含まれていますが、サーバーが応答しない場合のフォールバック機構があります。インプラントは、シード文字列「lazarus」を使用してカスタムドメイン生成アルゴリズム(DGA)を埋め込み、予測可能なドメインのリストを生成します。ドメインは15文字で、TLDとして.xyzを使用します。攻撃者はGoogleのパブリックDNSリゾルバーを使用してドメインがアクティブであるかどうかを検証します。
結論
Googleは、商用サイバーの不正使用を制限する害を制限することを目的としたPall Mall Processに積極的に参加しています。共に、これらの強力なテクノロジーの誤用を制限し、世界中の人権を保護するために、国際規範とフレームワークの開発に焦点を当てています。これらの取り組みは、政府の以前の行動に基づいており、米国政府がスパイウェアの政府使用を制限するために取った措置、および商用スパイウェアの増殖と悪用を対抗する同様の取り組みに関する初めての国際的コミットメントを含みます。
謝辞
この調査全体を通じてのパートナーシップについて、Google Project-Zeroとapple Security Engineering & Architecture teamに感謝し、認識したいです。
漏洩指標(IOCs)
このブログ投稿で説明されている活動の狩りと特定を支援するため、当社はIOCをに含めました。無料GTIコレクション:登録ユーザー向け。
ファイル指標
暗号関連Webサイトから配信されたインプラントおよびそのモジュールのハッシュ。
インプラント
|
bundleId |
SHA-256 |
|
|
|
モジュール
|
bundleId |
SHA-256 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ネットワーク指標
UNC6353指標
|
Corunaエクスプロイトキットを配信するURL |
|
http://cdn[.]uacounter[.]com/stat[.]html |
UNC6691指標
|
Corunaエクスプロイトキットを配信するURL |
|
https://ai-scorepredict[.]com/static/analytics[.]html |
|
https://m[.]pc6[.]com/test/tuiliu/group[.]html |
|
http://ddus17[.]com/tuiliu/group[.]html |
|
https://goodcryptocurrency[.]top/details/group[.]html |
|
http://pepeairdrop01[.]com/static/analytics[.]html |
|
https://osec2[.]668ddf[.]cc/tuiliu/group[.]html |
|
https://pepeairdrop01[.]com/static/analytics[.]html |
|
https://ios[.]teegrom[.]top/tuiliu/group[.]html |
|
https://i[.]binaner[.]com/group[.]html |
|
https://ajskbnrs[.]xn--jor0b302fdhgwnccw8g[.]com/gogo/list[.]html |
|
https://sj9ioz3a7y89cy7[.]xyz/list[.]html |
|
https://65sse[.]668ddf[.]cc/tuiliu/group[.]html |
|
https://sadjd[.]mijieqi[.]cn/group[.]html |
|
https://mkkku[.]com/static/analytics[.]html |
|
https://dbgopaxl[.]com/static/goindex/tuiliu/group[.]html |
|
https://w2a315[.]tubeluck[.]com/static/goindex/tuiliu/group[.]html |
|
https://ose[.]668ddf[.]cc/tuiliu/group[.]html |
|
http://cryptocurrencyworld[.]top/details/group[.]html |
|
https://iphonex[.]mjdqw[.]cn/tuiliu/group[.]html |
|
http://goodcryptocurrency[.]top/details/group[.]html |
|
https://share[.]4u[.]game/group[.]html |
|
https://26a[.]online/group[.]html |
|
https://binancealliancesintro[.]com/group[.]html |
|
https://4u[.]game/group[.]html |
|
http://bestcryptocurrency[.]top/details/group[.]html |
|
https://b27[.]icu/group[.]html |
|
https://h4k[.]icu/group[.]html |
|
https://so5083[.]tubeluck[.]com/static/goindex/group[.]html |
|
https://seven7[.]vip/group[.]html |
|
https://y4w[.]icu/group[.]html |
|
https://7ff[.]online/group[.]html |
|
https://cy8[.]top/group[.]html |
|
https://7uspin[.]us/group[.]html |
|
https://seven7[.]to/group[.]html |
|
https://4kgame[.]us/group[.]html |
|
https://share[.]7p[.]game/group[.]html |
|
https://www[.]appstoreconn[.]com/xmweb/group[.]html |
|
https://k96[.]icu/group[.]html |
|
https://7fun[.]icu/group[.]html |
|
https://n49[.]top/group[.]html |
|
https://98a[.]online/group[.]html |
|
https://spin7[.]icu/group[.]html |
|
https://t7c[.]icu/group[.]html |
|
https://7p[.]game/group[.]html |
|
https://lddx3z2d72aa8i6[.]xyz/group[.]html |
|
https://anygg[.]liquorfight[.]com/88k4ez/group[.]html |
|
https://goanalytics[.]xyz/88k4ez/group[.]html |
|
http://land[.]77bingos[.]com/88k4ez/group[.]html |
|
https://land[.]bingo777[.]now/88k4ez/group[.]html |
|
http://land[.]bingo777[.]now/88k4ez/group[.]html |
|
http://land[.]777bingos[.]xyz/88k4ez/group[.]html |
|
https://btrank[.]top/tuiliu/group[.]html |
|
https://dd9l7e6ghme8pbk[.]xyz/group[.]html |
|
https://res54allb[.]xn--xkrsa0078bd6d[.]com/group[.]html |
|
https://fxrhcnfwxes90q[.]xyz/group[.]html |
|
https://kanav[.]blog/group[.]html |
|
https://3v5w1km5gv[.]xyz/group[.]html |
|
PLASMAGRID C2ドメイン |
|
vvri8ocl4t3k8n6.xyz |
|
rlau616jc7a7f7i.xyz |
|
ol67el6pxg03ad7.xyz |
|
6zvjeulzaw5c0mv.xyz |
|
ztvnhmhm4zj95w3.xyz |
|
v2gmupm7o4zihc3.xyz |
|
pen0axt0u476duw.xyz |
|
hfteigt3kt0sf3z.xyz |
|
xfal48cf0ies7ew.xyz |
|
yvgy29glwf72qnl.xyz |
|
lk4x6x2ejxaw2br.xyz |
|
2s3b3rknfqtwwpo.xyz |
|
xjslbdt9jdijn15.xyz |
|
hui4tbh9uv9x4yi.xyz |
|
xittgveqaufogve.xyz |
|
xmmfrkq9oat1daq.xyz |
|
lsnngjyu9x6vcg0.xyz |
|
gdvynopz3pa0tik.xyz |
|
o08h5rhu2lu1x0q.xyz |
|
zcjdlb5ubkhy41u.xyz |
|
8fn4957c5g986jp.xyz |
|
uawwydy3qas6ykv.xyz |
|
sf2bisx5nhdkygn3l.xyz |
|
roy2tlop2u.xyz |
|
gqjs3ra34lyuvzb.xyz |
|
eg2bjo5x5r8yjb5.xyz |
|
b38w09ecdejfqsf.xyz |
YARAルール
rule G_Hunting_Exploit_MapJoinEncoder_1 {
meta:
author = "Google Threat Intelligence Group (GTIG)"
strings:
$s1 = /\[[^\]]+\]\.map\(\w\s*=>.{0,15}String\.fromCharCode\(\w\s*\^\s*(\d+)\).{0,15}\.join\(""\)/
$fp1 = "bot|googlebot|crawler|spider|robot|crawling"
condition:
1 of ($s*) and not any of ($fp*)
}
rule G_Backdoor_PLASMAGRID_Strings_1 {
meta:
author = "Google Threat Intelligence Group (GTIG)"
strings:
$ = "com.plasma.appruntime.appdiscovery"
$ = "com.plasma.appruntime.downloadmanager"
$ = "com.plasma.appruntime.hotupdatemanager"
$ = "com.plasma.appruntime.modulestore"
$ = "com.plasma.appruntime.netconfig"
$ = "com.plasma.bundlemapper"
$ = "com.plasma.event.upload.serial"
$ = "com.plasma.notes.monitor"
$ = "com.plasma.photomonitor"
$ = "com.plasma.PLProcessStateDetector"
$ = "plasma_heartbeat_monitor"
$ = "plasma_injection_dispatcher"
$ = "plasma_ipc_processor"
$ = "plasma_%@.jpg"
$ = "/var/mobile/Library/Preferences/com.plasma.photomonitor.plist"
$ = "helion_ipc_handler"
$ = "PLInjectionStateInfo"
$ = "PLExploitationInterface"
condition:
1 of them
}
翻訳元: https://cloud.google.com/blog/topics/threat-intelligence/coruna-powerful-ios-exploit-kit/