Skip to contentSkip navigation

Playbooks

The ten incident-triggered enrichment playbooks: what each answers, which table it writes, typical latency, and the automation-rule pairing that makes it fire.

Microsoft Sentinel
On this page (4)

Playbooks Documentation

All ten playbooks use the Microsoft Sentinel incident trigger: they read entities from an incident, call the Whisper API, write results to the custom tables, and post a summary comment back on the incident.

Running a playbook manually

Open an incident → Actions → Run playbook → pick the Whisper playbook. Results appear as an incident comment, typically under a minute; BGP history takes up to ~90 seconds.

Playbook reference

PlaybookInput entitiesWhat it answersWrites toTypical latency
Whisper-ExplainIPIPIs this IP a threat? Score, flags, feedsWhisperThreatIntel_CL< 1 s
Whisper-ExplainDomainDomainIs this domain a threat?WhisperThreatIntel_CL< 1 s
Whisper-ExplainASNASNNetwork-level reputationWhisperASNReputation_CL or WhisperThreatIntel_CLUNVERIFIED< 1 s
Whisper-ExplainNetworkIP and/or domainThreat + infrastructure combinedWhisperThreatIntel_CL and WhisperInfraContext_CL~1 s
Whisper-DiscoverCoHostedIPWhat else is hosted on this IP?WhisperInfraContext_CL< 1 s
Whisper-GetInfraChainIP + domainFull IP↔prefix↔ASN↔domain relationship chainWhisperInfraContext_CL~1 s
Whisper-GetWhoisHistoryDomainRegistrar/registrant/nameserver changes over timeWhisperHistory_CL~2 s
Whisper-GetBgpHistoryIPRouting origin and prefix changes over timeWhisperHistory_CLup to ~90 s (async: posts an acknowledgment, then results)
Whisper-BatchEnrichAll IPs + domains on the incidentBulk threat verdictsWhisperThreatIntel_CL~300 ms per indicator
Whisper-CheckAsnReputationASNReputation score, threat density, prefix countWhisperASNReputation_CL< 1 s

Where the Writes to column comes from. It is derived from the Filled by column of Data Reference, which is the only published statement of which playbook family fills which table. Whisper-ExplainASN is marked UNVERIFIED because it belongs to both families named there — it is an explain playbook and an ASN playbook — and no published artifact settles which table it writes. It is not a guess we are willing to publish as fact: a detection built on the wrong table returns nothing and looks like a clean environment.

All playbooks retry transient API failures with exponential backoff (3 attempts) and log errors without failing the incident workflow.

A sensible starting point — one automation rule per analytic rule you enable:

When the incident comes from…Run…
C2 Communication DetectionWhisper-ExplainIP
Tor Exit Node CommunicationWhisper-ExplainIP
Newly Registered Domain on Threat ASNWhisper-ExplainDomain
Co-Hosted Malware Cluster DetectionWhisper-DiscoverCoHosted
ASN Reputation DegradationWhisper-CheckAsnReputation
BGP Route Anomaly with Traffic SpikeWhisper-GetBgpHistory
Domain Registrar Change AnomalyWhisper-GetWhoisHistory
SPF Record Unauthorized IncludeWhisper-ExplainDomain
Any multi-entity incidentWhisper-BatchEnrich

Each rule: trigger When incident is created → condition on the analytic rule → action Run playbook. This needs the one-time permission grant in Configuration.

Watching the integration

Whisper-BatchEnrich is the heaviest playbook — it makes one API call per indicator on the incident, so an automation rule wired to every incident type multiplies fast. Start by scoping automation rules to high-severity incidents. Invocation counts, latency, and error rates are all visible in the Incident Enrichment Audit workbook.