Lion Cipher Lab

Build a continuous control monitoring pipeline: turn written controls into automated evidence with a real pass/fail and an audit-ready trail

Why it matters

Almost every compliance programme runs on point-in-time assessment: once a year an assessor samples a control, someone pastes a screenshot into a folder, the control is marked satisfied, and that one day's evidence is silently asserted for the other 364. Everything that drifts in between — the contractor account nobody disabled, the log retention someone shortened to save money, the SSH box rebuilt from a stale image — is invisible until the next assessment, or until an incident. The screenshot itself is unverifiable: undated, unreproducible, and traceable to nothing. Continuous control…

What you'll learn

Steps in this lab

  1. The problem: a control tested once is asserted for 365 days
  2. What makes a control testable at all: the assessment objective
  3. The central skill: decompose five real controls into machine-testable assertions
  4. The controls that do NOT decompose — and why pretending otherwise is a lie
  5. Set up the workspace and write the control inventory as data
  6. Write ccm_lib.py: timestamps, evidence hashing, and the hash-chained ledger
  7. Write checks.py: the real, read-only checks
  8. Write collect.py and run your first collection
  9. Verify the ledger, then tamper with it on purpose
  10. What the hash chain proves — and, precisely, what it does not
  11. Write report.py: control effectiveness and an honest coverage denominator
  12. Read poam.csv: what a failed check actually TRIGGERS
  13. Write ccm_gate.py: make a failure actually block something
  14. The five failure modes that kill CCM programmes
  15. When CCM pays for itself, when it is premature, and how a pro does it better
  16. The judgment: automation makes controls honest, or it makes them decorative

Open the full interactive lab →