フィッシングの手がかりは/tmpフォルダに隠される
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
macOSユーザーは偽の「macOSプロテクションサービス」プロンプトに騙され、パスワードを入力し、これによりMacSync情報スティーラーの配信が引き起こされました。マルウェアはChromeやSafariのクッキー、Apple Keychainの記録、暗号通貨ウォレットデータ、その他のローカルファイルを収集し、それらを/tmp/salmonela/に配置しました。 /tmp/salmonela/その後、盗まれた情報はアーカイブに圧縮され、隠されたコマンド・アンド・コントロールドメインにcurlを使って送信され、アーカイブは削除されました。Huntressは侵入を検出し、エンドポイントを隔離してデータ窃盗の試みを阻止しました。
調査
Huntress SOCは、影響を受けたMac上のネイティブcurlバイナリがZIPアーカイブをアップロードしている疑わしい活動を特定しました。アナリストは、攻撃がLOOBinsに依存していることを確認し、ペイロードをMacSyncインフォスティーラーに帰結しました。通信のホストをネットワークから切断し、一時的なステージングフォルダを削除することで、封じ込めが達成されました。調査者は、エンドポイントが隔離された後、追加の横移動の兆候を見つけませんでした。
緩和策
推奨される防御策には、ユーザーに偽のシステムダイアログを見抜くトレーニングを施し、不要なローカル管理者権限を減らし、macOSに管理されたEDRを展開し、侵害後のクレデンシャルを回転させることが含まれます。curlによる大規模なアップロードを監視し、許可されていない外部接続を制限することで、さらなる露出を減らすことができます。定期的な監査とKeychainアクセスポリシーの強化が別の保護層を加えます。
対応
この活動が検出された場合、直ちにエンドポイントを隔離し、悪意のあるプロセスを停止し、/tmpディレクトリを削除してください。残存するアーティファクトを特定するためのフォレンジックレビューを実施し、露出されたクレデンシャルをリセットし、アクティブなセッションを無効化してください。類似のLOOBinの悪用を捉えるために検出コンテンツを更新し、不慣れなドメインへのアウトバウンドPOSTトラフィックを監視してください。 /tmp/salmonela/ directory. Perform a forensic review to identify any remaining artifacts, reset exposed credentials, and invalidate active sessions. Update detection content to catch similar LOOBin abuse and monitor outbound POST traffic to unfamiliar domains.
"graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#cccccc classDef file fill:#aaffaa classDef operator fill:#ff9900 %% Action nodes action_user_execution["<b>Action</b> – <b>T1204 ユーザー実行</b><br/>被害者が偽のmacOSプロテクションサービスダイアログにだまされてデバイスのパスワードを入力します。"] class action_user_execution action action_input_capture["<b>Action</b> – <b>T1056.002 入力キャプチャ: GUI入力キャプチャ</b><br/>悪意のあるプロンプトが入力されたパスワードをキャプチャします。"] class action_input_capture action action_cred_dump["<b>Action</b> – <b>T1555.001 パスワードストアからのクレデンシャル: Keychain</b><br/>マルウェアがキャプチャされたパスワードを使用してmacOS Keychainから保存されたクレデンシャルをダンプします。"] class action_cred_dump action action_browser_discovery["<b>Action</b> – <b>T1217 ブラウザ情報の発見</b><br/>スティーラーがChromeとSafariのクッキー、保存されたログイン情報、その他のブラウザデータを収集します。"] class action_browser_discovery action action_archive["<b>Action</b> – <b>T1560.001 データのアーカイブ: ユーティリティによるアーカイブ</b><br/>収集されたファイルは/tmp/salmonela/でzipアーカイブに圧縮されます。"] class action_archive action action_obfuscate["<b>Action</b> – <b>T1027.015 隠ぺいされたファイルまたは情報: 圧縮</b><br/>アーカイブは収集されたデータを隠すために使用されます。"] class action_obfuscate action action_exfil["<b>Action</b> – <b>T1071.001 アプリケーションレイヤープロトコル: ウェブプロトコル</b><br/>zipアーカイブはcurlを介して遠隔のC2サーバーにHTTP/HTTPS経由で送信されます。"] class action_exfil action action_cleanup["<b>Action</b> – <b>T1070.004 インジケータの除去: ファイルの削除</b><br/>抽出後、マルウェアはアーカイブを削除して痕跡を隠します。"] class action_cleanup action %% Tool node tool_curl["<b>Tool</b> – <b>名前</b>: curl<br/><b>説明</b>: HTTP/HTTPS越しにデータを転送するために使用されるコマンドラインユーティリティ。"] class tool_curl tool %% File node file_archive["<b>ファイル</b> – <b>パス</b>: /tmp/salmonela/archive.zip<br/><b>タイプ</b>: 収集されたデータを含むZIPアーカイブ。"] class file_archive file %% Flow connections action_user_execution –>|につながる| action_input_capture action_input_capture –>|のパスワードをキャプチャするために| action_cred_dump action_cred_dump –>|アクセス可能にするために| action_browser_discovery action_browser_discovery –>|データ提供のために| action_archive action_archive –>|作成| file_archive action_obfuscate –>|に適用するため| file_archive action_exfil –>|抽出ため| file_archive action_exfil –>|使用するため| tool_curl action_cleanup –>|削除| file_archive "
攻撃フロー
シミュレーション環境とコンテキスト
-
テスト中のTTP:
- T1056.002: 入力キャプチャ – ウェブフォーム
- T1204.004: ユーザー実行 – 悪意のあるファイル
- T1548.004: エレベーション制御メカニズム – ユーザーアクセス制御の回避
- T1555.002: ウェブブラウザからのクレデンシャル – パスワード抽出
- T1556.004: 認証プロセスの修正 – ドメイントラストの修正
-
TTPコンテキストと関連性:
- T1056.002 – インフォスティーラーはウェブフォームに入力されたクレデンシャルを収集し、それらをステージングフォルダに保存します。
- T1204.004 – 悪意のあるバイナリはユーザーによって実行されます(通常は偽装されたインストーラーを経由)。
- T1548.004 – 脅威はmacOSのサンドボックスを回避するために、より高い権限で圧縮ステップを実行することを試みる場合があります。
- T1555.002 – 抽出されたブラウザパスワードは以下にファイルとして書き込まれます
/tmp/salmonela/. - T1556.004 – 高度なキャンペーンでは、攻撃者がデータ抽出前にローカルトラスト設定を変更することがありますが、このルールはデータステージングアクティビティに焦点を当てます。
-
対象環境:
- OS: macOS (Catalina 10.15以降)
- ロギング: Auditd + FSEvents (ファイルイベント収集) がSigmaルールを消費するSIEMに転送されます。
- セキュリティスタック: 一般的なSigma対応のSIEM(例:Elastic Stack, Splunk, Microsoft Sentinel)。
テレメトリ & ベースラインプレフライトチェック
理由: 攻撃をシミュレートする前に、ターゲットホストが必要なログを生成するように設定されていることを確認し、これらのログがSIEMに取り込まれ、検出ルールが無害なアクティビティに対して反応しないことを確認する必要があります。この検証がないと、テスト結果は信頼できません。
-
1. テレメトリ構成手順:
-
コマンドラインロギングのためにmacOS auditdを有効にする
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.auditd.plist sudo audit -s 1 # 監査を有効にする sudo audit -f /etc/security/audit_control # "flags:fc,ex"(ファイル作成と実行)が存在することを確認し、auditdを再起動します。 sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.auditd.plist sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.auditd.plist -
FSEvents(すでにmacOSに搭載済み)を有効化し、SIEMに転送する – macOS用のElastic FilebeatモジュールまたはSplunk Universal Forwarderを
fschange入力し、path: /tmp/が含まれるように設定します。 -
取り込みを検証 – SIEMで、パイプラインが稼働中であることを確認するため、過去5分以内に
/tmp/を含む任意のイベントに対して簡単なクエリを実行します。
-
-
2. 取り込み & ベースライン検証:
-
アクション(無害なテレメトリ): 以下に一時フォルダーを作成し、
/tmpで圧縮するtar(その際に正確なトリガーフレーズを含まない)。 not include the exact trigger phrase).# 類似のテレメトリを生成する無害なコマンド mkdir -p /tmp/salmonela_benign echo "benign data" > /tmp/salmonela_benign/sample.txt tar -czf /tmp/salmonela_benign.tar.gz -C /tmp salmonela_benign -
検証クエリ(取り込み): (Elastic用のKQL例)
filebeat-* | where file.path contains "/tmp/salmonela_benign" | where process.command_line contains "tar"このクエリは無害なイベントを返し、ログがSIEMに到達していることを確認しますが、 not 検出ルールと一致しない(「salmonelaのコンテンツをZippedした」文字列がないことを確認)。
-
シミュレーション実行
前提条件: テレメトリ & ベースラインプレフライトチェックが合格している必要があります。
理由: このセクションでは、検出ルールをトリガーするために設計された敵対者の技術(TTP)の正確な実行を詳述します。コマンドとナラティブは、指定されたTTPを直接反映し、検出ロジックが予期する正確なテレメトリを生成することを目的としています。抽象的または無関係な例は誤診を引き起こす可能性があります。
-
攻撃ナラティブ & コマンド:
- 初期侵害(T1204.004): 攻撃者は正規のインストーラーを装った悪意のあるmacOSバイナリを配信します。ユーザーがそれを実行し、バイナリプロセスに
/tmp. - クレデンシャル収集(T1056.002 & T1555.002): バイナリはユーザーのウェブブラウザーにキー・ロガーを挿入し、ログインフォームをキャプチャし、収集したクレデンシャルを
/tmp/salmonela/creds.txt. - 権限昇格の回避(T1548.004): バイナリは
sudoを既に設定されたポリシーで呼び出し、圧縮ステップをプロンプトなしで実行することを許可します。 - データステージング & 圧縮: 攻撃者はカスタムメッセージを bash コマンドでログし、ステージングフォルダを圧縮します。このコマンドラインは、文字列 and zipsのステージングフォルダ。正確なコマンドラインに文字列
"Zipped the contents of salmonela/"が含まれ、Sigma条件を満たします。
sudo bash -c "echo 'Zipped the contents of salmonela/' && zip -r /tmp/salmonela_archive.zip /tmp/salmonela/" - 初期侵害(T1204.004): 攻撃者は正規のインストーラーを装った悪意のあるmacOSバイナリを配信します。ユーザーがそれを実行し、バイナリプロセスに
-
リグレッションテストスクリプト: (上記のアクションを再現する自己完結型Bashスクリプト)
#!/usr/bin/env bash set -euo pipefail # 1. ステージングディレクトリを準備 STAGE_DIR="/tmp/salmonela" mkdir -p "$STAGE_DIR" # 2. クレデンシャルダンプのシミュレーション echo "user:example@example.com" > "$STAGE_DIR/creds.txt" echo "pass:SuperSecret123!" >> "$STAGE_DIR/creds.txt" # 3. コマンドラインに正確なトリガーフレーズを含めて圧縮 sudo bash -c "echo 'Zipped the contents of salmonela/' && zip -r /tmp/salmonela_archive.zip $STAGE_DIR/" echo "シミュレーション完了 - アラートが発生するはずです。" -
クリーンアップコマンド: (アーティファクトを削除してシステムを元に戻します)
#!/usr/bin/env bash set -euo pipefail rm -rf /tmp/salmonela rm -f /tmp/salmonela_archive.zip echo "クリーンアップ完了。"