In this section
TH1.4 Analysis: Separating Signal from Noise
The query found 28 anomalies. Now what?
Your collection queries narrowed 350,000 sign-in events to 28 users with authentication from IPs outside their 30-day baseline. You enriched with MFA registration data and reduced to 3 users with both a new IP and a new authentication method in the same window. Those 3 users are your analysis population.
Three is a manageable number. But you cannot escalate all three to IR and declare them compromised. Some — possibly all — have legitimate explanations. A user who traveled to a conference last week and registered a new phone as their MFA device produces exactly the same signal as an AiTM attacker who registered a new MFA method from a stolen session. The data looks identical. The context is different.
// Temporal correlation: was a phishing email delivered before the anomalous sign-in?
let suspectUser = "j.morrison@northgateeng.com";
let anomalyTime = datetime(2026-03-28T14:32:00Z);
EmailEvents
| where TimeGenerated between (
(anomalyTime - 48h) .. anomalyTime)
| where RecipientEmailAddress == suspectUser
| where DeliveryAction == "Delivered"
| where ThreatTypes has_any ("Phish", "Malware")
or ConfidenceLevel == "High"
| project TimeGenerated, Subject, SenderFromAddress,
ThreatTypes, DeliveryAction
// If a phishing email was delivered within 48h before the
// anomalous sign-in, the correlation significantly elevates
// the likelihood that the sign-in is a compromised session// Geographic enrichment: full sign-in history from this IP
let suspectIP = "203.0.113.47";
SigninLogs
| where TimeGenerated > ago(90d)
| where IPAddress == suspectIP
| summarize
Users = make_set(UserPrincipalName, 20),
UserCount = dcount(UserPrincipalName),
FirstSeen = min(TimeGenerated),
LastSeen = max(TimeGenerated)
// If multiple users authenticate from the same anomalous IP,
// it is likely infrastructure (VPN, proxy, corporate egress)
// If only one user authenticates from it, the signal is strongerTry it yourself
Exercise: Analyze a hunt result using the five dimensions
Take the results from the TH1.3 exercise (users with new IPs and new MFA registrations). For each user in your result set, enrich across all five dimensions:
User: Check Entra ID for role, department, manager. Is this person expected to travel or use unusual devices?
Temporal: When did the anomalous sign-in occur relative to business hours? Was a phishing email delivered in the 48 hours before?
Geographic: Where is the new IP? Is it a known VPN egress? A residential proxy? A cloud hosting provider?
Behavioral: What did the user do from the new IP? Normal work activity or post-compromise indicators (inbox rules, app consent, file downloads)?
Correlated: How many dimensions show anomalies? One? Two? Three or more?
Record the confidence level (high, medium, low, no finding) and the decision (escalate, investigate further, document and close). This is the analysis section of your hunt record.
The myth: If hunting finds something unusual, it must be escalated. Failing to escalate is a security failure.
The reality: Anomalies are not findings. They are indicators that require analysis. A hunt that escalates every anomaly without enrichment overwhelms the IR team with false positives and erodes trust in the hunting program. The analysis step exists to separate anomalies (raw signal) from findings (enriched, contextualized evidence). Only high-confidence findings — supported by correlated evidence across multiple enrichment dimensions — warrant IR escalation. Medium-confidence results warrant further investigation within the hunt. Low-confidence results warrant documentation and closure. The quality of a hunting program is measured by the precision of its escalations, not the volume.
Extend this framework
The five enrichment dimensions described here apply to identity-based hunts — identity compromise, cloud persistence, privilege escalation. Endpoint hunts (TH9, TH10, TH12) use adapted dimensions: process context (parent process, command line, execution frequency), file context (file path, creation time, digital signature), network context (destination IP, port, protocol, frequency), and device context (device role, patch level, user population). The confidence model is the same — single-dimension signals are indicators, multi-dimension correlations are findings — but the dimensions change to match the data. Each campaign module defines the enrichment dimensions relevant to its technique.
References Used in This Subsection
- MITRE ATT&CK Techniques referenced: T1557.001 (Adversary-in-the-Middle), T1078 (Valid Accounts), T1564.008 (Email Hiding Rules)
- Course cross-references: TH0.7 (value of negative findings), TH4 (identity compromise campaign — full implementation of this analysis framework)
You have time for one hunt this quarter. Do you hunt for the threat in the latest advisory or for the gap in your ATT&CK coverage matrix?
Hunt the coverage gap. Advisories describe threats that are CURRENT but may not target NE. Coverage gaps describe techniques that COULD target NE and would succeed undetected. The coverage gap hunt produces a detection rule (closing the gap permanently). The advisory-driven hunt produces a point-in-time assessment (confirming the specific threat is not present today). Both are valuable — but the coverage gap hunt has a longer-lasting impact because it produces a permanent detection improvement.
You understand the detection gap and the hunt cycle.
TH0 showed you what detection rules fundamentally cannot catch. TH1 gave you the hypothesis-driven methodology that closes that gap. Now you run the hunts.
- 10 complete hunt campaigns — from hypothesis through KQL execution through finding disposition, each campaign based on a real TTP
- 70 production hunt queries — every one mapped to MITRE ATT&CK and tested against realistic telemetry
- Advanced KQL for hunting — UEBA composite risk scoring, retroactive IOC sweeps, and hunt management metrics
- Hypothesis-Driven Hunt Toolkit lab pack — 30 days of realistic M365 and endpoint telemetry with multiple attack patterns seeded in
- TH16 — Scaling hunts across a team — the operating model for a production hunt program