CHAPTER 02 30 MIN READ BEGINNER

Hypothesis Generation

Every hunt begins with a question. Not "is there malware?" but something specific enough to test with data: "Did an actor use PowerShell remoting to move laterally from workstations to servers in the last 30 days, leaving WinRM connection events and script block logs on destination hosts?" A bad hypothesis wastes analyst hours. A good hypothesis targets specific evidence, ties to a real technique, and produces a clear result whether or not the threat is present.

ABLE ATT&CK intel

What Makes a Good Hypothesis?

A hypothesis is a specific, testable statement about adversary behavior in your environment. It is not a concern, not a vague worry, and not a repeat of a problem statement. It names the technique, the expected evidence, and the scope of investigation.

Compare these two statements:

  • "There might be malware somewhere on our network."
  • "An attacker used PowerShell remoting (T1021.006) to move laterally from workstations to servers, generating WinRM connection logs (Event 4624 Type 3 from PowerShell.exe) and script block logs (Event 4104) on destination hosts in the last 30 days."

The first is a concern. The second is a hypothesis. You can write a query to test the second one. You cannot write a query to test the first.

Four qualities make a hypothesis ready to hunt:

  • Specific: Names a technique and describes its expected behavioral signature. Testable with available data.
  • Actionable: A query or set of queries can be written immediately to investigate it.
  • Bounded: Defines a scope (systems, time window, data sources). Prevents runaway scope creep during execution.
  • ATT&CK-anchored: Tied to a specific technique or sub-technique. This connects the hypothesis to known actor behavior, known data sources, and known detection guidance.
Note: If you cannot write a specific query to test it, it is not a hypothesis. It is a concern. Concerns belong in risk registers. Hypotheses belong in hunt backlogs.
Bad Hypothesis Why It Fails Improved Version
"Hunt for malware" No scope, no technique, not testable with any query "Hunt for LOLBin (certutil or bitsadmin) used to download payloads from external hosts (T1105)"
"Look for suspicious PowerShell" Too vague, generates thousands of results, burns time "Hunt for Base64-encoded PowerShell commands initiated from Office processes (T1059.001 + T1566.001)"
"Check for hackers" Not a hypothesis at all. No technique, no evidence, no scope. "Hunt for Kerberoasting: multiple RC4 TGS requests for service accounts from a single host (T1558.003)"
"Investigate recent alert" That is IR triage, not hunting. Starts from a confirmed signal, not a hypothesis. "Hunt for C2 beaconing: periodic outbound HTTPS connections at fixed intervals to low-reputation domains (T1071.001)"
"Find lateral movement" Too broad. Lateral movement is a tactic covering 15+ techniques. Cannot query a tactic. "Hunt for WMIC-based remote process creation for lateral movement (T1047)"

Where Hypotheses Come From

Hunters often stall at hypothesis generation because they treat it as creative work. It is not. Hypotheses come from structured inputs: threat intelligence, the ATT&CK framework, anomalies in your own data, and situational context from your organization. Each source type produces a different kind of hypothesis with different reliability and urgency characteristics.

Source Type Trigger Example Urgency
Intel-Driven Threat report or CTI product describes actor TTP APT29 report describes BITS job persistence. Hypothesis: BITSAdmin.exe spawning from unusual parents or downloading from external IPs. High: real, current threat
TTP-Driven ATT&CK technique is high-value and coverage has not been tested T1003 (credential dumping) is ubiquitous in breaches. Have we ever hunted it? Test LSASS memory access patterns. Medium: coverage gap
Anomaly-Driven Baseline analysis reveals statistical deviation One host produces 10x the normal DNS query volume. Hypothesis: DNS tunneling C2 (T1071.004). Medium: data-driven signal
Situational Business event changes threat model Company announced acquisition. M&A espionage campaigns historically spike. Hunt for insider data staging and unusual external transfers. Contextual: business-relevant

Prioritize in this order: Intel-Driven first (real, attributed threat to your industry), Situational second (business context makes specific attack types more likely), TTP-Driven third (systematic coverage improvement), Anomaly-Driven fourth (data signals that may or may not be threats).

CrowdStrike OverWatch tracks over 140 named adversary groups. Their hunt team knows which groups target which industry verticals and uses that context to prioritize which hypotheses are relevant each week. You may not have that intelligence depth, but the principle scales: use what you know about who targets organizations like yours to bias your hypothesis backlog toward the most relevant threats.

Tip: The best hypotheses combine three elements: who (the threat actor or actor category), what (the specific ATT&CK technique), and where (your environment's attack surface relevant to that technique). A hypothesis with all three is faster to scope and easier to evaluate.

The ABLE Framework

ABLE is the hypothesis structuring model from the PEAK framework (developed by Splunk SURGe). It forces you to answer four questions before writing a single query: Actor, Behavior, Location, Evidence. If you cannot answer all four, the hypothesis is not ready.

Component Question It Answers What to Specify
Actor Who are you hunting for? Named group (APT29, FIN7), general category (ransomware affiliate, insider threat), or "unknown advanced"
Behavior What specific TTP? ATT&CK technique + sub-technique + human-readable description of the specific action
Location Where in the environment? Platform (Windows/Linux/cloud), network segment, identity layer (AD, Entra ID), specific host groups
Evidence What artifacts would exist if true? Specific event IDs, log fields, artifact types, expected values or patterns
Worked Example 1: APT41 / Process Injection via DLL

Actor: APT41 (state-sponsored, dual financial and espionage motivation, known to target healthcare and financial services)

Behavior: T1055.001 Process Injection. APT41 injects malicious DLLs into legitimate processes using CreateRemoteThread to evade process-based detection and inherit the trust of the host process.

Location: Windows endpoints in the finance and trading application segment, specifically hosts running the trading platform and portfolio management software.

Evidence: Sysmon Event 10 (ProcessAccess) from a non-system process targeting lsass.exe or a finance application process with GrantedAccess flags indicating write permissions (0x1FFFFF, 0x1010). Sysmon Event 7 (ImageLoad) showing an unsigned or unusual DLL loaded into a legitimate process. ETW telemetry showing CreateRemoteThread API calls across process boundaries.

Worked Example 2: Ransomware Pre-Deployment / Shadow Copy Deletion

Actor: Ransomware affiliate (financially motivated, operating in pre-encryption phase, goal is to disable recovery options before deploying encryptor)

Behavior: T1490 Inhibit System Recovery. Attacker deletes Volume Shadow Copies using vssadmin.exe or wmic.exe to prevent victim from recovering files without paying ransom. This consistently occurs minutes to hours before encryption begins.

Location: All Windows servers and workstations. Priority: file servers, backup servers, domain controllers.

Evidence: Process creation events (Event 4688 or Sysmon 1) where Image ends with vssadmin.exe or wmic.exe, CommandLine contains "delete shadows" or "shadowcopy delete". Parent process is often cmd.exe or PowerShell.exe, which may itself have been spawned by a remote execution mechanism. Absence of legitimate backup software in the process tree.

Blank ABLE Template (copy this into your hunt documentation):
Actor:    [Named group | General category | Unknown advanced]
Behavior: [ATT&CK T####.### + sub-technique name + specific action description]
Location: [Platform | Network segment | Identity layer | Host group]
Evidence: [Log source | Event IDs | Artifact types | Specific fields and expected values]
Tip: Fill ABLE before writing a single query. If you cannot fill all four fields, the hypothesis is not ready. The most common gap is Evidence: analysts know what the technique is but cannot name the specific event ID or log field that would contain proof. That gap tells you either that you need to research the detection guidance (ATT&CK technique page) or that you lack the telemetry, which is itself a finding worth documenting.

ATT&CK as a Hypothesis Source

Every ATT&CK technique page is a structured hypothesis seed. It tells you who uses the technique, how it works, what artifacts it leaves, what logs you need, and what controls reduce its effectiveness. A hunter who knows how to extract that information can generate dozens of well-formed hypotheses from a single ATT&CK session.

How to read a technique page for hunting:

  • Procedure Examples: Real-world actor usage. This is the Actor field in ABLE. It also shows you specific implementation details that inform your query, such as the exact flags or file paths an actor uses.
  • Detection Section: ATT&CK's recommended detection guidance. Translate this directly into query logic. It is the starting point for your Evidence field.
  • Data Sources: The log sources required to detect this technique. If you do not have them, you cannot hunt it. Document the gap.
  • Mitigations: Controls that reduce the technique's effectiveness. Useful context: if you have the mitigation deployed, factor that into your hypothesis scope.

Red Canary analyzed telemetry from 1,700 organizations covering 305 petabytes of data and 329 billion records per day. Across five years of analysis, the same techniques appear consistently in the top detections, comprising approximately 46% of all confirmed threats. These are your highest-priority hypothesis sources because they are what attackers actually use, not just what threat reports discuss theoretically.

Technique ATT&CK ID Why High-Frequency Hunt Priority
PowerShell T1059.001 Living-off-the-land, fileless attacks, nearly universal across actor groups CRITICAL
Windows Management Instrumentation T1047 Admin tool abuse, remote execution, lateral movement, persistence CRITICAL
Process Injection T1055 Defense evasion, memory-only payloads, inherits process trust CRITICAL
OS Credential Dumping T1003 Enables all subsequent phases of attack; near-universal in advanced intrusions CRITICAL
Scheduled Task/Job T1053.005 Persistence and execution, very common, built-in Windows feature HIGH
Registry Run Keys / Startup Folder T1547.001 Persistence, low effort to implement, common in commodity and advanced malware HIGH
LSASS Memory T1003.001 Primary credential theft method, required for pass-the-hash and Kerberos attacks HIGH
Obfuscated Files or Information T1027 Defense evasion, pairs with T1059, used to avoid string-based detection HIGH
Command and Scripting Interpreter T1059 Parent technique covering cmd.exe, PowerShell, VBScript, JavaScript; universal execution HIGH
Remote Services T1021 Lateral movement via SMB, RDP, WinRM, SSH; covers entire movement phase HIGH

Attackers chain techniques in predictable patterns. A single hunt rarely covers a full attack chain, but understanding the chains tells you which techniques to prioritize and what to pivot to when you find one. Three common chains worth building hypothesis pairs around:

Chain Techniques What It Represents
Credential theft via lateral movement T1078 (Valid Accounts) + T1021.002 (SMB) + T1003.001 (LSASS dump) Attacker uses valid creds to reach a server via SMB, dumps LSASS for additional credentials, repeats
Initial access to execution chain T1566.001 (Spearphish) + T1059.001 (PowerShell) + T1055 (Injection) Phishing delivers macro, macro runs PowerShell, PowerShell injects into a trusted process
WMI lateral movement pattern T1047 (WMI) + T1021.006 (WinRM) + T1049 (Network Discovery) Attacker uses WMI for remote execution, switches to WinRM for interactive sessions, runs discovery commands
Note: When you find one technique in a chain, immediately generate a follow-on hypothesis for the next technique in the chain. If you confirmed PowerShell-based initial access (T1059.001), your next hypothesis should be about injection (T1055) or persistence (T1053.005 or T1547.001). Chains give your hunt backlog structure.

Prioritizing Your Hunt Backlog

A healthy hunt program generates hypotheses faster than it can execute them. That is a good problem to have, but it requires a disciplined prioritization system. Without one, hunters default to the most interesting hypothesis rather than the most important one. Interesting and important are not the same.

A simple four-factor scoring matrix prevents that bias. Score each hypothesis from 0-3 on each factor. Max total: 12. Hunt the highest scores first.

Factor 0 1 2 3
Threat Relevance No current threat reports General threat landscape mention Actively used against your sector Active campaign targeting your org type right now
Data Availability Log source not collected Partial coverage or gaps Log source available, some quality issues Full coverage, clean data, tested
Business Impact Minimal blast radius if undetected Moderate impact to one system or team Significant operational impact Catastrophic: ransomware, data exfil, executive compromise
Hunt Coverage Hunted this area in last 2 weeks Hunted 1-3 months ago Hunted 3-6 months ago Never hunted or no record of prior hunt
Hypothesis Relevance Data Impact Coverage Total
LSASS dump via comsvcs.dll (T1003.001) 3 3 3 2 11
Kerberoasting (T1558.003) 3 2 3 1 9
DNS tunneling C2 (T1071.004) 2 2 2 3 9
Macro-enabled document execution (T1566.001) 3 3 2 1 9
BITSAdmin persistence (T1197) 2 2 2 2 8

Treat your hunt backlog like a Kanban board: Backlog (scored, not yet scheduled), Planned (assigned to a sprint or analyst), In Progress (hunt running), Complete (documented), and New Detections Created (rules or alerts derived from findings). The last stage is critical. A hunt that does not produce a detection rule or a documented data gap has not fully closed.

Tip: Prioritize by what kills you if missed, not by what is most interesting to hunt. Kerberoasting is fascinating technically. But if your org has never hunted LSASS access and you have a data exfiltration risk, hunt LSASS first. Scoring removes that bias.

Converting Threat Intel to Hypotheses

Threat reports are dense and often written for intelligence consumers, not hunters. The skill is extracting the operational content: which techniques were used, in which sequence, with which tools, leaving which artifacts. Then translating each technique into an ABLE-structured hypothesis.

Source Report Extract (simulated CTI product):

"Threat cluster CL-CRI-042 was observed targeting financial services firms in Q2 2026. Initial access via spearphishing with ISO attachments (T1566.001, T1553.005). Payload staged via BITSAdmin from compromised CDN infrastructure (T1105, T1197). Lateral movement via WMI remote process creation (T1047). Credential theft via comsvcs.dll MiniDump of LSASS (T1003.001). Data exfiltration over HTTPS to dedicated C2 domains registered via Cloudflare proxy (T1048.002, T1071.001)."

From that single report, extract five distinct hypotheses:

# Technique Actor Behavior Location Evidence
1 T1553.005 CL-CRI-042 ISO/IMG mounted to bypass Mark-of-the-Web, spawning LOLBin execution User workstations with optical drive or ISO mount capability Sysmon 1: process spawned from a mounted ISO path (e.g., D:\ or virtual drive). Parent: explorer.exe. Unusual executable names from removable-path location.
2 T1197 + T1105 CL-CRI-042 BITSAdmin used to download second-stage payload from external CDN host All Windows workstations Sysmon 1: bitsadmin.exe with /transfer and external URL arguments. Sysmon 3: bitsadmin.exe network connection to non-Microsoft external IP. Event 4688: bitsadmin.exe CommandLine with /download.
3 T1047 CL-CRI-042 WMI remote process creation from compromised workstation to server Windows servers, particularly those with financial application access Sysmon 1 on destination host: WmiPrvSE.exe as parent process. Event 4624 Type 3 logon correlated with WMI process creation. Event 4688: child process spawned by WmiPrvSE.exe with suspicious command line.
4 T1003.001 CL-CRI-042 comsvcs.dll MiniDump used to dump LSASS memory to a temp file All Windows hosts, priority on servers where admin accounts log in Sysmon 1: rundll32.exe with CommandLine containing "comsvcs" + "MiniDump" + "lsass". Sysmon 10: process accessing lsass.exe with high-privilege access rights. Sysmon 11: .dmp file created in temp or unusual directory.
5 T1071.001 + T1102 CL-CRI-042 C2 beaconing over HTTPS to Cloudflare-proxied domains, periodic intervals All endpoints, particularly servers and hosts with internet egress Proxy logs: periodic HTTPS connections at fixed intervals to domains behind Cloudflare ASNs with low historical traffic. DNS logs: Sysmon 22 queries to recently registered domains resolving to Cloudflare IPs. NetFlow: consistent small byte-count HTTPS connections at regular intervals.

Hypothesis 4 (comsvcs.dll LSASS dump) directly translates into a Sigma rule that any SIEM can consume:

SIGMA
title: Potential LSASS Memory Dump via comsvcs.dll
id: e1a3b5c2-f4d6-4e89-a0b2-c3d5e7f90123
status: experimental
description: Detects LSASS memory dump using comsvcs.dll MiniDump function,
  common in credential theft operations. Observed in multiple ransomware
  pre-deployment and APT intrusion chains.
author: H3AD-LEARN
date: 2026/06/02
logsource:
  category: process_creation
  product: windows
detection:
  selection_img:
    Image|endswith: '\rundll32.exe'
  selection_cmd:
    CommandLine|contains|all:
      - 'comsvcs'
      - 'MiniDump'
      - 'lsass'
  condition: selection_img and selection_cmd
falsepositives:
  - Legitimate memory diagnostics tools (verify process tree and initiating user)
level: critical
tags:
  - attack.credential_access
  - attack.t1003.001
Note: Hypothesis to Sigma rule is the final stage of the hunt cycle. The hypothesis becomes a query during the hunt. If the hunt confirms the threat pattern, the query becomes a detection rule. This is how hunting builds durable detection coverage rather than being a one-time exercise.

Common Mistakes in Hypothesis Generation

Most hypothesis failures fall into five patterns. Recognizing them before you start saves hours of wasted hunt time.

Mistake What Happens Fix
Too broad "Detect malicious PowerShell" generates thousands of results. The analyst burns hours triaging noise and loses confidence in the hunt process. Narrow with parent process context, specific flags, or behavioral combination. "PowerShell with -enc flag initiated from an Office application process" is testable.
Too narrow "Check CVE-2024-1234 exploit on host DESKTOP-ABC01" is a single-point check, not a systematic hunt. Even if it finds nothing, it tells you nothing about the broader environment. Broaden to the TTP the CVE enables, across the relevant system segment. "Hunt for memory corruption exploitation indicators across web-facing hosts in the DMZ."
No telemetry Hypothesis requires WMI activity logs, but the WMI provider is not enabled. Hunt cannot proceed. Analyst discovers the gap mid-hunt after the sprint is already allocated. Always validate data availability as part of ABLE (Evidence field). Run a test query before scheduling the hunt. If data is absent, log the gap and move to a testable hypothesis.
No ATT&CK anchor "Look for suspicious network traffic" cannot be measured for coverage, cannot be evaluated objectively, and produces inconsistent results across analysts. Tie to a specific technique (T1071 Application Layer Protocol) with specific sub-behaviors (abnormal user agents, fixed-interval beaconing, unusual port for protocol).
Confirmation bias Hunter suspects a specific host is compromised. Hunt is designed to confirm that belief. Evidence contradicting the hypothesis is ignored. Result: false positive escalated to IR. Document what would disprove the hypothesis before starting. A null result is as valuable as a positive one. Design queries to surface all results, not just confirming ones.
Warning: A null result, no evidence found, is a valid and valuable outcome. It means one of two things: your controls are working as expected for this technique, or you have a data gap that prevented detection. Both outcomes are actionable. Document which it is. A null result without documentation is just a wasted hunt.

The confirmation bias mistake is the hardest to self-diagnose. The fix is structural: before executing any hunt, write down the conditions that would prove the hypothesis false. If your only planned queries are designed to confirm your suspicion, add at least one query that would surface contrary evidence. This is the same rigor applied in scientific investigation and it applies directly to adversary hunting.

Tip: The ABLE framework forces you to answer all four questions before touching data. If any field is blank when you finish filling it in, the hypothesis is not ready to hunt. The most common incomplete field is Evidence: if you do not know which specific event IDs or log fields would contain proof, spend 10 minutes on the ATT&CK technique page before scheduling the hunt.

Key Takeaways

  • A good hypothesis is specific, actionable, bounded, and ATT&CK-anchored. If you cannot write a query to test it, it is not a hypothesis.
  • Hypotheses come from four sources: threat intelligence, ATT&CK technique coverage gaps, anomalies in your own data, and situational business context. Prioritize intel-driven and situational sources first.
  • The ABLE framework (Actor, Behavior, Location, Evidence) structures every hypothesis. All four fields must be filled before a hunt begins.
  • PowerShell (T1059.001) is the most consistently observed technique in Red Canary's multi-year analysis, appearing in the top attacker techniques for five consecutive years across 1,700 organizations.
  • Prioritize hunt backlog using a four-factor matrix: Threat Relevance, Data Availability, Business Impact, and Hunt Coverage. Score 0-3 per factor. Hunt the highest scores first.
  • Every threat report contains multiple hypotheses. Extract each technique from the report and build a separate ABLE-structured hypothesis for each one.
  • A null result is valid and valuable. It either confirms that controls work for this technique or reveals a data gap. Both outcomes are worth documenting.

Knowledge Check

Click an answer to reveal the explanation.

Q1. What are the four components of the ABLE hypothesis framework?

  • A. Alert, Behavior, Log, Escalation
  • B. Actor, Behavior, Location, Evidence
  • C. Attacker, Baseline, Log source, Event ID
  • D. Asset, Behavior, Logic, Evaluation

Q2. Which of the following is a well-formed hunt hypothesis?

  • A. "Look for suspicious activity on the network"
  • B. "Check if there are any threats"
  • C. "Hunt for Kerberoasting: multiple RC4-encrypted TGS requests (Event 4769, EncryptionType 0x17) from a single host within 10 minutes (T1558.003)"
  • D. "Investigate the recent alert about unusual login"

Q3. According to Red Canary's multi-year analysis, what is the most consistently observed ATT&CK technique, appearing across approximately 46% of detections?

  • A. Process Injection (T1055)
  • B. PowerShell (T1059.001)
  • C. Scheduled Tasks (T1053.005)
  • D. Credential Dumping (T1003)

Q4. In the four-factor hypothesis prioritization scoring matrix, which factor rewards hypotheses that have never been hunted before?

  • A. Threat Relevance
  • B. Data Availability
  • C. Business Impact
  • D. Hunt Coverage

Q5. What is the value of a null result in a threat hunt?

  • A. It has no value; the hunt should be re-run with different queries until a threat is found
  • B. It proves the environment is secure and no further hunting is needed in that area
  • C. It confirms either that controls are working for this technique or that a data gap exists, both of which are actionable findings
  • D. It is a failure that should not be documented
VISITORS
VISITORS