Lab 01 — Control & Authorization-Readiness Engine
Difficulty: 4/5 | Runs locally: yes, standard library only
Pairs with the Phase 15 WARMUP Chapters 2–5 (NIST 800-53, the ATO process, the boundary and inheritance, OSCAL) and the HITCHHIKERS-GUIDE. Flagship of the phase.
Why This Lab Exists (Purpose & Goal)
A FedRAMP ATO (or any NIST 800-53 authorization) is, underneath the binders, a machine-checkable assertion: for the selected baseline, every required control is implemented with evidence, inherited from an authorized provider, or tracked in an open, on-time POA&M. The goal of this lab is to build the engine that computes that readiness — the core of an OSCAL "compliance as code" pipeline — so the authorization becomes a query over data instead of a human reading 300 control narratives.
The Concept, In the Weeds
Three ideas carry the weight, and each is a place real authorizations fail:
- Baselines nest. The impact level (FIPS 199) selects Low / Moderate / High, and they nest —
Moderate requires every Low control plus more. A Low-complete system is not Moderate-ready (the
lab's
BASELINE_CONTROLSencodes this). - Authorization is allowed with open gaps. An ATO does not require zero findings — a
planned/not-implementedcontrol is acceptable iff it links an open, on-time POA&M. A gap with no POA&M (gap-without-poam), or with an overdue one (poam-overdue), blocks authorization. Mature security manages risk transparently. - Inheritance must be substantiated. A control marked
inheritedmust name the authorized provider it inherits from; an unsubstantiated claim (inheritance-unsubstantiated) is a finding — one of the most common, most dangerous FedRAMP errors ("we assumed the cloud had it").
Why This Matters for Protecting the Company
An authorization is a precondition to selling in regulated markets, and the speed and integrity of getting one is an engineering problem. An automated readiness engine turns "are we authorizable?" from a months-long manual scramble into a continuous, computed answer — surfacing every missing control, unsubstantiated inheritance, missing evidence, and untracked gap before the 3PAO does. It also keeps the authorization honest: gaps are tracked in POA&Ms, not hidden, and inheritance is real, not assumed. That honesty is exactly what makes the resulting authorization a genuine trust signal to customers, not a checkbox.
Secure Implementation Patterns
The anti-pattern. Treat "we have a control document" as "the control is satisfied," and assume the cloud covers what you didn't implement.
The secure pattern — compute readiness deny-by-default (mirrors solution.py):
def assess_authorization_readiness(baseline, controls, poams, *, today):
if baseline not in BASELINE_CONTROLS:
return False, ("invalid-baseline",)
required = BASELINE_CONTROLS[baseline] # nested: moderate includes low, etc.
impl = {c.id: c for c in controls}
findings = []
for cid in sorted(required):
c = impl.get(cid)
if c is None:
findings.append(f"{cid}:not-addressed"); continue
if c.status == "inherited":
if not c.inherited_from: # inheritance MUST name the provider
findings.append(f"{cid}:inheritance-unsubstantiated")
elif c.status == "implemented":
if not c.has_evidence: # implemented without evidence == assertion
findings.append(f"{cid}:no-evidence")
else: # planned/not-implemented -> needs a tracked POA&M
poam = poams.get(c.poam_id) if c.poam_id else None
if poam is None:
findings.append(f"{cid}:gap-without-poam")
elif poam.remediation_date < today:
findings.append(f"{cid}:poam-overdue")
return (not findings), tuple(sorted(findings)) # ready iff every control satisfied/inherited/tracked
The real-world equivalent (Phase 15 HITCHHIKERS): express controls/inheritance/POA&Ms as OSCAL data and run this validation continuously over automated, fresh evidence.
Production practices to carry forward:
- Drive the required set from the impact categorization (FIPS 199 → baseline), and respect nesting.
- Track gaps in POA&Ms with remediation dates — authorization is risk management, not zero-risk theater.
- Substantiate inheritance against the provider's Customer Responsibility Matrix; never assume.
- Require evidence for every implemented control, and keep it fresh (Phase 07 freshness).
Validation — What You Should Be Able to Do Now
- Select a baseline from an impact categorization and explain why baselines nest.
- Explain authorizing with open POA&Ms and what makes a gap acceptable vs blocking.
- Substantiate (or flag) a control-inheritance claim.
- Compute authorization readiness and classify missing controls, unsubstantiated inheritance, missing evidence, and gaps with/without on-time POA&Ms.
The Broader Perspective
This lab is the governance instantiation of the requirement→control→test→evidence chain you built in Phase 03 (threat-model validator), Phase 07 (control-evidence validator), and now scaled to an entire authorization. The deep lesson: trust at scale is computed from data, not asserted in documents — and the discipline of "every control implemented/inherited/tracked, with fresh evidence" is the same one that makes a security program (not just a control) credible to an external auditor. Compliance done as engineering is how you make the company demonstrably trustworthy to the customers and regulators who demand proof.
Interview Q&A
- "Can you get an ATO with open findings?" — Yes; an ATO doesn't require zero findings. Every gap must be tracked in an open POA&M with a remediation date and the AO must accept the residual risk; a gap without a POA&M or with an overdue one blocks it.
- "What is substantiated control inheritance?" — A control marked inherited must name the authorized provider that actually owns it for your usage (per their CRM); an unsubstantiated claim is a finding. Inheritance shrinks the work; the controls above the line are still yours.
Extension (Stretch)
Express the controls/baselines/POA&Ms as real OSCAL (JSON) and validate with compliance-trestle; import a provider Customer Responsibility Matrix to compute inheritance; add evidence-freshness checks.
References
- NIST SP 800-53 Rev. 5 / 800-53B; FedRAMP SSP/POA&M templates; OSCAL spec; Phase 15 WARMUP Chapters 2–5.