Automated Cyber Threat Intelligence Pipeline with Live Threat Dashboard
AlienVault OTX Β· AbuseIPDB Β· URLhaus Β· Splunk Correlator
A fully automated Cyber Threat Intelligence (CTI) pipeline that:
Built to demonstrate SOC Tier 2 and CTI Analyst level skills for enterprise blue team environments.
| Feature | Description |
|---|---|
| π Multi-Feed Collection | Pulls IOCs from OTX, AbuseIPDB, URLhaus simultaneously |
| π Splunk Correlation | Matches IOCs against real Splunk log events via REST API |
| π Live Dashboard | Real-time threat feed with severity classification |
| π Threat Origin Map | Visualizes attacker geographic distribution |
| β‘ Auto Severity | Classifies alerts as CRITICAL / HIGH / MEDIUM / LOW |
| π Demo Mode | Works fully offline without API keys |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CTI AUTOMATION PLATFORM β
ββββββββββββββββ¬βββββββββββββββ¬ββββββββββββββββββββββββ€
β AlienVault β AbuseIPDB β URLhaus β
β OTX β Blacklist β Malicious URLs β
ββββββββ¬ββββββββ΄βββββββ¬ββββββββ΄βββββββββββ¬βββββββββββββ
β β β
ββββββββββββββββΌβββββββββββββββββββ
feeds/collector.py
(IOC Aggregator + Deduplication)
β
βΌ
data/iocs.json βββββ Stored IOCs
β
βΌ
correlator/splunk_correlator.py
(Splunk REST API / Offline Correlation)
β
βΌ
data/correlation_hits.json
β
βΌ
dashboard/index.html
(Live Threat Intelligence Dashboard)
cti-platform/
βββ feeds/
β βββ collector.py # IOC collection from 3 threat feeds
βββ correlator/
β βββ splunk_correlator.py # Splunk REST API correlation engine
βββ dashboard/
β βββ index.html # Live dark-themed threat dashboard
βββ data/
β βββ iocs.json # Collected IOCs (auto-generated)
β βββ correlation_hits.json # Alert matches (auto-generated)
β βββ sample/
β βββ sample_logs.json # Sample log events for demo
βββ main.py # Main orchestrator
βββ requirements.txt # Python dependencies
βββ README.md
git clone https://github.com/ibu-cyx0/cti-automation-platform
cd cti-automation-platform
pip install -r requirements.txt
export OTX_API_KEY="your_otx_key_here"
export ABUSEIPDB_API_KEY="your_abuseipdb_key_here"
# URLhaus requires no API key
# Demo mode (no API keys needed)
python main.py
# Live mode (with API keys + Splunk)
export SPLUNK_HOST="localhost"
export SPLUNK_USER="admin"
export SPLUNK_PASS="yourpassword"
python main.py
Open dashboard/index.html in your browser
| Feed | Type | Data | API Required |
|---|---|---|---|
| AlienVault OTX | Community | IPs, Domains, Hashes, URLs | β Free |
| AbuseIPDB | Crowd-sourced | Malicious IPs with confidence score | β Free |
| URLhaus | Malware | Active malware delivery URLs | β No key |
# Detect IOC match in firewall logs
index=firewall (src_ip="185.220.101.47" OR dest_ip="185.220.101.47")
| table _time, src_ip, dest_ip, action, host
# Correlate all blocked IPs against IOC list
index=* action=blocked
| lookup ioc_lookup ip AS src_ip OUTPUT threat_name, severity
| where isnotnull(threat_name)
| stats count BY src_ip, threat_name, severity
# Detect outbound connections to known C2 domains
index=proxy_logs
| rex field=url "(?P<domain>[^/]+)"
| lookup ioc_lookup domain AS domain OUTPUT threat_name
| where isnotnull(threat_name)
| table _time, src_ip, url, threat_name
/services/search/jobs/export)Mohamed Ibrahim H
EC-Council Certified SOC Analyst (CSA) | Splunk Core Certified User | Cisco Cyber Ops Associate
MIT License β free to use, modify, and distribute.