Skip to content

คู่มือเชื่อมต่อ Threat Intelligence Feeds

รหัสเอกสาร: TI-FEEDS-001
เวอร์ชัน: 1.0
อัปเดตล่าสุด: 2026-02-15
เจ้าของ: SOC Engineer / Threat Intel Analyst


วัตถุประสงค์

คู่มือนี้ให้คำแนะนำขั้นตอนการเชื่อมต่อ Threat Intelligence (TI) feeds เข้ากับโครงสร้าง SOC ครอบคลุมทั้งฟรี, open-source, และ commercial พร้อมตัวอย่าง config สำหรับ SIEM/SOAR หลัก


TI Feeds ที่แนะนำ

ฟรี & Open Source

Feed ประเภท ความถี่ Format API Key ใช้สำหรับ
AlienVault OTX IP, Domain, Hash, URL Real-time STIX/JSON ✅ ฟรี Threat intel ทั่วไป
AbuseIPDB IP reputation Real-time JSON ✅ ฟรี Brute force, scanning
URLhaus Malicious URLs ทุก 5 นาที CSV/JSON URL กระจาย malware
MalwareBazaar ตัวอย่าง malware Real-time JSON ค้นหา hash
ThreatFox IOCs Real-time JSON C2, botnet
Feodo Tracker Botnet C2 IPs รายวัน CSV/JSON Banking trojan C2
MISP Default Feeds IOC รวม แตกต่างกัน MISP JSON แชร์ข้อมูลภัยครอบคลุม
PhishTank Phishing URLs รายชั่วโมง JSON/CSV ✅ ฟรี ตรวจจับ phishing

Commercial (แนะนำ)

Feed ความเชี่ยวชาญ เชื่อมต่อ
VirusTotal Multi-engine file/URL/IP ทุก SIEM, EDR, SOAR
Recorded Future Risk scoring, APT tracking Splunk, XSOAR, QRadar
CrowdStrike APT attribution CrowdStrike, Splunk
Mandiant APT campaigns Splunk, Sentinel, XSOAR

สถาปัตยกรรมการเชื่อมต่อ

graph TB
    subgraph "แหล่ง TI"
        OTX[AlienVault OTX]
        ABUSE[abuse.ch feeds]
        MISP[MISP Platform]
        VT[VirusTotal]
    end

    subgraph "TI Platform"
        MISP_LOCAL[MISP Instance]
        OTX --> MISP_LOCAL
        ABUSE --> MISP_LOCAL
        MISP --> MISP_LOCAL
        VT --> MISP_LOCAL
    end

    subgraph "ผู้ใช้งาน"
        SIEM[SIEM]
        SOAR[SOAR]
        FW[Firewall<br>Auto-block]
        EDR[EDR<br>Hash blocklist]
    end

    MISP_LOCAL --> SIEM
    MISP_LOCAL --> SOAR
    MISP_LOCAL --> FW
    MISP_LOCAL --> EDR

คำแนะนำการติดตั้ง

1. MISP — ศูนย์กลาง TI

# Deploy ด้วย Docker (แนะนำ)
git clone https://github.com/MISP/misp-docker.git
cd misp-docker
cp template.env .env
# แก้ไข .env ตามต้องการ
docker-compose up -d

เปิด default feeds: 1. เข้า MISP Web UI → Sync Actions → Feeds 2. คลิก Load default feed metadata 3. เปิด: CIRCL OSINT, Botvrij.eu, URLhaus, abuse.ch 4. ตั้ง Pull frequency: ทุก 1 ชั่วโมง 5. คลิก Fetch and store all feeds

2. AlienVault OTX

# Python — ดึง OTX pulses
from OTXv2 import OTXv2, IndicatorTypes

API_KEY = "your_otx_api_key"
otx = OTXv2(API_KEY)

pulses = otx.getall(modified_since="2026-02-08")
for pulse in pulses:
    print(f"Pulse: {pulse['name']}")
    for indicator in pulse['indicators']:
        print(f"  {indicator['type']}: {indicator['indicator']}")

3. abuse.ch Feeds

# Cron สำหรับดึง feed อัตโนมัติ
*/5 * * * * curl -s https://urlhaus.abuse.ch/downloads/csv_recent/ \
  | tail -n +10 > /opt/ti/urlhaus_recent.csv

0 * * * * curl -s -X POST https://mb-api.abuse.ch/api/v1/ \
  -d "query=get_recent&selector=time" \
  -o /opt/ti/malwarebazaar_recent.json

0 6 * * * curl -s https://feodotracker.abuse.ch/downloads/ipblocklist_recommended.txt \
  > /opt/ti/feodo_c2_ips.txt

4. AbuseIPDB

import requests

API_KEY = "your_abuseipdb_key"

def check_ip(ip):
    resp = requests.get(
        "https://api.abuseipdb.com/api/v2/check",
        headers={"Key": API_KEY, "Accept": "application/json"},
        params={"ipAddress": ip, "maxAgeInDays": 90}
    )
    data = resp.json()["data"]
    return {
        "ip": data["ipAddress"],
        "score": data["abuseConfidenceScore"],
        "country": data["countryCode"],
        "reports": data["totalReports"]
    }

รูปแบบเชื่อมต่อ SIEM

Elastic / OpenSearch

filebeat.modules:
  - module: threatintel
    abuseurl:
      enabled: true
      interval: 5m
    misp:
      enabled: true
      var.url: "https://misp.local"
      var.api_token: "${MISP_API_TOKEN}"
      interval: 1h
    otx:
      enabled: true
      var.api_token: "${OTX_API_KEY}"
      interval: 1h

Splunk

[threatlist://urlhaus]
url = https://urlhaus.abuse.ch/downloads/csv_recent/
type = ip
weight = 3
interval = 300

[threatlist://feodo_c2]
url = https://feodotracker.abuse.ch/downloads/ipblocklist_recommended.txt
type = ip
weight = 5
interval = 86400

Microsoft Sentinel

let TI_IPs = ThreatIntelligenceIndicator
    | where Active == true and ExpirationDateTime > now()
    | where isnotempty(NetworkIP)
    | summarize by NetworkIP;

CommonSecurityLog
| where TimeGenerated > ago(1d)
| where DestinationIP in (TI_IPs) or SourceIP in (TI_IPs)
| project TimeGenerated, SourceIP, DestinationIP, DeviceAction

วงจร Feed Management

ขั้นตอน การดำเนินการ ความถี่
Ingest ดึง feeds เข้า MISP/SIEM ตาม feed schedule
Normalize แปลงเป็น STIX 2.1 เมื่อ ingest
Score ให้ confidence score เมื่อ ingest
Correlate จับคู่กับ logs/alerts Real-time
Expire ลบ IOC ที่เก่า (default: 90 วัน) รายวัน
Review ตรวจ false positive rate รายเดือน
Prune ปิด feed คุณภาพต่ำ รายไตรมาส

Feed Quality Assessment

Feed ประเภท Volume/วัน FP Rate Actionable? ค่าใช้จ่าย
AlienVault OTX Open ~1,000 IoCs 15–25% ปานกลาง ฟรี
Abuse.ch (URLhaus/ThreatFox) Open ~500 5–10% สูง ฟรี
MISP Community Open ~200 10–15% สูง ฟรี
VirusTotal Commercial Unlimited < 5% สูงมาก $$$
Recorded Future Commercial ~2,000 < 3% สูงมาก $$$

TI Feed Integration Architecture

graph TD
    Feeds["📡 TI Feeds"] --> MISP["🔄 MISP (Aggregator)"]
    MISP --> Enrich["📊 Enrich + Dedup"]
    Enrich --> SIEM["🖥️ SIEM (Correlation)"]
    Enrich --> EDR["🛡️ EDR (Block)"]
    Enrich --> FW["🔥 Firewall (Block)"]
    SIEM --> Alert["⚠️ Alert"]
    Alert --> SOAR["🤖 SOAR"]

Feed Lifecycle Management

กิจกรรม ความถี่
ทบทวน feed quality + FP rate รายเดือน
ลบ IoCs ที่หมดอายุ อัตโนมัติ (TTL)
ประเมิน feed ใหม่ รายไตรมาส
ทบทวน commercial feed ROI รายปี

Feed Performance Tracking

Feed IOCs/Day Match Rate Action
MISP Community 500+ 2-5% Block + Alert
OTX 1,000+ 1-3% Enrich
Abuse.ch 200+ 5-10% Block
Commercial TI 100+ 10-20% Priority alert

Feed ROI Assessment

Feed Cost/Year Detections/Month Cost/Detection
Commercial A 500K THB 50 10K THB
Commercial B 300K THB 25 12K THB
Open Source Free 15 Free

เอกสารที่เกี่ยวข้อง