Agent Foskett Academy • SOC Analyst Academy • Module 8 • Lesson 77 • Threat Hunting: Looking Beyond the Alerts

Lesson 77 — The Hunt Found Nothing — Was It Still Useful?

The hypothesis was reasonable.

The query worked.
The telemetry was available.
The scope was clear.

And the hunt returned... nothing.

No matching devices.
No matching accounts.
No second occurrence.

One analyst sighed.

“Well, that was a waste of time.”

Agent Foskett looked at the empty results.

“Was it? Or did we just learn something?”

A negative hunt can reduce uncertainty and constrain scope — but only within the limits of the data, query and time window you actually tested.
Agent Foskett reviewing a threat hunt that returned no matching activity
No results is still a result.

The value depends on what was searched, where it was searched, how far back the data goes and whether the telemetry could have observed the behaviour.

✓ Hypothesis
✓ Coverage
✓ Limits
✓ Finding

Case briefing

ORIGINAL INCIDENT FIN-WS-204 Browser ↓ PowerShell ↓ Suspicious command ↓ External network activity HUNT QUESTION: "Did the same browser-to-PowerShell behaviour occur on any other onboarded device during the previous 14 days?" QUERY RESULT: 0 MATCHES BAD CONCLUSION: "The attacker only touched FIN-WS-204." BETTER CONCLUSION: "No additional matching events were identified by this hunt within the tested scope."

Investigation objective

Interpret a hunt that returns no additional matches, validate that the negative result is meaningful, document its boundaries and use it to refine incident scope without claiming more than the evidence supports.

Investigator's rule

“We found nothing” is not the same as “nothing happened.”

Stage 1 — define what a negative result actually means

What you can sayWhat you cannot automatically say
The query returned no matching events.The behaviour never occurred.
No additional matches were observed in the selected period.No other device was affected.
The tested telemetry did not show the hunted pattern.The environment is clean.
The result may reduce the currently observed scope.The incident is fully contained.

Negative evidence is bounded evidence

A zero-result hunt tells you something about the query, telemetry, entities and period tested. Its value disappears if those boundaries are forgotten.

Language matters

Prefer “no matching activity was identified” over “there was no activity.” The first describes the evidence. The second makes a much broader claim.

Stage 2 — rerun the behavioural hunt

01-scope-browser-powershell.kql
1234567891011
DeviceProcessEvents
| where Timestamp > ago(14d)
| where FileName in~ ("powershell.exe", "pwsh.exe")
| where InitiatingProcessFileName in~ (
    "msedge.exe", "chrome.exe", "firefox.exe"
)
| where DeviceName !~ "FIN-WS-204"
| project Timestamp, DeviceId, DeviceName,
          AccountName, ProcessCommandLine,
          InitiatingProcessFileName
| order by Timestamp asc

The question is intentionally narrow

This hunt asks whether the same broad browser-to-PowerShell relationship appeared on other devices during the available fourteen-day period. It does not test every possible execution technique.

A good negative finding starts with a good question

If the hypothesis is vague, a zero result has little meaning. Define exactly which behaviour you expected to observe and why.

Stage 3 — validate that the query could find a known event

BEFORE TRUSTING ZERO: TEST THE QUERY AGAINST THE KNOWN INCIDENT DEVICE. EXPECTED: FIN-WS-204 MATCHES ACTUAL: FIN-WS-204 MATCHES GOOD. NOW EXCLUDE FIN-WS-204. RESULT: 0 ADDITIONAL MATCHES THIS DOES NOT PROVE THE ENVIRONMENT IS CLEAN. BUT IT INCREASES CONFIDENCE THAT THE QUERY IS FUNCTIONING AS INTENDED.

Positive controls matter

If possible, confirm that the hunting logic identifies a known example of the behaviour. A query that cannot find the event that inspired it should not be trusted when it returns zero elsewhere.

Check syntax and assumptions

A misspelled process name, wrong field, overly strict filter or incorrect time window can manufacture an empty result. Validate the logic before interpreting the absence.

Stage 4 — ask whether the telemetry could observe the behaviour

Coverage questionWhy it matters
Were the relevant devices onboarded?An unmanaged or unonboarded device cannot contribute expected endpoint telemetry.
Was telemetry available during the full period?Collection interruptions can create apparent absence.
Does retention cover the suspected attack window?Older activity may simply no longer be queryable.
Is this the right data source?The behaviour may exist in identity, email, cloud or network telemetry instead.
Could the attacker use a different technique?A behavioural variation may evade an overly specific hunt.

Visibility determines confidence

A negative result from well-covered endpoint telemetry is more meaningful than the same result across a population where half the devices are not visible.

Absence of telemetry is not negative evidence

If a device produced no data because it was offline, unmanaged or outside retention, you have a visibility gap — not evidence that the behaviour did not occur.

Stage 5 — measure the population you actually searched

02-observed-device-population.kql
12345678
DeviceProcessEvents
| where Timestamp > ago(14d)
| summarize FirstObserved=min(Timestamp),
            LastObserved=max(Timestamp),
            ProcessEvents=count()
          by DeviceId, DeviceName
| order by DeviceName asc

Know your observable population

This does not prove continuous sensor health, but it helps establish which devices contributed process telemetry during the hunting period.

Document coverage limitations separately

If expected devices are missing or sparsely represented, record that limitation rather than allowing the zero-result hunt to imply complete environmental coverage.

Stage 6 — broaden the hypothesis carefully

HUNT 1: Browser → PowerShell 0 additional matches ASK: Could the same objective use another shell? HUNT 2: Browser → cmd.exe No suspicious matches ASK: Could execution begin from another user application? HUNT 3: Office application → PowerShell No suspicious matches NEGATIVE FINDINGS ACROSS RELATED HYPOTHESES CAN INCREASE CONFIDENCE WITHOUT BECOMING ABSOLUTE PROOF.

Do not stop at one exact pattern

If the attack objective could be achieved through plausible behavioural variants, test those variants where the telemetry supports them.

Do not broaden until the hunt means nothing

A query for every process on every device will certainly return data but may no longer test the hypothesis. Broaden deliberately, one assumption at a time.

Stage 7 — use another data source

ENDPOINT HUNT: No additional matching execution IDENTITY REVIEW: No related suspicious sign-ins identified for scoped users EMAIL REVIEW: No additional recipients identified for the known message CLOUD REVIEW: No related activity identified for the scoped accounts THE STORY IS BECOMING MORE CONSTRAINED. BUT EACH NEGATIVE FINDING HAS ITS OWN COVERAGE AND LIMITATIONS.

Independent negative findings can reinforce each other

If multiple relevant telemetry sources fail to reveal related activity, the current scope may reasonably narrow — provided each source had adequate visibility for the question being tested.

Do not combine unknowns into certainty

Three incomplete data sources do not automatically equal one complete view. Assess the quality of each negative finding before using them together.

Stage 8 — negative findings can change response decisions

FindingPossible effect
No additional behavioural matches with good endpoint coverageCurrent observed endpoint scope remains limited.
No additional targeted recipients identifiedMessaging scope may remain narrow.
No related identity activity foundMay reduce evidence for broader account compromise.
Major telemetry gaps discoveredConfidence decreases; additional evidence sources are needed.
Known incident behaviour not found by the hunt queryQuery must be fixed before its negative result is useful.

Negative findings reduce uncertainty

They may support decisions about scope, containment priority and where investigative effort should move next. That is useful operational evidence.

They can also reveal visibility problems

A hunt that finds nothing because expected telemetry is missing has still produced a valuable result: the SOC has discovered a monitoring or data-coverage gap.

Stage 9 — know when to stop expanding the hunt

WE TESTED: ✓ Known behaviour ✓ Known event as positive control ✓ 14-day endpoint scope ✓ Relevant behavioural variants ✓ Related identity evidence ✓ Related messaging evidence ✓ Available cloud evidence WE DOCUMENTED: ✓ Devices represented in telemetry ✓ Retention window ✓ Query assumptions ✓ Known visibility limitations NO ADDITIONAL RELATED ACTIVITY IDENTIFIED. THE HUNT CAN NOW CLOSE WITH A DEFENSIBLE NEGATIVE FINDING.

Stopping is part of good hunting

A hunt should not expand forever simply because certainty is impossible. Once reasonable hypotheses have been tested with adequate data, document the result and move on unless new evidence changes the question.

Keep the hunt repeatable

Save the hypothesis, queries, scope and limitations. If new intelligence arrives tomorrow, another analyst should be able to rerun or extend the work.

Stage 10 — write the negative finding properly

FINDING: A 14-day hunt for the known browser-to-PowerShell behaviour identified no additional matching events outside FIN-WS-204. The query was validated against the known incident event before the original device was excluded. Related behavioural variants and available identity, messaging and cloud evidence were also reviewed without identifying additional activity linked to the incident. This result supports the current observed scope remaining limited to the known affected entities. LIMITATIONS: The conclusion is bounded by available telemetry, onboarding, retention, query logic and the behaviours tested. The result does not prove that no other malicious activity occurred.

This is useful evidence

The hunt has constrained the current observed scope, tested plausible alternatives and documented what was not found. That is far more useful than simply writing “zero results.”

Sometimes the logs do not find another attacker

And that is fine. The job is not to make every hunt dramatic. The job is to ask a defensible question and follow the evidence wherever it leads.

Lesson 77 key takeaways

  • A zero-result hunt is not automatically a failed hunt.
  • “No matches identified” is different from “the activity did not occur.”
  • Negative findings are bounded by query logic, telemetry and time.
  • Validate hunting logic against a known positive example where possible.
  • Check onboarding, telemetry availability and retention before trusting absence.
  • Missing telemetry is a visibility gap, not negative evidence.
  • Test plausible behavioural variants without making the hunt meaningless.
  • Independent negative findings can help constrain current scope.
  • Multiple weak data sources do not automatically create complete visibility.
  • Negative hunts can expose monitoring and telemetry gaps.
  • Know when enough reasonable hypotheses have been tested.
  • Document scope, assumptions, limitations and exact wording of the finding.

Module 8 — Threat Hunting: Looking Beyond the Alerts

Lesson 77 showed how a hunt that finds no additional activity can still reduce uncertainty and produce defensible evidence. Lesson 78 tackles attacker adaptation: the infrastructure and indicators change, but the underlying behaviour remains recognisable.

Next: Lesson 78 — The IOC Changed — The Behaviour Didn't

Continue your SOC Analyst training

Module 3 focuses on identity incidents, authentication, MFA, privilege, sessions and application access.

Is a threat hunt still useful when it finds nothing?

Lesson 77 of the Agent Foskett SOC Analyst Academy teaches analysts how to interpret zero-result threat hunts as bounded negative evidence, validate query logic and understand telemetry, retention and coverage limitations.

How should SOC analysts document negative threat hunting findings?

Learn how to use positive controls, measure observable device populations, test related hypotheses, constrain incident scope and write defensible negative findings without claiming that an absence of matches proves an absence of malicious activity.