標的型の暗号資産侵害事件により、Googleがホストする Apps Script ページが悪用され、標的候補をプロファイリングした上で署名済みのWindowsマルウェアを配布する手口が明らかになりました。
アンチウイルス& マルウェア
このキャンペーンでは、偽のWeb3採用プロセスを利用して、NeedleStealer、未分類のRust製インフォスティーラー、隠れたVNC機能を備えたカスタムGo製RATという3種類のペイロードから成るスタックが展開されました。
偽の採用担当者はLinkedIn経由で接触を開始し、Calendlyで面接を設定した後、最終的にGoogleスプレッドシート上の技術評価と称するものを共有しました。
この「評価」は実際には、Workspaceドキュメントを装った悪意あるGoogle Apps Script製Webアプリでした。
Googleがホストするこのインターフェースは、Googleドメイン上の正規アセットを利用しつつ、IPアドレス、おおよその位置情報、ISP、OS、ブラウザの特徴、さらにMetaMask、Phantom、Rabby、Keplr、OKX、Coinbase Wallet、Trust Walletといったインストール済みのウォレット拡張機能など、訪問者のテレメトリを収集していました。
また、ページの読み込みや更新クリック、再試行、ダウンロードといった操作についても、攻撃者が管理するTelegramのチャットへ報告していました。
被害者には「候補者検証」というオーバーレイと、でっち上げのGAPI-CON-212コネクタエラーが表示されました。この「エラー」が、いわゆるGoogle APIヘルパーをインストールさせるための口実として使われました。
Windows環境では、ペイロードはgapidriver[.]comから配信される署名済みのClickOnce展開マニフェスト、GapiUpdate.applicationでした。
このアプリケーションはWebView2を通じて正規のGoogle Workspace Marketplaceページを表示する一方、裏では悪意あるステージング処理を実行していました。
この署名済みインストーラーは、ユーザーの警戒心を下げ、発行元の評判に基づく単純な信頼判断を回避できる点で特に注目されます。
分析対象となったビルド(バージョン1.0.0.201)には、ノルウェーの組織名義で発行されたSSL.com発行のコード署名証明書が付与されていました。ただし、現時点で入手可能な証拠からは、その組織が意図的に関与していたことは確認されていません。
考えられる説明としては、署名用アクセス権の窃取、ID(身元情報)の悪用、または不正な証明書発行が挙げられます。
インストール後、GapiUpdateはgapidriver[.]comに対して認証済みの設定情報を要求し、これに対してDropboxでホストされたパスワード保護付きアーカイブRazo.rarが返されました。
Haveibeensquattedの研究者によれば、攻撃者は退職を届け出た後、公に転職活動をしていた暗号資産関連企業の従業員を標的にしていたとのことです。
このアーカイブにはPNG画像に偽装された3つのファイルが含まれていましたが、いずれもWindowsのMZ実行ファイルヘッダーで始まっていました。
悪意あるGoogle Apps Scriptによる攻撃
ステージャーはこれらのファイルをランダムな名前の.exeファイルにリネームし、実行間に60秒の遅延を設けて起動していました。これにより、関連するエンドポイントイベントが1つの感染チェーンとして認識される可能性を低減していました。
回収されたペイロードから、これがウォレットのみを狙った単純な攻撃ではなかったことが分かります。NeedleStealerは、ブラウザの認証情報、セッション、ウォレット拡張機能、Telegramのデータ、スクリーンショットを標的としていました。
Rust製のスティーラーは、収集範囲をブラウザ、デスクトップ型ウォレット、パスワードマネージャー、VPNおよびSSH関連情報、クラウド設定、ソースコード管理の認証情報、開発者向けツール、メッセージングアプリケーション、特定のファイルにまで広げていました。
3つ目のペイロードであるGoベースのRATは、暗号化された生TCPによるコマンド&コントロール、シェルアクセス、ファイル管理、プロキシ機能、キーロギング、メモリ内実行、可視型VNCおよびhVNCを通じて、持続的な対話型アクセスを提供していました。
被害の影響は即座に現れました。調査担当者によれば、秘密鍵が窃取された後、約1時間のうちに6つのブロックチェーンにまたがって資産が盗み出されたとのことです。
攻撃者は担保を解放するために融資ポジションを返済し、資産をスワップした上でEthereumへブリッジし、その後約22.6 EtherをステージングウォレットへExecuted集約させました。
この挙動は、通常の承認フィッシングではなく、秘密鍵の直接窃取であることを示しています。
このキャンペーンは、Security Allianceが追跡しているより広範なGAPI_Updateエコシステムと重なる部分があります。このエコシステムは、偽のGoogle Workspaceページ、Apps Scriptベースの誘導、ClickOnce、そしてClickFixによる配布経路を暗号資産関連の標的に対して利用してきました。
セキュリティコンサルティングサービス
SEALは、こうした活動を単一の攻撃者に確実に帰属させることはできないと注意を促しています。ロシアを拠点とするトラファー(trafer)やマルウェア・アズ・ア・サービスの運営組織が、北朝鮮(DPRK)関連の暗号資産キャンペーンと強く結び付けられてきた手法を採用しているためです。
防御側にとっては、依頼していない採用プロセスから生じるClickOnceのインストールは、高リスクとして扱うべきです。
脅威ハンティングでは、GapiUpdate.application、gapidriver[.]com、%LOCALAPPDATA%\Apps\2.0配下のClickOnce関連アーティファクト、DeviceSetupManagerスケジュールタスク、そして91.219.238.169:5556への生TCPによる外向き通信を優先的に監視する必要があります。
影響を受けた開発者や暗号資産関連のワークステーションについては、ブラウザセッション、ウォレットの鍵、クラウドの認証情報、ソースコード管理用トークン、デプロイ用シークレットが漏えいしたものと想定すべきです。
[ライブウェビナー] ElasticとUnderDefenseが共同開催するウェビナーにご参加ください。少人数のセキュリティチームが、AIの可視化とエージェント型の対応を1つの運用モデルへ統合する方法を学べます。-> 今すぐ登録
翻訳元: https://gbhackers.com/malicious-google-apps-script-attack/