Microsoft SC-200: Hunting Threats with KQL

Microsoft has already published an October 21 SC-200 skills refresh, while the July 28 English outline remains the active version on October 7, 2026. Threat hunting survives that transition as a core capability. The practical emphasis is on querying security data with KQL, moving between Microsoft Sentinel and Defender XDR hunting experiences, building hypotheses from telemetry, and preserving useful evidence for investigation. Candidates should use the blueprint tied to their exam date, but they should expect hunting questions to reward query reasoning and evidence interpretation rather than memorized syntax alone.

Kusto Query Language is the working language of threat hunting in Microsoft’s security stack. It is used in Microsoft Defender XDR advanced hunting and Microsoft Sentinel to search large sets of event data for patterns that existing detections may not have surfaced. For the Microsoft SC-200 exam, the important skill is not memorizing a catalog of operators. It is learning how to turn an investigative question into a query that narrows data without losing the evidence you need.

Start with the table that actually contains the event

The first hunting decision is data selection. A beautiful query against the wrong table returns either nothing or misleading context. In Defender XDR, different tables represent devices, processes, network connections, email, identities, cloud apps, and other event types. In Sentinel, the available tables depend on connectors and workspace design. Before writing filters, understand the schema.

SC-200 scenarios often test this indirectly. If the task is to hunt process execution, look for process events. If the task is suspicious email, use email-related data. If the goal is account activity, identity or sign-in telemetry is more relevant. Strong hunters know where evidence is likely to exist before they start joining everything to everything.

Build queries in layers: A practical KQL workflow is incremental. Start with a small sample using take or a narrow time range. Use where to remove irrelevant records, project to keep useful fields, and sort to inspect sequence. Add summarize only when aggregation answers the question. Add joins only after you know why another table is required.

This layered approach makes errors visible. If the query returns no results after one filter, you know which condition removed the data. A single 25-line query written from scratch is harder to debug because several assumptions can fail at once.

Time is part of almost every security story

Threat hunting is temporal. A suspicious process may matter because it was launched shortly after a user downloaded a file. A sign-in may matter because it followed a password reset. An IP may matter because several accounts contacted it within ten minutes. KQL makes it possible to bound time windows, summarize event frequency, and correlate events across sequences.

Be precise with time. Querying thirty days when the question concerns the last hour creates unnecessary work and more noise. When comparing tables, understand their timestamp fields and ingestion characteristics. A hunt that assumes all telemetry arrives simultaneously can miss sequences when one connector is delayed.

Use summarize to expose behavior: Individual events rarely look dramatic. Patterns emerge through aggregation. Counting failed sign-ins by account and IP can reveal spraying. Counting distinct hosts contacted by one process can reveal scanning behavior. Summarizing commands by device can reveal an unusual administrative pattern.

The goal is not to aggregate because summarize is an exam keyword. It is to reduce thousands of events into a behavioral shape that supports a hypothesis. The behavioral threat hunting mindset starts with “what would the attacker have to do?” and then asks which observable pattern represents that behavior.

Joins are powerful and easy to overuse

Joining two tables can connect process execution to network activity, identity events to device events, or email delivery to subsequent endpoint behavior. That can be exactly what an investigation needs. It can also create enormous intermediate results if keys are not selective or if both tables are broad.

Filter each side before joining. Project only necessary fields. Choose a join strategy that matches the relationship you expect. If you only need to know whether a value exists in another set, a membership test may be clearer than a full join. Query efficiency matters in threat hunting because analysts iterate quickly and productionized detections may run frequently.

String parsing and normalization matter in messy telemetry

Security data is full of command lines, URLs, registry paths, user agents, and semi-structured fields. KQL’s string functions and parsing operators help turn those fields into useful dimensions. A command line may reveal a suspicious encoded argument. A URL can be separated into domain and path. A JSON payload may contain the action or resource that matters.

Normalize equivalent values before comparing them. Hostnames can appear as short names or fully qualified names; user identifiers can vary by source; IP addresses may be embedded in text. Hunting quality drops quickly when the query assumes every connector represents identity in the same way.

Advanced hunting is not just retrospective search: Microsoft Defender XDR advanced hunting can support custom detection rules. That means a successful hunt can become a repeatable detection once the logic is stable, scoped, and tested. The October 2026 SC-200 outline specifically includes creating and managing custom detection rules through advanced hunting.

This is the natural bridge from hunting to the detection engineering lifecycle. A hunter asks a question, finds a repeatable behavior, validates the signal, and then turns it into a detection if the value justifies ongoing alerting. Not every hunt should become a rule; some are one-off investigations or exploratory hypotheses.

Context turns a query result into an investigation

A result set is not a conclusion. If a query returns a rare PowerShell command, you still need to ask who ran it, on which device, under what account, what happened before and after, whether the binary is signed, whether the device is a server or user endpoint, and whether similar behavior exists elsewhere.

Entity pivots are critical. Move from account to device, from device to process, from process to network connection, from connection to IP reputation, and back to other impacted entities. The upcoming SC-200 skills emphasize hunting graphs and blast radius for exactly this reason: investigations are relationship problems, not isolated rows.

Save and share hunts that deserve reuse: A useful hunting query should have a clear name, a short description of the hypothesis, expected data sources, and notes about common benign matches. Shared queries reduce duplicated effort and help analysts use the same logic consistently. If a query depends on a custom table or field, document that dependency.

Parameterization also helps. Instead of hard-coding one username or IP, design a query that can accept values quickly during an incident. The faster an analyst can pivot from an alert entity into a trusted query, the more useful the hunt becomes operationally.

Keep KQL readable

Security queries are maintained by teams. Use meaningful variable names, logical line breaks, and comments where a condition is not obvious. Avoid clever constructions that save two lines but hide the detection idea. Readability is a reliability feature because analysts need to review, tune, and explain queries under pressure.

The SC-200 preparation process should include rewriting the same hunt in a clearer form after it works. If you cannot explain what each stage of the pipeline contributes, the query is not yet production-ready.

Practice with three classes of hunt

First, hunt for a known indicator: a domain, hash, IP address, or account. This teaches filtering and entity pivots. Second, hunt for abnormal frequency or rarity: unusual process names, logon patterns, or network fan-out. This teaches aggregation. Third, hunt for a sequence: a suspicious email followed by process execution and outbound traffic. This teaches correlation across data sources.

Those three classes cover a large portion of real SOC work. They also reinforce why KQL is central to the security operations certification path: it gives analysts a flexible way to ask questions that product detections did not anticipate.

Use let statements to make complex hunts understandable: As hunts grow, let statements can separate logical stages into named datasets. One block can identify suspicious accounts, another can collect related device events, and a final statement can correlate the two. This is not merely syntax preference. Breaking a hunt into named components makes it easier to test each assumption and to reuse a stable subset in other queries.

Named intermediate results also make peer review easier. An analyst can inspect the suspicious-account definition without tracing a long nested expression. When a query later becomes a custom detection, that readability reduces the chance that a tuning change accidentally alters unrelated logic.

Rarity is powerful but context-dependent

Many hunts ask what is unusual rather than what is already known to be malicious. A process executed on one device out of ten thousand may deserve attention; so may a user signing in from a country never previously associated with the account, or a service that suddenly connects to hundreds of new destinations. KQL can count, rank, and compare these patterns quickly.

Rarity is not guilt. A newly deployed administrative tool is rare until it becomes normal. A new employee’s first sign-in location is rare by definition. Good hunts pair rarity with context such as privilege, process ancestry, signer, destination reputation, time of day, or related alerts. That reduces the chance that “unusual” becomes a synonym for “malicious.”

Know when to convert a hunt into a detection: A hunt deserves operationalization when it repeatedly finds meaningful behavior, the required telemetry is reliable, false positives can be bounded, and the SOC has a clear response for the resulting alert. If analysts must manually rewrite half the query every time, it is probably still exploratory. If the pattern is stable and the response is known, a custom detection or Sentinel analytics rule can provide continuous coverage.

That conversion should include a test plan, owner, severity rationale, entity mappings, MITRE ATT&CK classification, and review date. The technical query may be the smallest part of the work; the rest is what turns it into a dependable security control.

What to carry into the exam

Choose the right table, narrow time early, filter before you aggregate, aggregate to reveal behavior, join only when another data source is necessary, normalize messy values, and use query results as a starting point for entity pivots rather than a final verdict. KQL is most powerful when it remains readable enough to test, share, tune, and eventually convert into a reliable detection.