What Are Indicators of Compromise?
An indicator of compromise is a piece of forensic data that, when observed in a network or on a host, suggests that a security incident has occurred or is in progress. The term "indicator" is deliberately broad — it covers network-observable artifacts like malicious IP addresses and domains, host-observable artifacts like malicious file hashes and registry modifications, and behavioral patterns that suggest attacker activity.
IOCs are retrospective by nature. They are typically derived from post-incident forensic analysis of previous attacks: malware samples reverse-engineered to extract network signatures, compromised infrastructure documented by incident responders, C2 domains identified during active threat campaigns. This means IOC databases are always playing catch-up with adversaries — which is why IOC management alone is never a complete threat detection strategy, but rather one layer in a defense-in-depth approach.
Cyber threat intelligence platforms collect, aggregate, and normalize IOCs from multiple sources — commercial vendors, open-source feeds, government sharing programs like CISA and ISACs, and private sharing groups — and make them available for correlation against your own telemetry.
The 8 Types of IOCs
IOCs span a spectrum from simple network-observable artifacts to complex behavioral patterns. Understanding the taxonomy helps security teams prioritize which indicator types to invest in collecting and correlating.
1. IP Addresses
The most common IOC type. Malicious IP addresses include known C2 server addresses, attacker-controlled scanning infrastructure, and exit nodes associated with threat actor campaigns. IP IOCs are easy to correlate but age quickly — threat actors rotate infrastructure continuously, and many malicious IPs are shared hosting environments where the same address hosts both legitimate and malicious content.
2. Domains
Malicious domains include C2 domains registered for threat campaigns, phishing domains impersonating legitimate services, and domains used for data exfiltration via DNS tunneling. Domain IOCs are more durable than IP IOCs because changing a domain requires more infrastructure overhead than rotating an IP address. Passive DNS correlation — tracking the historical resolution history of a domain — can reveal connections between domains that share infrastructure even across different campaigns.
3. File Hashes
Cryptographic hashes (MD5, SHA-1, SHA-256) of known malicious files — malware executables, dropper scripts, malicious Office documents, web shells. File hash IOCs are the most precise indicator type: a hash match is an unambiguous identification of a specific file. The limitation is that adversaries can change a file's hash with trivial modifications (recompiling, repacking, changing a single byte), which is why 97% of malware is unique per target.
4. URLs
Full URLs used for malware delivery, phishing, C2 communication, or exploit kit landing pages. URL IOCs are more specific than domain IOCs (they identify a specific resource path, not just the domain) but also more fragile — attackers frequently change URL paths while keeping the same domain infrastructure.
5. Email Addresses
Sender email addresses associated with phishing campaigns, business email compromise (BEC) operations, and malware distribution campaigns. Email IOCs are most useful when combined with header analysis — many phishing emails use legitimate email infrastructure to bypass SPF/DKIM checks, so the sending address alone may not be sufficient signal.
6. Registry Keys
Windows Registry keys created or modified by malware for persistence mechanisms, configuration storage, or lateral movement staging. Registry IOCs are host-based and require endpoint telemetry to detect. Common examples include registry run keys used for persistence (HKCU\Software\Microsoft\Windows\CurrentVersion\Run), registry keys used by specific RAT families to store configuration, and registry values modified by privilege escalation exploits.
7. Network Artifacts
Network-observable patterns beyond simple IPs and domains: specific User-Agent strings used by malware families, C2 communication protocols and beacon patterns, unusual port and protocol combinations (e.g., HTTPS traffic on non-standard ports), and TLS certificate fingerprints (JA3/JA3S hashes) associated with known malware communication.
8. Behavioral Artifacts
The highest-fidelity indicator type: patterns of behavior that characterize specific threat actors or malware families. Examples include specific sequences of API calls used by process injection techniques, command-line argument patterns associated with living-off-the-land tools (e.g., PowerShell -EncodedCommand with specific obfuscation patterns), and sequences of reconnaissance commands observed in lateral movement scenarios. Behavioral artifacts map directly to the Tactics, Techniques, and Procedures (TTPs) layer of the MITRE ATT&CK framework.
Security researcher David Bianco's Pyramid of Pain model ranks IOC types by how much pain it causes an attacker when defenders successfully detect them. At the bottom: hash values — trivial for attackers to change (recompile, repack). Above that: IP addresses — easy to change (rotate C2 infrastructure). Then: domain names — annoying to change (requires registrar interaction). Then: network/host artifacts — challenging (requires tool modification). At the top: TTPs (Tactics, Techniques, and Procedures) — extremely painful to change because it requires the attacker to fundamentally alter how they operate. The higher up the pyramid your detections reach, the more you frustrate adversaries rather than just delaying them.
IOC Quality: Why Not All Indicators Are Equal
Raw IOC volume is not a useful metric. A threat intel program with 500,000 IOCs and no quality scoring is less useful than one with 10,000 high-confidence, fresh, relevant indicators that are actually correlated against your telemetry in real time.
IOC quality has three dimensions: confidence (how certain are we that this indicator is actually malicious?), freshness (when was this indicator last seen in active use?), and relevance (does this threat actor or malware family actually target organizations like ours?). An IP address that was used by a threat actor three years ago to target government agencies has near-zero relevance and freshness for a financial services company evaluating it today.
Most open-source threat intelligence feeds do not provide confidence scoring. Commercial feeds vary widely in scoring quality. Building a useful IOC program requires implementing your own scoring layer — weighting indicators based on the source's historical accuracy, the indicator's age relative to its type (IP IOCs decay faster than domain IOCs, which decay faster than hash IOCs), and the relevance of the associated threat campaign to your specific threat model.
How to Collect IOCs from Multiple Sources
A mature threat intelligence platform draws from multiple source categories, each with different characteristics:
- Open-source intelligence (OSINT) feeds: AlienVault OTX, Abuse.ch (URLhaus, MalwareBazaar, Feodo Tracker), Emerging Threats, and Cisco Talos provide free, high-volume IOC feeds. Quality varies significantly; volume is high. These are good for broad coverage but require aggressive filtering.
- Government and sharing program feeds: CISA AIS (Automated Indicator Sharing), FS-ISAC for financial sector, H-ISAC for healthcare. High confidence due to government vetting; lower volume; typically higher relevance for specific industry sectors.
- Commercial threat intelligence: Recorded Future, Mandiant Advantage, CrowdStrike Intel, Flashpoint. Higher confidence scoring, better freshness management, industry-specific relevance filtering, and historical context. Cost significant but reduces the analyst time required to filter noise.
- Internal intelligence: IOCs derived from your own incident investigations — the highest-confidence indicators you'll ever have because they were observed in attacks against your own environment. Operationalize these immediately and treat them as permanent high-priority detections.
IOC Fatigue: The Problem With Too Many Indicators
Subscribing to ten threat intelligence feeds that collectively deliver 500,000 IOCs per day creates a problem that is just as bad as having no threat intelligence: every lookup is a needle-in-haystack problem, stale IOCs generate alert noise that erodes analyst trust, and the sheer data volume can impact SIEM performance.
IOC fatigue is the threat intelligence equivalent of alert fatigue. The solution is the same: scoring, prioritization, and aggressive lifecycle management. IOCs that haven't been seen in active campaigns in the past 30 days should be demoted or expired. IOCs from sources with historically poor accuracy should be weighted lower. IOCs associated with threat actors that don't target your industry should be deprioritized below those from campaigns actively targeting organizations in your vertical.
Operationalizing IOCs: From Feed to Detection Rule
The operationalization gap — the distance between "we have threat intelligence" and "we're actively detecting against it" — is where most threat intelligence programs fail. The path from raw IOC to active detection involves: normalization (converting STIX objects, CSV feeds, and vendor-specific formats into a common data model), deduplication (eliminating duplicate indicators across feeds), scoring (assigning confidence, freshness, and relevance scores), conversion to detection logic (translating an IP IOC into a SIEM lookup rule, a domain IOC into a DNS detection, a hash IOC into an endpoint query), deployment (pushing the detection rule to the appropriate enforcement point), and monitoring (tracking whether the IOC actually generates any matches, and retiring it if it never does).
Without automation, this process takes an average of 2.5 days per indicator. For a program ingesting thousands of new IOCs daily, manual operationalization is not viable. The only path to a functional threat intelligence program at scale is automation — which is why threat hunting teams at mature organizations invest heavily in platforms that automate the ingest-to-detection pipeline.
How ZonForge Sentinel Automates IOC Correlation
ZonForge Sentinel's threat intelligence engine ingests IOC feeds in STIX/TAXII format, as well as CSV and JSON feeds from major commercial and open-source providers. Indicators are automatically normalized, deduplicated, scored for freshness and source confidence, and matched against all ingested telemetry in real time — not as a periodic batch job, but at ingest time, so an IOC match is surfaced within seconds of the triggering event being ingested.
The platform's IOC correlation layer works across all supported log sources simultaneously: a malicious IP IOC hits on AWS VPC Flow Logs, Azure AD sign-in logs, Okta authentication logs, and Zeek network logs in the same query run. This means you don't need separate IOC lookup rules per data source — the platform handles the fan-out correlation automatically.
When an IOC match occurs, ZonForge automatically enriches the resulting alert with the full intelligence context: threat actor attribution (where available), campaign history, MITRE ATT&CK TTP mapping, related IOCs from the same campaign, and a confidence assessment that factors in IOC freshness and source reliability. The analyst gets a triage-ready investigation package, not a raw log entry with a flag.
Conclusion
Indicators of compromise are a foundational layer of any threat intelligence program, but they are only useful when actively operationalized against your real-time telemetry. The 8 IOC types vary dramatically in their durability, specificity, and the pain they cause adversaries when successfully detected — understanding that spectrum, and prioritizing detections that reach higher up the Pyramid of Pain, is what separates mature threat intelligence programs from teams that pay for feed subscriptions and generate noise.
Automation is the only practical path to IOC operationalization at scale. With fresh IOCs arriving daily, 2.5-day manual processing pipelines mean the majority of indicators are stale by the time they reach a detection rule. ZonForge Sentinel's automated IOC correlation closes that gap — from threat intelligence feed to real-time detection, without the manual steps that cause most programs to fail.
Frequently Asked Questions
An Indicator of Compromise (IOC) is a retrospective artifact — evidence that an attack has already occurred or is in progress. Examples: a malicious file hash found on a host, a known C2 IP address in network logs. An Indicator of Attack (IOA) is prospective — it identifies attacker behaviors and techniques in real time, before the attack objective is achieved. IOAs focus on what an attacker is doing (reconnaissance, lateral movement, privilege escalation) rather than what specific tools they're using. IOAs are more durable than IOCs because they detect behavior, not artifacts that attackers can trivially change.
IP address IOCs should be refreshed daily — they age the fastest, with many becoming stale within hours. Domain IOCs should be refreshed at least weekly. File hash IOCs can be refreshed less frequently — hashes don't change, but the campaigns they're associated with do, and your feed should reflect current activity. The more important question is not update frequency but expiry management: IOCs should have defined time-to-live values based on their type and source confidence, with automatic expiry when they exceed that TTL without being re-confirmed as active.
The Pyramid of Pain, created by security researcher David Bianco, is a model that ranks IOC types by the operational cost to an attacker when defenders successfully detect them. Hash values are at the base — trivial for attackers to change. IP addresses are slightly harder to change but still easy. Domain names require more effort. Network and host artifacts require tool modification. Tactics, Techniques, and Procedures (TTPs) are at the apex — requiring an attacker to fundamentally change how they operate, which is enormously costly. The model argues that defenders should invest in TTP-level detections over hash-level detections, because the former causes lasting disruption to adversary operations.
IOC integration with a SIEM typically works through one of three patterns: lookup table matching (import IOC lists as reference tables and run detection rules that join against them), threat intelligence enrichment at ingest (enrich every event with IOC context as it enters the pipeline, flagging matches automatically), or scheduled threat hunting queries (periodic searches across historical data for IOC matches). The lookup table approach is the most common but has latency: the IOC list must be imported before it can generate detections. Real-time enrichment at ingest — the approach ZonForge Sentinel uses — provides the lowest detection latency.
The highest-quality free threat intelligence sources include: AlienVault OTX (broad community-contributed indicators), Abuse.ch feeds (URLhaus for malicious URLs, MalwareBazaar for file hashes, Feodo Tracker for botnet C2s — all maintained with active curation), Emerging Threats (network-focused, Suricata/Snort rule format), CISA Known Exploited Vulnerabilities catalog (not traditional IOCs but high-value for patch prioritization), and Cisco Talos IP and Domain Reputation feeds. For STIX/TAXII-formatted sharing, CIRCL's MISP instance and the Soltra Edge community instance provide structured threat intelligence in a machine-readable format. Quality control and freshness management remain your responsibility regardless of source.