✳ The reference desk / In practice

SOAR

Tooling that runs playbooks across security systems, which still needs scoped authority and verification.

Security orchestration, automation, and response

What it means

SOAR coordinates repeatable actions across security systems. A playbook might gather account details, create a case, ask for approval, disable an account, and verify the result. Automation is useful when the steps and decision boundaries are understood. It is dangerous when an uncertain alert is silently converted into broad authority. Treat each connector as an account with permissions, each action as a potential change, and each failure as a state the workflow must handle. Successful execution and successful containment are different outcomes.

See the idea / Response

A queued response is not verified containment.

Keep the same scoped approval; compare an available worker with an unavailable worker.

Synthetic Case191 has reviewed alert AL191. Sam’s P191 permits Playbook191 to revoke only DrawingDesk session S191 before 21:10 UTC. At September 30 21:00, compare a worker that applies the queued command with a worker endpoint returning 503. The workflow checks S191 and Nora’s separate S192. Original O191 and the case remain; directory U191 is unchanged.

SOAR: Keep the same scoped approval; compare an available worker with an unavailable worker. The chapter text below describes every state.Playbook191 · session responseSame authority; different worker resultCase191 · Sam’s exact P191AL191 + P191 retainedOriginal O191 + case remainConnector · one command Q191No command queuedOnly S191 revocation is approvedWorker · app session controlS191 still activeDirectory U191 stays unchangedIndependent app readsAccess probes not runHuman investigation remains openEXACT APPROVAL · ONE SESSION

01 / 04

Scope

A reviewed case and exact approval authorize one session revocation. They do not authorize disabling an account or declaring the incident resolved.

More about this step

Sam’s trusted P191 names Playbook191, revoke-session, S191 and an exclusive 21:10 UTC end. The case is already reviewed; this figure does not turn an unreviewed alert into authority. S191 initially reads O191, Nora’s S192 is independently permitted, and the original stays in DrawingDesk. Directory U191 and other sessions are outside the change. Human investigation remains open.

Keep in mindThis is a local HTTP/SQL playbook exercise, not a SOAR product or real containment. Trusted case/approval records, connector identity, protected channels and service time are assumed. S191 is a reference, not a usable credential. The 503 models one unavailable worker endpoint; recovery, broad incident resolution and all sessions are untested. Only one bounded command and selected probes run.

Read the visual, step by step

Worker available

  1. Scope. A reviewed case and exact approval authorize one session revocation. They do not authorize disabling an account or declaring the incident resolved. Sam’s trusted P191 names Playbook191, revoke-session, S191 and an exclusive 21:10 UTC end. The case is already reviewed; this figure does not turn an unreviewed alert into authority. S191 initially reads O191, Nora’s S192 is independently permitted, and the original stays in DrawingDesk. Directory U191 and other sessions are outside the change. Human investigation remains open.
  2. Queue. The connector accepts the approved command with 202 and stores Q191 once. S191 is still active. The connector validates Playbook191 and P191’s exact action, target and exclusive expiry, then stores Q191. Reusing the same idempotency key returns Q191; a conflicting payload is refused. A 202 acknowledges processing, not application: S191 and U191 stay unchanged. This combines request, validation, storage and acknowledgement, not packet delivery.
  3. Apply. The worker applies Q191 and revokes S191 at the application. The workflow has not independently tested access yet. A separate worker call attempts the queued operation. In the available path it rechecks the exact approval and records session revocation at the application, then marks Q191 applied. In the unavailable path its controlled endpoint returns 503 without changing either row. Both retain the case, approval, command and original. No automatic retry, account disable or broader response occurs. A worker status is still distinct from a fresh application-access check.
  4. Probe. Fresh reads refuse S191 and still return O191 to Nora through S192. Only this session’s access removal is verified. Independent HTTP reads now test the actual session table, rather than trusting 202 or the worker report. Applied Q191 gives S191 a 401 without O191; an unavailable worker leaves S191 at 200 with the original bytes. Nora’s S192 returns 200 in both. U191 is unchanged, O191 and AL191 remain, and human investigation is open. These probes establish only the selected access results; they do not certify all-session revocation or incident resolution.

Worker unavailable

  1. Scope. A reviewed case and exact approval authorize one session revocation. They do not authorize disabling an account or declaring the incident resolved. Sam’s trusted P191 names Playbook191, revoke-session, S191 and an exclusive 21:10 UTC end. The case is already reviewed; this figure does not turn an unreviewed alert into authority. S191 initially reads O191, Nora’s S192 is independently permitted, and the original stays in DrawingDesk. Directory U191 and other sessions are outside the change. Human investigation remains open.
  2. Queue. The connector accepts the approved command with 202 and stores Q191 once. S191 is still active. The connector validates Playbook191 and P191’s exact action, target and exclusive expiry, then stores Q191. Reusing the same idempotency key returns Q191; a conflicting payload is refused. A 202 acknowledges processing, not application: S191 and U191 stay unchanged. This combines request, validation, storage and acknowledgement, not packet delivery.
  3. Apply. The worker endpoint returns 503. Q191 remains queued and S191 stays active; the workflow reports incomplete work. A separate worker call attempts the queued operation. In the available path it rechecks the exact approval and records session revocation at the application, then marks Q191 applied. In the unavailable path its controlled endpoint returns 503 without changing either row. Both retain the case, approval, command and original. No automatic retry, account disable or broader response occurs. A worker status is still distinct from a fresh application-access check.
  4. Probe. Fresh reads still return O191 through both sessions. The queued revocation has not contained S191. Independent HTTP reads now test the actual session table, rather than trusting 202 or the worker report. Applied Q191 gives S191 a 401 without O191; an unavailable worker leaves S191 at 200 with the original bytes. Nora’s S192 returns 200 in both. U191 is unchanged, O191 and AL191 remain, and human investigation is open. These probes establish only the selected access results; they do not certify all-session revocation or incident resolution.

This is a local HTTP/SQL playbook exercise, not a SOAR product or real containment. Trusted case/approval records, connector identity, protected channels and service time are assumed. S191 is a reference, not a usable credential. The 503 models one unavailable worker endpoint; recovery, broad incident resolution and all sessions are untested. Only one bounded command and selected probes run.

Flow references: ASD: response playbooks, automation risks and defined implementation scope · RFC 9110: 202 acceptance does not mean completed processing

AN ILLUSTRATIVE SCENARIO

A queued response is not verified containment

Synthetic Case191 has reviewed alert AL191. Sam’s P191 permits Playbook191 to revoke only DrawingDesk session S191 before 21:10 UTC. At September 30 21:00, compare a worker that applies the queued command with a worker endpoint returning 503. The workflow checks S191 and Nora’s separate S192. Original O191 and the case remain; directory U191 is unchanged.

Put it to work

  1. Start with read-only enrichment and case creation. Document inputs, expected outputs, ownership, and the conditions that allow the playbook to proceed.
  2. Give connectors only necessary permissions. Require appropriate approval for disruptive actions, record the authorized target, and bound retries and the number of affected resources.
  3. Handle partial success explicitly. Check postconditions, preserve an audit trail, and provide a recovery path when an action succeeds but the next workflow step fails.

How to check your work

In a test environment, exercise success, denial, timeout, and partial failure. Confirm the playbook stops at the right boundary, avoids duplicate harmful effects, and reports the actual verified state to the operator.

Connect the ideas

  • Idempotency

    The property that repeating the same operation has the same intended effect on state as performing it once; separate audit records may still be created.

  • Postcondition

    The independently checked state of the world that should be true after a response action.

  • Least privilege

    Granting each identity only the actions, objects, and time window required for the current job.

  • Retry budget

    A limit on how often automation may repeat an action, especially when the previous outcome is uncertain.

Explore a field lesson

Find your next idea.

Tip: press / to open search. Escape closes this window.