IOC-Based Hunting, Done Right
How to use indicators of compromise as a genuine starting point for behavioural investigation, instead of a binary match-or-don't-match check.
IOC-based hunting gets a bad reputation among hunters who’ve read too many “the pyramid of pain shows IOCs are worthless” takes, and that reputation is only half deserved. IOCs genuinely are the easiest thing for an attacker to change and the least durable form of evidence available. But dismissing IOC-based hunting entirely throws away a legitimately useful starting point, provided you use IOCs as a lead into behavioral investigation rather than a binary match check that stops the moment you get a hit or a miss.
The Blocklist Mentality Is the Actual Problem, Not IOCs Themselves
The failure mode isn’t using IOCs—it’s treating an IOC match, or the absence of one, as the finish line. Run a hash against your environment, get zero hits, conclude you’re clean. That’s the blocklist mentality, and it’s shallow precisely because it assumes the attacker hasn’t changed anything since the IOC was published, which for anything beyond the most basic commodity threats is often a bad assumption. Used properly, an IOC is a single data point that opens an investigation, not a checkbox that closes one.
Pivoting From a Single IOC Into Behavior
The genuinely valuable version of IOC hunting treats a single confirmed indicator as an entry point into a much broader investigation. A concrete example: a hunt confirms a match against a known-malicious IP address in your proxy logs—one host, one connection, one timestamp. Instead of stopping there, pivot: what process on that host initiated the connection, what else did that process do around the same time, has that same host shown any other unusual behavior in the surrounding days, and—critically—does the pattern of behavior around this confirmed IOC generalize into something you could hunt for even without the specific indicator.
This last step is where IOC hunting earns genuine long-term value. If the confirmed malicious connection turns out to correlate with a specific unusual process execution pattern, a specific registry modification, or a specific timing signature, that behavioral pattern is what you should actually be hunting for going forward—the original IOC gets you there once, but the behavior it reveals can catch the same actor’s next campaign even after they’ve rotated every piece of infrastructure the original IOC was tied to.
Confirmed Negatives Are Worth Investigating Too
An unexpected result worth paying attention to: sometimes a search against a well-documented, high-confidence IOC comes back with a partial or unusual match—not a clean hit, but something close enough to be suspicious. Say a known-malicious domain pattern uses a specific naming convention, and your DNS logs show queries to a domain that’s structurally similar but not an exact match. That’s worth investigating rather than dismissing purely because it’s not a clean IOC hit—attackers deliberately vary infrastructure slightly precisely to avoid exact-match blocklists, and a hunter paying attention to near-misses catches more than one who only checks exact matches.
Building an IOC Enrichment Habit, Not Just a Lookup Habit
A practical workflow worth institutionalizing: whenever an IOC hit occurs, spend a fixed amount of time—say, thirty minutes—doing enrichment before closing the finding, regardless of how routine it seems. Pull the surrounding process tree, check other hosts for similar patterns, note anything about the timing or context that seems worth remembering. This turns every single IOC match, even a mundane one, into a small opportunity to extract something more durable than the indicator itself.
Where IOC Hunting Fits in a Balanced Program
IOC-based hunting shouldn’t be your primary hunting method—the earlier pieces on TTPs and behavior make a strong case for why technique-level hunting has more staying power. But it earns a legitimate place as a low-cost, high-frequency layer running alongside deeper hypothesis-driven hunts. Automated, routine IOC checks against fresh threat intelligence feeds catch the low-hanging commodity threats cheaply, freeing up deeper hunting time for the harder, more durable technique-based work. Treat it as your baseline floor, not your ceiling.
Getting Real Value Out of Something Often Dismissed Too Quickly
The lesson here isn’t that IOC hunting is secretly the best method after all—it genuinely isn’t, on its own. It’s that dismissing it entirely, the way a lot of hunting orthodoxy encourages, throws away real value that a slightly more curious approach to every IOC match would otherwise capture. Treat the indicator as a door, not a wall.
Use an IOC pivot checklist
Validate type, format, source, confidence, first/last seen, and expected lifetime. Search the correct time range, then pivot through related host, user, process, DNS, connection, and file activity. Record collection gaps before interpreting a non-match.
An IOC is a coordinate in an investigation, not the investigation itself. Its greatest value is the surrounding behavior it helps reveal.