SOC Playbook Template (NIST SP 800-61r3, ATT&CK, D3FEND)
One incident type: triggers, triage, severity, containment decisions, eradication, recovery, evidence, notification clocks, ATT&CK, D3FEND, CSF 2.0
Mode d'emploi: Use it when the SOC needs a repeatable response for one scenario such as a cloud key leak, business email compromise or ransomware. Fill the triggers, triage questions and containment decision points first, then the ATT&CK, D3FEND and CSF 2.0 mappings. The main pitfall is copying roles, severity levels and legal duties into the playbook instead of linking the incident response plan, severity matrix and IC handbook.
Aperçu
SOC Playbook: [Incident type, for example Cloud access key leak or credential compromise]
Playbook for one incident type that the security operations centre (SOC) runs the same way every time it occurs: triggers and detections, triage questions, severity mapping, containment options with decision points, eradication, recovery, evidence handling, notification clocks, MITRE ATT&CK techniques and MITRE D3FEND countermeasures, and the NIST CSF 2.0 Function behind each step. Based on NIST SP 800-61 Rev. 3 Incident Response Recommendations and Considerations for Cybersecurity Risk Management: A CSF 2.0 Community Profile (April 2025), the NIST Cybersecurity Framework (CSF) 2.0 (CSWP 29, February 2024), MITRE ATT&CK Enterprise v20 (October 2026) and MITRE D3FEND 1.6.0. Write one playbook per scenario (cloud key leak, business email compromise, ransomware) and keep the organisation-wide rules in the Incident Response Plan (
compliance/incident-response-plan). Replace every[bracketed]value and every row marked Example. Worked examples use Corvid Commerce, a fictional SaaS company running on AWS, and the scenario "long-term cloud access key leaked and used by an unknown party".
Document control
| Field | Value |
|---|---|
| Document ID | [PB-CLD-002] |
| Playbook title | [Example: Cloud access key leak or credential compromise] |
| Version | [1.0] |
| Status | [Draft / In review / Approved / Retired] |
| Owner | [@soc-lead] |
| Approvers / reviewers | [@ciso], [@incident-response-lead], [@cloud-platform-lead], [@legal-counsel], [@privacy-officer] |
| Last updated | YYYY-MM-DD |
| Classification | Confidential (internal security procedure) |
| Scenario category | [Example: Identity and access, cloud control plane] |
| Parent plan | Incident Response Plan (compliance/incident-response-plan), version [x.y] |
| Severity standard | Incident Severity Matrix (ops/incident-severity-matrix), version [x.y] |
| Framework versions mapped | NIST SP 800-61 Rev. 3; NIST CSF 2.0; MITRE ATT&CK Enterprise [v20]; MITRE D3FEND [1.6.0] |
| Linked detections | [Example: DET-CLD-007, DET-CLD-003, DET-IDP-011] |
| Last tested | YYYY-MM-DD ([tabletop / live incident / purple team]) |
| Next review | YYYY-MM-DD (at least annually, after each use, and after each ATT&CK release) |
Approvals
| Role | Name | Decision | Date |
|---|---|---|---|
| Chief information security officer | [@name] | [Approved / Changes requested] | YYYY-MM-DD |
| Incident response lead | [@name] | [Decision] | YYYY-MM-DD |
| Cloud platform lead | [@name] | [Decision] | YYYY-MM-DD |
| Legal counsel | [@name] | [Decision] | YYYY-MM-DD |
| Privacy officer | [@name] | [Decision] | YYYY-MM-DD |
Revision history
| Version | Date | Author | Change summary |
|---|---|---|---|
| 0.1 | YYYY-MM-DD | [@name] | First draft from the cloud key leak tabletop |
| 0.2 | YYYY-MM-DD | [@name] | Example: Containment decision points reviewed with the cloud platform team |
| 1.0 | YYYY-MM-DD | [@name] | Example: Approved; mapped to ATT&CK v20 (Stealth and Defense Impairment tactics) |
Contents
- Purpose, scope and boundaries
- Playbook card
- Roles and responsibilities
- Triggers and detections
- Triage
- Severity mapping
- Containment
- Eradication
- Recovery
- Evidence handling
- Communication and notification clocks
- ATT&CK techniques and D3FEND countermeasures
- CSF 2.0 traceability per step
- Metrics
- Testing and maintenance
- Glossary and references
- Standard and licence note
1. Purpose, scope and boundaries
This playbook tells the SOC how to respond when a cloud credential that
grants programmatic access is exposed or used by someone other than its
owner. It covers detection, triage, containment, eradication, recovery,
evidence and notification for that one scenario. The organisation-wide
rules (authority to act, who declares an incident, regulatory duties,
retention of incident records) live in the Incident Response Plan
(compliance/incident-response-plan). Where the two disagree, the plan
wins and this playbook is corrected.
In scope (Example):
- Long-term access keys of cloud identity and access management (IAM) users, found in public or internal code, build logs, container images, tickets, chat or paste sites.
- Keys or session tokens used from an unexpected network, region or client, even if no leak has been found yet.
- Federated workforce credentials used to obtain cloud console or API sessions after a confirmed account takeover.
Out of scope (use the named playbook instead):
| Situation | Use instead |
|---|---|
| Phishing campaign against the workforce with no cloud access yet | [PB-EML-001 Phishing and business email compromise] |
| Ransomware or destructive activity in workloads | [PB-RAN-001 Ransomware] |
| Leaked secret that is not a cloud credential (database password, API token for a SaaS vendor) | [PB-SEC-004 Secret exposure], following the Secrets Management Standard (security/secrets-management-standard) |
| Vulnerability report with no sign of exploitation | Vulnerability Management Policy (security/vulnerability-management-policy) |
2. Playbook card
| Item | Summary |
|---|---|
| Goal | Stop unauthorised use of the credential, establish what it did, restore a trusted state, meet notification duties |
| First 15 minutes | Confirm the key and its owner, check recent use, open an incident if the key is valid or was used by an unknown party |
| First hour | Deactivate the key (or contain with a deny policy if deactivation would cause a larger outage), block every temporary session issued before containment (user and role sessions), preserve logs, scope activity |
| Default severity | SEV2 for a valid leaked production key; SEV1 if privileged use or data access by an unknown party is confirmed (section 6) |
| Incident roles | Incident commander, security incident lead as operations lead, cloud platform responder, scribe (section 3) |
| Do not | Delete the IAM user or the key before evidence is preserved; post the key value in any channel; rotate silently without telling the owner |
| Done when | Exit criteria in section 9.3 are met and the postmortem is scheduled |
3. Roles and responsibilities
Role definitions, handover rules and the battle rhythm are defined in
the Incident Commander Handbook (ops/incident-commander-handbook).
This table only assigns the scenario-specific work.
R = responsible, A = accountable, C = consulted, I = informed.
| Activity | SOC analyst | Security incident lead | Incident commander | Cloud platform responder | Key owner (team) | Legal and privacy |
|---|---|---|---|---|---|---|
| Triage and initial scoping | R | A | I | C | C | I |
| Incident declaration | C | R | A | I | I | I |
| Key deactivation and session revocation | C | A | I | R | C | I |
| Activity scoping and log analysis | R | A | I | C | C | I |
| Workload replacement and secret rotation | I | C | I | A | R | I |
| Notification decision | I | C | C | I | I | A, R |
| Closure and postmortem | C | R | A | C | C | C |
On-call contacts (Example):
| Role | Rotation or contact | Backup |
|---|---|---|
| SOC analyst (24x7) | [SOC queue in the case management tool] | [SOC shift lead] |
| Security incident lead | [@security-oncall] | [@ciso-delegate] |
| Cloud platform responder | [@platform-oncall] | [@cloud-platform-lead] |
| Legal and privacy | [@legal-oncall] | [@privacy-officer] |
4. Triggers and detections
4.1 Triggers
| Trigger ID | Source | Signal | Fidelity | Detection or intake |
|---|---|---|---|---|
| TRG-01 (Example) | Secret scanning on code hosting | Cloud access key pattern found in a public repository | High (key format verified, validity unknown) | Secret scanning alert to SOC queue |
| TRG-02 (Example) | Cloud provider notice | Provider reports an exposed key and may apply a quarantine policy | High | Mailbox and ticket integration |
| TRG-03 (Example) | SIEM | Burst of discovery API calls by a long-term key from outside known networks | Medium | DET-CLD-007, specified in Detection Rule Specification (security/detection-rule-spec) |
| TRG-04 (Example) | SIEM | Audit trail stopped, deleted or its configuration changed | High | DET-CLD-003 |
| TRG-05 (Example) | SIEM | Access key created for a different IAM user than the caller | Medium | DET-CLD-005 |
| TRG-06 (Example) | Billing anomaly | Unplanned GPU or large compute instances in an unused region | Medium | Cost anomaly alert, DET-CLD-009 |
| TRG-07 (Example) | Threat hunt | Hunt finding escalated from a Threat Hunting Plan (security/threat-hunting-plan) | Varies | Hunt escalation record |
| TRG-08 (Example) | External report | Researcher or customer reports a credential in a public location | Varies | Vulnerability disclosure intake |
4.2 Required telemetry
The steps below assume the following logs are collected and searchable
for at least the retention period set in the Security Logging Standard
(security/security-logging-standard). If a source is missing, record
it as a gap in the incident record; it limits what scoping can prove.
| Data source | Needed for | Retention check |
|---|---|---|
| Cloud control plane audit log, all regions, management and data events for sensitive storage | Activity scoping, timeline | [Example: 13 months searchable] |
| Identity provider sign-in and federation logs | Link a key or session to a person | [Retention] |
| Code hosting audit log and secret scanning history | When and where the key was exposed | [Retention] |
| CI/CD job logs and runner audit logs | Whether pipelines used or printed the key | [Retention] |
| Network flow logs for affected virtual networks | Data transfer volumes, attacker infrastructure | [Retention] |
| Billing and usage data | Resource hijacking scope | [Retention] |
5. Triage
5.1 Triage questions
Answer these in order and record each answer, with the evidence, in the case. Stop and go to section 7 as soon as question 2 is "yes" and question 3 is "yes" or "unknown".
| # | Question | How to answer | Outcome |
|---|---|---|---|
| T1 | Which credential is it (key ID, account, principal) and who owns it? | Look up the key ID in the cloud IAM inventory and the service catalogue | Owner and business service identified |
| T2 | Is the credential valid and active right now? | IAM console or API "last used" fields; never test the key by signing a request with it | Active, inactive or deleted |
| T3 | Was it used by anyone other than its expected workload since the exposure time? | Query the audit log by key ID from the earliest exposure time: source IP, network owner, user agent, region, API calls. List every GetSessionToken and GetFederationToken call signed with the key, because the temporary credentials they return carry a different key ID | Expected only, unexpected, or unknown; list of temporary sessions minted with the key |
| T4 | What can it do? | Effective permissions of the principal, including roles it can assume and resource policies that trust it | Privilege level: low, high, administrative |
| T5 | Where was it exposed, since when, and is it still exposed? | Code hosting history, scanning alert timestamps, paste site, image layers | Exposure window and channel |
| T6 | Does the activity touch data classified confidential or personal? | Map accessed resources to the data inventory | Data impact: none, possible, confirmed |
| T7 | Are other credentials exposed in the same place? | Scan the full repository history, image or log, not only the reported line | Additional credentials listed |
5.2 Triage outcomes
| Outcome | Criteria | Action |
|---|---|---|
| False positive | Pattern match is not a real key, or a documented example key | Close with reason; tune the detection through its owner |
| Benign true positive | Key used only by its expected workload, no exposure (for example a new CI runner IP range) | Close; update known-good lists via the detection tuning process |
| Exposure without misuse | Valid key exposed; no unexpected use found | Declare incident (section 6), contain, rotate |
| Compromise | Unexpected use observed, or exposure plus missing logs for the window | Declare incident, contain immediately, full scoping |
6. Severity mapping
Severity levels, their response (paging, incident commander, status
page, executive notification, postmortem) and the upgrade and downgrade
rules are owned by the Incident Severity Matrix
(ops/incident-severity-matrix). For this scenario, apply the most
severe row that matches.
| Scenario facts | Starting level (Example mapping) | Notes |
|---|---|---|
| Unknown party used a credential with administrative or data access in production | SEV1 | Matches "active attacker with privileged access" in the matrix (section 4.4) |
| Confirmed read or copy of confidential or personal data | SEV1 | Matches "confirmed unauthorised access to or exfiltration of confidential or personal data"; starts notification assessment (section 11) |
| Unknown party used a production credential without administrative or data access (for example enumeration only), scoping in progress | SEV2 | Matches "credible indication of compromise under investigation"; upgrade to SEV1 on privileged use or data access |
| Valid production key exposed publicly, no misuse found yet | SEV2 | Matches "leaked production secret", listed under the same SEV2 criterion |
| Valid key for a non-production account with no route to production data, contained with no evidence of data access | SEV3 | Matches "security event contained with no evidence of data access"; upgrade if the account trusts or is trusted by production |
| Key already inactive or deleted before exposure, no use in the window | SEV4 | Matches "security weakness with no sign of exploitation"; record and close after confirming no other credential in the leak |
Re-assess severity at each status update. Upgrade as soon as scoping finds privileged use, persistence (new keys, users or roles) or data access.
7. Containment
7.1 Containment options
| Option | Action | Effect | Business impact | Reversible |
|---|---|---|---|---|
| C1 Deactivate key | Set the access key to inactive | Stops new requests signed with that key. Does not end temporary sessions already minted with it (GetSessionToken, GetFederationToken), which stay valid until they expire, up to 36 hours | Workloads using the key fail until a new secret is deployed | Yes (reactivate) |
| C2 Deny policy | Attach an explicit deny-all policy to the principal | Blocks the principal, its other keys and its existing temporary sessions, because permissions are evaluated on every request | Same as C1 for all of the principal's credentials | Yes (detach) |
| C3 Block older sessions | For the IAM user: attach an inline deny-all policy with the condition aws:TokenIssueTime earlier than the containment time (DateLessThan). For every role the principal can assume: use "Revoke active sessions" in the IAM console, which attaches the AWSRevokeOlderSessions inline policy | Stops temporary sessions issued before containment, including GetSessionToken and GetFederationToken sessions and assumed-role sessions. The condition only exists on temporary credentials, so it does not block the long-term key itself (C1 or C2 does) | Legitimate sessions must be re-established; allow a few minutes for policy propagation | Yes (remove the policy after the old sessions have expired) |
| C4 Organisation guardrail | Apply a service control or organisation policy denying risky actions (audit log changes, key creation, new regions) | Limits attacker options in all accounts | Low if scoped to break-glass exceptions | Yes |
| C5 Network restriction | Add a condition that limits the principal to known source networks | Blocks use from attacker infrastructure | Low for workload identities with fixed egress | Yes |
| C6 Isolate resources | Quarantine instances or functions created by the attacker (security group with no rules, stop not terminate) | Stops hijacked compute and outbound traffic | None for attacker-created resources | Yes |
C3 for the IAM user (Example, containment time 2026-09-15 11:36 UTC):
attach as an inline policy named [INC-ID]-deny-older-sessions.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenySessionsIssuedBeforeContainment",
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"DateLessThan": { "aws:TokenIssueTime": "2026-09-15T11:36:00Z" }
}
}
]
}
Notes for C3: temporary credentials are valid until they expire (15 minutes to 36 hours), and deactivating or deleting the long-term key does not end them. Keep the policy in place until the longest possible session issued before containment has expired, then remove it and record the removal in the case. Resource-based policies (for example bucket policies) that trust the principal by ARN still need an explicit deny if C2 is not used.
7.2 Decision points
Decision rules (Example):
- DP-1: If unexpected use is observed, the security incident lead may deactivate the key without waiting for the owner, even if a production service fails. Inform the incident commander within 5 minutes.
- DP-2: If no misuse is observed and the key serves production, the owner gets at most 60 minutes to deploy a replacement before C1 is applied anyway. Record the decision and the time.
- DP-3: Never delete the key, the IAM user or attacker-created resources during containment. Deletion destroys metadata needed for scoping (section 10).
- DP-4: If the audit trail was stopped or modified, restore logging first (the configuration revert of E4, done early), apply C4 to deny further log changes, then continue. Activity during the gap is treated as unknown and scoped from other sources.
7.3 Containment verification
- Key status shows inactive (or deny policy attached) and the change appears in the audit log.
- No successful API call by the principal after the containment time, under any key ID: the long-term key and every temporary session key (prefix
ASIA) whose session was issued to the user or to a role it can assume (query re-run 15 and 60 minutes later). - Every
GetSessionTokenandGetFederationTokencall signed with the key during the exposure window is listed in the scoping record (T3), with the session expiry time. - The
aws:TokenIssueTimedeny policy is attached to the IAM user, andAWSRevokeOlderSessionsto every role in the principal's trust path. - Attacker-created resources isolated and tagged
incident=[INC-ID].
8. Eradication
| Step | Action | Verification |
|---|---|---|
| E1 | List every identity change since the exposure start: new users, keys, roles, policies, trust relationships, federation settings | Diff of IAM state against the last known-good snapshot is empty apart from approved changes |
| E2 | Remove attacker-created keys, users, roles and policies after evidence capture | Audit log shows deletions by the response principal |
| E3 | Terminate attacker-created compute, functions and storage after snapshots are taken where needed for evidence | Billing and inventory show no remaining resources tagged with the incident ID |
| E4 | Revert configuration changes (logging, network, encryption, resource policies) | Configuration compliance checks pass for the affected accounts |
| E5 | Remove the secret from the exposure channel: rewrite history only if the repository owner agrees, and in every case treat the old key as permanently compromised | Secret scanning re-run shows no live credential |
| E6 | Fix the root cause: replace the long-term key with workload identity or short-lived credentials | Owner's change record, reviewed against the Secrets Management Standard (security/secrets-management-standard) |
9. Recovery
9.1 Recovery steps
- Deploy the replacement credential, or preferably workload identity, through the normal change process with an expedited approval.
- Confirm that the business service is healthy against its service level objectives.
- Verify the integrity of restored or replaced resources: images from the trusted registry, infrastructure from code, data checked against the last known-good backup where data modification was possible.
- Keep heightened monitoring for [Example: 14 days]: a temporary detection on any use of the old key ID, on the attacker's source networks and on identity changes in the affected accounts.
- Update the status page and internal stakeholders according to the cadence of the current severity.
9.2 Recovery decision
The incident commander decides to start recovery when containment is verified and eradication steps E1 to E4 are complete. If the attacker had administrative access, the security incident lead must also agree that no persistence remains.
9.3 Exit criteria
- No unexpected use of any affected credential for [Example: 72 hours] after eradication.
- All triage questions answered, with remaining unknowns recorded.
- Notification decisions recorded with their legal basis (section 11).
- Root-cause fix (E6) done, or tracked with an owner and a date.
- Postmortem scheduled using the Postmortem template (
dev/postmortem).
10. Evidence handling
Follow the evidence rules of the Incident Response Plan. For this scenario, collect at least the following before eradication:
| Evidence ID | Item | Method | Integrity | Custodian |
|---|---|---|---|---|
| EV-01 (Example) | Audit log events for the key ID and principal from exposure start to now | Export query results to the evidence store | SHA-256 hash recorded in the case | [@soc-analyst] |
| EV-02 (Example) | IAM state snapshot of affected accounts (users, keys, roles, policies) | Read-only inventory export | Hash recorded | [@cloud-responder] |
| EV-03 (Example) | Exposure artefact (commit, image layer, paste) | Archive with URL, commit ID and timestamps; redact the key value in copies | Hash recorded | [@soc-analyst] |
| EV-04 (Example) | Disk snapshots of attacker-created instances | Provider snapshot, copied to the forensic account | Snapshot ID and hash | [@cloud-responder] |
| EV-05 (Example) | Decision log and timeline | Incident channel export and case notes | Read-only archive | [@scribe] |
Chain of custody rules:
- Store evidence in a dedicated forensic account or bucket with object lock, access limited to the response team.
- Record each transfer (who, when, why) in the case.
- Keep evidence for the period set in the Incident Response Plan, or longer if legal counsel places a hold.
11. Communication and notification clocks
The Incident Response Plan (compliance/incident-response-plan) defines
which laws, contracts and regulators apply and who decides. This
scenario can start the clocks below. Record the "awareness" time in the
case, because most clocks run from it.
| Clock (Example) | Starts when | Deadline | Owner |
|---|---|---|---|
| Personal data breach notice to the supervisory authority (GDPR Art. 33) | Controller becomes aware of a personal data breach | See Incident Response Plan (compliance/incident-response-plan), section 10 | [@privacy-officer] |
| Significant incident notice under NIS2 (Art. 23) where the entity is in scope | Entity becomes aware of a significant incident | See Incident Response Plan (compliance/incident-response-plan), section 10 | [@ciso] |
| Customer contractual notice | Contract trigger met (for example confirmed customer data access) | Per contract, see the customer register | [@account-lead] |
| Cloud provider abuse or support case | Attacker resources found | As soon as practical | [@cloud-responder] |
Internal communication follows the cadence of the current severity level. Never include the key value, full key ID or attacker indicators in open channels; use the private incident channel.
12. ATT&CK techniques and D3FEND countermeasures
ATT&CK Enterprise v20 uses Stealth (TA0005) and Defense Impairment (TA0112) where earlier releases used Defense Evasion. Several techniques were renumbered in that change; for example disabling cloud logs is now T1685.002 under Defense Impairment. Check each ID before reuse. The pairing of each technique with a D3FEND countermeasure below is this playbook's choice of the countermeasure it applies; use the D3FEND site to explore further countermeasures for each technique.
| Step | ATT&CK tactic | ATT&CK technique (v20) | D3FEND countermeasure (1.6.0) | Playbook step |
|---|---|---|---|---|
| Exposure | Credential Access | T1552.001 Unsecured Credentials: Credentials In Files | D3-CRO Credential Rotation | E5, E6 |
| Use of key | Initial Access, Persistence, Privilege Escalation, Stealth | T1078.004 Valid Accounts: Cloud Accounts | D3-UBA User Behavior Analysis; D3-CR Credential Revocation | TRG-03, C1 |
| Discovery | Discovery | T1087.004 Account Discovery: Cloud Account; T1580 Cloud Infrastructure Discovery; T1619 Cloud Storage Object Discovery | D3-RAPA Resource Access Pattern Analysis | T3, DET-CLD-007 |
| Persistence | Persistence, Privilege Escalation (T1098); Persistence (T1136.003) | T1098.001 Account Manipulation: Additional Cloud Credentials; T1098.003 Additional Cloud Roles; T1136.003 Create Account: Cloud Account | D3-UAP User Account Permissions; D3-CCSA Credential Compromise Scope Analysis | E1, E2 |
| Logging tampering | Defense Impairment | T1685.002 Disable or Modify Tools: Disable or Modify Cloud Log | D3-PM Platform Monitoring | TRG-04, DP-4 |
| Resource creation | Defense Impairment | T1578.002 Modify Cloud Compute Infrastructure: Create Cloud Instance | D3-PM Platform Monitoring | C6, E3 |
| Data access | Collection | T1530 Data from Cloud Storage | D3-RAPA Resource Access Pattern Analysis | T6 |
| Exfiltration | Exfiltration | T1537 Transfer Data to Cloud Account | D3-NTF Network Traffic Filtering | T6, C5 |
| Impact | Impact | T1496.001 Resource Hijacking: Compute Hijacking | D3-PM Platform Monitoring | TRG-06, C6 |
| Session reuse | Lateral Movement | T1550.001 Use Alternate Authentication Material: Application Access Token | D3-ST Session Termination | C3 |
13. CSF 2.0 traceability per step
| Playbook step | CSF 2.0 Function | Subcategory (ID only, see CSF 2.0 for the text) | Evidence of performance |
|---|---|---|---|
| Triggers and detections (4) | Detect | DE.CM-01, DE.CM-03, DE.CM-09, DE.AE-02, DE.AE-03 | Alert record, detection ID |
| Triage (5) | Detect, Respond | DE.AE-06, DE.AE-08, RS.MA-02 | Case with triage answers |
| Severity mapping (6) | Respond | RS.MA-03, RS.MA-04, RS.AN-08 | Severity history in case |
| Containment (7) | Respond | RS.MI-01 | Containment verification checklist |
| Eradication (8) | Respond | RS.MI-02 | IAM diff, change records |
| Analysis and evidence (5, 10) | Respond | RS.AN-03, RS.AN-06, RS.AN-07 | Evidence register, timeline |
| Notification (11) | Respond | RS.CO-02, RS.CO-03 | Notification log |
| Recovery (9) | Respond, Recover | RS.MA-05, RC.RP-01, RC.RP-02, RC.RP-05, RC.RP-06 | Recovery decision and exit checklist |
| Recovery communication (9.1) | Recover | RC.CO-03, RC.CO-04 | Status updates |
| Lessons learned (15) | Identify | ID.IM-03, ID.IM-04 | Postmortem actions, playbook revision |
| Playbook ownership and approval | Govern | GV.RR-02 | Document control |
14. Metrics
| Metric | Formula | Target (Example) |
|---|---|---|
| Time to contain | Containment verified time minus incident declared time, median per quarter | 60 minutes or less |
| Time to triage | Triage outcome time minus alert time, median | 30 minutes or less for TRG-01 to TRG-04 |
| Exposure window | Containment time minus earliest exposure time | Trend down quarter on quarter |
| Scoping completeness | Triage questions answered with evidence divided by 7 | 100% at closure |
| Recurrence | Incidents of this type for the same service within 12 months | 0 |
| Long-term key reduction | Active long-term cloud keys at quarter end divided by active keys at the previous quarter end | Below 1.0 |
Example (Corvid Commerce, Q3 2026): 4 cases. Median time to contain was 42 minutes (values 18, 35, 49 and 95 minutes; the median of the two middle values 35 and 49 is 42; INC-2026-0412 was the 49-minute case). Active long-term keys fell from 120 to 84, a ratio of 0.70.
15. Testing and maintenance
- Run a discussion-based exercise of this scenario at least once a year
using the Tabletop Exercise template (
security/tabletop-exercise). - Validate the linked detections with test events after each change to
the logging pipeline, using the test cases in section 8 of each
Detection Rule Specification (
security/detection-rule-spec). - After every real incident, the postmortem owner checks each step of this playbook against what happened and proposes changes.
- Re-check ATT&CK and D3FEND IDs at each ATT&CK release (normally twice a year) and record the version in Document control.
Change log of lessons applied (Example):
| Source | Lesson | Change | Date |
|---|---|---|---|
| INC-2026-0412 (Example) | DP-1 applied after hunt escalation ESC-01 (10:42): incident declared 10:55, key deactivated 11:36 (54 minutes after escalation), containment verified 11:44. Most of the delay was finding the owner of svc-reporting, who was not recorded in the IAM inventory; the reporting job outage was accepted | Owner contact made a mandatory field in the IAM inventory; DP-1 deactivation target set at 30 minutes after escalation; workload identity migration added as E6 | YYYY-MM-DD |
| TTX-2026-03 (Example) | Analysts did not know where the IAM snapshot tool lived | EV-02 now names the tool and runbook | YYYY-MM-DD |
16. Glossary and references
| Term | Meaning in this playbook |
|---|---|
| Long-term access key | A static credential for programmatic access that does not expire by itself |
| Session revocation | Denying all requests made with temporary credentials issued before a given time, using a deny policy with an aws:TokenIssueTime condition (for roles, the console "Revoke active sessions" action) |
| Containment | Actions that stop the incident from spreading or continuing |
| Eradication | Removal of attacker artefacts and of the root cause |
| Awareness time | The time the organisation had reasonable certainty that an incident occurred; starts most legal clocks |
| Workload identity | Short-lived credentials issued to a workload by the platform instead of a stored secret |
| Reference | Use |
|---|---|
| NIST SP 800-61 Rev. 3, April 2025, csrc.nist.gov/pubs/sp/800/61/r3/final | Incident response recommendations aligned with CSF 2.0 |
| NIST CSWP 29, The NIST Cybersecurity Framework (CSF) 2.0, 26 February 2024 | Functions and Subcategory IDs (section 13) |
| MITRE ATT&CK Enterprise v20, 13 October 2026, attack.mitre.org | Techniques (section 12) |
| MITRE D3FEND 1.6.0, d3fend.mitre.org | Countermeasures (section 12) |
Incident Response Plan (compliance/incident-response-plan) | Authority, notification duties, evidence retention |
Incident Severity Matrix (ops/incident-severity-matrix) | Severity levels |
Incident Commander Handbook (ops/incident-commander-handbook) | Roles and battle rhythm |
Detection Rule Specification (security/detection-rule-spec) | DET-CLD-007 logic and tests |
Threat Hunting Plan (security/threat-hunting-plan) | Hunt escalations into this playbook |
Security Logging Standard (security/security-logging-standard) | Required logs and retention |
Tabletop Exercise (security/tabletop-exercise) | Testing this playbook |
Postmortem (dev/postmortem) | Post-incident review |
Threat Model (security/threat-model) | Threats that justify this playbook |
Standard and licence note
Based on NIST SP 800-61 Rev. 3 (April 2025) and the NIST Cybersecurity Framework 2.0 (CSWP 29, February 2024), which are works of the United States Government and not subject to copyright in the United States. Function and Subcategory IDs are cited; all explanations are original text. MITRE ATT&CK technique and tactic names and IDs are used under the ATT&CK terms of use: The MITRE Corporation (MITRE) hereby grants you a non-exclusive, royalty-free license to use ATT&CK® for research, development, and commercial purposes. Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. "© 2026 The MITRE Corporation. This work is reproduced and distributed with the permission of The MITRE Corporation." MITRE ATT&CK and ATT&CK are registered trademarks of The MITRE Corporation. MITRE D3FEND technique names and IDs are used under the D3FEND Terms of Use (non-exclusive, royalty-free licence for research, development and commercial purposes, provided MITRE's copyright designation and that licence are kept); © 2025 The MITRE Corporation; MITRE D3FEND is a trademark of The MITRE Corporation. AWS is a trademark of Amazon.com, Inc. or its affiliates, and other product names are trademarks of their owners; this template is not affiliated with or endorsed by them. The AWS IAM behaviour in section 7 follows the AWS IAM User Guide as checked in October 2026. Legal deadlines are kept in the Incident Response Plan; this is a documentation format, not legal advice. Check the current official versions at nist.gov, attack.mitre.org and d3fend.mitre.org before use. Original text written for this collection. Template licence: MIT.
Modèles associés
Attack Tree Analysis Template
Attack tree for one attacker goal: AND/OR tree as list and Mermaid, leaf cost/skill/likelihood, path analysis, countermeasures
Ingénierie de la sécuritéCIAM Solution Design Template (Passkeys, OIDC, FAPI 2.0)
Journeys and risk, proofing, passkeys and step-up, recovery, OAuth/FAPI profiles, consent and GDPR rights, B2B2C, fraud, scale, KPIs, migration
Ingénierie de la sécuritéCloud Security Posture Review Template (CSA CCM v4.1)
Periodic cloud posture review: scope, shared responsibility, CSPM findings by CCM v4.1 domain, identity, exposure, data, logging, drift, risks, actions, trend