The single most valuable skill in alert triage isn’t knowing every technique — it’s knowing which drawer to open first. An analyst who can route an alert to the right playbook in 30 seconds, then execute that playbook consistently, will outperform an analyst who knows more but approaches every alert from scratch.
Alert Class Decision Tree
Read the alert.
│
├─ Primary observable is a HOST EVENT?
│ (process, file, registry, service, driver)
│ └─► ENDPOINT PLAYBOOK
│
├─ Primary observable is a NETWORK EVENT?
│ (connection, flow, IDS hit, DNS query, TLS fingerprint)
│ └─► NETWORK PLAYBOOK
│
├─ Primary observable is an AUTH/IDENTITY EVENT?
│ (login, MFA, OAuth grant, role assignment, password change)
│ └─► IDENTITY PLAYBOOK
│
└─ Primary observable is an EMAIL EVENT?
(submission, header anomaly, link, attachment, mailbox rule)
└─► EMAIL PLAYBOOK
Class 1: Endpoint
Data sources: EDR (CrowdStrike, SentinelOne, Defender for Endpoint), Sysmon, Windows Security EVTX, auditd (Linux), Unified Endpoint logs.
Primary question: What process did what, to what?
Core pivot chain:
- Process name + path + command line
- Parent process (what spawned this?)
- Child processes (what did this spawn?)
- Network connections from this process
- File writes from this process
- Registry modifications
Classic indicators:
- Unexpected parent-child relationship (Office → PowerShell)
- Living-off-the-land binaries (LOLBAS) with unusual flags
- Process running from
%TEMP%,%APPDATA%, or user-writable paths - Encoded or obfuscated command lines
Class 2: Network
Data sources: Suricata/Snort IDS, Zeek logs (conn.log, dns.log, ssl.log, http.log), NetFlow, PCAP, firewall logs.
Primary question: What connected to what, with what pattern?
Core pivot chain:
- Source IP → destination IP → port → protocol
- Zeek
conn.logfor session duration and byte count - Zeek
dns.logfor associated queries - Zeek
ssl.logfor TLS fingerprint (JA3/JA4) and certificate - Payload or file extraction (if PCAP available)
- Frequency analysis: is there a regular interval? (beacon?)
Classic indicators:
- Regular-interval connections (beaconing)
- Long-duration small-byte connections (C2 keep-alive)
- DNS queries with high entropy (DGA) or long subdomains (tunnelling)
- Unusual port usage (raw TCP on 443, not HTTPS)
Class 3: Identity
Data sources: Azure Entra ID sign-in logs, Okta System Log, AWS CloudTrail (AssumeRole, IAM events), Active Directory Security EVTX (4624, 4625, 4768, 4769), MFA logs.
Primary question: Did the right person authenticate from the right place with the right method?
Core pivot chain:
- User account → department, role, MFA enrollment, admin status
- Authentication location: IP geolocation, ASN, is it known VPN/proxy?
- Authentication method: modern vs legacy auth, MFA success/fail
- Prior authentication locations: is this a new country? Impossible travel?
- What happened after authentication: what resources were accessed?
- Lateral accounts: did this credential spray other accounts?
Classic indicators:
- Impossible travel (authentication from two locations geographically impossible in elapsed time)
- Legacy auth bypass (no MFA required for SMTP AUTH, POP3, IMAP)
- MFA fatigue: repeated push notifications to the same user
- OAuth consent grant for an unusual application scope
Class 4: Email
Data sources: Microsoft 365 Unified Audit Log (UAL), Google Workspace Admin Activity, email gateway (Proofpoint, Mimecast), email headers, attachment sandbox.
Primary question: Was this email sent legitimately, and what did the recipient click?
Core pivot chain:
- Sender: domain, DMARC/DKIM/SPF result, is it a lookalike?
- Received chain: what IP actually sent this? Is it expected infrastructure?
- Links: detonated URL — where does it go? Is it credential-harvesting?
- Attachments: hash → VT, macro-enabled?, sandbox report
- Mailbox actions: did the user click? Did a rule get created? Was mail forwarded?
- Reply-to: does it differ from the display sender? (BEC indicator)
Classic indicators:
- Display name spoofing (From: “CEO Name”
<random@attacker.com>) - Reply-to mismatch (send to internal; reply goes to external attacker inbox)
- Freshly registered lookalike domain
- Invoice or wire transfer lure content
- Mailbox forwarding rule created shortly after the email arrived