Component-first

Component-first represents a rule in the proposed rules assembly on the product component. The check uses the proposed checks assembly on a separate component of type validation. The rule states the required configuration; the check describes how to test the configuration.

1. Stakeholder roles and OSCAL models

Component-first treats a hardening rule as a capability statement, using the component-definition model in the Implementation layer. The table shows the models each party uses to publish guidance, implement controls or record assessment results.

Seven parties publish, implement or assess hardening guidance. The table maps each party to OSCAL models and groups guidance authors separately from automation providers and operators.

PartyOSCAL model
Regulatory control providersNIST and other bodies publishing regulatory controls, such as SP 800-53catalog
Mapping providersOrganisations linking guidance to frameworks through DISA's CCI list, NIST's OLIR programme or the Secure Controls Frameworkcomponent-definitionsoftware or validationThe mapping provider edits a component definition. Whether the rules or the checks carry the framework mapping remains open.
Hardening guidance authorsBenchmark publishers and technology providers author guidance in the same OSCAL model for each approach.
Technical hardening guidance providersCIS, DISA and other benchmark publisherscomponent-definitionsoftware
Technology providersVendors publishing configuration guidance for hardware, software and services, independently or with benchmark publishers such as CIScomponent-definitionsoftware
Automation providers and operatorsProviders build policy engines. System owners and auditors run checks to produce implementation responses or assessment results.
Policy engine providersProviders of assessment and checking tools such as OPA, Kyverno, ScubaGear and OpenSCAPcomponent-definitionvalidationThe provider publishes checks in a component of type validation. System owners and auditors run the checks.
System ownersOrganisations implementing and documenting controls on a systemprofilesystem-security-planruns the checks, making the control-implementation responsescomponent-definitionvalidationruntime is read by the policy engine, which runs and writes system-security-plan
Independent auditorsAssessors running checks and reviewing results independently of system ownersruns the checks, making the observationsassessment-planruntime is read by the policy engine, which runs and writes assessment-resultsThe auditor runs checks through an assessment plan, allowing the result to identify a host rather than a component.

The runtime. A policy engine reads OSCAL, executes checks and writes OSCAL. Providers publish the checks; each flow identifies the party executing the checks.

2. Strengths and risks

Publishing technical hardening rules in a component definition has these strengths and risks.

2.1 Strengths4

  1. One artifact describes capability and supports automation

    A component definition describes how a product can meet controls; the proposed rules provide configuration requirements for automation in the same document.

  2. Rules and checks remain separate

    The product component holds the rule and a validation component holds the check; a second engine uses a second validation component.

  3. Implementation claims can reference rules

    The proposed implementing-rules assembly links a control implementation claim to the rule used to satisfy the control.

  4. Technology providers can extend component descriptions

    Existing guidance directs technology providers to describe product capabilities in component definitions, where the proposal would also place hardening rules.

2.2 Risks5

  1. Four models require schema changes

    The proposal changes component definitions, system security plans, assessment plans and assessment results; existing schema support does not cover the proposed assemblies.

  2. Desired state enters the plan of record

    Rules describing the required component configuration enter the system security plan, which documents the system's implemented controls and current configuration.

  3. Published rules omit guide context

    Rationale, audit procedure and remediation provide guidance context, but the published rules omit these fields and support remains proposed.

  4. Responses do not identify individual instances

    A by-component response can reference a rule but not an individual instance, so exceptions remain associated with the component.

  5. Host-level claims may require inventory support

    Inventory items would also need implementing-rules support for a claim to identify a host rather than a component class.

3. Tracing rules and checks from implementation to assessment

The chain connects a rule to checks, implementation claims and assessment results. Each step identifies the relationships a consumer must resolve and the fields used to resolve those relationships.

  1. Rule definition. The proposed rules assembly defines the rule on the product component. The chain starts from the rule id within that component definition. component-definition, components[].rules[].id.
  2. Rule to Check. The check references both a rule id and a target component uuid. A rule id is unique only within the declaring component.
  3. Rule to Control. The component definition contains both references. Control implementations already link components to controls; the proposed implementing-rules assembly adds references to individual rules.
  4. Check to Runtime. The validation component contains the checks executed by the engine. Each additional engine is represented by a separate validation component.
  5. Runtime to Claim. The proposed implementing-rules assembly references the rule supporting the claim, allowing a consumer to trace the claim to the check through OSCAL references.
  6. Runtime to Result. The observation identifies the check and host, allowing different outcomes for two machines within the same system boundary to be recorded separately.
  7. Result to Control. The example result contains observations but no findings. No finding target identifies the control, and no finding status records whether the objective was satisfied.
The chain uses rule 1, data at rest, from the six questions page. Each step shows the fields and values a consumer follows. The relationship type indicates whether resolution uses schema-defined references, containment or publisher conventions.