Any control implementation response that can not be associated with another component is associated with the component representing the system.
+
+
+
+
+
Describe how this policy component satisfies part a.
+
Component approach. This links to a component representing the Identity Management and Access Control Policy.
+
That component contains a link to the policy, so it does not have to be linked here too.
+
+
+
+ 11111111-0000-4000-9000-000000000001
+
+
+
@@ -2786,7 +2873,7 @@ SSP authors must add implmentations for all required controls.
-
+
Describe how Part a is satisfied.
@@ -2856,7 +2943,7 @@ SSP authors must add implmentations for all required controls.
11111111-2222-4000-8000-004000000011
-
+
Describe how the control is satisfied within the system.
@@ -3756,7 +3843,7 @@ SSP authors must add implmentations for all required controls.
All employees, contractors, and third-party vendors who handle sensitive information or have access to organizational media.11111111-2222-4000-8000-004000000011
-
+
Describe how the control is satisfied within the system.
@@ -3771,7 +3858,9 @@ SSP authors must add implmentations for all required controls.
11111111-0000-4000-9000-000000000001
-
+
+
+
For the portion of the control satisfied by the service provider, describe how the control is met.
@@ -3841,7 +3930,7 @@ SSP authors must add implmentations for all required controls.
All personnel with access to company facilities or systems, including employees, contractors, and third-party vendors.11111111-2222-4000-8000-004000000011
-
+
Describe how the control is satisfied within the system.
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.
+
+
+
+
\ No newline at end of file
diff --git a/src/validations/constraints/fedramp-external-allowed-values.xml b/src/validations/constraints/fedramp-external-allowed-values.xml
index 592df480c..4e2013a05 100644
--- a/src/validations/constraints/fedramp-external-allowed-values.xml
+++ b/src/validations/constraints/fedramp-external-allowed-values.xml
@@ -647,9 +647,10 @@
+
-
-
+
+ Security Impact LevelThe security objective level as defined by NIST SP 800-60.
diff --git a/src/validations/constraints/fedramp-external-constraints.xml b/src/validations/constraints/fedramp-external-constraints.xml
index af08fea6f..af1baef6b 100644
--- a/src/validations/constraints/fedramp-external-constraints.xml
+++ b/src/validations/constraints/fedramp-external-constraints.xml
@@ -1,6 +1,6 @@
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
@@ -66,7 +66,7 @@
-
+ Statements implimented in SSPThis index includes all statements defined in a FedRAMP SSP
@@ -92,12 +92,12 @@
A FedRAMP SSP MUST have each component describing leveraged systems, interconnections, or authorized services identify a "provider" role that references one responsible party.
-
+ Additional Controls Implemented Not in Baseline
- A FedRAMP SSP MUST NOT include extraneous controls outside of the FedRAMP baseline.
+ A FedRAMP SSP SHOULD NOT include extraneous controls outside of the FedRAMP baseline.
- A FedRAMP SSP MUST NOT include extraneous controls outside of the FedRAMP baseline. Extraneous control: ({@control-id}).
+ A FedRAMP SSP SHOULD NOT include extraneous controls outside of the FedRAMP baseline. Extraneous control: ({@control-id}).
@@ -151,7 +151,7 @@
Leveraged Authorization Has Valid Impact Level
- A FedRAMP SSP MUST define the appropriate FIPS-199 impact level (low, moderate, or high) for each leveraged authorization.
+ The FIPS-199 impact level of the leveraged system MUST be the same or higher than the impact level of this system.Non-Provider Responsible Role References User
@@ -571,10 +571,21 @@
+
+
+
+
+ End of Life Date Type
+
+ When the end-of-life-date property is present, it MUST be in date format.
+
+
+
+
-
+ Authentication Method Has Remarks
@@ -592,7 +603,7 @@
Container Image Has Checksum Property
-
+ In a FedRAMP SSP, a component that describes a container or operating system image MUST define a checksum property.
@@ -600,11 +611,21 @@
In a FedRAMP SSP, each information type property in a component MUST categorize the class of data flow as incoming to the system, outgoing from the system, or both.
+
+ Inter-Boundary Component Has Information Type
+
+ An inter-boundary communication component {@uuid} ({path(.)}) MUST have at least one information-type property.
+ Inventory Item and Component Has PublicIn a FedRAMP SSP, each inventory item and internal service component MUST state if they are public-facing.
+
+ Inventory Item or Component Has Asset ID
+
+ In a FedRAMP SSP, each inventory item and software image component MUST include the asset ID.
+ Leveraged Authorization Has Authorization Type
@@ -648,21 +669,35 @@
-
-
-
-
- Inventory Item or Component Has Asset ID
-
- In a FedRAMP SSP, each inventory item and software image component MUST include the asset ID.
-
-
-
+
+
+
+
+
+ Authenticated Scan No Has Remarks
+
+ A FedRAMP SSP MUST provide justification for any high or moderate impact system inventory item that does not support authenticated scans.
+
+
+ High Impact Inventory Item Has Asset Owner
+
+ For HIGH-impact systems, every inventory-item MUST identify an asset-owner or administrator property either within the inventory-item itself, or within the component linked by the inventory-item.
+
+
+ Inventory Item Has Function
+
+ Every inventory-item MUST provide remarks to describe the function of the item, either within the inventory-item itself, or within the component linked by the inventory-item.
+
+
+ Inventory Item Has Scan Type
+
+ Every inventory-item MUST indicate one or more scan type(s), either within the inventory-item itself, or within the component linked by the inventory-item.
+ Inventory Item Has Valid Mac Address
@@ -673,6 +708,11 @@
In a FedRAMP SSP, each inventory item MUST include the vendor name in the inventory item itself or within the linked component.
+
+ Scan Type Has Remarks
+
+ When scan-type is 'other' or 'not-applicable', remarks MUST be provided to explain the selection.
+
@@ -756,6 +796,7 @@
'sc-1_smt.a' : 'at least one procedure that addresses System and Communications Protection MUST be associated with SC-1 part a.',
'si-1_smt.a' : 'at least one procedure that addresses System and Information Integrity MUST be associated with SI-1 part a.',
'sr-1_smt.a' : 'at least one procedure that addresses Supply Chain Risk Management MUST be associated with SR-1 part a.'}"/>
+ Has Policy
@@ -766,6 +807,11 @@
In a FedRAMP SSP, {$procedure-messages(./@statement-id)}
+
+ Statement Has This System Component
+
+ In a FedRAMP SSP, each control implementation statement MUST have one "this-system" by-component.
+
@@ -785,17 +831,6 @@
-
-
-
-
-
- Statement Has This System Component
-
- In a FedRAMP SSP, each control implementation statement MUST have one "this-system" by-component.
-
-
-
diff --git a/src/validations/constraints/unit-tests/authenticated-scan-no-has-remarks-FAIL.yaml b/src/validations/constraints/unit-tests/authenticated-scan-no-has-remarks-FAIL.yaml
new file mode 100644
index 000000000..823a3d4ca
--- /dev/null
+++ b/src/validations/constraints/unit-tests/authenticated-scan-no-has-remarks-FAIL.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Negative Test for authenticated-scan-no-has-remarks
+ description: >-
+ This test case validates the behavior of constraint
+ authenticated-scan-no-has-remarks
+ content: ../content/ssp-authenticated-scan-no-has-remarks-INVALID.xml
+ expectations:
+ - constraint-id: authenticated-scan-no-has-remarks
+ result: fail
diff --git a/src/validations/constraints/unit-tests/authenticated-scan-no-has-remarks-PASS.yaml b/src/validations/constraints/unit-tests/authenticated-scan-no-has-remarks-PASS.yaml
new file mode 100644
index 000000000..4b917d3c5
--- /dev/null
+++ b/src/validations/constraints/unit-tests/authenticated-scan-no-has-remarks-PASS.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Positive Test for authenticated-scan-no-has-remarks
+ description: >-
+ This test case validates the behavior of constraint
+ authenticated-scan-no-has-remarks
+ content: ../../../content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml
+ expectations:
+ - constraint-id: authenticated-scan-no-has-remarks
+ result: pass
diff --git a/src/validations/constraints/unit-tests/end-of-life-date-type-FAIL.yaml b/src/validations/constraints/unit-tests/end-of-life-date-type-FAIL.yaml
new file mode 100644
index 000000000..b4a27cea8
--- /dev/null
+++ b/src/validations/constraints/unit-tests/end-of-life-date-type-FAIL.yaml
@@ -0,0 +1,7 @@
+test-case:
+ name: Negative Test for end-of-life-date-type
+ description: This test case validates the behavior of constraint end-of-life-date-type
+ content: ../content/ssp-end-of-life-date-type-INVALID.xml
+ expectations:
+ - constraint-id: end-of-life-date-type
+ result: fail
diff --git a/src/validations/constraints/unit-tests/end-of-life-date-type-PASS.yaml b/src/validations/constraints/unit-tests/end-of-life-date-type-PASS.yaml
new file mode 100644
index 000000000..98d522661
--- /dev/null
+++ b/src/validations/constraints/unit-tests/end-of-life-date-type-PASS.yaml
@@ -0,0 +1,7 @@
+test-case:
+ name: Positive Test for end-of-life-date-type
+ description: This test case validates the behavior of constraint end-of-life-date-type
+ content: ../../../content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml
+ expectations:
+ - constraint-id: end-of-life-date-type
+ result: pass
diff --git a/src/validations/constraints/unit-tests/has-required-response-points-PASS.yaml b/src/validations/constraints/unit-tests/has-required-response-points-PASS.yaml
index 719e673d1..0f80b159d 100644
--- a/src/validations/constraints/unit-tests/has-required-response-points-PASS.yaml
+++ b/src/validations/constraints/unit-tests/has-required-response-points-PASS.yaml
@@ -3,7 +3,9 @@ test-case:
description: >-
This test case validates the behavior of constraint
has-required-response-points
- content: ../../../content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml
+ content:
+ - ../../../content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml
+ - ../content/ssp-has-required-response-points-VALID.xml
expectations:
- constraint-id: has-required-response-points
result: pass
diff --git a/src/validations/constraints/unit-tests/high-impact-inventory-item-has-asset-owner-FAIL.yaml b/src/validations/constraints/unit-tests/high-impact-inventory-item-has-asset-owner-FAIL.yaml
new file mode 100644
index 000000000..8fb2b3e03
--- /dev/null
+++ b/src/validations/constraints/unit-tests/high-impact-inventory-item-has-asset-owner-FAIL.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Negative Test for high-impact-inventory-item-has-asset-owner
+ description: >-
+ This test case validates the behavior of constraint
+ high-impact-inventory-item-has-asset-owner
+ content: ../content/ssp-high-impact-inventory-item-has-asset-owner-INVALID.xml
+ expectations:
+ - constraint-id: high-impact-inventory-item-has-asset-owner
+ result: fail
diff --git a/src/validations/constraints/unit-tests/high-impact-inventory-item-has-asset-owner-PASS.yaml b/src/validations/constraints/unit-tests/high-impact-inventory-item-has-asset-owner-PASS.yaml
new file mode 100644
index 000000000..773f381ab
--- /dev/null
+++ b/src/validations/constraints/unit-tests/high-impact-inventory-item-has-asset-owner-PASS.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Positive Test for high-impact-inventory-item-has-asset-owner
+ description: >-
+ This test case validates the behavior of constraint
+ high-impact-inventory-item-has-asset-owner
+ content: ../../../content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml
+ expectations:
+ - constraint-id: high-impact-inventory-item-has-asset-owner
+ result: pass
diff --git a/src/validations/constraints/unit-tests/inter-boundary-component-has-information-type-FAIL.yaml b/src/validations/constraints/unit-tests/inter-boundary-component-has-information-type-FAIL.yaml
new file mode 100644
index 000000000..e148e6f8d
--- /dev/null
+++ b/src/validations/constraints/unit-tests/inter-boundary-component-has-information-type-FAIL.yaml
@@ -0,0 +1,8 @@
+# Driver for the invalid inter-boundary-component-has-information-type constraint unit test.
+test-case:
+ name: The invalid inter-boundary-component-has-information-type constraint unit test.
+ description: Test that the FedRAMP SSP inter-boundary communication component does not have the "information-type" property.
+ content: ../content/ssp-inter-boundary-component-has-information-type-INVALID.xml
+ expectations:
+ - constraint-id: inter-boundary-component-has-information-type
+ result: fail
\ No newline at end of file
diff --git a/src/validations/constraints/unit-tests/inter-boundary-component-has-information-type-PASS.yaml b/src/validations/constraints/unit-tests/inter-boundary-component-has-information-type-PASS.yaml
new file mode 100644
index 000000000..6bb761964
--- /dev/null
+++ b/src/validations/constraints/unit-tests/inter-boundary-component-has-information-type-PASS.yaml
@@ -0,0 +1,8 @@
+# Driver for the valid inter-boundary-component-has-information-type constraint unit test.
+test-case:
+ name: The valid inter-boundary-component-has-information-type constraint unit test.
+ description: Test that the FedRAMP SSP inter-boundary communication component has at least one "information-type" property.
+ content: ../../../content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml
+ expectations:
+ - constraint-id: inter-boundary-component-has-information-type
+ result: pass
\ No newline at end of file
diff --git a/src/validations/constraints/unit-tests/inventory-item-has-function-FAIL.yaml b/src/validations/constraints/unit-tests/inventory-item-has-function-FAIL.yaml
new file mode 100644
index 000000000..f29ed1250
--- /dev/null
+++ b/src/validations/constraints/unit-tests/inventory-item-has-function-FAIL.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Negative Test for inventory-item-has-function
+ description: >-
+ This test case validates the behavior of constraint
+ inventory-item-has-function
+ content: ../content/ssp-inventory-item-has-function-INVALID.xml
+ expectations:
+ - constraint-id: inventory-item-has-function
+ result: fail
diff --git a/src/validations/constraints/unit-tests/inventory-item-has-function-PASS.yaml b/src/validations/constraints/unit-tests/inventory-item-has-function-PASS.yaml
new file mode 100644
index 000000000..50d8c2bc0
--- /dev/null
+++ b/src/validations/constraints/unit-tests/inventory-item-has-function-PASS.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Positive Test for inventory-item-has-function
+ description: >-
+ This test case validates the behavior of constraint
+ inventory-item-has-function
+ content: ../../../content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml
+ expectations:
+ - constraint-id: inventory-item-has-function
+ result: pass
diff --git a/src/validations/constraints/unit-tests/inventory-item-has-scan-type-FAIL.yaml b/src/validations/constraints/unit-tests/inventory-item-has-scan-type-FAIL.yaml
new file mode 100644
index 000000000..ee3da2f1e
--- /dev/null
+++ b/src/validations/constraints/unit-tests/inventory-item-has-scan-type-FAIL.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Negative Test for inventory-item-has-scan-type
+ description: >-
+ This test case validates the behavior of constraint
+ inventory-item-has-scan-type
+ content: ../content/ssp-inventory-item-has-scan-type-INVALID.xml
+ expectations:
+ - constraint-id: inventory-item-has-scan-type
+ result: fail
diff --git a/src/validations/constraints/unit-tests/inventory-item-has-scan-type-PASS.yaml b/src/validations/constraints/unit-tests/inventory-item-has-scan-type-PASS.yaml
new file mode 100644
index 000000000..c6a340d53
--- /dev/null
+++ b/src/validations/constraints/unit-tests/inventory-item-has-scan-type-PASS.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Positive Test for inventory-item-has-scan-type
+ description: >-
+ This test case validates the behavior of constraint
+ inventory-item-has-scan-type
+ content: ../../../content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml
+ expectations:
+ - constraint-id: inventory-item-has-scan-type
+ result: pass
diff --git a/src/validations/constraints/unit-tests/scan-type-has-remarks-FAIL.yaml b/src/validations/constraints/unit-tests/scan-type-has-remarks-FAIL.yaml
new file mode 100644
index 000000000..3b267403c
--- /dev/null
+++ b/src/validations/constraints/unit-tests/scan-type-has-remarks-FAIL.yaml
@@ -0,0 +1,7 @@
+test-case:
+ name: Negative Test for scan-type-has-remarks
+ description: This test case validates the behavior of constraint scan-type-has-remarks
+ content: ../content/ssp-scan-type-has-remarks-INVALID.xml
+ expectations:
+ - constraint-id: scan-type-has-remarks
+ result: fail
diff --git a/src/validations/constraints/unit-tests/scan-type-has-remarks-PASS.yaml b/src/validations/constraints/unit-tests/scan-type-has-remarks-PASS.yaml
new file mode 100644
index 000000000..e1889714b
--- /dev/null
+++ b/src/validations/constraints/unit-tests/scan-type-has-remarks-PASS.yaml
@@ -0,0 +1,7 @@
+test-case:
+ name: Positive Test for scan-type-has-remarks
+ description: This test case validates the behavior of constraint scan-type-has-remarks
+ content: ../../../content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml
+ expectations:
+ - constraint-id: scan-type-has-remarks
+ result: pass