docs: record the control catalogue decision and restructure Package 5 - #37
Merged
Merged
Conversation
Eight scoping questions are settled as one decision, because each changes the shape of every control entry and answering them as the writing proceeds would produce a document whose early entries do not match its later ones. 800-53 Rev 5 at the High baseline is the spine, with DISA SRG, RHEL 9 STIG and CIS as cross-references, written for an external assessor to ingest, covering image, deployment and host expectations, base controls before enhancements, sources pinned by digest, and the spine completed before cross-referencing. CIS was reclassified rather than rejected. It is a hardening benchmark, not a control catalogue, so it cannot carry an authorization conversation or serve as a spine; as a cross-reference it is the most directly checkable of the three against a container image. 800-53 is the spine because OSCAL is NIST's own format and ships a Rev 5 catalogue, so identifiers resolve natively rather than through a mapping layer this project would maintain. Two of the answers interact, and the record says so. Host expectations in scope plus an assessor as the reader means a control without a machine-readable origination value can be read as a satisfied claim. The origination decision is what makes that scope safe rather than reckless, and had the answer been the prose option the honest response would have been to narrow the scope instead. The package is restructured into foundation, authoring, publication, and scanning stages. The structural checks — origination and responsible role on every control, cited requirement identifiers resolving in the tree, catalogue sources matching their pinned digests — are placed before the bulk authoring rather than after it. A property that is merely conventional gets omitted under deadline, which is exactly when the overclaim it prevents becomes most likely. The consequences section is blunt about size: roughly 370 base controls, well over a thousand with enhancements, each revisited by the cross-reference pass. A High baseline also means many controls will record organization-inherited or not applicable, which is accurate and will look sparse to anyone expecting satisfied claims.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Records your eight answers as ADR-0009
and rebuilds Package 5 around them.
Why these were answered together
Each one changes the shape of every control entry. Deciding them as the writing
proceeds produces a document whose early entries do not match its later ones —
so they are one decision, not eight.
Two clarifications the record makes
CIS was reclassified, not rejected. It is a hardening benchmark rather than
a control catalogue, so it cannot carry an authorization conversation or serve
as a spine. As a cross-reference it is the most directly checkable of the three
against a container image, which is where its value is.
800-53 is the spine because OSCAL is NIST's own format and ships a Rev 5
catalogue, so identifiers resolve natively. Making SRG or STIG the spine would
mean maintaining a mapping layer between the identifiers and the format
carrying them, for no gain.
The pairing that needed care
Host expectations in scope plus an assessor as the reader is the risky
combination: an assessor ingesting this into an SSP may read a host expectation
as a satisfied claim, and host controls are furthest from anything this repo
can test.
Your origination answer is what makes that scope safe rather than reckless —
every control carries a machine-readable origination value and a responsible
role, so an assessor can filter on what this component actually claims instead
of inferring it from prose.
The ADR states the counterfactual plainly: had the origination answer been the
prose option, the honest response would have been to narrow the scope instead.
Package 5, restructured into four stages
Foundation — source register, pin the catalogues, define the OSCAL
structure, and add the structural checks.
Control authoring — classify, author the High base controls, assessment
methods, cross-references, then enhancements.
Publication — schema-validated OSCAL plus generated CSV and human-readable
views from one source.
Scanning, threat model, and operational policy — the existing SCAP, threat
model, crypto boundary, vulnerability policy, and qualification ledger items.
The structural checks sit before the bulk authoring, not after. A property
that is merely conventional gets omitted under deadline — which is exactly when
the overclaim it prevents becomes most likely.
The package also now states that Package 8 precedes it, because the mapping
cites requirement identifiers and draws evidence from the trace matrix.
Consequences, stated bluntly
~370 base controls, well over a thousand with enhancements, each revisited by
the cross-reference pass. Measured in weeks. A High baseline also means many
controls will record organization-inherited or not applicable — accurate, and
it will look sparse to anyone expecting satisfied claims.
The ADR's enforcement section says plainly that nothing is checked today,
and names the three obligations that need it.
🤖 Generated with Claude Code