Cybrary ForgeCYBRARY / FORGE
Curriculum
H-630·Cross-platform·40 min

Break the Hyper-V cluster on purpose, and watch every number move Start this lab

You are handed a healthy, hardened cluster and permission to spoil it. Pile processors onto the machines on one node, promise memory the node cannot back, take a storage path away, remove the quorum witness, and try two changes the platform should refuse. Read the counters after each one, then put it all back.

Mission brief · H-630

Tier 3 analyst on the incident response bench

Tier 3 — deep host and forensics
Business important
Track default

You are acting as

the break-glass IR account `svc-ir`, checked out of the vault for this incident — never the compromised identity

How you got here

The detection fired in the EDR console. You opened a live-response session from that detection, so your shell rides the EDR agent channel — containing the host will *not* cut you off, which is exactly why you contain from here rather than over SSH.

Your access

  • EDR console (detections + live response)

    Endpoint detection & response

    • Read the detection and process tree
    • Look up host criticality, owner and VIP flags
    • Open a live-response session on the host
    • Contain the host over the agent channel
    • Not yours: Disable user accounts (that's the identity team)
    • Not yours: Delete evidence
  • Live-response shell on the affected host

    Host shell session

    • Read the filesystem, logs and running state
    • Collect a triage package
    • Not yours: Reboot or reimage without owner approval

What's at stake

The affected host

Owner: The system's business owner, named on the asset record

Containing a host you haven't identified can stop revenue. Check criticality and owner before you isolate anything.

Rules of engagement

You may act alone

  • Investigate from the live-response session
  • Collect evidence and triage packages
  • Contain a standard-criticality host

Ask a human first

  • Containing a mission-critical host — asset owner and on-call manager first
  • Disabling a user identity — identity team, and HR/legal if it looks like an insider

Why this matters

Knowing what a healthy cluster looks like is only half of it; the other half is knowing what each kind of damage looks like from the outside. Producing contention, paging, a lost storage path and a cluster without quorum on purpose — one change at a time, reading the counters after each — builds the recognition that makes a real incident short.

Concepts

One change at a time, or you learn nothing

Two simultaneous changes produce one set of numbers and no attribution. Change, read, write it down, revert: the discipline is the lesson, and it is the same discipline that keeps a change window from becoming an incident.

Refusals are documentation

The platform will not resize a running machine, and it will not give Secure Boot to a generation 1 machine. Reading those refusals word for word teaches what has to be planned for downtime and what has to be planned for a rebuild.

Availability degrades silently

Removing the witness changes nothing visible until the day a node is lost. The baseline is the only place that damage shows, which is why the score is read after every change rather than only when something feels wrong.

Reverting is part of the exercise

A range you cannot put back is a range you can only use once. Ending on the score you started with proves the changes were understood, not merely made.

Objectives graded

  • Record the healthy baseline score before breaking anything.
  • Give every machine on the first node 16 processors, then read the wait time and the ratio.
  • Set 96 GB of static startup memory on each of those machines, then read the paging figure.
  • Take the second path off ds-gold and read the latency.
  • Remove the quorum witness and read what the baseline says about it.
  • Make two changes the platform should refuse, and record its exact words.
  • Revert everything with 'Revert to the start' and prove the baseline score came back.

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-h-630/evidenceactionThe learner attached at least one linkable piece of evidence to the case.
  4. 4.Write case field closureNoteactionclosureNote → written
  5. 5.Attach evidence: range/hst-nw-hvadm01/sessionactionThe cluster was worked in the console rather than described from the ticket.
  6. 6.Write case field scoreBeforeactionscoreBefore → 99
  7. 7.Write case field waitAfterPileactionwaitAfterPile → 36
  8. 8.Write case field pileRatioactionpileRatio → 3
  9. 9.Write case field pagedAfterOversellactionpagedAfterOversell → 96
  10. 10.Write case field latencyWithoutPathactionlatencyWithoutPath → 6.5
  11. 11.Write case field scoreWithoutWitnessactionscoreWithoutWitness → 96
  12. 12.Write case field resizeRequiresactionresizeRequires → stopped
  13. 13.Write case field secureBootRequiresactionsecureBootRequires → generation

Gate approved — 100%

18 of 18 rubric rules hold.

Gate denied — 93%

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 investigation · The cluster was worked in the console rather than described from the ticket.
  • pass investigation · The healthy state was recorded before anything was broken.
  • pass investigation · Processor contention was produced deliberately and measured.
  • pass investigation · The ratio behind the wait time was read as well as the wait time.
  • pass investigation · The memory failure mode was produced and measured, not assumed.
  • pass investigation · The cost of a single storage path was measured.
  • pass investigation · The availability cost of removing quorum was read off the baseline.
  • pass configuration · A refusal was read and understood rather than worked around.
  • pass configuration · The limit that cannot be configured away was recognized.

MITRE ATT&CK coverage

Degrading a platform on purpose teaches the fingerprints of sabotage: contention, paging, a lost storage path and a cluster that can no longer hold quorum all look like faults, and an operator who has produced each one deliberately recognizes them when somebody else causes them.

TechniqueNameTactic
T1082System Information DiscoveryDiscovery
T1046Network Service DiscoveryDiscovery
T1078Valid AccountsDefense Evasion

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 cluster was worked in the console rather than described from the ticket.

    investigation · weight 15

  • The healthy state was recorded before anything was broken.

    investigation · weight 10 · T1082 System Information Discovery (Discovery)

  • Processor contention was produced deliberately and measured.

    investigation · weight 10 · T1082 System Information Discovery (Discovery)

  • The ratio behind the wait time was read as well as the wait time.

    investigation · weight 10 · T1082 System Information Discovery (Discovery)

  • The memory failure mode was produced and measured, not assumed.

    investigation · weight 10 · T1082 System Information Discovery (Discovery)

  • The cost of a single storage path was measured.

    investigation · weight 10 · T1046 Network Service Discovery (Discovery)

  • The availability cost of removing quorum was read off the baseline.

    investigation · weight 10 · T1082 System Information Discovery (Discovery)

  • A refusal was read and understood rather than worked around.

    configuration · weight 10 · T1078 Valid Accounts (Defense Evasion)

  • The limit that cannot be configured away was recognized.

    configuration · weight 10 · T1078 Valid Accounts (Defense Evasion)

Common mistakes

  • Breaking several things before reading any counters.
  • Assuming a refusal is a bug in the console rather than a rule of the platform.
  • Treating the quorum witness as optional because the cluster kept running without it.
  • Leaving the range broken for the next person.

Same idea, three vendors

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

ConceptCortex ForgeSummit SOARStoryline
caseIncidentContainerCase
alertAlertEventEvent
artifactIndicatorArtifactRecord
workflowPlaybookPlaybookStory
workflow-runPlaybook runPlaybook debug runStory run
nodeTaskBlockAction
connectorIntegrationAppCredential-backed action
connector-instanceIntegration instanceAssetResource
credentialCredentialAsset credentialCredential
approvalManual taskPromptPage
child-workflowSub-playbookChild playbookSub-story
context-pathContext pathDatapathEvent path
queueIncidentsEventsCases
taskWork Plan taskTaskCase task
noteWar Room entryNoteCase note

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)
caseIncidentContainerCaseIncidentCaseRecordCaseIncidentSecurity incident (SIR)
alertAlertEventEventAlertAlertInbound record / signalTrigger eventEscalated offense / alertSecurity alert
artifactIndicatorArtifact (CEF fields)Event payload fieldEntityEntityField / correlation valueEvent fieldArtifactObservable
workflowPlaybookPlaybookStoryPlaybook (Logic App)PlaybookPlaybookWorkflowWorkflow (BPMN)Flow / subflow
workflow-runPlaybook runPlaybook run / debug runEvent flowLogic App runPlaybook executionPlaybook executionExecutionWorkflow executionFlow execution
nodeTaskBlockActionAction / stepAction / stepActionStepFunction / scriptFlow action
connectorIntegrationAppHTTP Request action / ToolConnectorIntegrationIntegrationIntegrationAppSpoke
connector-instanceIntegration instanceAssetCredential + resource pairAPI connectionIntegration instance (environment-scoped)AssetIntegration connectionApp configuration (app.config)Connection & credential alias
credentialCredentialAsset configuration secretCredentialManaged identity / connection secretIntegration parameter (secret)Vault secretSecretApp host secretCredential record
approvalManual (data collection) taskPrompt blockPage (form) / Send to ChatApproval action (Teams / email)Manual actionTask / approval actionApproval step (Torq Chat / Slack)Manual task / phase gateApproval activity
child-workflowSub-playbookChild playbookSend to StoryNested Logic AppBlockSub-playbookNested workflowCalled workflowSubflow
context-pathContext path (${...})DatapathFormula (<<path.to.value>>)Expression (@{body('step')})Placeholder ([Entity.Identifier])Reference ($record.field)Expression ({{ .event.field }})Rule/script object (incident.properties)Data pill
queueIncidents viewEvent / Case listCasesIncidents gridCases queueApplication workspaceCasesIncident listSIR queue
taskWork Plan taskTask (workbook phase)Case taskIncident taskTaskTaskCase taskTask (within phase)Response task
noteWar Room entryNoteCase noteCommentCase wall commentCommentCase commentNoteWork note

What transfers

Deliberate degradation is how you earn fast diagnosis: cause each failure once in a safe place, record its signature, and recognize it the next time somebody else causes it.