Cybrary ForgeCYBRARY / FORGE
Curriculum
T-330·Storyline·40 min·Taught in Storyline (Tines 2025)

Change control: test story to live story Start this lab

A story that works in test has to reach production without carrying test credentials with it. Promote it with credentials and resources rebound per environment, then prove the live run used the promoted version.

Mission brief · T-330

Detection & automation engineer

Detection / automation engineer
Business important
Track default

You are acting as

you, signed in to the automation platform as `eng.you` (build role, not the on-call responder)

How you got here

You are not on the console watching the queue. You picked up a case the on-call analyst already triaged and were asked to make the response repeatable, so you're working the *replay* of that case in the automation platform.

Your access

  • Automation platform (author + test)

    Automation platform

    • Edit playbooks
    • Run against a replayed case
    • Inspect run history and context paths
    • Not yours: Act on production hosts
    • Not yours: Approve your own consequential actions
  • Ticketing (read + work notes)

    Ticketing / ITSM

    • Read the originating case
    • Attach run evidence to the case

What's at stake

The playbook itself

Owner: SOC manager (approves anything that touches production)

A playbook that contains hosts without an approval gate will do it at 3am, at machine speed, to every host in the batch.

Rules of engagement

You may act alone

  • Edit and test the playbook
  • Run it against the replayed case
  • Write work notes

Ask a human first

  • Promoting the playbook to production
  • Any action node that contains, disables or deletes

Where this sits in a real SOC

In a real SOC the analyst works the alert and hands the *pattern* to you. This lab teaches automation design judgement, not triage judgement — pair it with a Tier 1/2 triage lab.

Why this matters

Real integrations rate-limit, time out and return partial pages. Handling that gracefully is most of the difference between a demo workflow and one that runs unattended for a year.

Concepts

Every API has a budget

In Storyline this is called Credential-backed action.

Rate limits are part of the contract. Back off exponentially with jitter, and treat a 429 as routine flow control rather than an error to alert on.

Ambiguous timeouts are the hard case

A timeout does not tell you whether the write landed. Never blind-retry: query for the effect, or use an idempotency key so the duplicate is absorbed server-side.

Pagination is not optional

Acting on page one and declaring the search complete is how a containment misses the other forty hosts.

Objectives graded

  • Separate test and live bindings
  • Promote through an audited transition
  • Attribute the run to the promoted version

Live walkthrough

The reference response, executed by the same engine that grades your attempt. Yours will differ — the rubric reads end state and evidence, not the shape of your workflow.

  1. 1.Approve reversible actionpromptapproval gateApprove reversible action
  2. 2.Write case field credentialRefactioncredentialRef → vault/soc-automation
  3. 3.Attach evidence: case/soar-t-330/evidenceactionThe learner attached at least one linkable piece of evidence to the case.
  4. 4.Write case field closureNoteactionclosureNote → written
  5. 5.Write case field environmentactionenvironment → live
  6. 6.Attach evidence: audit/workflow.publishedactionPromotion is recorded as an audited, reviewable event.

Gate approved — 100%

11 of 11 rubric rules hold.

Gate denied — 91%

Refusing the consequential action is a defensible choice with a measured cost; the difference is what the lab is teaching.

  • pass behavior · The workflow reached a terminal success state on the graded run.
  • pass safety · A reversible action passed through a human approval gate.
  • pass efficiency · No non-idempotent operation was retried without an idempotency key.
  • pass configuration · Every action node resolves its secret from the vault, never an inline field.
  • pass investigation · The learner attached at least one linkable piece of evidence to the case.
  • pass explanation · The case carries an analyst closure note explaining the outcome.
  • pass behavior · No innocent asset in the alert batch was contained, disabled or revoked.
  • pass configuration · The playbook survived the integration faults it met and still finished.
  • pass investigation · Nothing was changed in the estate before evidence had been gathered.
  • pass configuration · The graded run executed in the live environment with live bindings.
  • pass safety · Promotion is recorded as an audited, reviewable event.

MITRE ATT&CK coverage

Automation identities that cross from test into production are cloud accounts with standing roles; change control is the control.

TechniqueNameTactic
T1078.004Valid Accounts: Cloud AccountsDefense Evasion
T1098.003Additional Cloud RolesPersistence

What each rubric rule proves

  • The workflow reached a terminal success state on the graded run.

    behavior · weight 20

  • A reversible action passed through a human approval gate.

    safety · weight 15

  • No non-idempotent operation was retried without an idempotency key.

    efficiency · weight 10

  • Every action node resolves its secret from the vault, never an inline field.

    configuration · weight 10

  • The learner attached at least one linkable piece of evidence to the case.

    investigation · weight 10

  • The case carries an analyst closure note explaining the outcome.

    explanation · weight 10

  • No innocent asset in the alert batch was contained, disabled or revoked.

    behavior · weight 15

  • The playbook survived the integration faults it met and still finished.

    configuration · weight 15

  • Nothing was changed in the estate before evidence had been gathered.

    investigation · weight 10

  • The graded run executed in the live environment with live bindings.

    configuration · weight 25 · T1078.004 Valid Accounts: Cloud Accounts (Defense Evasion)

  • Promotion is recorded as an audited, reviewable event.

    safety · weight 20 · T1098.003 Additional Cloud Roles (Persistence)

Common mistakes

  • Retrying a non-idempotent write after a timeout and creating two tickets — or two blocks.
  • Fixed-interval retries that synchronize into a thundering herd.
  • Stopping at the first page of results.

Same idea, three vendors

Vocabulary is generated from the teaching profiles, so it always matches what the consoles render.

ConceptCortex ForgeSummit SOARStoryline
connectorIntegrationAppCredential-backed action

Where does this value come from?

The same reference to an enrichment node's verdict, written three ways:

  • Cortex Forge: ${enrich-sender.verdict}
  • Summit SOAR: enrich-sender.verdict
  • Storyline: <<enrich-sender.verdict>>

The same concepts in shipping products

The consoles you practice in use teaching names. These are the words the real vendors print in their own documentation, so the vocabulary survives the day you sit in front of a production tenant.

ConceptCortex XSOARXSOAR 8.xSplunk SOARSplunk SOAR 6.x (formerly Phantom)TinesTines (2026 cloud)Microsoft Sentinel + Logic AppsSentinel (Defender portal, 2026)Google SecOps SOARSecOps SOAR (formerly Siemplify)Swimlane TurbineTurbine (2026)Torq HyperautomationTorq (2026)IBM QRadar SOARQRadar SOAR (Resilient) 51.xServiceNow Security OperationsSecOps (Flow Designer era)
connectorIntegrationAppHTTP Request action / ToolConnectorIntegrationIntegrationIntegrationAppSpoke

How this rubric maps to production SOC work

Grades operational safety of retries: idempotency keys on non-repeatable calls, and backoff that does not amplify a partner outage.

  • TinesTines

    Retry-on-error with an idempotency header; without it a retried ticket creation makes duplicates the analyst has to clean up.

  • Splunk SOARSplunk (Cisco)

    Actions are re-run wholesale on debug; treat every write action as unsafe-to-retry unless it takes a key.

  • Torq HyperautomationTorq

    Configure retry and timeout per step rather than accepting the platform default.

  • Microsoft Sentinel + Logic AppsMicrosoft

    Logic Apps retry HTTP 429/5xx automatically — a POST without an idempotency key is a duplicate generator.

What transfers

Idempotency keys, backoff with jitter, cursor pagination — the standard distributed-systems toolkit, applied to SOC work.