Skip to content

Commit

Permalink
Squashed commit of the following:
Browse files Browse the repository at this point in the history
commit 8c1a343
Author: Gabeblis <gabriel.rodriguez@gsa.gov>
Date:   Thu Jan 9 11:45:37 2025 -0500

    Add new metapath target to 'security-level' constraint (#1079)

commit 608080d
Author: wandmagic <156969148+wandmagic@users.noreply.github.com>
Date:   Thu Jan 9 09:29:17 2025 -0500

    add additional sample content (#1081)

commit 1f55a73
Author: Gabeblis <gabriel.rodriguez@gsa.gov>
Date:   Thu Jan 9 09:22:28 2025 -0500

    Correct constraint message. (#1085)

commit 18a02c9
Author: wandmagic <156969148+wandmagic@users.noreply.github.com>
Date:   Wed Jan 8 09:37:15 2025 -0500

    Hotfix styles (#1076)

    * style guide hotfix

    * Update fedramp-external-constraints.xml

commit 60b3c50
Author: DimitriZhurkin <dimitri.zhurkin@noblis.org>
Date:   Wed Jan 8 07:14:14 2025 -0700

    Add the inter-boundary-component-has-information-type constraint (#1066)

    * Add the inter-boundary-component-has-information-type constraint

    * clean up ssp-inter-boundary-component-has-information-type-INVALID.xml

commit d7b0623
Author: wandmagic <156969148+wandmagic@users.noreply.github.com>
Date:   Tue Jan 7 14:47:44 2025 -0500

    fix constraints (#1070)

commit fc50a42
Author: wandmagic <156969148+wandmagic@users.noreply.github.com>
Date:   Fri Jan 3 14:21:47 2025 -0500

    hotfix develop (#1064)
  • Loading branch information
wandmagic committed Jan 9, 2025
1 parent 0defc68 commit 372a8f3
Show file tree
Hide file tree
Showing 7 changed files with 209 additions and 12 deletions.
48 changes: 41 additions & 7 deletions src/content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2577,8 +2577,9 @@ SSP authors must add implmentations for all required controls.
<value>at least every 3 years</value>
</set-parameter><set-parameter param-id="ac-01_odp.07">
<value>at least annually</value>
</set-parameter><statement statement-id="ac-1_smt.a.1" uuid="11111111-2222-4000-8000-013000000001">
<by-component component-uuid="11111111-2222-4000-8000-009000000000" uuid="11111111-2222-4000-8000-014000000001">
</set-parameter>
<statement statement-id="ac-1_smt" uuid="11111117-2222-4000-8000-013000000001">
<by-component component-uuid="11111111-2222-4000-8000-009000000000" uuid="11111111-2222-4000-8000-014000000001">
<description>
<p>Describe how Part a is satisfied within the system.</p>
<p>Legacy approach. If no policy component is defined, describe here how the policy satisfies part a.</p>
Expand Down Expand Up @@ -2608,6 +2609,37 @@ SSP authors must add implmentations for all required controls.
</responsible-role>
</by-component>
</statement>
<statement statement-id="ac-1_smt.a.1" uuid="11111111-2222-4000-8000-013000000001">
<by-component component-uuid="11111111-2222-4000-8000-009000000000" uuid="11111111-2222-4000-8880-014000000001">
<description>
<p>Describe how Part a is satisfied within the system.</p>
<p>Legacy approach. If no policy component is defined, describe here how the policy satisfies part a.</p>
<p>In this case, a link must be provided to the policy.</p>
<p>FedRAMP prefers all policies and procedures be attached as a resource in the back-matter. The link points to a resource.</p>
</description>
<link href="#11111111-2222-4000-8000-001000000005" rel="policy"/>
<link href="#11111111-2222-4000-8000-001000000023" rel="procedure"/>
<implementation-status state="operational"/>
<responsible-role role-id="system-admin">
<party-uuid>11111111-0000-4000-9000-000000000001</party-uuid>
</responsible-role>
<remarks>
<p>The specified component is the system itself.</p>
<p>Any control implementation response that can not be associated with another component is associated with the component representing the system.</p>
</remarks>
</by-component>
<by-component component-uuid="11111111-2222-4000-8000-009000000012" uuid="11111111-2222-4000-8000-014000000012">
<description>
<p>Describe how this policy component satisfies part a.</p>
<p>Component approach. This links to a component representing the Identity Management and Access Control Policy.</p>
<p>That component contains a link to the policy, so it does not have to be linked here too.</p>
</description>
<implementation-status state="operational"/>
<responsible-role role-id="system-admin">
<party-uuid>11111111-0000-4000-9000-000000000001</party-uuid>
</responsible-role>
</by-component>
</statement>
<statement statement-id="ac-1_smt.a.2" uuid="11111111-2222-4000-8000-013000000002">
<by-component component-uuid="11111111-2222-4000-8000-009000000000" uuid="11111111-2222-4000-8000-014000000003">
<description>
Expand Down Expand Up @@ -2841,7 +2873,7 @@ SSP authors must add implmentations for all required controls.
</responsible-role>
</by-component>
</statement><statement statement-id="at-1_smt.a" uuid="11111111-2222-4000-8000-013000000008">
<by-component component-uuid="11111111-2222-4000-8000-009000000000" uuid="11111111-2222-4000-8000-014000000012">
<by-component component-uuid="11111111-2222-4000-8000-009000000000" uuid="11111111-2222-4000-8000-014000000017">
<description>
<p>Describe how Part a is satisfied.</p>
</description>
Expand Down Expand Up @@ -2911,7 +2943,7 @@ SSP authors must add implmentations for all required controls.
</set-parameter><responsible-role role-id="information-system-security-officer">
<party-uuid>11111111-2222-4000-8000-004000000011</party-uuid>
</responsible-role><statement statement-id="au-1_smt" uuid="11111111-2222-4000-8000-013000000011">
<by-component component-uuid="11111111-2222-4000-8000-009000000000" uuid="11111111-2222-4000-8000-014000000017">
<by-component component-uuid="11111111-2222-4000-8000-009000000000" uuid="11111111-2222-4000-8800-004000000017">
<description>
<p>Describe how the control is satisfied within the system.</p>
</description>
Expand Down Expand Up @@ -3811,7 +3843,7 @@ SSP authors must add implmentations for all required controls.
<value>All employees, contractors, and third-party vendors who handle sensitive information or have access to organizational media.</value>
</set-parameter><responsible-role role-id="information-system-security-officer">
<party-uuid>11111111-2222-4000-8000-004000000011</party-uuid>
</responsible-role><statement statement-id="_smt" uuid="11111111-2222-4000-8000-013000000039">
</responsible-role><statement statement-id="mp-1_smt" uuid="11111111-2222-4000-8000-013000000039">
<by-component component-uuid="11111111-2222-4000-8000-009000000000" uuid="11111111-2222-4000-8000-014000000059">
<description>
<p>Describe how the control is satisfied within the system.</p>
Expand All @@ -3826,7 +3858,9 @@ SSP authors must add implmentations for all required controls.
<party-uuid>11111111-0000-4000-9000-000000000001</party-uuid>
</responsible-role>
</by-component>
</statement><statement statement-id="mp-1_smt.a" uuid="11111111-2222-4000-8000-013000000040">
</statement>

<statement statement-id="mp-1_smt.a" uuid="11111111-2222-4000-8000-013000000040">
<by-component component-uuid="11111111-2222-4000-8000-009000000000" uuid="11111111-2222-4000-8000-014000000060">
<description>
<p>For the portion of the control satisfied by the service provider, describe <strong>how</strong> the control is met.</p>
Expand Down Expand Up @@ -3896,7 +3930,7 @@ SSP authors must add implmentations for all required controls.
<value>All personnel with access to company facilities or systems, including employees, contractors, and third-party vendors.</value>
</set-parameter><responsible-role role-id="information-system-security-officer">
<party-uuid>11111111-2222-4000-8000-004000000011</party-uuid>
</responsible-role><statement statement-id="_smt" uuid="11111111-2222-4000-8000-013000000043">
</responsible-role><statement statement-id="pe-1_smt" uuid="11111111-2222-4000-8000-013000000043">
<by-component component-uuid="11111111-2222-4000-8000-009000000000" uuid="11111111-2222-4000-8000-014000000065">
<description>
<p>Describe how the control is satisfied within the system.</p>
Expand Down
33 changes: 33 additions & 0 deletions src/validations/constraints/content/resolved-example-profile.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<catalog xmlns="http://csrc.nist.gov/ns/oscal/1.0" uuid="2a1553a7-2ae5-4669-a260-7c6fe6215170">
<metadata>
<title>Sample</title>
<last-modified>2025-01-08T00:00:00Z</last-modified>
<version>1.0</version>
<oscal-version>1.1.3</oscal-version>
</metadata>
<control id="sample-1">
<title>Sample 1</title>
<part name="statement" id="sample-1_smt">
<part name="item" id="sample-1_smt.a">
<prop ns="https://fedramp.gov/ns/oscal" name="response-point" value="You must fill in this response point." />
<p>Should be INCLUDED (sample-1_smt.a)</p>
<part name="item" id="sample-1_smt.a.1">
<prop ns="https://fedramp.gov/ns/oscal" name="response-point" value="You must fill in this response point." />
<p>Should be INCLUDED (sample-1_smt.a.1)</p>
</part>
</part>
</part>

<part id="sample-1_obj" name="assessment-objective">
<part id="sample-1_obj.a" name="assessment-objective">
<prop ns="https://fedramp.gov/ns/oscal" name="response-point" value="You must fill in this response point."/>
<p>this should be EXCLUDED (sample-1_obj.a)</p>
<part id="sample-1_obj.a-1" name="assessment-objective">
<prop ns="https://fedramp.gov/ns/oscal" name="response-point" value="You must fill in this response point."/>
<p>this should be EXCLUDED (sample-1_obj.a-1)</p>
</part>
</part>
</part>
</control>
</catalog>
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="https://raw.githubusercontent.com/usnistgov/OSCAL/v1.0.4/xml/schema/oscal_complete_schema.xsd" schematypens="http://www.w3.org/2001/XMLSchema" title="OSCAL complete schema"?>
<system-security-plan xmlns="http://csrc.nist.gov/ns/oscal/1.0" uuid="11111111-2222-4000-8000-000000000000">
<metadata></metadata>
<import-profile href="resolved-example-profile.xml"/>
<control-implementation>
<description></description>
<implemented-requirement uuid="11111111-2222-4000-8000-012000000001" control-id="unsupported-id">
<prop name="control-origination" ns="http://fedramp.gov/ns/oscal" value="sp-system"/>
<link href="#11111111-2222-4000-8000-001000000005" rel="policy"/>
<link href="#11111111-2222-4000-8000-001000000023" rel="procedure"/>
<set-parameter param-id="ac-1_prm_1">
<value>organization-defined personnel or roles</value>
</set-parameter>
<set-parameter param-id="mp-2_prm_2">
<value>Chief Information Security Officer, Information System Security Officers, and System Administrators</value>
</set-parameter>
<statement statement-id="sample-1_smt" uuid="11111111-2222-4000-8000-013000000008">
<by-component component-uuid="11111111-2222-4000-8000-009000000000" uuid="11111111-2222-4000-8000-014000000003">
<description>
<p>There</p>
</description>
<prop name="planned-completion-date" ns="http://fedramp.gov/ns/oscal" value="2024-01-31Z"/>
<implementation-status state="partial">
<remarks>
<p>Describe the plan to complete the implementation.</p>
</remarks>
</implementation-status>
</by-component>
<by-component component-uuid="11111111-2222-4000-8000-009000000013" uuid="11111111-2222-4000-8000-014000000004">
<description>
<p>Describe how this policy currently satisfies part a.</p>
</description>
<prop name="planned-completion-date" ns="http://fedramp.gov/ns/oscal" value="2024-01-31Z">
<remarks>
<p>Describe the plan for addressing the missing policy elements.</p>
</remarks>
</prop>
<implementation-status state="partial">
<remarks>
<p>Identify what is currently missing from this policy.</p>
</remarks>
</implementation-status>
</by-component>
</statement>
<statement statement-id="ac-1_smt.a.1" uuid="11111111-2222-4000-8000-013000000001">
<by-component component-uuid="11111111-2222-4000-8000-009000000000" uuid="11111111-2222-4000-8000-014000000001">
<description>
<p>Describe how Part a is satisfied within the system.</p>
<p>Legacy approach. If no policy component is defined, describe here how the policy satisfies part a.</p>
<p>In this case, a link must be provided to the policy.</p>
<p>FedRAMP prefers all policies and procedures be attached as a resource in the back-matter. The link points to a resource.</p>
</description>
<link href="#11111111-2222-4000-8000-001000000005" rel="policy"/>
<link href="#11111111-2222-4000-8000-001000000023" rel="procedure"/>
<implementation-status state="operational"/>
<remarks>
<p>The specified component is the system itself.</p>
<p>Any control implementation response that can not be associated with another component is associated with the component representing the system.</p>
</remarks>
</by-component>
<by-component component-uuid="11111111-2222-4000-8000-009000000012" uuid="11111111-2222-4000-8000-014000000002">
<description>
<p>Describe how this policy component satisfies part a.</p>
<p>Component approach. This links to a component representing the Identity Management and Access Control Policy.</p>
<p>That component contains a link to the policy, so it does not have to be linked here too.</p>
</description>
<implementation-status state="operational"/>
</by-component>
</statement>
<statement statement-id="sample-1_smt.a" uuid="11111111-2222-4000-8000-013000000002">
<by-component component-uuid="11111111-2222-4000-8000-009000000000" uuid="11111111-2222-4000-8000-014000000003">
<description>
<p>There</p>
</description>
<prop name="planned-completion-date" ns="http://fedramp.gov/ns/oscal" value="2024-01-31Z"/>
<implementation-status state="partial">
<remarks>
<p>Describe the plan to complete the implementation.</p>
</remarks>
</implementation-status>
</by-component>
<by-component component-uuid="11111111-2222-4000-8000-009000000013" uuid="11111111-2222-4000-8000-014000000004">
<description>
<p>Describe how this policy currently satisfies part a.</p>
</description>
<prop name="planned-completion-date" ns="http://fedramp.gov/ns/oscal" value="2024-01-31Z">
<remarks>
<p>Describe the plan for addressing the missing policy elements.</p>
</remarks>
</prop>
<implementation-status state="partial">
<remarks>
<p>Identify what is currently missing from this policy.</p>
</remarks>
</implementation-status>
</by-component>
</statement>

<statement statement-id="sample-1_smt.a.1" uuid="11111111-2222-4000-8000-013000000003">
<by-component component-uuid="11111111-2222-4000-8000-009000000000" uuid="11111111-2222-4000-8000-014000000005">
<description>
<p>Describe how Part b-1 is satisfied.</p>
</description>
<implementation-status state="operational"/>
</by-component>
</statement>
<statement statement-id="ac-1_smt.b.2" uuid="11111111-2222-4000-8000-013000000004">
<by-component component-uuid="11111111-2222-4000-8000-009000000000" uuid="11111111-2222-4000-8000-014000000006">
<description>
<p>Describe how Part b-2 is satisfied.</p>
</description>
<implementation-status state="operational"/>
</by-component>
</statement>
</implemented-requirement>
</control-implementation>
</system-security-plan>
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,13 @@
<security-objective-availability>INVALID-fips-199-moderate</security-objective-availability>
</security-impact-level>
</system-characteristics>
<system-implementation>
<leveraged-authorization uuid="11111111-2222-4000-8000-019000000001">
<prop ns="http://fedramp.gov/ns/oscal" name="impact-level" value="INVALID-fips-199-moderate">
<remarks>
<p>For now, this is a required field. In the future we intend to pull this information directly from FedRAMP's records based on the "leveraged-system-identifier" property's value.</p>
</remarks>
</prop>
</leveraged-authorization>
</system-implementation>
</system-security-plan>
Original file line number Diff line number Diff line change
Expand Up @@ -647,9 +647,10 @@
<metapath target="/system-security-plan/system-characteristics/security-sensitivity-level"/>
<metapath target="/system-security-plan/system-characteristics/security-impact-level/(security-objective-confidentiality|security-objective-integrity|security-objective-availability)"/>
<metapath target="/system-security-plan/system-characteristics/system-information/information-type/(confidentiality-impact|integrity-impact|availability-impact)/(base|selected)"/>
<metapath target="/system-security-plan/system-implementation/leveraged-authorization"/>
<constraints>

<allowed-values id="security-level" target="." allow-other="no" level="ERROR">
<let var="security-level-target" expression="if (prop[@name='impact-level' and @ns='http://fedramp.gov/ns/oscal']) then prop[@name='impact-level' and @ns='http://fedramp.gov/ns/oscal']/@value else ."/>
<allowed-values id="security-level" target="$security-level-target" allow-other="no" level="ERROR">
<formal-name>Security Impact Level</formal-name>
<description>The security objective level as defined by <a href="https://doi.org/10.6028/NIST.SP.800-60v1r1">NIST SP 800-60</a>.
</description>
Expand Down
Loading

0 comments on commit 372a8f3

Please sign in to comment.