Skip to content

Repository files navigation

IRIS — Threat Intelligence Correlator & Alert Engine

PythonLicensePlatformVersion

IRIS is an automated threat intelligence aggregation, correlation, and alerting platform built for red teams and security operations. It pulls from 8+ industry TI feeds, cross-references indicators against your target scope, correlates findings across sources, and generates actionable alerts.


Features

  • Multi-Feed Aggregation — VirusTotal, Shodan, AbuseIPDB, URLhaus, abuse.ch, Phishtank, Tor Exit Nodes, Censys
  • Correlation Engine — detect shared ASNs, registrants, infrastructure across feeds; confidence-scored results
  • Continuous Monitoring — watch targets in the background; alert on new findings
  • Historical Database — SQLite (default) or PostgreSQL; full indicator history and trend analysis
  • Rich CLI — colorized output, tables, progress bars
  • Multi-Channel Alerting — Email, Slack, Discord, syslog
  • Web Dashboard — optional browser UI for real-time feed status, alerts, correlation visualization
  • Flexible Scope — JSON/YAML scope files with IPs, CIDRs, domains, hashes

Installation

git clone https://github.com/xdrew87/iris.git
cd iris
pip install -r requirements.txt

Quick Start

# Initialize your workspace (creates config.yaml)
python src/main.py init
# Scan a single indicator
python src/main.py scan 1.2.3.4
python src/main.py scan malware.example.com
python src/main.py scan d41d8cd98f00b204e9800998ecf8427e
# Correlate a scope file
python src/main.py correlate --scope scope.json
# Watch targets continuously
python src/main.py watch --scope scope.json
# Generate a report
python src/main.py report --format json --output report.json
# Launch web dashboard
python src/main.py dashboard --port 8080

Configuration

Copy config.yaml and fill in your API keys — or set them as environment variables (recommended):

FeedEnvironment Variable
VirusTotalIRIS_VT_API_KEY
ShodanIRIS_SHODAN_API_KEY
AbuseIPDBIRIS_ABUSEIPDB_API_KEY
CensysIRIS_CENSYS_API_ID + IRIS_CENSYS_API_SECRET
Slack AlertIRIS_SLACK_WEBHOOK
DiscordIRIS_DISCORD_WEBHOOK

URLhaus, abuse.ch, Phishtank, and Tor exit nodes require no API key.


Scope File Format

{
"targets": [
{"type": "ip", "value": "1.2.3.4", "label": "C2 Server"},
{"type": "domain", "value": "evil.example.com"},
{"type": "hash", "value": "d41d8cd98f00b204e9800998ecf8427e", "label": "Malware Sample"}
]
}

Output Example

╔══════════════════════════════════════════════╗
║ IRIS Threat Intelligence Report ║
╚══════════════════════════════════════════════╝
Target: 1.2.3.4
─────────────────────────────────────────────
Feed Status Confidence Flags
VirusTotal MALICIOUS 92% Malware C2
AbuseIPDB MALICIOUS 87% SSH Brute Force
Shodan INFO — Port 22,80,443
Tor Exit FLAGGED 100% Known Exit Node
Correlation: AbuseIPDB + VirusTotal = Same ASN AS12345
Overall Confidence: 89% — HIGH RISK

Docker

docker-compose up

Contributing

See CONTRIBUTING.md.

Security

See SECURITY.md to report vulnerabilities.

License

MIT © 2026 xdrew87

Releases

Packages

Used by

Contributors

Languages