A bare alert — "suspicious PowerShell on HOST-A" — is not decidable. What makes it an incident or a non-event is context: who owns the host, whether the user is on PTO, whether the IP is on a known-good feed, whether the hash is in a reputation database.
Tier: Core · Workflow area: AI-assisted SOC & detection
This playbook uses an LLM to assemble that context from several sources into one decision-ready brief, while keeping you the judge of what the assembled context actually means.
Skip AI when the alert is self-contained (a policy violation with all context in the event) — enrichment adds nothing.
Gather the context sources as structured evidence. Pull the relevant CMDB row for the host, the identity record for the user, and the reputation verdicts for any IP/hash/domain — as JSON or a small table. The model synthesizes; it must not fetch.
Prompt for a grounded enrichment brief.
You are enriching one SOC alert (sample data). Produce a decision brief.
Use ONLY the context blocks I provide below. For every statement, cite which
block it came from: [ALERT], [CMDB], [IDENTITY], or [INTEL]. If a piece of
context needed for a verdict is missing, list it under "Context gaps" — do
not fill the gap with an assumption.
Output:
- What fired (one line, cite [ALERT])
- Asset context (owner, criticality, cite [CMDB])
- Identity context (role, status, cite [IDENTITY])
- Threat-intel verdicts (per IOC, cite [INTEL])
- Context gaps
- Suggested next step (and what would change it)
[ALERT] ...
[CMDB] ...
[IDENTITY] ...
[INTEL] ...
Expected output: a brief where every line names its source, plus an explicit "Context gaps" list. The gaps section is often the most valuable part — it tells you what to go collect.
Verify each cited fact against its block. Open the CMDB row and confirm the host really is "criticality: low" as claimed. Confirm the intel verdict the model quoted matches the feed. This takes seconds because the citation points you straight at the source.
Resolve the gaps yourself. For each item under "Context gaps," decide whether it is worth collecting before you escalate. The model surfaced the gap; you decide the cost of closing it.
Attach the verified brief to the case. Only the facts you re-confirmed go into the case notes. Mark anything you could not verify as unconfirmed.
Enrichment that the model assembles is a draft dossier. A verdict quoted from a threat-intel feed is only trustworthy after you have re-read the feed — reputation data ages and models cache stale impressions.
Asset and identity context is some of the most sensitive data a client holds. In a services engagement, run the synthesis on a local Ollama model or the client's sanctioned endpoint, and redact before prompting: replace hostnames, usernames, and internal IPs with stable placeholders (HOST-A, USER-1) and map them back locally. Real IOCs (external IPs, hashes, domains) can usually stay, since they are already public indicators — but confirm against the client's data-handling policy first. Keep the enrichment blocks and the finished brief inside the client's environment; the LLM only ever sees the minimum structure needed to compose the dossier.