Cyber Security • Foundations and Threat Landscape

Indicators of Compromise (IOCs) — Explain common indicators of compromise (IOCs) (conceptual)

Forensic artifacts that reveal an adversary has breached, persisted in, or exfiltrated data from a system.

A protected digital shield with binary code and a secure lock for cyber security
Inside this lesson 10 sections 5 questions 5 figures

SECTION 1

Historical Context & Motivation

The concept of Indicators of Compromise (IOCs) grew out of a fundamental shift in how the security community understood adversaries. In the early days of network defense, firewalls and antivirus signatures operated on a simple premise: known-bad patterns could be blocked at the perimeter. As targeted intrusions became more sophisticated through the late 1990s and 2000s, defenders realized they needed a richer vocabulary for the digital evidence that an attacker had already gained access to a network—evidence that could be shared across organizations and fed into automated detection pipelines.

The transition from reactive, signature-based antivirus to proactive threat intelligence required a structured taxonomy of observable artifacts—IP addresses, file hashes, registry modifications, domain names—that could serve as forensic breadcrumbs. Government agencies, CERTs, and private threat-intelligence firms drove much of this formalization, particularly after high-profile breaches exposed the inadequacy of perimeter-only defenses.

1988 • Morris Worm & Early Forensics

The Morris Worm—one of the first major internet-scale incidents—prompted ad-hoc forensic analysis of network traffic logs and system binaries. Though the term IOC did not yet exist, analysts were already cataloging abnormal process behavior and unexpected network connections as telltale signs of compromise.

2004 • US-CERT & Structured Sharing

The United States Computer Emergency Readiness Team (US-CERT) began issuing advisories that included specific IP addresses, domain names, and file hashes associated with campaigns, foreshadowing formal IOC standards.

2011 • Mandiant's OpenIOC Framework

Mandiant released OpenIOC, an XML-based schema for describing and sharing indicators of compromise in a machine-readable format, accelerating cross-organization threat intelligence exchange.

2013–2017 • STIX / TAXII & MITRE ATT&CK

OASIS standardized STIX (Structured Threat Information eXpression) and TAXII (Trusted Automated eXchange of Intelligence Information) for IOC transport. MITRE's ATT&CK framework contextualized IOCs within adversary tactics and techniques.

2020s • Automated IOC Enrichment & AI-Driven Detection

Modern SIEMs, XDR platforms, and threat-intelligence platforms ingest millions of IOCs daily, correlating them with endpoint telemetry in near real-time and using machine learning to surface previously unknown indicators.

The central question IOCs address is deceptively simple: How do we detect that an adversary is already inside our systems when prevention has failed? Answering that question requires understanding the categories of evidence attackers leave behind, the frameworks used to encode and share that evidence, and the operational workflows that transform raw indicators into actionable intelligence.

SECTION 2

Core Principles & Definitions

An Indicator of Compromise is any observable artifact—network, host, or behavioral—whose presence or pattern of occurrence provides evidence that a security breach has occurred or is in progress. IOCs are fundamentally retrospective: they describe what an attacker has already done, in contrast to Indicators of Attack (IOAs), which focus on the adversary's current intentions and behaviors. Both are critical, but IOCs form the backbone of traditional threat intelligence sharing and incident-response triage.

1

Atomic Indicators

The smallest, indivisible pieces of threat data—a single IP address, domain name, or file hash. They carry meaning on their own but lack surrounding context about the campaign or adversary.
2

Computed Indicators

Derived from processing raw data—for instance, a YARA rule or a Snort signature that encodes a pattern across multiple observables rather than a single value. These are more resilient to minor adversary modifications.
3

Behavioral Indicators

Patterns of activity—such as a user account authenticating from two geographically distant locations within minutes, or a process spawning PowerShell with encoded command-line arguments—that indicate adversary tactics, techniques, and procedures (TTPs).
4

Context & Confidence

Every IOC must be evaluated with confidence scoring and contextual metadata—source reliability, temporal validity, campaign attribution—to prevent alert fatigue and false positives in production environments.
5

The Pyramid of Pain

David Bianco's model ranks IOC types by how much pain blocking them causes an adversary: hash values at the bottom (trivial to change) and TTPs at the apex (extremely costly for the adversary to alter).
✦

KEY TAKEAWAY

Think of IOCs like forensic evidence at a crime scene. A fingerprint (file hash) is easy to find and match, but a criminal can wear gloves. A modus operandi—the way they case a target, pick a lock, and disable an alarm in a specific sequence (TTPs)—is far harder to change, making it the most valuable category of evidence. The higher you climb the Pyramid of Pain, the more you force the adversary to fundamentally retool their operations.

SECTION 3

Visual Explanation — The Pyramid of Pain

The Pyramid of Pain, introduced by David Bianco in 2013, is the canonical framework for understanding the relative value and resilience of different IOC categories. The pyramid is structured so that the base contains indicators that are trivially easy for an adversary to change (hash values), while the apex contains indicators that are deeply embedded in the attacker's methodology (TTPs). Defenders who focus detection efforts higher on the pyramid impose significantly greater costs on adversaries, because changing tactics requires re-engineering entire toolchains rather than simply recompiling a binary.

Pyramid of Pain — IOC Categories by Adversary CostHash ValuesIP AddressesDomain NamesNetwork / Host ArtifactsToolsTTPsTrivialEasySimpleAnnoyingChallengingTough!↑ Cost to adversary increases
The Pyramid of Pain ranks IOC types from bottom (trivial for attackers to change) to top (extremely costly). Hash values sit at the base because recompiling a binary produces a new hash. TTPs crown the apex because they represent fundamental attacker behavior that requires significant retooling to alter.

In the diagram above, the annotations to the right of the pyramid represent the level of difficulty an adversary faces when a defender blocks or detects that layer. At the base, an attacker can trivially swap a hash by changing a single byte in the payload. Moving upward, blocking an IP address forces the attacker to find a new proxy or VPN endpoint—easy but not free. Blocking domain names requires the adversary to register new infrastructure. Network and host artifacts (such as specific User-Agent strings or mutex names) are more deeply embedded in the tooling. At the apex, TTPs reflect the attacker's tradecraft itself, meaning detection at this level forces a fundamental change in strategy rather than a superficial substitution of infrastructure.

SECTION 4

How IOCs Work — The Detection and Enrichment Pipeline

Understanding IOCs requires more than knowing what they are—you must understand the operational pipeline through which raw artifacts become actionable intelligence. This pipeline typically involves four stages: collection, normalization, enrichment, and operationalization. Each stage transforms the indicator from a raw datum into something a SIEM rule, firewall ACL, or analyst playbook can act upon.

IOC Detection & Enrichment PipelineCOLLECTIONEndpoint telemetryNetwork logsThreat feedsNORMALIZATIONSTIX/TAXII formatDeduplicationSchema mappingENRICHMENTWHOIS / GeoIPSandbox verdictsConfidence scoringOPERATIONALIZESIEM correlation rulesFirewall block listsAnalyst playbooksCommon IOC Types Flowing Through the PipelineFile HashIP AddressDomain NameRegistry KeyMutex NameURL PathEmail Addr
The four-stage pipeline transforms raw IOC data into operational defenses. The lower panel shows the diversity of IOC types that flow through the pipeline, from atomic values like file hashes and IP addresses to host artifacts like registry keys and mutex names.

During collection, sensors at the endpoint (EDR agents), network perimeter (NetFlow, DNS logs, IDS/IPS), and external threat intelligence feeds produce a high volume of raw observables. Normalization converts heterogeneous formats into a common schema—often STIX 2.x objects—and performs deduplication so that the same IP address from three feeds is stored once with merged metadata. Enrichment layers additional context onto each indicator: WHOIS registration data, GeoIP location, passive DNS history, sandbox detonation results, and confidence scores. Finally, operationalization pushes refined IOCs into detection infrastructure—SIEM correlation rules, EDR watchlists, or DNS sinkhole configurations—where they drive real-time alerting and automated response.

⚠

IOC Lifecycle & Decay

IOCs are not permanent. IP addresses are reassigned, domains expire, and adversaries rotate infrastructure. A well-managed threat-intelligence program includes a time-to-live (TTL) for every indicator, automatically deprecating stale IOCs to reduce false positives. Without lifecycle management, an IOC feed becomes a growing source of noise rather than signal.

SECTION 5

Detailed Classification of Common IOCs

IOCs span a wide spectrum—from purely network-based artifacts to host-level forensic traces to behavioral patterns observable only through log correlation. A robust detection strategy requires coverage across all categories, because adversaries routinely vary the layers at which they leave evidence. The following table provides a detailed taxonomy of the most commonly encountered IOC types, their typical sources, and representative examples.

IOC CategorySpecific IOC TypeDescription & ExampleData Source
NetworkMalicious IP AddressC2 server IP, e.g., 198.51.100.23 observed beaconing every 60 s.Firewall logs, NetFlow, IDS alerts
NetworkMalicious Domain NameDGA-generated or typo-squatted domain, e.g., upd4te-service.xyzDNS query logs, passive DNS
NetworkSuspicious URL / URI PathExploit kit landing page, e.g., /gate.php?id=...Proxy logs, web-application firewall
Host — FileCryptographic Hash (MD5/SHA-256)Hash of known malware binary, e.g., SHA-256 a1b2c3d4...EDR, AV engine, file integrity monitoring
Host — FileSuspicious File Name / PathMalware dropped as C:\Windows\Temp\svchost.exe (legitimate name, wrong location).Endpoint telemetry, Sysmon logs
Host — ConfigRegistry ModificationPersistence via HKLM\...\Run key addition.Sysmon Event ID 13, registry auditing
Host — ConfigScheduled Task / Cron JobAdversary creates schtasks /create /tn "Updater" for persistence.Windows Event ID 4698, auditd
BehavioralUnusual Authentication PatternSame user authenticates from two countries within 10 minutes (impossible travel).SIEM correlation, UEBA
BehavioralAnomalous Process ExecutionExcel.exe spawning PowerShell with -EncodedCommand flag.EDR process tree, Sysmon Event ID 1
EmailMalicious Sender / AttachmentPhishing email from hr-dept@c0mpany.com with weaponized .docm attachment.Mail gateway logs, email header analysis

Comprehensive taxonomy of common IOC types encountered in incident response and threat hunting.

Note the progression from low-context, easily rotated atomic indicators (hashes, IPs) toward high-context behavioral patterns. In practice, a single intrusion typically generates IOCs across multiple categories simultaneously: the attacker's phishing email contains a malicious attachment whose hash is an IOC, the attachment calls out to a C2 domain (another IOC), the resulting implant creates a registry key for persistence (another IOC), and the lateral movement pattern itself constitutes a behavioral IOC. Effective detection correlates indicators across these layers to build a composite picture of the intrusion.

SECTION 6

Worked Example — Tracing IOCs in a Phishing Campaign

Consider a scenario in which your organization's Security Operations Center (SOC) receives an alert from the email gateway indicating a suspicious attachment. The following worked example traces the IOCs from initial detection through enrichment and response, illustrating how multiple indicator types combine to form an actionable picture of the threat.

Phishing Campaign IOC Analysis

  1. 1

    Step 1 — Identify the Email IOCs

    The email gateway flags an inbound message from invoice-dept@acme-c0rp.com (note the zero replacing the letter 'o'—a common typo-squatting technique). The message contains an attachment named Invoice_Q4.docm. You extract the sender address and attachment filename as initial email-layer IOCs.
    IOCs identified: sender domain (acme-c0rp.com), attachment name (Invoice_Q4.docm)
  2. 2

    Step 2 — Compute File Hash

    You compute the SHA-256 hash of the .docm file using a tool such as sha256sum on Linux or Get-FileHash in PowerShell. The resulting hash is d3adb37ecdd9f7b84fc903f00b4e714b3a76b9c39e9f8a4c2f6e521c0a5d9e82. You query VirusTotal and find that 38 out of 72 engines flag it as malicious. This file hash becomes a high-confidence atomic IOC.
    IOC identified: SHA-256 hash of malicious document (38/72 VT detection ratio)
  3. 3

    Step 3 — Dynamic Analysis & Network IOCs

    You detonate the document in a sandbox environment. Upon opening, the macro executes a PowerShell command that reaches out to https://cdn-update.xyz/payload.bin. The domain cdn-update.xyz resolves to IP 203.0.113.42. Both the domain and IP are added as network-layer IOCs. WHOIS reveals the domain was registered 48 hours ago with privacy protection—a strong indicator of malicious intent.
    IOCs identified: C2 domain (cdn-update.xyz), C2 IP (203.0.113.42), URL path (/payload.bin)
  4. 4

    Step 4 — Host-Based IOCs from Endpoint Telemetry

    The payload creates a scheduled task named WindowsDefenderUpdate for persistence and drops a DLL to C:\ProgramData\msupdate.dll. It also creates a mutex named Global\{A1B2-C3D4} to prevent multiple instances. These host artifacts are all IOCs that can be used to hunt for the same implant across the enterprise.
    IOCs identified: scheduled task name, dropped file path, mutex name, DLL hash
  5. 5

    Step 5 — Enrichment, Sharing, and Response

    All extracted IOCs are enriched with timestamps, confidence scores, and mapped to MITRE ATT&CK techniques (T1566.001 — Spearphishing Attachment, T1059.001 — PowerShell, T1053.005 — Scheduled Task). The IOC bundle is encoded in STIX 2.1 and shared via TAXII with your ISAC. Simultaneously, the C2 domain and IP are pushed to firewall block lists, the file hash is added to the EDR deny list, and a SIEM correlation rule is created to alert on the mutex name across all endpoints.
    Outcome: Multi-layered IOC detection, threat intelligence shared, defensive controls updated

SECTION 7

Strengths, Limitations, and Common Pitfalls

IOCs are indispensable to modern security operations, but they are not a silver bullet. Understanding their strengths and limitations is essential for building a balanced detection strategy that does not over-rely on any single indicator type. The following table summarizes the key trade-offs.

StrengthsLimitations
Machine-readable and automatable: IOCs can be ingested by SIEMs, firewalls, and EDR platforms for real-time detection without human intervention.Ephemeral: Atomic IOCs like IP addresses and hashes have short shelf lives because adversaries rotate infrastructure and recompile payloads.
Shareable: Standardized formats (STIX/TAXII, OpenIOC) enable cross-organization and cross-sector intelligence sharing, amplifying collective defense.High false-positive potential: Shared hosting, CDNs, and dynamic IPs mean a malicious IP today may be benign tomorrow (and vice versa).
Forensically grounded: IOCs provide concrete evidence for incident timelines, root-cause analysis, and legal proceedings.Reactive by nature: IOCs describe past compromises; they cannot detect novel attacks that use entirely new infrastructure and tooling.
Scalable: Threat-intelligence platforms can correlate millions of IOCs against telemetry data in near real-time.Alert fatigue: Without proper confidence scoring and lifecycle management, large IOC feeds generate overwhelming noise.
Layered applicability: IOCs exist at every layer (network, host, email, behavioral), enabling defense-in-depth.Pyramid of Pain floor: Most widely shared IOCs sit at the bottom of the pyramid, imposing minimal cost on sophisticated adversaries.

Strengths versus limitations of IOC-based detection

✦

KEY TAKEAWAY

IOCs are analogous to a city's wanted-poster system: posting a suspect's photo (hash) or last-known address (IP) helps patrol officers identify known threats, but it does nothing to catch a criminal who has changed appearance and moved. The most effective security programs combine IOC matching (known-bad detection) with behavioral analytics (anomaly detection) and proactive threat hunting, ensuring coverage across the entire detection spectrum.

SECTION 8

IOCs in the Broader Threat-Intelligence Ecosystem

IOCs do not exist in isolation—they are one layer within a multi-tiered threat-intelligence model. Understanding how IOCs relate to higher-order constructs like Indicators of Attack (IOAs), Cyber Kill Chain stages, and the Diamond Model of Intrusion Analysis is essential for advanced coursework in threat intelligence and incident response.

ConceptFocusRelationship to IOCs
IOCsForensic evidence of past compromise (artifacts)This lesson's core subject. Atomic, computed, and behavioral artifacts left by adversaries.
IOAsReal-time adversary intent and behavior (actions)Complement IOCs by focusing on what the attacker is doing now—process chains, lateral movement patterns—rather than static artifacts.
Cyber Kill ChainSequential phases of an intrusion (recon → weaponize → deliver → exploit → install → C2 → act)Each Kill Chain phase produces characteristic IOCs. Mapping IOCs to phases accelerates triage and reveals how far an intrusion has progressed.
Diamond ModelFour-vertex model: Adversary, Infrastructure, Capability, VictimIOCs map primarily to the Infrastructure and Capability vertices. Enrichment fills in the Adversary and Victim vertices for attribution.
MITRE ATT&CKCatalog of adversary TTPs organized by tactic (what) and technique (how)IOCs are mapped to ATT&CK technique IDs during enrichment, enabling defenders to prioritize detection engineering around observed adversary behaviors.

IOCs within the broader threat-intelligence landscape

Looking ahead, the field is moving toward behavior-centric detection that de-emphasizes static IOCs in favor of TTPs and anomaly models. Machine-learning classifiers trained on process telemetry, network flow statistics, and user-behavior analytics can detect novel threats that share no atomic indicators with previously known campaigns. However, IOCs remain indispensable for rapid triage ("is this hash known-bad?"), for legal evidence chains, and as ground truth for training and validating those very ML models. The future is not IOCs versus behavioral detection—it is their synergistic integration.

SECTION 9

Practice Problems

Question 1: CONCEPTUAL

Explain the difference between an Indicator of Compromise (IOC) and an Indicator of Attack (IOA). Why might a security team that relies exclusively on IOCs still miss an active intrusion?
Show answer
An IOC is a forensic artifact—such as a file hash, IP address, or registry key—that provides evidence a compromise has already occurred. An IOA, by contrast, focuses on the adversary's real-time behavior, such as a sequence of process executions that match a known lateral-movement pattern. A team relying exclusively on IOCs may miss an active intrusion if the attacker uses entirely new infrastructure, custom-compiled tools, and novel domains that do not appear in any threat feed. Because IOCs are inherently retrospective and atomic, they cannot detect 'zero-day' tradecraft unless the specific artifacts were previously cataloged. IOAs, which detect behavioral patterns regardless of specific infrastructure, fill this gap.

Question 2: BASIC CALCULATION

A threat-intelligence feed provides 50,000 IOCs per day. Historical analysis shows that 2% of these match actual malicious activity when correlated with your SIEM telemetry (true positive rate), while 0.5% of non-matching IOCs still trigger alerts due to shared infrastructure (false positive rate). On a day when the SIEM processes 1,000,000 log events, estimate the number of true positive and false positive IOC-based alerts if each log event is compared against the full IOC set once.
Show answer
The 50,000 IOCs are applied against 1,000,000 events. If 2% of the IOCs represent genuinely present threats that match activity in the logs, and we assume each true IOC triggers on average one matching event, that yields approximately 50,000 × 0.02 = 1,000 true positive alerts. The false positive rate of 0.5% applies to the remaining 49,000 non-malicious IOC-event comparisons that nonetheless fire due to coincidental overlap (shared IPs, CDNs), yielding approximately 49,000 × 0.005 = 245 false positive alerts. This gives a precision of roughly 1,000 / (1,000 + 245) ≈ 80.3%. In practice, the actual numbers depend heavily on the overlap between the IOC feed and the organization's traffic profile, but this exercise illustrates why even a seemingly low false positive rate can generate hundreds of noise alerts daily.

Question 3: INTERMEDIATE

You are a threat hunter analyzing a suspected compromise. Your EDR platform reveals that winword.exe spawned cmd.exe, which in turn launched powershell.exe -EncodedCommand <base64>. The PowerShell process made an outbound HTTPS connection to cdn-assets.update-service.xyz and dropped a file at C:\Users\Public\svchost.exe. List all IOCs present in this scenario, classify each by type (network, host-file, host-config, behavioral, email), and place each on the Pyramid of Pain.
Show answer
The IOCs present are: (1) Domain Name — cdn-assets.update-service.xyz (network IOC, Pyramid level: Domain Names / Simple); (2) File Hash — SHA-256 of svchost.exe dropped in C:\Users\Public\ (host-file IOC, Pyramid level: Hash Values / Trivial); (3) Suspicious File Path — C:\Users\Public\svchost.exe is a legitimate binary name in the wrong directory (host-file IOC, Pyramid level: Network/Host Artifacts / Annoying); (4) Encoded PowerShell Command — the specific base64 string and the -EncodedCommand flag pattern (host-config IOC, Pyramid level: Tools / Challenging); (5) Process Chain Behavior — winword.exe → cmd.exe → powershell.exe is a well-known macro-based execution chain that constitutes a behavioral IOC at the TTP level (Pyramid level: TTPs / Tough). The key insight is that while the hash and domain are easily rotated, the process-spawning behavior is characteristic of the adversary's methodology and sits at the apex of the pyramid.

Question 4: APPLIED

Your organization has just subscribed to three commercial threat-intelligence feeds, each providing approximately 100,000 IOCs per week. Describe a practical strategy for integrating these feeds into your SIEM without causing alert fatigue. Your answer should address deduplication, confidence scoring, TTL management, and at least one technique for validating indicator quality before operational deployment.
Show answer
A sound integration strategy begins with a Threat Intelligence Platform (TIP) that ingests all three feeds and performs deduplication by normalizing indicators to a canonical form (e.g., defanging and lowercasing domains, converting IPv4/v6 to standard notation). Duplicate indicators from multiple sources actually increase confidence—the TIP should assign a higher confidence score to IOCs corroborated by two or more independent feeds. Each indicator should receive a time-to-live (TTL) based on its type: hashes might get a 90-day TTL (malware binaries rarely resurface after months), while IP addresses should have a 7–14 day TTL because IP assignments change frequently. Before pushing any indicator into the SIEM as an active detection rule, a validation step should cross-reference the IOC against known-good infrastructure: for example, checking whether an IP belongs to a major CDN (Cloudflare, Akamai) or whether a domain appears in the Alexa/Tranco top 1M. IOCs that match benign infrastructure should be flagged for manual review rather than auto-deployed. Finally, only indicators above a configurable confidence threshold (e.g., ≥ 70/100) should generate alerts; lower-confidence IOCs can be logged for retroactive hunting without triggering real-time alerts.

Question 5: CRITICAL THINKING

A nation-state APT group is known to use living-off-the-land techniques exclusively—leveraging only built-in operating-system tools (PowerShell, WMI, certutil, mshta) and rotating through compromised legitimate websites for C2 rather than registering their own domains. Critically evaluate the effectiveness of a traditional IOC-based detection approach against this adversary. Propose an alternative or complementary detection strategy and justify your design choices using the Pyramid of Pain framework.
Show answer
Traditional IOC-based detection is fundamentally insufficient against this adversary for several reasons. First, because the attacker uses only built-in OS tools, there are no unique file hashes to block—every tool already exists on every Windows endpoint. Second, because C2 infrastructure consists of compromised legitimate websites, domain and IP blocklists will either miss the C2 entirely (the domain is trusted) or cause collateral damage by blocking legitimate services. Third, the attacker likely rotates compromised sites frequently, making any network-layer IOCs ephemeral. On the Pyramid of Pain, the entire bottom four layers (hashes, IPs, domains, network/host artifacts) are essentially neutralized. The only viable detection surface is the top two layers: Tools and TTPs. A complementary strategy should focus on behavioral detection and process-chain analytics. Specifically, one should build detection rules around anomalous parent-child process relationships (e.g., mshta.exe spawned by an Office application), unusual command-line arguments to certutil or PowerShell (e.g., downloading from a URL), and WMI subscription persistence events. User and Entity Behavior Analytics (UEBA) can flag unusual authentication patterns, and network traffic analysis can detect beaconing patterns (fixed intervals, jittered intervals, data-size anomalies) even when the C2 domain itself is legitimate. This approach detects the adversary's methodology rather than their infrastructure—operating at the TTP apex of the Pyramid of Pain where changes are most costly for the attacker.

SUMMARY

Lesson Summary

Summary

Indicators of Compromise (IOCs) are observable artifacts—spanning network, host, email, and behavioral categories—that provide forensic evidence of a security breach. They range from atomic indicators (file hashes, IP addresses, domain names) through computed indicators (YARA rules, Snort signatures) to behavioral indicators (anomalous process chains, impossible-travel authentication). The Pyramid of Pain framework ranks these by the cost they impose on adversaries: hash values at the base are trivially rotated, while TTPs at the apex require fundamental retooling.

Operationally, IOCs flow through a four-stage pipeline— collection, normalization, enrichment, and operationalization—and are encoded in standards like STIX/TAXII for cross-organization sharing. While IOCs are indispensable for rapid triage, forensic evidence, and collective defense, they are inherently retrospective and ephemeral. A mature security program augments IOC matching with behavioral analytics and proactive threat hunting to detect adversaries who operate above the lowest layers of the Pyramid of Pain.

Varsity Tutors • Cyber Security • Indicators of Compromise (IOCs)