Threat intelligence is evidence-based knowledge about existing or emerging threats to an organization. It transforms raw data into actionable insights that help security teams prevent attacks, detect intrusions faster, and respond more effectively. This article covers the sources, frameworks, and tools for operational threat intelligence.
The Intelligence Lifecycle
Threat intelligence follows a structured lifecycle:
2. **Collection**: Gather data from open sources, commercial feeds, internal telemetry, and human intelligence.
3. **Processing**: Convert raw data into a usable format. Normalize timestamps, de-duplicate indicators, enrich with context.
4. **Analysis**: Interpret processed data to answer the intelligence requirements.
5. **Dissemination**: Deliver actionable intelligence to the right consumers (SOC analysts, incident responders, executives).
6. **Feedback**: Refine requirements and collection based on what was useful.
Open Source Intelligence (OSINT)
OSINT is intelligence derived from publicly available sources. It is free, accessible, and provides valuable context about threats.
OSINT Sources
# OSINT example: Find exposed S3 buckets
curl -s "https://censys.io/api/v1/search/ipv4" \
-H "Content-Type: application/json" \
-u "$API_ID:$API_SECRET" \
-d '{"query": "services.service_name: S3"}'
# Check if a domain appears in breach data
curl -s "https://haveibeenpwned.com/api/v3/breacheddomain/example.com" \
-H "hibp-api-key: $API_KEY"
Threat Feeds
Threat feeds provide structured data about known malicious indicators. Feeds range from free community lists to premium commercial services.
Types of Feeds
Popular Feeds
# Python: Consuming AlienVault OTX feed
import requests
OTX_API_KEY = "your-api-key"
headers = {"X-OTX-API-KEY": OTX_API_KEY}
# Get latest pulses
response = requests.get(
"https://otx.alienvault.com/api/v1/pulses/subscribed",
headers=headers
)
for pulse in response.json()["results"][:5]:
print(f"Pulse: {pulse['name']}")
for indicator in pulse["indicators"][:3]:
print(f" {indicator['type']}: {indicator['indicator']}")
MITRE ATT&CK Framework
MITRE ATT&CK is a globally accessible knowledge base of adversary tactics and techniques based on real-world observations. It provides a common language for describing attacker behavior.
ATT&CK Matrix
The framework organizes attacks into tactics (the "why") and techniques (the "how"):
Using ATT&CK for Threat Intelligence
Map observed indicators and behaviors to ATT&CK techniques to understand attacker objectives and capabilities.
# Threat actor profile using ATT&CK
threat_actor: "APT-Example"
motivation: "Financial gain"
targeted_sectors: ["Finance", "Technology"]
techniques_observed:
- T1566.001: "Spearphishing Attachment"
- T1204.002: "Malicious File Execution"
- T1059.001: "PowerShell"
- T1041: "Exfiltration Over C2 Channel"
- T1573.001: "Symmetric Encryption for C2"
Mapping to ATT&CK helps security teams prioritize defenses and detection rules against the techniques most likely to be used against them.
Indicators of Compromise (IoC) Sharing
IoC sharing enables organizations to benefit from each other's detection experiences. Effective sharing requires standardized formats and secure distribution.
IoC Types
Sharing Platforms
STIX and TAXII
Structured Threat Information Expression (STIX) is a language for describing threat information. Trusted Automated Exchange of Intelligence Information (TAXII) is a protocol for exchanging STIX data.
STIX Objects
STIX 2.1 defines domain objects including:
// STIX 2.1 Indicator object
{
"type": "indicator",
"spec_version": "2.1",
"id": "indicator--12345678-9abc-def0-1234-56789abcdef0",
"created": "2026-05-12T10:00:00Z",
"modified": "2026-05-12T10:00:00Z",
"name": "Malicious IP",
"pattern": "[ipv4-addr:value = '203.0.113.50']",
"pattern_type": "stix",
"valid_from": "2026-05-12T10:00:00Z",
"indicator_types": ["malicious-activity"]
}
TAXII Endpoints
TAXII defines two service types:
# Fetch indicators from a TAXII collection
curl -s -H "Accept: application/taxii+json" \
-H "Authorization: Bearer $TOKEN" \
https://taxii.example.com/api/v2/collections/collection-id/objects/
Applying Threat Intelligence
Operationalizing threat intelligence is the hardest part. Raw intelligence without action is just noise.
Detection Engineering
Create detection rules based on intel. If a threat feed shows a new C2 IP range, add a firewall block rule. If a campaign uses a specific file hash, create a YARA rule.
rule Example_Malware_2026 {
meta:
description = "Detects Example Malware sample"
author = "SOC Team"
date = "2026-05-12"
hash = "sha256:abcdef..."
strings:
$s1 = "c2.example.com" wide ascii
$s2 = { 6A 40 68 00 30 00 00 6A 14 }
condition:
2 of them
}
Risk Prioritization
Not all intelligence is equally relevant. Prioritize based on:
Conclusion
Threat intelligence turns raw data into defensive action. Invest in OSINT collection, subscribe to relevant threat feeds, map observations to the MITRE ATT&CK framework, and share intelligence using STIX/TAXII standards. Most importantly, operationalize the intelligence — a feed that nobody acts on has zero security value.