Lion Cipher Lab
Run a timed restore drill and measure real RTO and RPO
- GRC / Compliance
- Intermediate
- ~60 min
- Free · no account required
Why it matters
Every DR plan has two numbers in it. RTO, the Recovery Time Objective, is how long the business can be down. RPO, the Recovery Point Objective, is how much recent data it can afford to lose, measured in time. Plans state them confidently -- 'RTO 15 minutes, RPO 1 hour' -- and almost nobody checks. Then the day comes, and the team discovers that backups run every four hours (so the real RPO was never one hour), that last night's backup job logged 'OK' while writing a file that will not open, and that the 'fifteen-minute' restore needs someone to find a server, find the backup, and find the…
What you'll learn
- turning a DR plan's RTO and RPO claims into a measurable control test, the way NIST SP 800-53 CP-4 (contingency plan testing) and CP-9 (system backup) expect
- taking consistent backups of a live SQLite database with the online backup API on a schedule, and writing a backup job log with row counts and a checksum
- verifying a restore three ways -- PRAGMA integrity_check, row count against the job log, and a SHA-256 over every row -- and knowing what each one misses on its own
- measuring actual RPO (minutes and rows of data lost) and actual RTO (restore + verify time plus the manual runbook steps), and scaling a small-lab timing honestly to production size
- catching a backup that 'succeeded' in the job log but is corrupt or empty, which only a restore reveals
- writing a one-page drill record an auditor accepts: date, scope, claimed vs actual, pass/fail, findings, owner, retest date
- fixing a failed RPO by changing the backup interval and re-measuring before and after, and recognising which fixes do NOT move RTO
Steps in this lab
- What you are testing: two claims, two controls, one stopwatch
- Part 1 of drill.py: a database that keeps taking orders, and backups on a schedule
- Part 2: the disaster, the restore, three checks, and the measurements
- Drill 1: the baseline, and the first two failures
- Drill 2: plant a backup that 'succeeded' and watch only the restore catch it
- Write the drill record an auditor will accept
- Fix RPO, then measure again: before and after
- What this drill does not prove, and how a pro runs it