GlassWorm Macへの進出:新しいインフラと新たなトリック
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
GlassWormの背後にいる脅威アクターは、Windowsに焦点を当てた活動からmacOSに転換し、悪意のあるVS Code拡張機能を配布して、Solanaブロックチェーン由来のC2ポインタを通じて暗号化されたJavaScriptペイロードを取得しています。この動きは、ハードウェアウォレットのトロイ化を追加することで機能を拡張し、ブラウザ、開発者ツール、macOSキーチェーン全体での広範なクレデンシャル盗難を継続しています。このインフラストラクチャには、Solanaウォレットアドレスと先のGlassWorm操作から再利用されたIPが含まれており、オペレーターツーリングとホスティングの継続性を示唆しています。拡張機能が削除される前に50,000以上のダウンロードが観察され、開発者環境全体での意味のある露出を示しています。
調査
Koi SecurityはOpen VSXマーケットプレイスで3つの悪意のあるVS Code拡張機能を特定し、それらのコマンド・アンド・コントロールワークフローを、以前GlassWormと関連していたSolanaウォレットと共有IPアドレスにリンクしました。このインプラントは15分の実行遅延を組み込んでおり、その後AES-256-CBC JavaScriptペイロードを復号化して実行します。macOS上では、LaunchAgentsを介して永続性が確立されます。収集対象にはブラウザウォレットとデスクトップウォレットデータ、開発者アクセスのトークン、SSHキー、そしてmacOSキーチェーンの素材が含まれます。マルウェアは盗まれたデータを/tmp/ijewf/に配置し、/p2pに似たサーバーパスに送信する前に外部へ持ち出そうとします。また、Ledger LiveやTrezor Suiteなどの正規のハードウェアウォレットのコンパニオンアプリをトロイ化された類似アプリに置き換え、高価値の秘密とトランザクションを捕捉しようとします。
緩和
開発者ツールに対する制御を強化し、拡張機能の許可リストの適用と、特にオープンマーケットプレイスからのVS Code拡張機能のセキュリティ審査を要求します。遅延実行パターンやLaunchAgentsの疑わしい作成または変更に対するランタイム検出をデプロイします。Solana由来のC2検索に関連する疑わしいアウトバウンド活動を監視およびブロックし、識別された再利用IPへの異常な接続に対するネットワーク検出を追加します。開発者とクラウドアカウントに対しMFAを要求し、ハードウェアウォレットの整合性チェック(発行者の検証、公認/署名の検証、および制御されたソフトウェア更新チャンネル)を実施します。
対応
新規または変更されたLaunchAgents、キーチェーンストアへの異常なアクセス、およびSolanaを参照するC2エンドポイントからの取得試行に対してアラートを発する。悪意のVS Code拡張機能を隔離し、削除し、関連するLaunchAgent永続性を根絶します。/tmp/ijewf/で対象を絞ったフォレンジックスを実行し、クレデンシャルの配備を特定し、収集したデータを確認します。ハードウェアウォレットアプリケーション(Ledger Live、Trezor Suite)の整合性を検証し、改ざんが疑われる場合は信頼できるソースから再インストールします。影響を受けたクレデンシャルをリセットし、SSHキーと開発者トークンをローテーションし、セッションを無効化し、同じ拡張ID、ファイルパス、永続化アーティファクトの探索をエンドポイント全体で拡大します。
"graph TB %% Class Definitions classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef operator fill:#ff9900 classDef tool fill:#cccccc %% Nodes action_initial_access["<b>アクション</b> – 初回アクセス"] class action_initial_access action technique_vs_code_ext["<b>テクニック</b> – T1176.002: 悪意のVS Code IDE拡張<br/><b>説明</b>: 敵対者が被害者システムでコードを実行する悪意の拡張をVisual Studio Code向けに配布する。"] class technique_vs_code_ext technique technique_delay["<b>テクニック</b> – T1497.003: 実行遅延<br/><b>説明</b>: マルウェアは分析を回避するためにペイロードを実行する前に特定の期間(例:15分間)待ちます。"] class technique_delay technique technique_decrypt["<b>テクニック</b> – T1027.009 / T1027.004: デコードAESu2011256u2011CBCリピートペイロード<br/><b>説明</b>: メモリ内で暗号化されたペイロードを256ビットキーのAES-CBCを用いて復号化します。"] class technique_decrypt technique technique_c2_retrieve["<b>テクニック</b> – T1573.001: Solanaブロックチェーンからエンドポイントを取得<br/><b>説明</b>: C2サーバーアドレスはパブリックブロックチェーンに保存され、マルウェアによって取得されます。"] class technique_c2_retrieve technique technique_c2_fetch["<b>テクニック</b> – T1048.003: 暗号化されていないプロトコルデータ転送<br/><b>説明</b>: マルウェアは暗号化されていないプロトコル(例:HTTP)を使用してC2エンドポイントと通信します。"] class technique_c2_fetch technique technique_persistence_agent["<b>テクニック</b> – T1543.001: LaunchAgentのインストール<br/><b>説明</b>: 永続性のためにLaunchAgentsディレクトリにLaunchAgent plistを配置します。"] class technique_persistence_agent technique technique_persistence_daemon["<b>テクニック</b> – T1543.004: LaunchDaemonのインストール<br/><b>説明</b>: 永続性のためにシステムLaunchDaemonsディレクトリにLaunchDaemon plistを配置します。"] class technique_persistence_daemon technique technique_modify_plist["<b>テクニック</b> – T1647: PLISTファイルの修正<br/><b>説明</b>: 攻撃者は起動動作を変更したり悪意のあるコマンドを追加するためにplistを編集します。"] class technique_modify_plist technique technique_dump_keychain["<b>テクニック</b> – T1555.001 / T1555.002: キーチェーンのダンプ<br/><b>説明</b>: macOSキーチェーンからクレデンシャル素材を抽出します。"] class technique_dump_keychain technique technique_steal_keys["<b>テクニック</b> – T1552.001 / T1552.004: 秘密鍵とトークンの盗難<br/><b>説明</b>: 暗号通貨の秘密鍵と認証トークンが収集されます。"] class technique_steal_keys technique technique_stage_data["<b>テクニック</b> – T1074: データの準備<br/><b>説明</b>: 収集したファイルは後の外部送信のために/tmp/ijewfにコピーされます。"] class technique_stage_data technique technique_archive["<b>テクニック</b> – T1560.001 / T1560.003: 収集データのアーカイブ<br/><b>説明</b>: データはアーカイブ形式(例:zip)に圧縮されます。"] class technique_archive technique technique_exfil["<b>テクニック</b> – T1048.003: 暗号化されていない非C2チャンネルによる外部送信<br/><b>説明</b>: 準備されたアーカイブは主要C2に結びつかない暗号化されていないチャンネル経由で送信されます。"] class technique_exfil technique technique_priv_esc["<b>テクニック</b> – T1548.006: TCC操作<br/><b>説明</b>: 高い権限を得るためにmacOSのTransparency、Consent、Controlデータベースが変更されます。"] class technique_priv_esc technique technique_impact["<b>テクニック</b> – T1496.002: Ledger Live / Trezor Suiteの置換<br/><b>説明</b>: 正規の暗号通貨ウォレットアプリケーションがトロイ化されたバージョンに交換され、ユーザー資産がキャプチャされます。"] class technique_impact technique %% Connections action_initial_access –>|uses| technique_vs_code_ext technique_vs_code_ext –>|triggers| technique_delay technique_delay –>|leads to| technique_decrypt technique_decrypt –>|establishes| technique_c2_retrieve technique_c2_retrieve –>|contacts| technique_c2_fetch technique_c2_fetch –>|installs| technique_persistence_agent technique_c2_fetch –>|installs| technique_persistence_daemon technique_persistence_agent –>|modifies| technique_modify_plist technique_persistence_daemon –>|modifies| technique_modify_plist technique_modify_plist –>|enables| technique_dump_keychain technique_dump_keychain –>|enables| technique_steal_keys technique_steal_keys –>|stores in| technique_stage_data technique_stage_data –>|archives| technique_archive technique_archive –>|exfiltrates via| technique_exfil technique_exfil –>|facilitates| technique_priv_esc technique_priv_esc –>|enables| technique_impact "
攻撃フロー
検出
MacOSブラウザーパスワードを発見する可能性のある試み (cmdline経由)
表示
検出するためのIOCs (SourceIP): GlassWorm Goes Mac: 新しいインフラストラクチャ、新しいトリック
表示
検出するためのIOCs (DestinationIP): GlassWorm Goes Mac: 新しいインフラストラクチャ、新しいトリック
表示
検出するためのIOCs (Emails): GlassWorm Goes Mac: 新しいインフラストラクチャ、新しいトリック
表示
GlassWorm macOSキーチェーンアクセス検出 [Linuxプロセス作成]
表示
macOSでキーチェーンアクセスのためのAppleScript実行の可能性 [Linuxプロセス作成]
表示
GlassWormによるSolanaブロックチェーンC2通信の検出 [プロキシ]
表示
シミュレーション実行
前提条件: テレメトリ & ベースラインの事前チェックが合格している必要があります。
論理的根拠: このセクションは、検出ルールをトリガーするように設計された敵対者手法(TTP)の正確な実行を詳述します。コマンドとナラティブは、直接TTPを反映し、検出ロジックが期待する正確なテレメトリを生成することを目的とします。抽象的または無関係な例では誤診を招きます。
-
攻撃のシナリオ&コマンド:
既に低特権のmacOSユーザーアカウントを妥協している攻撃者は、ラベル下に格納されているサービスアカウントパスワードを収集しようとしますpass_users_for_script。別のバイナリをドロップすることを避けるために、攻撃者は組み込みのセキュリティツールを通じてdo shell scriptを呼び出すワンライナーのAppleScriptを作成します。このスクリプトはユーザーのセッションで直接実行され、Sigmaルールが一致する正確なコマンドラインでプロセス作成イベントを生成します。# テスト用キーチェーンアイテムの作成(デモ目的のみ;実際の攻撃者は既存アイテムを対象とします) security add-generic-password -a attacker -s pass_users_for_script -w SuperSecret123 # キーチェーンのパスワードを読み取るAppleScriptの実行 oascript -e 'do shell script "security find-generic-password -s '''pass_users_for_script''' -w"' -
リグレッションテストスクリプト:
#!/usr/bin/env bash set -euo pipefail # ステップ1: 対象キーチェーンエントリの存在確認(冪等) if ! security find-generic-password -s pass_users_for_script -w >/dev/null 2>&1; then security add-generic-password -a attacker -s pass_users_for_script -w SuperSecret123 fi # ステップ2: 検出ルールをトリガーするAppleScriptの実行 echo "[+] キーチェーンエントリを読み取るAppleScriptを実行しています..." oascript -e 'do shell script "security find-generic-password -s '''pass_users_for_script''' -w"' -
クリーンアップコマンド:
# システムをクリーンに保つためにテストキーチェーン項目を削除 security delete-generic-password -s pass_users_for_script echo "[+] クリーンアップ完了:テストキーチェーンエントリを削除しました。"