Triaging Security Incidents
When to Use
- A SIEM or EDR alert fires and requires human classification before escalation
- Multiple concurrent alerts arrive and the SOC must prioritize response order
- An end user reports suspicious activity and the incident needs initial categorization
- A threat intelligence feed matches an IOC observed in the environment
Do not use for routine vulnerability scanning results or compliance audit findings that do not represent active security incidents.
Prerequisites
- Access to SIEM platform (Splunk, Elastic, Microsoft Sentinel) with current alert data
- Incident classification taxonomy aligned to NIST SP 800-61r3 categories
- Predefined severity matrix mapping asset criticality to threat type
- Contact roster for escalation paths (Tier 1 through Tier 3 and CIRT)
- Asset inventory with business criticality ratings
Workflow
Step 1: Collect Initial Alert Data
Gather all available context from the triggering alert before making classification decisions:
- Alert source: Which detection system generated the alert (EDR, SIEM, IDS/IPS, firewall, user report)
- Timestamp: When the event occurred and when it was detected (dwell time gap)
- Affected assets: Hostnames, IP addresses, user accounts involved
- Alert fidelity: Historical true-positive rate for this detection rule
- Raw evidence: Log entries, packet captures, process execution chains
Example SIEM alert context:
Source: CrowdStrike Falcon
Detection: Suspicious PowerShell Execution (T1059.001)
Host: WORKSTATION-FIN-042
User: jsmith@corp.example.com
Timestamp: 2025-11-15T14:23:17Z
Severity: High (detection rule confidence: 92%)
Process: powershell.exe -enc SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoA...
Parent: outlook.exe (PID 4812)
Step 2: Classify the Incident Type
Map the alert to a standard incident category per NIST SP 800-61r3:
| Category |
Examples |
| Unauthorized Access |
Compromised credentials, privilege escalation, IDOR |
| Denial of Service |
Volumetric DDoS, application-layer flood, resource exhaustion |
| Malicious Code |
Malware execution, ransomware detonation, cryptominer |
| Improper Usage |
Policy violation, insider data exfiltration, shadow IT |
| Reconnaissance |
Port scanning, directory enumeration, credential spraying |
| Web Application Attack |
SQL injection, XSS, SSRF exploitation |
Step 3: Assign Severity Using Impact Matrix
Calculate severity by combining asset criticality with threat severity:
Severity = f(Asset Criticality, Threat Type, Data Sensitivity, Lateral Movement Potential)
Critical (P1): Crown jewel systems compromised, active data exfiltration, ransomware spreading
High (P2): Production system compromise, confirmed malware execution, privileged account takeover
Medium (P3): Non-production compromise, unsuccessful exploitation attempt, single endpoint malware
Low (P4): Reconnaissance activity, policy violation, benign true positive
Response SLA targets:
- P1: Acknowledge within 15 minutes, containment within 1 hour
- P2: Acknowledge within 30 minutes, containment within 4 hours
- P3: Acknowledge within 2 hours, investigation within 24 hours
- P4: Acknowledge within 8 hours, investigation within 72 hours
Step 4: Perform Initial Enrichment
Before escalation, enrich the alert with contextual data:
- Threat intelligence: Check IOCs (IP, hash, domain) against TI platforms (VirusTotal, OTX, MISP)
- Asset context: Query CMDB for asset owner, business function, data classification
- User context: Check identity provider for recent authentication anomalies, MFA status
- Historical correlation: Search for related alerts on the same host/user in the past 30 days
- Network context: Verify if source/destination IPs are internal, known partners, or external threat actors
Step 5: Document and Escalate
Create a structured triage record and route to the appropriate response tier:
Incident Triage Record
━━━━━━━━━━━━━━━━━━━━━
Ticket ID: INC-2025-1547
Triage Analyst: [analyst name]
Triage Time: 2025-11-15T14:35:00Z (12 min from alert)
Classification: Malicious Code - Macro-based initial access
Severity: P2 - High
Affected Assets: WORKSTATION-FIN-042 (Finance dept, handles PII)
Affected Users: jsmith@corp.example.com
IOCs Identified: powershell.exe spawned by outlook.exe, encoded command
TI Matches: Base64 payload matches known Qakbot loader pattern
Escalation: Tier 2 - Malware IR team
Recommended: Isolate endpoint, preserve memory dump, block sender domain
Step 6: Initiate Containment Hold
If severity is P1 or P2, initiate immediate containment actions while awaiting full investigation:
- Network-isolate the affected endpoint via EDR (CrowdStrike contain, Defender isolate)
- Disable compromised user accounts in Active Directory or identity provider
- Block identified malicious IPs/domains at firewall and DNS sinkhole
- Preserve volatile evidence (memory dump) before any remediation
Key Concepts
| Term |
Definition |
| Triage |
Rapid assessment process to classify and prioritize security incidents based on severity and business impact |
| PICERL |
SANS incident response framework: Preparation, Identification, Containment, Eradication, Recovery, Lessons Learned |
| Dwell Time |
Duration between initial compromise and detection; average is 10 days per Mandiant M-Trends 2025 |
| True Positive Rate |
Percentage of alerts from a detection rule that represent genuine security incidents |
| Crown Jewel Assets |
Systems and data critical to business operations whose compromise would cause severe organizational impact |
| Alert Fatigue |
Degraded analyst performance caused by high volumes of low-fidelity or false-positive alerts |
| Mean Time to Acknowledge (MTTA) |
Average time from alert generation to analyst acknowledgment; key SOC performance metric |
Tools & Systems
- Splunk Enterprise Security: SIEM platform for alert aggregation, correlation, and triage workflow management
- CrowdStrike Falcon: EDR platform providing endpoint telemetry, detection, and one-click host containment
- TheHive: Open-source incident response platform for case management, task tracking, and team collaboration
- MISP: Threat intelligence sharing platform for IOC enrichment during triage
- Cortex XSOAR: SOAR platform for automating enrichment playbooks and triage decision trees
Common Scenarios
Scenario: Encoded PowerShell from Email Client
Context: SOC analyst receives a P2 alert showing powershell.exe with a Base64-encoded command spawned as a child process of outlook.exe on a finance department workstation.
Approach:
- Decode the Base64 payload to determine the command intent
- Check the parent process chain for anomalies (Outlook spawning PowerShell is abnormal)
- Query VirusTotal for the decoded payload hash
- Correlate with email gateway logs to identify the triggering email and sender
- Check if other recipients in the organization received the same email
- Isolate the endpoint and escalate to Tier 2 with full triage context
Pitfalls:
- Dismissing encoded PowerShell as a false positive without decoding the payload
- Failing to check for lateral spread to other recipients of the same phishing email
- Remediating the endpoint before capturing volatile memory evidence
Output Format
INCIDENT TRIAGE REPORT
======================
Ticket: INC-[YYYY]-[NNNN]
Date/Time: [ISO 8601 timestamp]
Triage Analyst: [Name]
Time to Triage: [minutes from alert to classification]
CLASSIFICATION
Type: [NIST category]
Severity: [P1-P4] - [Critical/High/Medium/Low]
Confidence: [High/Medium/Low]
MITRE ATT&CK: [Technique ID and name]
AFFECTED SCOPE
Assets: [hostname(s), IP(s)]
Users: [account(s)]
Data at Risk: [classification level]
Business Unit: [department]
EVIDENCE SUMMARY
[Bullet list of key observations]
ENRICHMENT RESULTS
TI Matches: [Yes/No - details]
Historical: [Related prior incidents]
Asset Criticality: [rating]
RECOMMENDED ACTIONS
1. [Immediate action]
2. [Investigation step]
3. [Escalation target]
ESCALATION
Routed To: [Team/Individual]
SLA Target: [Containment deadline]
1---
2name: triaging-security-incident
3description: 'Performs initial triage of security incidents to determine severity, scope, and required response actions using
4 the NIST SP 800-61r3 and SANS PICERL frameworks. Classifies incidents by type, assigns priority based on business impact,
5 and routes to appropriate response teams. Activates for requests involving incident triage, security alert classification,
6 severity assessment, incident prioritization, or initial incident analysis.
7
8 '
9domain: cybersecurity
10subdomain: incident-response
11tags:
12- incident-triage
13- NIST-800-61
14- SANS-PICERL
15- severity-classification
16- SOC-operations
17mitre_attack:
18- T1190
19- T1566
20- T1078
21- T1059
22version: 1.0.0
23author: mahipal
24license: Apache-2.0
25d3fend_techniques:
26- Executable Denylisting
27- Execution Isolation
28- File Metadata Consistency Validation
29- Content Format Conversion
30- File Content Analysis
31nist_csf:
32- RS.MA-01
33- RS.MA-02
34- RS.AN-03
35- RC.RP-01
36---
37
38# Triaging Security Incidents
39
40## When to Use
41
42- A SIEM or EDR alert fires and requires human classification before escalation
43- Multiple concurrent alerts arrive and the SOC must prioritize response order
44- An end user reports suspicious activity and the incident needs initial categorization
45- A threat intelligence feed matches an IOC observed in the environment
46
47**Do not use** for routine vulnerability scanning results or compliance audit findings that do not represent active security incidents.
48
49## Prerequisites
50
51- Access to SIEM platform (Splunk, Elastic, Microsoft Sentinel) with current alert data
52- Incident classification taxonomy aligned to NIST SP 800-61r3 categories
53- Predefined severity matrix mapping asset criticality to threat type
54- Contact roster for escalation paths (Tier 1 through Tier 3 and CIRT)
55- Asset inventory with business criticality ratings
56
57## Workflow
58
59### Step 1: Collect Initial Alert Data
60
61Gather all available context from the triggering alert before making classification decisions:
62
63- **Alert source**: Which detection system generated the alert (EDR, SIEM, IDS/IPS, firewall, user report)
64- **Timestamp**: When the event occurred and when it was detected (dwell time gap)
65- **Affected assets**: Hostnames, IP addresses, user accounts involved
66- **Alert fidelity**: Historical true-positive rate for this detection rule
67- **Raw evidence**: Log entries, packet captures, process execution chains
68
69```
70Example SIEM alert context:
71Source: CrowdStrike Falcon
72Detection: Suspicious PowerShell Execution (T1059.001)
73Host: WORKSTATION-FIN-042
74User: jsmith@corp.example.com
75Timestamp: 2025-11-15T14:23:17Z
76Severity: High (detection rule confidence: 92%)
77Process: powershell.exe -enc SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoA...
78Parent: outlook.exe (PID 4812)
79```
80
81### Step 2: Classify the Incident Type
82
83Map the alert to a standard incident category per NIST SP 800-61r3:
84
85| Category | Examples |
86|----------|----------|
87| Unauthorized Access | Compromised credentials, privilege escalation, IDOR |
88| Denial of Service | Volumetric DDoS, application-layer flood, resource exhaustion |
89| Malicious Code | Malware execution, ransomware detonation, cryptominer |
90| Improper Usage | Policy violation, insider data exfiltration, shadow IT |
91| Reconnaissance | Port scanning, directory enumeration, credential spraying |
92| Web Application Attack | SQL injection, XSS, SSRF exploitation |
93
94### Step 3: Assign Severity Using Impact Matrix
95
96Calculate severity by combining asset criticality with threat severity:
97
98```
99Severity = f(Asset Criticality, Threat Type, Data Sensitivity, Lateral Movement Potential)
100
101Critical (P1): Crown jewel systems compromised, active data exfiltration, ransomware spreading
102High (P2): Production system compromise, confirmed malware execution, privileged account takeover
103Medium (P3): Non-production compromise, unsuccessful exploitation attempt, single endpoint malware
104Low (P4): Reconnaissance activity, policy violation, benign true positive
105```
106
107Response SLA targets:
108- P1: Acknowledge within 15 minutes, containment within 1 hour
109- P2: Acknowledge within 30 minutes, containment within 4 hours
110- P3: Acknowledge within 2 hours, investigation within 24 hours
111- P4: Acknowledge within 8 hours, investigation within 72 hours
112
113### Step 4: Perform Initial Enrichment
114
115Before escalation, enrich the alert with contextual data:
116
117- **Threat intelligence**: Check IOCs (IP, hash, domain) against TI platforms (VirusTotal, OTX, MISP)
118- **Asset context**: Query CMDB for asset owner, business function, data classification
119- **User context**: Check identity provider for recent authentication anomalies, MFA status
120- **Historical correlation**: Search for related alerts on the same host/user in the past 30 days
121- **Network context**: Verify if source/destination IPs are internal, known partners, or external threat actors
122
123### Step 5: Document and Escalate
124
125Create a structured triage record and route to the appropriate response tier:
126
127```
128Incident Triage Record
129━━━━━━━━━━━━━━━━━━━━━
130Ticket ID: INC-2025-1547
131Triage Analyst: [analyst name]
132Triage Time: 2025-11-15T14:35:00Z (12 min from alert)
133Classification: Malicious Code - Macro-based initial access
134Severity: P2 - High
135Affected Assets: WORKSTATION-FIN-042 (Finance dept, handles PII)
136Affected Users: jsmith@corp.example.com
137IOCs Identified: powershell.exe spawned by outlook.exe, encoded command
138TI Matches: Base64 payload matches known Qakbot loader pattern
139Escalation: Tier 2 - Malware IR team
140Recommended: Isolate endpoint, preserve memory dump, block sender domain
141```
142
143### Step 6: Initiate Containment Hold
144
145If severity is P1 or P2, initiate immediate containment actions while awaiting full investigation:
146
147- Network-isolate the affected endpoint via EDR (CrowdStrike contain, Defender isolate)
148- Disable compromised user accounts in Active Directory or identity provider
149- Block identified malicious IPs/domains at firewall and DNS sinkhole
150- Preserve volatile evidence (memory dump) before any remediation
151
152## Key Concepts
153
154| Term | Definition |
155|------|------------|
156| **Triage** | Rapid assessment process to classify and prioritize security incidents based on severity and business impact |
157| **PICERL** | SANS incident response framework: Preparation, Identification, Containment, Eradication, Recovery, Lessons Learned |
158| **Dwell Time** | Duration between initial compromise and detection; average is 10 days per Mandiant M-Trends 2025 |
159| **True Positive Rate** | Percentage of alerts from a detection rule that represent genuine security incidents |
160| **Crown Jewel Assets** | Systems and data critical to business operations whose compromise would cause severe organizational impact |
161| **Alert Fatigue** | Degraded analyst performance caused by high volumes of low-fidelity or false-positive alerts |
162| **Mean Time to Acknowledge (MTTA)** | Average time from alert generation to analyst acknowledgment; key SOC performance metric |
163
164## Tools & Systems
165
166- **Splunk Enterprise Security**: SIEM platform for alert aggregation, correlation, and triage workflow management
167- **CrowdStrike Falcon**: EDR platform providing endpoint telemetry, detection, and one-click host containment
168- **TheHive**: Open-source incident response platform for case management, task tracking, and team collaboration
169- **MISP**: Threat intelligence sharing platform for IOC enrichment during triage
170- **Cortex XSOAR**: SOAR platform for automating enrichment playbooks and triage decision trees
171
172## Common Scenarios
173
174### Scenario: Encoded PowerShell from Email Client
175
176**Context**: SOC analyst receives a P2 alert showing `powershell.exe` with a Base64-encoded command spawned as a child process of `outlook.exe` on a finance department workstation.
177
178**Approach**:
1791. Decode the Base64 payload to determine the command intent
1802. Check the parent process chain for anomalies (Outlook spawning PowerShell is abnormal)
1813. Query VirusTotal for the decoded payload hash
1824. Correlate with email gateway logs to identify the triggering email and sender
1835. Check if other recipients in the organization received the same email
1846. Isolate the endpoint and escalate to Tier 2 with full triage context
185
186**Pitfalls**:
187- Dismissing encoded PowerShell as a false positive without decoding the payload
188- Failing to check for lateral spread to other recipients of the same phishing email
189- Remediating the endpoint before capturing volatile memory evidence
190
191## Output Format
192
193```
194INCIDENT TRIAGE REPORT
195======================
196Ticket: INC-[YYYY]-[NNNN]
197Date/Time: [ISO 8601 timestamp]
198Triage Analyst: [Name]
199Time to Triage: [minutes from alert to classification]
200
201CLASSIFICATION
202Type: [NIST category]
203Severity: [P1-P4] - [Critical/High/Medium/Low]
204Confidence: [High/Medium/Low]
205MITRE ATT&CK: [Technique ID and name]
206
207AFFECTED SCOPE
208Assets: [hostname(s), IP(s)]
209Users: [account(s)]
210Data at Risk: [classification level]
211Business Unit: [department]
212
213EVIDENCE SUMMARY
214[Bullet list of key observations]
215
216ENRICHMENT RESULTS
217TI Matches: [Yes/No - details]
218Historical: [Related prior incidents]
219Asset Criticality: [rating]
220
221RECOMMENDED ACTIONS
2221. [Immediate action]
2232. [Investigation step]
2243. [Escalation target]
225
226ESCALATION
227Routed To: [Team/Individual]
228SLA Target: [Containment deadline]
229```