◇ OpenCyber Academy
Technologist · Chapter 18 · English

Chapter 18 — Containment and recovery control implementation

Open, free learning for anyone who wants to protect people and technology. No account is required to read this text or its worked answers.

Chapter 18 — Containment and recovery control implementation

Lesson map

Lesson 18 published. Map, example, EX052.

flowchart TD
  N0["Learning outcomes and connection"]
  N1["18.1 Containment actions as products"]
  N2["18.2 Recovery"]
  N3["18.3 Verification"]
  N4["Chapter synthesis"]
  N0 --> N1 --> N2 --> N3 --> N4
  N4 --> EX["Worked example"]
  EX --> Q["Exercise EX052"]

Logical drawing

flowchart LR
  N0["Learning outcomes and connection"]
  N1["18.1 Containment actions as products"]
  N2["18.2 Recovery"]
  N3["18.3 Verification"]
  N4["Chapter synthesis"]
  N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX052"]
[Learning outcomes and connection]
    |
    v
[18.1 Containment actions as products]
    |
    v
[18.2 Recovery]
    |
    v
[18.3 Verification]
    |
    v
[Chapter synthesis]
    |
    v
[Worked example] --> [Exercise EX052]

Learning outcomes and connection

You will be able to (1) implement pre-built containment actions with tested side effects and rollback; (2) implement and time recovery procedures, including restoring from backup; and (3) verify that containment and recovery worked. Chapters 6–8 showed containment ideas; this chapter turns them into implemented controls the duty analyst can trigger safely.

18.1 Containment actions as products

Each common containment action becomes a documented, tested capability: disable account and revoke sessions; isolate an endpoint through the agent; move a VM to quarantine; block an address or domain at the edge and DNS resolver; disable a public feature behind a flag; rotate a service credential. For each: trigger (who may run it), procedure or automation, expected side effects, verification step and rollback. Test each quarterly in a non-production environment and record the time taken. In the permit-app-2 case, moving the VM to quarantine was one of these pre-built actions.

18.2 Recovery

NIST SP 800-184 describes recovery planning: prioritized restoration, validated clean sources, and improvement. Recovery controls include immutable or offline backups, documented restore procedures with measured times, clean build images, and validation steps before reconnecting to production. Restore tests should restore to an isolated environment and check data integrity, not just that the job "succeeded". Fernmoor's timed restore of appt-db-1 shows why measurement matters: the first run took far longer than planned because the restore tool was single-threaded, and point-in-time recovery was not possible at all. Neither problem would have appeared in a backup job's success report. Both were fixed and retested before the plan was relied upon.

18.3 Verification

Containment is complete only when verified: the account cannot sign in (test), sessions are gone (check active sessions list), the host cannot reach anything but the evidence share (connectivity test), the blocked address produces denials (edge log). Recovery is complete when the service owner accepts functional tests and monitoring is in place for re-infection. In the reception PC case, the action had been recorded as complete when the isolation was only queued, which shows why the connectivity check matters. Fernmoor's runbooks now include a verification step for every containment action, with the evidence of verification recorded in the case.

18.4 Worked example (synthetic): timed restore of appt-db-1

Fictional. Chapter 1 noted the appointment database restore had never been timed. The team ran a test:

Step Planned Actual Note
Retrieve nightly backup from object store 10 min 9 min
Restore to isolated DB host 30 min 71 min restore tool single-threaded; documented flag cut it to 28 min on retest
Integrity checks (row counts, checksum of key tables vs backup report) 15 min 15 min
Point-in-time recovery from WAL to 1 h before incident 20 min not possible WAL archiving off — finding
Application smoke test 10 min 12 min

Results: recovery time 107 minutes on first run, 64 on retest, against a tier-2 objective of 4 hours — met. Recovery point: up to 24 hours of appointments could be lost because WAL archiving was off — an objective of 1 hour was not met. A change enabled WAL archiving to the separate backup account; a retest showed point-in-time recovery working.

18.5 Common errors and limits

Fernmoor's restore test shows the second and third errors avoided: the database was restored to an isolated host, checked against row counts and checksums, and only then smoke-tested. The quarterly action tests address the first, and the verification step in each containment runbook addresses the fourth. The capstone's DNS sinkhole test, found 120 days old, shows how easily such tests slip.

Exercises — chapter 18

Attempt each exercise before opening the worked results. Every case, organization, person, address and number in an exercise is synthetic unless a cited public source is named.

EX052 — Action card. Steps: write the action card for "move VM to quarantine segment". Rubric: 3 = trigger/authority, steps, side effects, verification, rollback, test record; 2 = missing two; 1 = steps only; 0 = none.

EX053 — Restore test plan. Steps: write a restore test plan for billing-db. Rubric: 3 = isolated target, timed steps, integrity checks, RPO/RTO comparison, findings and owner; 2 = no integrity checks; 1 = vague; 0 = none.

EX054 — Verify containment. Steps: list verification checks for containing a compromised svc-reports cloud key. Rubric: 3 = key disabled/deleted, API call with key fails, no other keys for principal, audit shows no new keys, resources created by key reviewed; 2 = three; 1 = one; 0 = none.

Chapter synthesis

Turn containment and recovery into tested products with authority, side effects, verification and rollback; time restores in isolation and compare with recovery objectives; and never call an action done until verification proves it.

Continue studying — chapter 18 of 30

← Chapter 17 · Course chapter index · Chapter 19 →

Continue to the next authored lesson.