logo-text
---PUPAM---

Tự Động Hóa Ticket Sự Cố Bảo Mật với n8n

2025-05-10

n8nTự động hóaSecOpsSecurity IncidentITSMSOC

Trong lĩnh vực bảo mật thông tin, tốc độ phản hồi là yếu tố then chốt. Khi một alert được gửi về hệ thống quản lý sự cố như Jira, ServiceNow hay TheHive, analyst thường phải làm giàu dữ liệu (data enrichment) thủ công để điều tra thêm — từ kiểm tra IP, tra cứu domain, đến xác định thông tin người dùng liên quan.

Với n8n, bạn có thể tự động hóa hoàn toàn quy trình này, giảm tải cho SOC analyst và rút ngắn thời gian phản ứng trước mối đe dọa.


Mục Tiêu

  • Tự động hóa quy trình enrichment khi có ticket mới
  • Kết nối với các nguồn dữ liệu bảo mật như VirusTotal, AbuseIPDB, WhoisXML, LDAP, v.v.
  • Ghi chú enrich trực tiếp vào hệ thống ticket
  • Gửi cảnh báo cho analyst qua Slack/Email

Ví Dụ Kịch Bản: Alert Từ SIEM Sinh Ra Ticket

Mô tả:
Một alert từ SIEM (ví dụ: IP đáng ngờ đăng nhập SSH) được gửi đến Jira. n8n sẽ:

  1. Lắng nghe ticket mới qua webhook
  2. Trích xuất địa chỉ IP từ nội dung ticket
  3. Gọi API VirusTotal để kiểm tra mức độ độc hại
  4. Gọi AbuseIPDB để xem tần suất bị báo cáo
  5. Truy xuất người dùng login liên quan từ Active Directory
  6. Cập nhật lại ticket Jira kèm thông tin enrich
  7. Gửi tin nhắn cảnh báo qua Slack cho đội SOC

Chi Tiết Workflow Trên n8n

🟢 Trigger Node: Jira Webhook

  • Loại: Webhook (POST)
  • Mục đích: Nhận sự kiện khi có ticket mới từ Jira
  • Thiết lập: Tạo webhook URL và cấu hình trên Jira để gửi payload khi có ticket mới thuộc project "SECINC"
{
  "issue": {
    "fields": {
      "summary": "Suspicious IP login detected",
      "description": "Alert from SIEM. IP: 185.220.101.1",
      "customfield_user": "john.doe"
    }
  }
}

🔍 Extract IP từ Description

Dùng node Set kết hợp Regex để tách IP:

const matches = $json["issue.fields.description"].match(/\b\d{1,3}(\.\d{1,3}){3}\b/);
return { ip: matches ? matches[0] : null };

🧪 Enrichment: VirusTotal Lookup

  • Node: HTTP Request

  • Method: GET

  • URL: https://www.virustotal.com/api/v3/ip_addresses/{{$json.ip}}

  • Headers:

    {
      "x-apikey": "YOUR_VIRUSTOTAL_API_KEY"
    }
    
  • Phân tích kết quả: Trích thông tin "last_analysis_stats""reputation"


⚠️ AbuseIPDB Check

  • Node: HTTP Request

  • Method: GET

  • URL: https://api.abuseipdb.com/api/v2/check?ipAddress={{$json.ip}}

  • Headers:

    {
      "Key": "YOUR_ABUSEIPDB_API_KEY",
      "Accept": "application/json"
    }
    
  • Dữ liệu lấy: "abuseConfidenceScore", "totalReports", "lastReportedAt"


👤 Lookup User Info (LDAP or HR API)

  • Node: HTTP Request hoặc LDAP Node
  • Input: Username từ Jira custom field
  • Output: Email, bộ phận, vị trí, thiết bị sử dụng gần nhất, v.v.

📌 Cập Nhật Lại Jira Ticket

  • Node: HTTP Request
  • Method: PUT/PATCH
  • URL: https://your-domain.atlassian.net/rest/api/3/issue/{{ticket_id}}
  • Body: Gộp thông tin enrich lại thành 1 comment hoặc cập nhật description
{
  "update": {
    "comment": [
      {
        "add": {
          "body": "*IP 185.220.101.1*:\n- VT Reputation: -5\n- Abuse Score: 92%\n- User: John Doe (IT Dept)\n- Action Recommended: Escalate to Tier 2"
        }
      }
    ]
  }
}

🔔 Gửi Thông Báo Qua Slack

  • Node: Slack

  • Message:

    🚨 [SEC Incident] New ticket enriched  
    • IP: 185.220.101.1  
    • VT Reputation: -5  
    • Abuse Score: 92%  
    • User: John Doe  
    → Jira: https://your-jira-instance/browse/SECINC-1023
    

Sơ Đồ Workflow (Gợi ý minh họa)

[Jira Webhook] 
      ↓
 [Extract IP] 
      ↓
[VT Lookup] → [AbuseIPDB] → [User Lookup]
      ↓              ↓           ↓
   [Gộp dữ liệu enrich] 
      ↓
 [Update Jira] → [Send Slack Alert]

Lưu Ý Bảo Mật Khi Dùng n8n

  • Không lưu API key trong code cứng → Dùng Credential Manager
  • Đặt xác thực webhook → Chỉ cho phép từ IP hệ thống nội bộ
  • Giới hạn quyền n8n → Chỉ có quyền cần thiết trong Jira hoặc Slack
  • Ghi log audit → Log các request outbound và kết quả enrich

Kết Luận

Việc tự động hóa enrichment ticket bảo mật không chỉ giúp tiết kiệm thời gian mà còn nâng cao chất lượng phân tích và phản ứng sự cố. Với n8n, bạn có thể xây dựng toàn bộ quy trình này bằng giao diện kéo thả, tích hợp dễ dàng với bất kỳ API nào.

Hãy bắt đầu với một kịch bản đơn giản và mở rộng dần theo nhu cầu của SOC bạn!



2025 © PUPAM. All rights reserved. Một sản phẩm của Việt NIS