Lesson 4 of 5 · 20 min read

Designing for the Analyst — Alert Context and Triage Experience

A detection rule has two customers: the attacker (who you’re trying to catch) and the analyst (who has to act on the alert). Most rules are designed entirely around the first customer. This lesson focuses on the second — because an alert that fires but can’t be triaged quickly is almost as harmful as one that doesn’t fire at all.


The 60-Second Rule

When an alert fires, the analyst needs to decide within 60 seconds:

Every minute the analyst spends looking up context that should have been in the alert is a minute added to Mean Time to Detect (MTTD) and a cost multiplied across every alert in the queue.


The Five Context Categories

Every alert should surface all five:

1. Actor — Who triggered this?

Bad alert (missing actor context)Good alert (full actor context)
“An alert fired”User: jdoe@corp.com (Finance, no admin rights)
Risk Score: 72/100 (high — 3 anomalies in 7 days)
Last login: 2026-05-19 from New York

High risk score + non-admin user attempting admin-level behavior → very likely real threat. Low risk score + known-admin user at normal working hours → likely FP, verify quickly.

2. Asset — Where did this happen?

ContextTriage impact
Domain Controller (Tier 0)Escalate immediately regardless of FP probability
Production server (Tier 1)High priority, fast response
Developer workstation (Tier 2)Standard priority
Contractor laptopElevated scrutiny — limited network visibility

The same detection on a Tier 0 asset vs a Tier 2 asset should generate different response urgency. Asset criticality enrichment enables this without rule duplication.

3. Action — What exactly happened?

The raw event data with full field visibility:

Process: C:\Windows\System32\cmd.exe
CommandLine: cmd.exe /c powershell -enc SGVsbG8gV29ybGQ=
Parent: C:\Program Files\Microsoft Office\root\Office16\WINWORD.EXE
Parent PID: 4820
User: CORP\jdoe
Host: ws-finance-04
Time: 2026-05-20 09:41:23 UTC

An analyst reads this and immediately identifies: Word spawning cmd spawning PowerShell with an encoded command. No SIEM pivot needed. The context is in the alert.

4. Context — Why did this rule fire?

Rule: Office App Spawning Shell (T1566.001)
Severity: High
ATT&CK Technique: T1566.001 — Spearphishing Attachment
Rule Description: Detects Office application spawning a scripting engine,
  consistent with macro execution from a malicious attachment.
Analyst SOP: https://wiki/runbooks/t1566-001

The ATT&CK link, the rule description, and the runbook link tell an analyst unfamiliar with this rule exactly what to do without asking the rule author.

5. Timeline — Is this part of a chain?

-10min: jdoe received an email with attachment "Invoice_Q1.docm" (email gateway log)
-05min: WINWORD.EXE opened "Invoice_Q1.docm" (process creation)
[ALERT]: cmd.exe spawned by WINWORD.EXE
+01min: powershell.exe made outbound connection to 185.x.x.x:443 (Sysmon Event 3)

The timeline transforms an isolated alert into a visible attack chain. The analyst sees the spearphish, the macro execution, and the C2 callback — and knows to begin response, not just triage.


The Sigma fields Section

The Sigma spec includes a fields list that tells the converter which fields to surface in the SIEM alert view:

fields:
  - Image
  - CommandLine
  - ParentImage
  - ParentCommandLine
  - User
  - ComputerName
  - ProcessGuid

Without this: many SIEMs show a rule-match hit with a timestamp and nothing else. With this: the analyst sees the full process context inline.

Recommended fields by logsource:

LogsourceEssential fields
process_creationImage, CommandLine, ParentImage, ParentCommandLine, User, ComputerName, ProcessGuid
network_connectionImage, DestinationIp, DestinationPort, User, ComputerName
registry_setTargetObject, Details, Image, User
file_eventTargetFilename, Image, User, ComputerName
ps_scriptScriptBlockText (truncated), ScriptBlockId

Auto-Enrichment Patterns

Beyond the fields logged in the event, enrichment adds data from external sources at alert creation time:

Alert fires for: jdoe on ws-finance-04

Auto-enrichment adds:
  → jdoe: Risk Score 72, Finance dept, non-admin, last anomaly: 2026-05-15
  → ws-finance-04: Tier 2 workstation, asset owner: jdoe, last patched: 2026-05-01
  → DestinationIP 185.x.x.x: TI match — Cobalt Strike C2 (Recorded Future, 2026-05-18)
  → Rule baseline: this rule fires on ws-finance-04 approximately 0 times/month
    (first-ever alert for this host)

Enriched alert output: the analyst sees Risk=HIGH (TI match + first-ever hit + non-admin account + business-hours) and escalates without any lookup.