diff --git a/features/fedramp_extensions.feature b/features/fedramp_extensions.feature index 207e75009..ecf2d4156 100644 --- a/features/fedramp_extensions.feature +++ b/features/fedramp_extensions.feature @@ -25,6 +25,10 @@ Examples: | categorization-has-correct-system-attribute-PASS.yaml | | categorization-has-information-type-id-FAIL.yaml | | categorization-has-information-type-id-PASS.yaml | + | cia-impact-has-adjustment-justification-FAIL.yaml | + | cia-impact-has-adjustment-justification-PASS.yaml | + | cia-impact-has-selected-FAIL.yaml | + | cia-impact-has-selected-PASS.yaml | | cloud-service-model-FAIL.yaml | | cloud-service-model-PASS.yaml | | component-type-FAIL.yaml | @@ -111,6 +115,8 @@ Examples: | has-separation-of-duties-matrix-PASS.yaml | | has-system-id-FAIL.yaml | | has-system-id-PASS.yaml | + | has-system-name-short-FAIL.yaml | + | has-system-name-short-PASS.yaml | | has-user-guide-FAIL.yaml | | has-user-guide-PASS.yaml | | import-profile-has-href-attribute-FAIL.yaml | @@ -183,6 +189,8 @@ Examples: | authorization-type | | categorization-has-correct-system-attribute | | categorization-has-information-type-id | + | cia-impact-has-adjustment-justification | + | cia-impact-has-selected | | cloud-service-model | | component-type | | control-implementation-status | @@ -226,6 +234,7 @@ Examples: | has-security-sensitivity-level | | has-separation-of-duties-matrix | | has-system-id | + | has-system-name-short | | has-user-guide | | import-profile-has-href-attribute | | import-profile-has-valid-content | diff --git a/src/validations/constraints/content/ssp-all-VALID.xml b/src/validations/constraints/content/ssp-all-VALID.xml index a3a299a3a..641840263 100644 --- a/src/validations/constraints/content/ssp-all-VALID.xml +++ b/src/validations/constraints/content/ssp-all-VALID.xml @@ -114,6 +114,7 @@ F00000001 Enhanced Example System + System's Short Name or Acronym

This is an enhanced example system for demonstration purposes, incorporating more FedRAMP-specific elements.

@@ -135,12 +136,22 @@ fips-199-high + fips-199-high + fips-199-moderate + fips-199-low + +

Required if the base and selected values do not match.

+
- fips-199-low + fips-199-high + fips-199-low + +

Required if the base and selected values do not match.

+
diff --git a/src/validations/constraints/content/ssp-cia-impact-has-adjustment-justification-INVALID.xml b/src/validations/constraints/content/ssp-cia-impact-has-adjustment-justification-INVALID.xml new file mode 100644 index 000000000..fc96541d3 --- /dev/null +++ b/src/validations/constraints/content/ssp-cia-impact-has-adjustment-justification-INVALID.xml @@ -0,0 +1,25 @@ + + + + + + + high + low + + + + moderate + fips-199-moderate + + + low + fips-199-low + + + + + diff --git a/src/validations/constraints/content/ssp-cia-impact-has-selected-INVALID.xml b/src/validations/constraints/content/ssp-cia-impact-has-selected-INVALID.xml new file mode 100644 index 000000000..de63c98c3 --- /dev/null +++ b/src/validations/constraints/content/ssp-cia-impact-has-selected-INVALID.xml @@ -0,0 +1,27 @@ + + + + + + + high + + + moderate + +

Required if the base and selected values do not match.

+
+
+ + low + +

Required if the base and selected values do not match.

+
+
+
+
+
+
diff --git a/src/validations/constraints/content/ssp-has-system-name-short-INVALID.xml b/src/validations/constraints/content/ssp-has-system-name-short-INVALID.xml new file mode 100644 index 000000000..f6d9f9996 --- /dev/null +++ b/src/validations/constraints/content/ssp-has-system-name-short-INVALID.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/src/validations/constraints/fedramp-external-constraints.xml b/src/validations/constraints/fedramp-external-constraints.xml index 9978d5b23..6c024946b 100644 --- a/src/validations/constraints/fedramp-external-constraints.xml +++ b/src/validations/constraints/fedramp-external-constraints.xml @@ -194,6 +194,18 @@ A FedRAMP SSP information type MUST have an availability impact. + + + A FedRAMP SSP information type confidentiality, integrity, or availability impact MUST specify the selected impact. + + + + When SP 800-60 base and selected impacts levels differ for a given information type, the SSP MUST include a justification for the difference. + + + + A FedRAMP SSP MUST have a short system name. + diff --git a/src/validations/constraints/unit-tests/cia-impact-has-adjustment-justification-FAIL.yaml b/src/validations/constraints/unit-tests/cia-impact-has-adjustment-justification-FAIL.yaml new file mode 100644 index 000000000..4e9a5eeff --- /dev/null +++ b/src/validations/constraints/unit-tests/cia-impact-has-adjustment-justification-FAIL.yaml @@ -0,0 +1,7 @@ +test-case: + name: Negative Test for cia-impact-has-adjustment-justification + description: Test that if an SSP system-characteristics system-information information-type (confidentiality-impact/integrity-impact/availability-impact) base element is not equal to the selected element, then an adjustment-justification element doesn't exist. This test shouldn't return true because the invalid test data should only include the fail case. + content: ../content/ssp-cia-impact-has-adjustment-justification-INVALID.xml + expectations: + - constraint-id: cia-impact-has-adjustment-justification + result: fail diff --git a/src/validations/constraints/unit-tests/cia-impact-has-adjustment-justification-PASS.yaml b/src/validations/constraints/unit-tests/cia-impact-has-adjustment-justification-PASS.yaml new file mode 100644 index 000000000..83c3824d6 --- /dev/null +++ b/src/validations/constraints/unit-tests/cia-impact-has-adjustment-justification-PASS.yaml @@ -0,0 +1,7 @@ +test-case: + name: Positive Test for cia-impact-has-adjustment-justification + description: Test that if an SSP system-characteristics system-information information-type (confidentiality-impact/integrity-impact/availability-impact) base element is not equal to the selected element, then an adjustment-justification element exists. If the base element equals the selected element, then it returns true. + content: ../content/ssp-all-VALID.xml + expectations: + - constraint-id: cia-impact-has-adjustment-justification + result: pass diff --git a/src/validations/constraints/unit-tests/cia-impact-has-selected-FAIL.yaml b/src/validations/constraints/unit-tests/cia-impact-has-selected-FAIL.yaml new file mode 100644 index 000000000..92f902756 --- /dev/null +++ b/src/validations/constraints/unit-tests/cia-impact-has-selected-FAIL.yaml @@ -0,0 +1,7 @@ +test-case: + name: Negative Test for cia-impact-has-selected + description: Test that an SSP system-characteristics system-information information-type (confidentiality-impact/integrity-impact/availability-impact) element does not have a selected element. + content: ../content/ssp-cia-impact-has-selected-INVALID.xml + expectations: + - constraint-id: cia-impact-has-selected + result: fail diff --git a/src/validations/constraints/unit-tests/cia-impact-has-selected-PASS.yaml b/src/validations/constraints/unit-tests/cia-impact-has-selected-PASS.yaml new file mode 100644 index 000000000..abb421c61 --- /dev/null +++ b/src/validations/constraints/unit-tests/cia-impact-has-selected-PASS.yaml @@ -0,0 +1,7 @@ +test-case: + name: Positive Test for cia-impact-has-selected + description: Test that an SSP system-characteristics system-information information-type (confidentiality-impact/integrity-impact/availability-impact) element has selected element. + content: ../content/ssp-all-VALID.xml + expectations: + - constraint-id: cia-impact-has-selected + result: pass diff --git a/src/validations/constraints/unit-tests/has-system-name-short-FAIL.yaml b/src/validations/constraints/unit-tests/has-system-name-short-FAIL.yaml new file mode 100644 index 000000000..bc038453c --- /dev/null +++ b/src/validations/constraints/unit-tests/has-system-name-short-FAIL.yaml @@ -0,0 +1,7 @@ +test-case: + name: Negative Test for has-system-name-short + description: Test that an SSP system-characteristics element does not have a system-name-short element. + content: ../content/ssp-has-system-name-short-INVALID.xml + expectations: + - constraint-id: has-system-name-short + result: fail diff --git a/src/validations/constraints/unit-tests/has-system-name-short-PASS.yaml b/src/validations/constraints/unit-tests/has-system-name-short-PASS.yaml new file mode 100644 index 000000000..ff1baa729 --- /dev/null +++ b/src/validations/constraints/unit-tests/has-system-name-short-PASS.yaml @@ -0,0 +1,7 @@ +test-case: + name: Positive Test for has-system-name-short + description: Test that an SSP system-characteristics element has a system-name-short element. + content: ../content/ssp-all-VALID.xml + expectations: + - constraint-id: has-system-name-short + result: pass