Intelligence Sources
Effective threat intelligence requires diverse, reliable sources. This guide covers commercial platforms, open-source tools, community feeds, and dark web monitoring resources.
Source Quality
Open Source Threat Feeds
π AlienVault OTX
Community-driven threat exchange with pulses containing IOCs and context.
otx.alienvault.comπ¦ MalwareBazaar
Malware sample repository by abuse.ch with daily updates and API access.
bazaar.abuse.chπ URLhaus
Database of malicious URLs used for malware distribution. Daily feeds available.
urlhaus.abuse.chπ Feodo Tracker
Tracks botnet C2 servers associated with Dridex, Emotet, TrickBot, QakBot.
feodotracker.abuse.chπ‘οΈ SSL Blacklist
SHA1 fingerprints of malicious SSL certificates used by botnets.
sslbl.abuse.chFetching Threat Feeds
# abuse.ch feeds
# MalwareBazaar recent samples
curl -s "https://mb-api.abuse.ch/api/v1/" -d "query=get_recent&selector=100"
# URLhaus recent URLs
curl -s "https://urlhaus.abuse.ch/downloads/csv_recent/"
# ThreatFox IOCs (last 7 days)
curl -s "https://threatfox-api.abuse.ch/api/v1/" -d '{"query":"get_iocs","days":7}'
# Feodo Tracker botnet C2s
curl -s "https://feodotracker.abuse.ch/downloads/ipblocklist.csv"
# AlienVault OTX
curl -s "https://otx.alienvault.com/api/v1/pulses/subscribed" \
-H "X-OTX-API-KEY: YOUR_API_KEY"
# VirusTotal file report
curl -s "https://www.virustotal.com/api/v3/files/SHA256" \
-H "x-apikey: YOUR_API_KEY"Government & Industry Sources
πΊπΈ CISA
Cybersecurity & Infrastructure Security Agency. Known Exploited Vulnerabilities (KEV), alerts, and advisories.
- β’ KEV Catalog: cisa.gov/known-exploited-vulnerabilities
- β’ Alerts: cisa.gov/uscert/ncas/alerts
πΊπΈ FBI IC3
Internet Crime Complaint Center. Public Service Announcements on cyber threats.
ic3.govπ¬π§ NCSC
UK National Cyber Security Centre. Threat reports, guidance, and weekly threat reports.
ncsc.gov.uk/threat-reportsποΈ MITRE ATT&CK
Knowledge base of adversary tactics and techniques based on real-world observations.
attack.mitre.orgπ FS-ISAC
Financial Services Information Sharing and Analysis Center. Financial sector threat sharing.
fsisac.comπ₯ H-ISAC
Health Information Sharing and Analysis Center. Healthcare sector threat intelligence.
h-isac.org# CISA Known Exploited Vulnerabilities (KEV)
curl -s "https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json" | jq '.vulnerabilities[:5]'
# CISA KEV - Filter by recent additions
curl -s "https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json" | \
jq '.vulnerabilities | sort_by(.dateAdded) | reverse | .[0:10]'
# NVD CVE feed
curl -s "https://services.nvd.nist.gov/rest/json/cves/2.0?resultsPerPage=5" | jq '.vulnerabilities'Commercial Intelligence Platforms
| Platform | Focus | Key Features |
|---|---|---|
| Recorded Future | All-source intelligence | Real-time alerts, dark web monitoring, NLP analysis |
| Mandiant Advantage | Threat actor tracking | Incident response expertise, actor profiles, malware analysis |
| CrowdStrike Falcon X | Adversary intelligence | Actor tracking, malware sandbox, automated analysis |
| Intel 471 | Cybercrime intelligence | Underground monitoring, malware intel, adversary tracking |
| Flashpoint | Risk intelligence | Dark web, fraud, physical security threats |
| Digital Shadows | Digital risk protection | Brand monitoring, data leak detection, attack surface |
| GreyNoise | Internet noise filtering | Mass scanning detection, benign traffic identification |
| Shodan | Attack surface | Internet-connected device search, vulnerability detection |
Open Source Intelligence Platforms
MISP
Open source threat intelligence platform for sharing, storing, and correlating IOCs.
OpenCTI
Open source platform for managing cyber threat intelligence knowledge and observables.
TheHive
Scalable security incident response platform with MISP and Cortex integration.
Cortex
Observable analysis and active response engine. Analyze IPs, domains, files, and more.
IntelOwl
Analyze files, domains, and IPs using multiple services at once.
Yeti
Platform to organize observables, indicators, and knowledge on threats.
Setting Up MISP
# Docker deployment
git clone https://github.com/MISP/misp-docker.git
cd misp-docker
cp template.env .env
# Edit .env with your settings
docker-compose up -d
# MISP PyMISP API usage
from pymisp import PyMISP
misp = PyMISP('https://misp.local', 'YOUR_API_KEY', ssl=False)
# Search for IOCs
results = misp.search(controller='attributes', value='192.168.1.1')
# Add an event
event = misp.new_event(
distribution=0,
info='Suspicious activity detected',
analysis=1,
threat_level_id=2
)
# Add attributes to event
misp.add_attribute(event, {'type': 'ip-dst', 'value': '192.168.1.100'})
misp.add_attribute(event, {'type': 'sha256', 'value': 'abc123...'})Setting Up OpenCTI
# Docker deployment
git clone https://github.com/OpenCTI-Platform/docker.git
cd docker
cp .env.sample .env
# Edit .env with your settings
docker-compose up -d
# OpenCTI Python client
from pycti import OpenCTIApiClient
api = OpenCTIApiClient(
url='http://localhost:8080',
token='YOUR_TOKEN'
)
# Search for malware
malware = api.malware.list(
filters=[{"key": "name", "values": ["Cobalt Strike"]}]
)
# Get indicators
indicators = api.indicator.list(first=50)
for ind in indicators:
print(f"{ind['pattern_type']}: {ind['pattern']}")Dark Web Monitoring
Monitor underground forums, marketplaces, and paste sites for threat intelligence relevant to your organization.
π What to Monitor
- β’ Credential dumps (employee emails)
- β’ Data breach announcements
- β’ Initial access broker listings
- β’ Ransomware victim announcements
- β’ Vulnerability discussions & exploits
- β’ Mentions of your organization
β οΈ Safety Considerations
- β’ Use dedicated VMs and Tor Browser
- β’ Never use work credentials
- β’ Don't interact or purchase
- β’ Document for legal purposes only
- β’ Consider commercial services
- β’ Know your legal boundaries
Paste Site Monitoring
# Search paste sites for leaked credentials
# Note: Use responsibly and legally
# Pastebin search (via Google)
site:pastebin.com "company.com" OR "company email"
# GitHub secret scanning
# Search for accidentally committed secrets
trufflehog git https://github.com/org/repo
# GitLeaks
gitleaks detect --source=/path/to/repo --report-format=json
# Dehashed API (requires subscription)
curl "https://api.dehashed.com/search?query=domain:company.com" \
-H "Accept: application/json" \
-u "email:api_key"
# Have I Been Pwned domain search
curl -s "https://haveibeenpwned.com/api/v3/breaches" \
-H "hibp-api-key: YOUR_API_KEY"
# Check if email is in breaches
curl -s "https://haveibeenpwned.com/api/v3/breachedaccount/user@company.com" \
-H "hibp-api-key: YOUR_API_KEY"Vendor Threat Reports
Security vendors publish valuable threat research. Key resources include:
Microsoft
Microsoft Threat Intelligence Blog, MSRC
Google TAG
Threat Analysis Group bulletins
Mandiant
M-Trends, threat research reports
CrowdStrike
Global Threat Report, adversary reports
Cisco Talos
Talos Intelligence blog
Unit 42
Palo Alto Networks threat research
Proofpoint
Threat Insight blog
Sophos
Sophos X-Ops research
Secureworks
Counter Threat Unit research
Building a Feed Aggregator
#!/usr/bin/env python3
"""Simple threat feed aggregator"""
import requests
import json
from datetime import datetime
FEEDS = {
'urlhaus': 'https://urlhaus.abuse.ch/downloads/json_recent/',
'feodo': 'https://feodotracker.abuse.ch/downloads/ipblocklist.json',
'threatfox': 'https://threatfox-api.abuse.ch/api/v1/'
}
def fetch_urlhaus():
resp = requests.get(FEEDS['urlhaus'])
data = resp.json()
return [{'type': 'url', 'value': u['url'], 'threat': u['threat']}
for u in data.get('urls', [])[:100]]
def fetch_feodo():
resp = requests.get(FEEDS['feodo'])
data = resp.json()
return [{'type': 'ip', 'value': e['ip_address'], 'threat': e['malware']}
for e in data]
def fetch_threatfox():
resp = requests.post(FEEDS['threatfox'], json={'query': 'get_iocs', 'days': 1})
data = resp.json()
return [{'type': i['ioc_type'], 'value': i['ioc'], 'threat': i['malware']}
for i in data.get('data', [])[:100]]
def main():
all_iocs = []
all_iocs.extend(fetch_urlhaus())
all_iocs.extend(fetch_feodo())
all_iocs.extend(fetch_threatfox())
output = {
'generated': datetime.utcnow().isoformat(),
'count': len(all_iocs),
'iocs': all_iocs
}
with open('aggregated_iocs.json', 'w') as f:
json.dump(output, f, indent=2)
print(f"Aggregated {len(all_iocs)} IOCs")
if __name__ == '__main__':
main()Feed Management Best Practices
β’ Set expiration dates - stale IOCs create false positives
β’ Enrich IOCs with context before operationalizing
β’ Track IOC sources for quality assessment
β’ Automate feed ingestion with scheduled jobs