Threat Intelligence
CHAD enriches alerts with threat intelligence (TI) from multiple sources. This helps analysts quickly assess whether IOCs (Indicators of Compromise) are known threats.Supported Sources
CHAD integrates with 8 threat intelligence providers:| Source | IOC Types | Free Tier |
|---|---|---|
| VirusTotal | Hashes, domains, IPs, URLs | Limited |
| AbuseIPDB | IP addresses | Yes |
| MISP | All IOC types | Self-hosted |
| GreyNoise | IP addresses | Limited |
| ThreatFox | Hashes, IPs, domains | Yes |
| abuse.ch | Hashes, URLs | Yes |
| AlienVault OTX | All IOC types | Yes |
| PhishTank | URLs | Yes |
How Enrichment Works
When an alert fires:- IOC Extraction - CHAD extracts IPs, domains, hashes, URLs from the log
- TI Lookup - Each IOC is checked against enabled sources
- Result Aggregation - Results combined into overall risk score
- Alert Enrichment - TI data attached to the alert
Configuring TI Sources
Global Settings
- Navigate to Settings > Threat Intelligence
- Enable sources you want to use
- Enter API keys where required
- Save configuration
Per-Source Settings
VirusTotal
- Get an API key
- Enter in CHAD settings
- Enable hash, domain, IP, and/or URL lookups
Free tier: 4 requests/minute, 500/day. Consider premium for production.
AbuseIPDB
- Create an account
- Get API key from account settings
- Enter in CHAD
MISP
- Self-host MISP or use a provider
- Generate API key in MISP
- Enter MISP URL and key in CHAD
GreyNoise
- Create account
- Get API key
- Enter in CHAD
ThreatFox (abuse.ch)
- Get API key
- Enter in CHAD
AlienVault OTX
- Create account
- Get API key from settings
- Enter in CHAD
PhishTank
- Register
- Get API key
- Enter in CHAD
Per-Index Configuration
Enable TI for specific index patterns:- Open the index pattern
- Click Threat Intelligence
- Select which sources to use
- Map fields for IOC extraction
IOC Field Mapping
Tell CHAD where to find IOCs in your logs:| IOC Type | Field Examples |
|---|---|
| IP Address | source.ip, destination.ip, client.ip |
| Domain | dns.question.name, url.domain |
| URL | url.original, url.full |
| Hash (MD5) | file.hash.md5 |
| Hash (SHA1) | file.hash.sha1 |
| Hash (SHA256) | file.hash.sha256 |
Understanding Results
Risk Levels
| Level | Meaning |
|---|---|
| Unknown | No data from any source |
| Clean | Explicitly marked safe |
| Suspicious | Some indicators of risk |
| Malicious | Known bad IOC |
Aggregated Score
CHAD combines results from multiple sources:- Multiple “malicious” ratings → High confidence
- Mixed results → Requires analyst judgment
- All “clean” → Likely safe (but verify)
Per-Source Details
Each source provides additional context:- Categories - Malware, phishing, C2, etc.
- Tags - Specific threat names
- First/Last seen - Timeline of activity
- Reports - Number of reports or detections
Viewing Enrichment
In the alert detail view:- Open an alert
- Scroll to Threat Intelligence
- See overall risk and per-IOC details
- Click IOCs for source-specific information
Rate Limiting
TI sources have rate limits. CHAD handles this by:- Caching results (configurable TTL)
- Queuing lookups during high volume
- Falling back gracefully when limits hit
Cache Settings
Configure in Settings > Threat Intelligence:| Setting | Default | Description |
|---|---|---|
| Cache TTL | 24 hours | How long to cache results |
| Negative Cache | 1 hour | Cache “not found” results |
Private IOC Lists
Beyond public TI, you can import private IOC lists:- Go to Settings > Threat Intelligence > Custom Lists
- Upload CSV with IOCs
- Assign categories and risk levels
- These are checked alongside public sources
Best Practices
Start with free sources
Start with free sources
abuse.ch, PhishTank, and AbuseIPDB free tiers are good starting points.
Balance coverage and cost
Balance coverage and cost
More sources = better coverage but higher API costs.
Use appropriate caching
Use appropriate caching
Balance freshness vs API usage with cache TTL.
Map all relevant fields
Map all relevant fields
More IOC extraction = better enrichment coverage.
Review unknown IOCs
Review unknown IOCs
“Unknown” doesn’t mean safe—it means no data available.
Troubleshooting
No enrichment appearing
- Check TI sources are enabled
- Verify API keys are valid
- Check field mappings for IOC extraction
- Verify index pattern has TI enabled
API errors
- Check API key validity
- Review rate limit status
- Verify network connectivity
- Check source-specific error messages
Stale data
- Reduce cache TTL
- Clear cache manually if needed
- Check source API for updates