CrashStealer: クラッシュレポーターを装ったmacOS情報窃取マルウェア
Detection stack
- AIDR
- Alert
- ETL
- Query
要約
CrashStealerは、macOS向けのネイティブC++情報窃取ツールで、Appleのクラッシュレポートフレームワークを装って機密ユーザーデータを収集します。ブラウザの認証情報、暗号通貨ウォレット、キーチェーン情報をターゲットにし、AES-GCM暗号化を使用して盗まれたデータをローカルに蓄積します。このマルウェアは、正当なソフトウェアインストーラーに偽装された署名および公証されたドロッパーを介して配布されます。
調査
Jamf Threat Labsは、2026年5月にVirusTotalで怪しいmacOSサンプルが確認された後、この脅威を発見しました。調査により、Werkbit Setupと呼ばれる公証済みのドロッパーと検出を回避するためにアドホック署名を使用するペイロードを含む、多段階感染チェーンが明らかになりました。アナリストはまた、マルウェアがセキュリティツールをプロファイリングし、感染したホストから広範なユーザーデータを収集していることを確認しました。
緩和策
組織は、 /private/tmp/のような隠されたパスからの疑わしいアプリケーションの起動を監視するべきです。このような文脈で現れる場合、 dscl -authonly and xattr -cr といったコマンドの実行に対する検出ルールを作成する必要があります。また、既知の悪質なドメインをブロックし、 ~/.cache/ 内の特異な命名パターンを持つ大きな暗号化ZIPアーカイブを監視することも、データ漏洩を阻止するのに役立ちます。
対応策
CrashStealerが検出された場合、さらなるデータの盗難を防ぐために、影響を受けたmacOSエンドポイントを直ちに隔離してください。盗まれた情報の範囲を評価するために、 ~/.cache/com.apple.crashreporter/ ディレクトリのフォレンジック分析を行うべきです。特にキーチェーンの内容とブラウザに保存されたパスワードを含む、ユーザーの認証情報は完全に侵害されたものとして扱ってください。
攻撃フロー
検出
Base64エンコードされた文字列の操作の可能性 [MacOS] (コマンドライン経由)
表示
変更されたアプリケーションバンドルの強制コード署名 (コマンドライン経由)
表示
手動でのキーチェーンアンロック試行の可能性 (コマンドライン経由)
表示
dscl認証のみを使用したMacOS認証情報検証 (コマンドライン経由)
表示
CrashStealerの既知C2およびGitHubリポジトリを介した情報漏洩 [Windowsネットワーク接続]
表示
macOSでのCrashStealer活動の検出 [Linuxプロセス作成]
表示
シミュレーション実行
前提条件:テレメトリとベースラインの事前チェックが完了していること。
理由:このセクションは、TTP(敵対的手法)の正確な実行を詳述しており、検出ルールをトリガーするように設計されています。コマンドと記述は、特定されたTTPを直接反映し、検出ロジックが期待する正確なテレメトリを生成することを目指します。抽象的または関連のない例は、誤診を招くでしょう。
-
攻撃の流れとコマンド: 攻撃者はmacOSベースの情報窃取ツール(CrashStealer)を展開しようとしています。最初の検出を回避し、環境を準備するために、攻撃者は最初にマルウェアから拡張属性を取り除き、隔離を避けます(
xattr -cr)。次に、dsclを使ってローカルユーザーの認証情報を検証し、十分な権限があるか確認します(dscl -authonly)。永続性とシステム統合を確保するために、悪意のあるサービスをLaunch Servicesに登録します(lsregister -f)。最後に、バックグラウンドでペイロードを実行し、ユーザーインターフェースから隠れるようにします(open -g -n)。この一連の手順は、正当なシステム管理を模倣しながら悪意のあるタスクを実行するように設計されています。 -
回帰テストスクリプト:
#!/bin/bash # CrashStealerシミュレーションスクリプト # このスクリプトは、検出ルールで定義された特定のコマンドパターンを実行します。 echo "[+] CrashStealerシミュレーションを開始します..." # 1. 拡張属性をクリア (T1027.005) echo "[+] ステップ1:拡張属性をクリアしています..." xattr -cr /tmp/dummy_malware_file 2>/dev/null || echo "[!] xattr失敗 (ファイルが存在しない場合は予期される出力)" # 2. 資格情報を検証 (T1556.002) echo "[+] ステップ2:dsclを使って資格情報を検証しています..." dscl -authonly /Users/$(whoami) || echo "[!] dscl失敗 (有効なコンテキストが必要)" # 3. Launch Servicesに登録 (T1546.015) echo "[+] ステップ3:サービスを登録しています..." lsregister -f /tmp/dummy_app.app 2>/dev/null || echo "[!] lsregister失敗" # 4. バックグラウンドでプロセスを起動 (T1056) echo "[+] ステップ4:バックグランドでプロセスを起動しています..." open -g -n /Applications/Calculator.app 2>/dev/null || echo "[!] open失敗" echo "[+] シミュレーション完了。" -
クリーンアップコマンド:
# シミュレーション中に作成されたダミーファイルをすべて削除します rm -f /tmp/dummy_malware_file rm -f /tmp/dummy_app.app echo "[+] クリーンアップ完了。"