From 182bff086ad8aa3895179ef30c41c1adfc47e715 Mon Sep 17 00:00:00 2001 From: wandmagic <156969148+wandmagic@users.noreply.github.com> Date: Mon, 16 Sep 2024 10:32:03 -0400 Subject: [PATCH] introduce missing-response-components constraint (#688) * introduce missing-response-components constraint * Add review feedback from AJ before merge --------- Co-authored-by: A.J. Stein --- features/fedramp_extensions.feature | 3 + .../ssp-missing-by-component-INVALID.xml | 190 ++++++++++++++++++ .../fedramp-external-constraints.xml | 8 + .../missing-response-components-FAIL.yaml | 9 + .../missing-response-components-PASS.yaml | 9 + 5 files changed, 219 insertions(+) create mode 100644 src/validations/constraints/content/ssp-missing-by-component-INVALID.xml create mode 100644 src/validations/constraints/unit-tests/missing-response-components-FAIL.yaml create mode 100644 src/validations/constraints/unit-tests/missing-response-components-PASS.yaml diff --git a/features/fedramp_extensions.feature b/features/fedramp_extensions.feature index f57a5a9a8..ee8fd1e33 100644 --- a/features/fedramp_extensions.feature +++ b/features/fedramp_extensions.feature @@ -57,6 +57,8 @@ Examples: | interconnection-direction-PASS.yaml | | interconnection-security-FAIL.yaml | | interconnection-security-PASS.yaml | + | missing-response-components-FAIL.yaml | + | missing-response-components-PASS.yaml | | privilege-level-FAIL.yaml | | privilege-level-PASS.yaml | | resource-has-base64-or-rlink-FAIL.yaml | @@ -107,6 +109,7 @@ Examples: | information-type-system | | interconnection-direction | | interconnection-security | + | missing-response-components | | privilege-level | | prop-response-point-has-cardinality-one | | resource-has-base64-or-rlink | diff --git a/src/validations/constraints/content/ssp-missing-by-component-INVALID.xml b/src/validations/constraints/content/ssp-missing-by-component-INVALID.xml new file mode 100644 index 000000000..ceeee823a --- /dev/null +++ b/src/validations/constraints/content/ssp-missing-by-component-INVALID.xml @@ -0,0 +1,190 @@ + + + + Enhanced Example System Security Plan + 2024-08-01T14:30:00Z + 2024-08-01T14:30:00Z + 1.1 + 1.0.0 + SSP-2024-002 + + + Document Creator + + + Content Approver + + + System Administrator + + + Asset Owner + + +
+ WRONG +
+ +
+ + Example Organization + ExOrg + +
+ + + Jane Doe + jane.doe@example.com +
+ + + + 11111111-0000-4000-9000-000000000001 + + + 22222222-0000-4000-9000-000000000002 + + + +

This SSP is an example for demonstration purposes.

+
+ + + + + + F00000001 + Enhanced Example System + +

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

+
+ + + + moderate + + + Financial Information + +

Contains sensitive financial data related to organizational operations.

+
+ + C.2.8.12 + + + high + + + moderate + + + low + +
+
+ + + moderate + moderate + moderate + + + + + + +

The authorization boundary includes all components within the main data center and the disaster recovery site.

+
+
+
+ + + + System Administrator + + + system-admin + + + + Primary Application Server + +

Main application server hosting the core system functionality.

+
+ main line + + + 11111111-0000-4000-9000-000000000001 + + +

This is the primary application server for the system.

+
+
+ + + External API Connection + +

Secure connection to an external API for data enrichment.

+
+ + + + + 11111111-0000-4000-9000-000000000001 + + +

This connection is used for secure data exchange with external systems.

+
+
+ + + +

Primary database server

+
+ + + + + + + + 11111111-0000-4000-9000-000000000001 + + + + +
+
+ + + +

Implementation of controls for the Enhanced Example System

+
+ + + + + + + + + + + + +
+ + + + + +

Detailed access control policy document

+
+ + +
+
+ diff --git a/src/validations/constraints/fedramp-external-constraints.xml b/src/validations/constraints/fedramp-external-constraints.xml index 83cff7a40..2680bc36c 100644 --- a/src/validations/constraints/fedramp-external-constraints.xml +++ b/src/validations/constraints/fedramp-external-constraints.xml @@ -75,4 +75,12 @@ + + + + + Each implemented requirement must have at least one by-component reference to the source component implementing it. + + + diff --git a/src/validations/constraints/unit-tests/missing-response-components-FAIL.yaml b/src/validations/constraints/unit-tests/missing-response-components-FAIL.yaml new file mode 100644 index 000000000..d62eb0608 --- /dev/null +++ b/src/validations/constraints/unit-tests/missing-response-components-FAIL.yaml @@ -0,0 +1,9 @@ +test-case: + name: Negative Test for missing-response-components + description: >- + This test case validates the behavior of constraint + missing-response-components + content: ../content/ssp-missing-by-component-INVALID.xml + expectations: + - constraint-id: missing-response-components + result: fail diff --git a/src/validations/constraints/unit-tests/missing-response-components-PASS.yaml b/src/validations/constraints/unit-tests/missing-response-components-PASS.yaml new file mode 100644 index 000000000..b070ded70 --- /dev/null +++ b/src/validations/constraints/unit-tests/missing-response-components-PASS.yaml @@ -0,0 +1,9 @@ +test-case: + name: Positive Test for missing-response-components + description: >- + This test case validates the behavior of constraint + missing-response-components + content: ../content/ssp-all-VALID.xml + expectations: + - constraint-id: missing-response-components + result: pass