6 minute read
A System Security Plan is an OSCAL-specific model to represent a system as a whole. In Lula, the generate system-security-plan
command creates an oscal-system-security-plan
object to explain the system as a whole by using the compliance data provided by the component-definition
. The System Security Plan will detail each contributor and groups of contributors that play any part in the system’s lifecycle. It will also include every component
that make up the system with each implemented-requirement
that details the controls each tools helps to satisfy and how.
flowchart TD
catalog1["Catalog/Profile 1"] --> component1["Component Definition 1"]
catalog2["Catalog/Profile 2"] --> component2["Component Definition 2"]
catalog3["Catalog/Profile 3"] --> component3["Component Definition 3"]
component1 --> ssp["System Security Plan (SSP)"]
component2 --> ssp["System Security Plan (SSP)"]
component3 --> ssp["System Security Plan (SSP)"]
Includes all responsible parties
, parties
, and roles
that play a part in the system. Responsible parities are the collection of contributors who are responsible for the maintenance and development of the system. Parties includes any internal or external collection of contributors that contribute to the system or the lifecycle of the system. Roles are the designated positions contributors take within the system and system’s lifecycle.
Version
is the specific revision of the document. Revision
is a sequential list of revisions such as predecessor-version
, successor-version
, and version-history
. These fields track the history of the document as changes are made.
Describes the system and the systems security requirements. This includes the security-sensitivity-level
which is the overall system’s sensitivity categorization as defined by FIPS-199. The system’s overall level of expected impact resulting from unauthorized disclosure, modification, or loss of access to information through security-impact-level
children items of security-objective-confidentiality
, security-objective-integrity
, and security-objective-availability
.
The System Characteristics also outline the impacts to risk specifically based on confidentiality-impact
, integrity-impact
, and availability-impact
with the supporting data.
The system characteristics also includes the authorization-boundary
, network-architecture
, and data-flow
diagrams or links to the location of the diagrams. The authorization-boundary
diagram outlines everything within the environment and is in scope for the system’s compliance framework. The network-architecture
focuses on the network connections made within the system to include port and protocol. Lastly the data-flow
diagram shows the flow of data within the system as it moves.
The system-information
field contains all of the details about the type of data stored, processed, and transmitted by the system. The possible options are fips-199-low
, fips-199-moderate
, and fips-199-high
. Consult NIST 800-60 for help defining the system.
Contains any leveraged-authorizations
, if used, all components
used to build the system, all users
with their type and access levels listed, and inventory-items
detailing how the overall system is configured. The inventory-items
is a large collection of everything that lives within the system such as operating systems and infrastructure. In addition the responsible-parties
are listed and connected to each piece they are responsible for.
Contains all of the compliance controls the system must adhere to as outlined within the profile
. Each implemented-requirement
is listed detailing the control and the information of how the system meets the control on a by-component
instance. The component will outline all export
, inherited
, and satisfied
indications for each control the component represents.
NOTE: This command is in an active research phase.
To generate a system security plan, you need the following context:
The following command could generate a system security plan with the above context:
lula generate system-security-plan --component .src/test/unit/valid-component.yaml --catalog https://raw.githubusercontent.com/usnistgov/oscal-content/main/nist.gov/SP800-53/rev5/json/NIST_SP-800-53_rev5_HIGH-baseline-resolved-profile_catalog.json
There are optional flags that can be added to the command to generate a system security plan:
-o
or --output
; oscal-system-security-plan.yaml
The system-security-plan
can be generated using the upstream catalog and/or profile in conjunction with the component-definition
. There are net new fields that are apart of the system-security-plan
that are not within the component-definition
or catalog/profile that currently do not make sense to add as props. Those items are under the section Elements in SSP Not in Component Definition
. There are items that are not in the system-security-plan
but also not in the component-definition
that currently do make sense to create as props. Those items are under the section Elements NOT in Component Definition that need added for SSP Generate
. Lastly as a note there are items within the component-definition
that are not used in the system-security-plan
that can be found under the section Elements NOT in Component Definition that need added for SSP Generate
.
The items in Elements in SSP Not in Component Definition
need further context to fill in the missing elements as well as establish data across OSCAL models. Some examples of the data fields are within the metadata
fields such as responsible-roles
, responsible-parties
, and parties
that can be added to the system-security-plan
that do not directly map from the component-definition
field. Additional context can be added through common OSCAL fields such as props
, links
, and remarks
.
The following fields need further research to further enhance generating an SSP.
inherited
export
import-component-definitions
capabilities
uuid
name
description
props
links
incorporates-components
component-uuid
description
system-characteristics
system-ids
identifier-type
id
system-name
system-name-short
description
security-sensitivity-level
system-information
information-types
id
title
description
security-objective-confidentiality
security-objective-integrity
security-objective-availability
security-impact-level
security-objective-confidentiality
security-objective-integrity
security-objective-availability
status
state
remarks
authorized-boundary
description
props
links
diagrams
uuid
description
props
links
caption
remarks
remarks
network-architecture
description
props
links
diagrams
uuid
description
props
links
caption
remarks
remarks
data-flow
description
props
links
diagrams
uuid
description
props
links
caption
remarks
remarks
props
links
remarks
system-implementation
users
uuid
title
short-name
description
props
links
role-ids
authorized-privileges
title
description
functions-performed
remarks
leveraged-authorizations
uuid
title
props
links
party-uuid
date-authorized
remarks
inventory-items
uuid
description
props
links
remarks
control-implementation
implemented-requirements
statements
satisfied
uuid
responsibility
description
props
links
responsible-roles
role-id
props
links
party-uuid
remarks
role-ids
by-components
satisfied
uuid
responsibility
description
props
links
responsible-roles
role-id
props
links
party-uuid
remarks
role-ids
control-implementation
implemented-requirements
by-components
implementation-status
state
remarks
statements
by-components
implementation-status
state
remarks
metadata
title
published
last-modified
version
oscal-version
revisions
document-ids
props
links
roles
locations
actions
control-implementation
description
set-parameters
param-id
values
remarks
implemented-requirements
uuid
control-id
props
links
set-parameters
param-id
values
remarks
statements
statement-id
props
responsible-roles
links
by-components
by-components
component-uuid
description
props
links
set-parameters
param-id
values
remarks
system-implementation
(Contains Fields from Component Definition)components
uuid
type
title
description
purpose
props
links
status
protocols
implemented-components
component-uuid
props
links
Was this page helpful?