Expand AssetRegister and DataRegister with T0/T4 stack assets. Add ResiliencePolicy, PanicSheet, full-server-loss runbook, and five incident playbooks. Update README with mirror status. Mark T02-T05, T07-T08 done; T01 and T06 in progress.
1.7 KiB
1.7 KiB
Playbook: Ransomware / Hostile Access
Triggers: suspicious encryption, unknown admin sessions, altered repos, exfiltration indicators.
Tier: L2 / I5 — treat as breach until proven otherwise.
Steps
- Isolate — disconnect affected hosts from network; disable compromised accounts; preserve VM/disk snapshots for evidence.
- Preserve evidence — do not wipe logs; capture auth logs, k8s audit, Gitea/Forgejo access logs, firewall logs.
- Revoke credentials — rotate all tokens/passwords that may be exposed: OpenBao, Stripe, API keys, backup tokens, Gitea/Forgejo admin, SSH certs.
- Assess backup integrity — verify offsite backups (Nextcloud) were not deleted; check
.last-backupstamps; assume on-node backups on compromised host are untrusted. - Build clean environment — new machines; fresh OS; Ansible from known-good Git refs. Never restore into compromised host.
- Restore known-good data — from backups timestamped before compromise; age-decrypt from offsite only.
- Rotate all secrets — full rotation, not selective; update OpenBao paths; re-issue
wardencerts. - Force resets — user sessions, MFA re-enrollment where applicable.
- Validate — smoke tests; compare restored repos against known-good SHAs.
- Document — State Hub progress event;
TestEvidence/incident note; updateAssetRegister.yamlif exposure changed posture.
Do not
- Pay ransom without executive decision recorded.
- Restore production DB over live data without identifying last good point.
- Paste secrets into incident notes.
References
BackupPolicy.md §8 · RestoreRunbooks/01-full-server-loss.md · PanicSheet.md §4