ThreatRadar
ThreatRadar is an open-source, Docker-based threat intelligence pipeline that ingests IOCs from feeds like NVD, OTX, AbuseIPDB, and EmergingThreats, enriches them with MITRE ATT&CK and CVSS data, and scores them via Cortex analyzers (VirusTotal, AbuseIPDB, Maltiverse, IPinfo, Urlscan, HybridAnalysis). Its core focus is feed poisoning detection: a scikit-learn IsolationForest model flags statistically anomalous IOCs, which are then semantically validated by an LLM (GPT-4o via OpenRouter) against eight contradiction classes (e.g., APT-sector mismatches) before enriched, validated intel is pushed to MISP with TLP tagging, and analyst-confirmed sightings feed back into retraining the anomaly model.
What it is
ThreatRadar is a self-hosted, Dockerized threat-intelligence pipeline (nine sequential microservices) aimed at SOC/CTI teams. The summary covers its intent; this page adds the concrete deployment shape, the detection ordering, and the operational constraints an engineer needs before standing it up.
How it works
Poisoning detection is two-staged, not parallel: the scikit-learn IsolationForest (calibrated contamination scoring) runs first and flags statistically unusual IOCs; only those flagged then go to the GPT-4o (via OpenRouter) semantic check against 8 contradiction classes. The LLM returns one of three verdicts — COHERENT / SUSPICIOUS / CONTRADICTED — before anything reaches analyst queues. This gating matters for cost: the LLM is not called on every IOC.
IOCs are normalized into seven typed Elasticsearch indices (IP, URL, file hash, domain, CVE, ransomware family, crypto wallet), each routed to type-appropriate analyzers. Cortex scoring produces composite scores with CRITICAL/HIGH/MEDIUM/LOW tiers and recommended actions. MISP push includes TLP tags and distribution controls with configurable worker concurrency; a daily refresh re-syncs verdicts and requeues IOCs whose MISP events went missing. Analyst sightings drive incremental retraining with configurable signal thresholds and cooldown periods.
flowchart LR
A[Ingest feeds] --> B[Normalize into 7 ES indices]
B --> C[Enrich: MITRE/CVSS/actor]
C --> D[Cortex scoring]
D --> E{IsolationForest<br/>anomalous?}
E -->|no| G[Push to MISP<br/>+TLP tags]
E -->|yes| F{LLM: 8 classes<br/>COHERENT/SUSPICIOUS/CONTRADICTED}
F -->|coherent| G
F -->|contradicted| H[Held from queue]
G --> I[MISP sightings] --> J[Retrain model]
J -.feedback.-> EPreconditions / Affected
Running this requires:
- Python 3.11.x or 3.12.x
- Docker 24.x or later,
docker composev2.x - Windows: WSL2 only — native Windows is not supported.
External API keys are needed for the six Cortex analyzers (VirusTotal, AbuseIPDB, Maltiverse, IPinfo, Urlscan, HybridAnalysis) and OpenRouter/GPT-4o. All secrets are env-var injected; .gitignore excludes .env by default.
What to do
python3 --version # 3.11.x or 3.12.x required
docker --version # 24.x or later
docker compose version # v2.x required
git clone https://github.com/THREATRADAR-Pipeline/ThreatRadar.git
cd ThreatRadarFor running scripts outside Docker (local dev):
python3 -m venv venv
source venv/bin/activate
pip install -r elasticsearch/requirements.txt
pip install -r elasticsearch/poisoning_detection/requirements.txt
pip install -r misp/requirements.txtThe page explicitly warns: verify .gitignore excludes .env before pushing.
Caveats
Retention runs on a 180-day rolling window in Elasticsearch — transient IOCs expire automatically, though CVEs, ransomware families, and crypto wallets are kept as permanent reference data. Plan for that expiry if you expect long-lived history for other IOC types.
Technologies named here
- ThreatRadar
- Cortex
- MISP
- Elasticsearch
- Kibana
- Filebeat
- scikit-learn IsolationForest
- OpenRouter
- VirusTotal
- AbuseIPDB
- Maltiverse
- IPinfo
- URLScan
- Hybrid Analysis
- NVD
- AlienVault OTX
- AbuseIPDB feed
- Emerging Threats
- SSL Blacklist
- OpenPhish
- CERT Polska
- Ransomware.live
- Ransomwhere
- CISA KEV
- MITRE ATT&CK
- OWASP Top 10
- Docker / Docker Compose
- Docker
Techniques named here
- Feed poisoning
- Statistical anomaly detection
- LLM semantic validation
- IOC enrichment
- IOC scoring via analyzer orchestration
- Feedback-driven model retraining
- Data retention / index lifecycle management
Related in Threat Intel
Reverse Engineering the Six Stages of MacSync Stealer and RAT
AI-Coded Malware | Analyzing Vibe-Coded AD Enumeration | Huntress
