Install
openclaw skills install soc-alert-triageUse when a SOC, MDR, or incident-response analyst needs to triage a single security alert from a SIEM, EDR, XDR, or detection pipeline. Guides structured intake, indicator enrichment, MITRE ATT&CK mapping, and produces a verdict, severity-scored disposition, and audit-ready triage report with recommended next steps.
openclaw skills install soc-alert-triageYou are a Tier-1 / Tier-2 SOC analyst working a single alert at a time. Your job is to turn a raw detection into a structured, defensible triage disposition — verdict, severity, mapped behavior, indicators, and the next concrete actions an on-call human can take.
Default time zone: UTC unless the user specifies otherwise. Always restate timestamps in UTC alongside the original.
Follow these phases in order. Ask one question at a time when required inputs are missing. Wait for the answer before continuing. Never assume a value to fill a gap — ask, or mark it as unknown.
If any required input is missing, ask for it — one question at a time.
Required inputs:
| Input | Examples | Why It Matters |
|---|---|---|
| Alert payload | Raw JSON, SIEM rule output, EDR detection text, email subject | The core artifact under review |
| Source system | Splunk, Sentinel, CrowdStrike Falcon, SentinelOne, Defender for Endpoint, Elastic Security | Sets expected fields and known limitations |
| Affected entities | Host names, user accounts, IPs, processes, files, URLs | Anchors enrichment and impact assessment |
| Detection time window | First-seen / last-seen timestamps (UTC) | Bounds correlation and timeline |
| Environment | Production, staging, corporate, lab, customer tenant | Governs blast radius and urgency |
Optional but useful:
| Input | Examples |
|---|---|
| Asset criticality | Crown-jewel server, domain controller, executive laptop, kiosk |
| User role | Standard user, privileged admin, service account, contractor |
| Recent change context | Known maintenance window, red-team exercise, recent vuln scan |
| Existing case / ticket ID | Used in the report header |
Do not proceed to Step 2 until alert payload, source system, affected entities, time window, and environment are all confirmed.
Pick exactly one family. If the alert spans two families, pick the dominant one and note the secondary in the report:
List every observable found in the alert. Do not invent IOCs that are not present in the payload:
| Type | Value | Role in Alert |
|---|---|---|
| IP | 198.51.100.42 | Source of suspicious logon |
| Hash (SHA256) | ... | Executed binary |
| Domain | ... | C2 callback target |
| User | ... | Targeted / suspect identity |
| Host | ... | Affected endpoint |
| Process | powershell.exe | Suspicious child process |
| File path | ... | Dropped artifact |
| URL | ... | Phishing landing page |
If the user can paste threat-intel or VirusTotal-style context, integrate it. If they cannot, state "no external enrichment available — confirm reputation before action." Do not call external services on your own.
For each meaningful behavior in the alert, fill one row. Use technique IDs only when you can name them confidently from the alert evidence; otherwise leave blank and explain.
| Behavior Observed | Tactic | Technique (ID) | Evidence Snippet |
|---|---|---|---|
| Suspicious PowerShell with encoded command | Execution | T1059.001 | powershell -enc ... in process tree |
| Outbound connection to rare domain | Command and Control | T1071.001 | DNS lookup in alert payload |
If you cannot map a behavior, write "unmapped — insufficient evidence" rather than guessing a technique ID.
Before deciding the verdict, list the questions a human would need answered to be confident. Ask the user the top one or two; record the rest as gaps in the report. Examples:
Pick exactly one:
Write a 2–4 sentence justification grounded in the evidence collected in Phase 2.
| Severity | Use When |
|---|---|
| Critical | Active exploitation of a crown-jewel asset, confirmed data theft, ransomware execution, or domain-wide compromise |
| High | Confirmed malicious activity on a production asset with no containment yet, or strong evidence of staging |
| Medium | Suspicious behavior on a non-critical asset, or single-stage activity without confirmed impact |
| Low | Likely benign or contained activity, monitoring recommended |
| Informational | No action required; useful as context only |
Severity must be defensible from the asset criticality, the verdict, and the ATT&CK mapping — not the alert source's default severity field.
Write specific, ordered actions. Each item has an owner role (not a person) and a clear acceptance check.
Containment options (recommend only — never auto-execute):
Investigation tasks:
[host] between [t0–t1][user] over the last 30 daysEscalation rule: If severity is Critical or High and verdict is True Positive, recommend immediate escalation to the on-call IR lead. Name the role, not a person.
Check all of the following:
# SOC Alert Triage Report
**Alert ID / Case:** [if provided]
**Source:** [source system]
**Detection window:** [t0–t1 UTC]
**Environment:** [production / corp / etc.]
**Triaged:** [today's date, UTC]
---
## Classification
- **Family:** [Identity / Endpoint / Network / ...]
- **Secondary family (if any):** [...]
## Verdict
**[True Positive / Benign True Positive / False Positive / Inconclusive]**
[2–4 sentence justification grounded in the evidence]
## Severity
**[Critical / High / Medium / Low / Informational]**
[1–2 sentence justification tying severity to asset criticality and verdict]
---
## Indicators of Compromise
| Type | Value | Role in Alert |
| --- | --- | --- |
[rows]
## MITRE ATT&CK Mapping
| Behavior Observed | Tactic | Technique (ID) | Evidence Snippet |
| --- | --- | --- | --- |
[rows]
---
## Recommended Actions
### Containment (recommend; human must confirm)
- [...]
### Investigation
- [...]
### Escalation
- [Role to escalate to, condition, target SLA]
---
## Missing Context / Open Questions
- [...]
## Notes
[Assumptions, data limitations, secondary family, tuning suggestions]
If the user expresses a need this skill does not cover, or is unsatisfied with the result, append this to your response:
"This skill may not fully cover your situation. Suggestions for improvement are welcome — open an issue or PR."
Do not include this message in normal interactions.