The OSCAL architecture is organized in a stack of layers. Each lower layer in the stack provides information structures that are referenced and used by each higher layer. Each layer is composed of one or more models, which represent a information structure supporting a specific operational purpose. Each model in OSCAL is intended to build on the information provided by the model(s) in the lower layers.
The following image depicts each layer and the corresponding model(s) for each layer.
Each OSCAL model is represented in multiple, machine readable formats (e.g., XML, JSON, YAML), which provide a serialization and encoding mechanism for representing and exchanging OSCAL data, also referred to as OSCAL content.
Individual layers are summarized below, with links to additional layer and model information. There is also an introduction to the OSCAL models, as well as information related to the concepts applied to each model and their interaction.
The OSCAL Layers
The diagram above identifies the OSCAL layers from the bottom up because each higher layer relies on the layer beneath it. The following OSCAL layer discussion begins with the bottom layer in the diagram and address each in order moving toward the top of the diagram:
- Catalog Layer Overview
- Profile Layer Overview
- Implementation Layer Overview
- Assessment Layer Overview
- Assessment Results Layer Overview
Catalog Layer Overview
Cybersecurity frameworks often define a set of controls intended to reduce the risk to a system. Framework authors typically organize these controls into a catalog.
The OSCAL catalog layer provides a model for expressing and organizing these controls in a standard, machine-readable format. Controls from any control-based framework can be expressed in an OSCAL catalog.
The OSCAL catalog layer contains one model.
The catalog model. The catalog model is the basis for all other OSCAL models. Controls used in any other OSCAL model must first be defined in this model. Controls may include statements (requirement definitions), parameters, references, objectives, and assessment methods. The model also enables the controls to be organized.
Profile Layer Overview
Organizations and system owners identify which controls are applicable to a system, which may include controls from more than one framework. These are often referred to as a baseline or overlay.
The OSCAL profile layer contains one model.
The profile model. A profile enables controls to be selected and tailored to express a baseline of controls. A control used in the implementation, assessment, and assessment results layers must first be imported by a profile. After importing a control, a profile may be used to tailor the control. This includes additions, changes, and removal of statements, parameters, control objective, and assessment actions.
OSCAL profiles can import controls from catalogs or other OSCAL profiles, enabling the creation of a new baseline by customizing an existing baseline. This approach provides full transparency and traceability of control tailoring from a baseline back to the original catalog's control definition. Every control imported by a profile must originate within a catalog.
Organizations already perform such selections manually. OSCAL profiles enable automation of control selection and tailoring while providing traceability.
Implementation Layer Overview
The OSCAL implementation layer focuses on the implementation of a system under a specific baseline as well as the individual components that may be incorporated into a system. A component is anything that can satisfy a control, such as a policy, process, compliance artifact (such as FIPS 140-2 validation), as well as hardware, software, and services.
The OSCAL implementation layer contains two models.
The system security plan (SSP) model enables a system owner to express the security implementation of an information system within the context of a specific baseline (OSCAL profile). SSPs expressed in a machine-readable format can be easily imported into a tool, allowing for increased automation of SSP validation and authorization. An OSCAL SSP can also be transformed from the machine-readable form to a human-readable version.
The component definition model is intended to define information about an individual component, such that its contents can be imported into an OSCAL SSP. The model enables an organization or component creator to provide a description of the component and applicable security configuration information. It can also describe how a specific configuration satisfies the controls of an identified baseline. SSP authoring tools will be able to pre-populate significant portions of an SSP by importing this content and allowing it to be tailored to reflect the actual implementation within the system.
Assessment Layer Overview
The OSCAL assessment layer focuses on assessment activities. Currently, only assessment planning is supported. The assessment layer will be expanded in OSCAL 2.0 to support the automation of assessment activities.
Under OSCAL, assessments are always expressed in the context of a specific system implementation relative to a defined set of controls. OSCAL supports both continuous assessment as well as traditional "snapshot in time" assessments.
The OSCAL assessment layer contains one model.
The assessment plan model allows assessment plan information to be described, including how and when a system assessment is intended to be performed, the scope of the assessment, and what assessment activities should be conducted.
Assessment Results Layer Overview
The OSCAL assessment results layer focuses on communicating all assessment findings including supporting evidence, as well identifying and managing the remediation of identified risks to a system identified as a result of activities in the assessment layer. This includes the ability to report all findings
The OSCAL assessment results layer contains two models.
The assessment results model, which represents information produced from a set of assessment activities, to include when the assessment was performed, the assessment scope, evidence collected during an assessment, and any assessment findings. The assessment model supports information from periodic and continuous assessments.
The plan of action and milestones (POA&M) model, which represents a set of findings for a periodic or continuous assessment that need to be addressed by the system owner/maintainers.
Status of the OSCAL Layers
The OSCAL layers described above provide a framework for organizing the OSCAL models. As the OSCAL project progresses, the features of these models are expected to evolve and expand; the layer descriptions above are included here to indicate the current status of the related models within OSCAL and may not represent the final features supported by each layer and their corresponding model(s). XML, JSON, and YAML formats for each model will be provided when the model is released.
The OSCAL models above are in various states of readiness for release:
- Future: Additional models will be published as drafts in the future.
- Early Access Draft: Indicates that the model has been newly developed and released for review and comment, but has received little to no review. Multiple revisions will likely be needed to mature the model for release.
- Draft: Identifies that the model has received some review, but not enough review to be released as a final version. A revision or two might be needed to prepare the model for release.
- Pre-Final: The model is fairly stable and has been extensively reviewed. Some small changes might occur before final release, but the impact of these changes will be small to users or tool implementers.
- Released: The model has been released. Only non-backwards compatibility breaking changes will be made in maintenance releases.
The following is the release state of each model, along with download links for the latest versions of XML and JSON schema for each model. YAML is also supported through conversion between JSON and YAML. Since YAML is a superset of JSON, some YAML tooling allows JSON schema to be used for YAML validation. In this way, the provided JSON schema supports both JSON and YAML.
|Layer||Model||Current State||Next Milestone||Formats|
|Catalog||Catalog||Pre-Final||Released (1.0.0 Final)||XML, JSON, YAML|
|Profile||Profile||Pre-Final||Released (1.0.0 Final)||XML, JSON, YAML|
|Implementation||Component Definition||Pre-Final||Released (1.0.0 Final)||XML, JSON, YAML|
|Implementation||System Security Plan||Pre-Final||Released (1.0.0 Final)||XML, JSON, YAML|
|Assessment||Assessment Plan||Pre-Final||Released (1.0.0 Final)||XML, JSON, YAML|
|Assessment Results||Assessment Results||Pre-Final||Released (1.0.0 Final)||XML, JSON, YAML|
|Assessment Results||Plan of Action and Milestones||Pre-Final||Released (1.0.0 Final)||XML, JSON, YAML|