diff --git a/src/validations/constraints/content/ssp-high-impact-inventory-item-has-asset-owner-INVALID.xml b/src/validations/constraints/content/ssp-high-impact-inventory-item-has-asset-owner-INVALID.xml
index fe940d32a..d5af980e8 100644
--- a/src/validations/constraints/content/ssp-high-impact-inventory-item-has-asset-owner-INVALID.xml
+++ b/src/validations/constraints/content/ssp-high-impact-inventory-item-has-asset-owner-INVALID.xml
@@ -3,7 +3,8 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://csrc.nist.gov/ns/oscal/1.0 https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_ssp_schema.xsd"
uuid="12345678-1234-4321-8765-123456789012">
-
+
+
diff --git a/src/validations/constraints/fedramp-external-constraints.xml b/src/validations/constraints/fedramp-external-constraints.xml
index e1b8736a0..3ec02e119 100644
--- a/src/validations/constraints/fedramp-external-constraints.xml
+++ b/src/validations/constraints/fedramp-external-constraints.xml
@@ -671,49 +671,29 @@
-
-
-
-
- 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.
-
-
- 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.
-
-
-
-
-
-
-
-
-
+
-
-
+
+
+
+ Authenticated Scan No Has RemarksFedRAMP requires CSPs to 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 FunctionEvery inventory-item MUST describe the function provided by the item, either within the inventory-item itself, or within the component linked by the inventory-item.
-
+ Inventory Item Has Scan TypeEvery 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.
From 968ac9bcc5f19fa015c9ab25d0807a8a3a32381c Mon Sep 17 00:00:00 2001
From: Mr Wand
Date: Fri, 3 Jan 2025 15:22:23 -0500
Subject: [PATCH 05/12] improve constraint content
---
...authenticated-scan-no-has-remarks-INVALID.xml | 6 +++---
...ct-inventory-item-has-asset-owner-INVALID.xml | 16 +++++++++++++---
.../constraints/fedramp-external-constraints.xml | 2 +-
3 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/src/validations/constraints/content/ssp-authenticated-scan-no-has-remarks-INVALID.xml b/src/validations/constraints/content/ssp-authenticated-scan-no-has-remarks-INVALID.xml
index 2a39a9be9..7128ef723 100644
--- a/src/validations/constraints/content/ssp-authenticated-scan-no-has-remarks-INVALID.xml
+++ b/src/validations/constraints/content/ssp-authenticated-scan-no-has-remarks-INVALID.xml
@@ -4,6 +4,9 @@
xsi:schemaLocation="http://csrc.nist.gov/ns/oscal/1.0 https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_ssp_schema.xsd"
uuid="12345678-1234-4321-8765-123456789012">
+
+ fips-199-moderate
+
@@ -18,9 +21,6 @@
11111111-0000-4000-9000-000000000001
-
-
-
diff --git a/src/validations/constraints/content/ssp-high-impact-inventory-item-has-asset-owner-INVALID.xml b/src/validations/constraints/content/ssp-high-impact-inventory-item-has-asset-owner-INVALID.xml
index d5af980e8..2beab9dab 100644
--- a/src/validations/constraints/content/ssp-high-impact-inventory-item-has-asset-owner-INVALID.xml
+++ b/src/validations/constraints/content/ssp-high-impact-inventory-item-has-asset-owner-INVALID.xml
@@ -3,11 +3,21 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://csrc.nist.gov/ns/oscal/1.0 https://github.com/usnistgov/OSCAL/releases/download/v1.1.2/oscal_ssp_schema.xsd"
uuid="12345678-1234-4321-8765-123456789012">
-
-
+
+
+ fips-199-high
+
-
+
+
Primary database server
+
+
+
+
+
+
+
diff --git a/src/validations/constraints/fedramp-external-constraints.xml b/src/validations/constraints/fedramp-external-constraints.xml
index 3ec02e119..562183b5d 100644
--- a/src/validations/constraints/fedramp-external-constraints.xml
+++ b/src/validations/constraints/fedramp-external-constraints.xml
@@ -683,7 +683,7 @@
FedRAMP requires CSPs to provide justification for any high or moderate impact system inventory item that does not support authenticated scans.
-
+ High Impact Inventory Item Has Asset OwnerFor 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.
From fb8a997825f9c254785b48db8707239d7feb9b3b Mon Sep 17 00:00:00 2001
From: wandmagic <156969148+wandmagic@users.noreply.github.com>
Date: Mon, 6 Jan 2025 08:46:00 -0500
Subject: [PATCH 06/12] Update
src/validations/constraints/fedramp-external-constraints.xml
Co-authored-by: Gabeblis
---
.../constraints/fedramp-external-constraints.xml | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/src/validations/constraints/fedramp-external-constraints.xml b/src/validations/constraints/fedramp-external-constraints.xml
index 562183b5d..adf24b6a9 100644
--- a/src/validations/constraints/fedramp-external-constraints.xml
+++ b/src/validations/constraints/fedramp-external-constraints.xml
@@ -708,13 +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.
-
+
+ Scan Type Has Remarks
+
+ When scan-type is 'other' or 'not-applicable', remarks MUST be provided to explain the selection.
+
From 1bc399dcb05ddcd7dd31e7b44dd9b9ef5ebc0201 Mon Sep 17 00:00:00 2001
From: wandmagic <156969148+wandmagic@users.noreply.github.com>
Date: Mon, 6 Jan 2025 08:50:33 -0500
Subject: [PATCH 07/12] Update
src/validations/constraints/fedramp-external-constraints.xml
Co-authored-by: Gabeblis
---
src/validations/constraints/fedramp-external-constraints.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/validations/constraints/fedramp-external-constraints.xml b/src/validations/constraints/fedramp-external-constraints.xml
index e75a4df79..aafd87bda 100644
--- a/src/validations/constraints/fedramp-external-constraints.xml
+++ b/src/validations/constraints/fedramp-external-constraints.xml
@@ -691,7 +691,7 @@
Inventory Item Has Function
- Every inventory-item MUST describe the function provided by the item, either within the inventory-item itself, or within the component linked by the inventory-item.
+ 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
From f7d52a83a654c518e813044ff91c5273b7afd6ba Mon Sep 17 00:00:00 2001
From: "~ . ~"
Date: Mon, 6 Jan 2025 08:50:43 -0500
Subject: [PATCH 08/12] Update fedramp-external-constraints.xml
---
src/validations/constraints/fedramp-external-constraints.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/validations/constraints/fedramp-external-constraints.xml b/src/validations/constraints/fedramp-external-constraints.xml
index adf24b6a9..e75a4df79 100644
--- a/src/validations/constraints/fedramp-external-constraints.xml
+++ b/src/validations/constraints/fedramp-external-constraints.xml
@@ -705,7 +705,7 @@
Inventory Item Has Vendor Name
-
+ In a FedRAMP SSP, each inventory item MUST include the vendor name in the inventory item itself or within the linked component.
From 1b1d68cbe6e91fa9918d407b545a9a8da3017b22 Mon Sep 17 00:00:00 2001
From: "~ . ~"
Date: Mon, 6 Jan 2025 08:52:51 -0500
Subject: [PATCH 09/12] Update fedramp-external-constraints.xml
---
src/validations/constraints/fedramp-external-constraints.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/validations/constraints/fedramp-external-constraints.xml b/src/validations/constraints/fedramp-external-constraints.xml
index e75a4df79..b0669370c 100644
--- a/src/validations/constraints/fedramp-external-constraints.xml
+++ b/src/validations/constraints/fedramp-external-constraints.xml
@@ -576,7 +576,7 @@
End of Life Date Type
-
+ When the end-of-life-date property is present, it MUST be in date format.
From bb3e302a32d8327a00256624ad0c2575dea4b806 Mon Sep 17 00:00:00 2001
From: "~ . ~" <156969148+wandmagic@users.noreply.github.com>
Date: Wed, 8 Jan 2025 11:06:37 -0500
Subject: [PATCH 10/12] Squashed commit of the following:
commit d7b06235c1d8779c7a57fc68bf60f92859a30a1d
Author: wandmagic <156969148+wandmagic@users.noreply.github.com>
Date: Tue Jan 7 14:47:44 2025 -0500
fix constraints (#1070)
commit fc50a42fe67741fa534a71e8b36600950c02a7fc
Author: wandmagic <156969148+wandmagic@users.noreply.github.com>
Date: Fri Jan 3 14:21:47 2025 -0500
hotfix develop (#1064)
---
.../constraints/fedramp-external-constraints.xml | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/validations/constraints/fedramp-external-constraints.xml b/src/validations/constraints/fedramp-external-constraints.xml
index 44e715927..a468b8655 100644
--- a/src/validations/constraints/fedramp-external-constraints.xml
+++ b/src/validations/constraints/fedramp-external-constraints.xml
@@ -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}).
From 0defc6874467def739678811f982ef4ef0d31159 Mon Sep 17 00:00:00 2001
From: "~ . ~" <156969148+wandmagic@users.noreply.github.com>
Date: Wed, 8 Jan 2025 15:56:46 -0500
Subject: [PATCH 11/12] Squashed commit of the following:
commit 18a02c93b47d11c623730fe458feaeae6a2101e4
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 60b3c5077782c17e0decb20863e5468e7b8b0888
Author: DimitriZhurkin
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 d7b06235c1d8779c7a57fc68bf60f92859a30a1d
Author: wandmagic <156969148+wandmagic@users.noreply.github.com>
Date: Tue Jan 7 14:47:44 2025 -0500
fix constraints (#1070)
commit fc50a42fe67741fa534a71e8b36600950c02a7fc
Author: wandmagic <156969148+wandmagic@users.noreply.github.com>
Date: Fri Jan 3 14:21:47 2025 -0500
hotfix develop (#1064)
---
features/fedramp_extensions.feature | 3 ++
features/steps/fedramp_extensions_steps.ts | 30 ++++++++-----
.../ssp/xml/fedramp-ssp-example.oscal.xml | 12 ++++++
...component-has-information-type-INVALID.xml | 36 ++++++++++++++++
.../fedramp-external-constraints.xml | 43 ++++++++-----------
...y-component-has-information-type-FAIL.yaml | 8 ++++
...y-component-has-information-type-PASS.yaml | 8 ++++
7 files changed, 105 insertions(+), 35 deletions(-)
create mode 100644 src/validations/constraints/content/ssp-inter-boundary-component-has-information-type-INVALID.xml
create mode 100644 src/validations/constraints/unit-tests/inter-boundary-component-has-information-type-FAIL.yaml
create mode 100644 src/validations/constraints/unit-tests/inter-boundary-component-has-information-type-PASS.yaml
diff --git a/features/fedramp_extensions.feature b/features/fedramp_extensions.feature
index 38fd678af..7aced5bef 100644
--- a/features/fedramp_extensions.feature
+++ b/features/fedramp_extensions.feature
@@ -119,6 +119,7 @@ Examples:
| information-type-has-confidentiality-impact |
| information-type-has-integrity-impact |
| information-type-system |
+ | inter-boundary-component-has-information-type |
| interconnection-direction |
| interconnection-security |
| inventory-item-allows-authenticated-scan |
@@ -377,6 +378,8 @@ Examples:
| information-type-id-PASS.yaml |
| information-type-system-FAIL.yaml |
| information-type-system-PASS.yaml |
+ | inter-boundary-component-has-information-type-FAIL.yaml |
+ | inter-boundary-component-has-information-type-PASS.yaml |
| interconnection-direction-FAIL.yaml |
| interconnection-direction-PASS.yaml |
| interconnection-security-FAIL.yaml |
diff --git a/features/steps/fedramp_extensions_steps.ts b/features/steps/fedramp_extensions_steps.ts
index 44b2435df..601f7b8af 100644
--- a/features/steps/fedramp_extensions_steps.ts
+++ b/features/steps/fedramp_extensions_steps.ts
@@ -1,23 +1,22 @@
-import { BeforeAll, BeforeStep, Given, Then, When, setDefaultTimeout, world } from "@cucumber/cucumber";
+import { BeforeAll, Given, Then, When, setDefaultTimeout } from "@cucumber/cucumber";
import { expect } from "chai";
import {
+ existsSync,
+ mkdirSync,
readFileSync,
readdirSync,
unlinkSync,
writeFileSync,
- mkdirSync,
- existsSync,
} from "fs";
import { load } from "js-yaml";
-import { executeOscalCliCommand, resolveProfile, resolveProfileDocument, validateDocument} from "oscal";
-import {checkServerStatus} from 'oscal/dist/server.js'
-import { dirname, join,parse, resolve } from "path";
-import { Exception, Log, Result } from "sarif";
+import { JSDOM } from 'jsdom';
+import { executeOscalCliCommand, formatSarifOutput, resolveProfileDocument, validateDocument } from "oscal";
+import { checkServerStatus } from 'oscal/dist/server.js';
+import { dirname, join, parse, resolve } from "path";
+import { Log } from "sarif";
import { fileURLToPath } from "url";
-import { parseString } from "xml2js";
-import {JSDOM} from 'jsdom'
import { promisify } from "util";
-import {formatSarifOutput} from 'oscal'
+import { parseString } from "xml2js";
let executor: 'oscal-cli'|'oscal-server' = process.env.OSCAL_EXECUTOR as 'oscal-cli'|'oscal-server' || 'oscal-cli'
const quiet = process.env.OSCAL_TEST_QUIET === 'true'
@@ -686,6 +685,7 @@ Then('I should have valid results {string}', async function (fileToValidate) {
Then('I should verify that all constraints follow the style guide constraint', async function () {
const baseDir = join(__dirname, '..', '..');
+ const styleGuidePath = join(baseDir, 'src', 'validations', 'styleguides', 'fedramp-constraint-style.xml');
const constraintDir = join(baseDir, 'src', 'validations', 'constraints');
const constraintFiles = readdirSync(constraintDir).filter(file =>
file.startsWith('fedramp') && file.endsWith('.xml')
@@ -701,7 +701,15 @@ Then('I should verify that all constraints follow the style guide constraint', a
const fileContent = readFileSync(filePath, 'utf8');
const dom = new JSDOM(fileContent, { contentType: 'text/xml' });
const document = dom.window.document;
-
+ const {isValid,log} = await validateDocument(filePath,{flags:['disable-schema'],quiet,extensions:[styleGuidePath],module:"http://csrc.nist.gov/ns/oscal/metaschema/1.0"},executor)
+ writeFileSync(
+ join(
+ __dirname,
+ "../../sarif/",
+ fileName.split(".xml").join("").toString()+".sarif"
+ ),JSON.stringify(log, null,"\t"))
+ const formattedErrors = (formatSarifOutput(log));
+ formattedErrors&&errors.push(formattedErrors)
// Process each 'constraints' block separately
document.querySelectorAll('constraints').forEach(constraintsNode => {
// Get direct child elements with IDs within this constraints block
diff --git a/src/content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml b/src/content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml
index 710ba036c..769cc3a18 100644
--- a/src/content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml
+++ b/src/content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml
@@ -1200,6 +1200,10 @@ leveraged-authorization assembly:
+
+
+
+
@@ -1841,6 +1845,10 @@ compliance (e.g., Module in Process).
+
+
+
+
If 'yes', describe the authentication method.
@@ -2264,6 +2272,10 @@ approved.
+
+
+
+
If 'yes', describe the authentication method.
diff --git a/src/validations/constraints/content/ssp-inter-boundary-component-has-information-type-INVALID.xml b/src/validations/constraints/content/ssp-inter-boundary-component-has-information-type-INVALID.xml
new file mode 100644
index 000000000..5b248eef3
--- /dev/null
+++ b/src/validations/constraints/content/ssp-inter-boundary-component-has-information-type-INVALID.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+ Service B
+
+
An non-authorized service provided by the Awesome Cloud leveraged authorization.
+
Describe the service and what it is used for.
+
+
+
+
+
+
+
+
If 'yes', describe the authentication method.
+
If 'no', explain why no authentication is used.
+
If 'not-applicable', attest explain why authentication is not applicable in the remarks.
Each non-authorized leveraged service must be expressed as a "service" component.
+
+
+
+
\ 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 a468b8655..856cad3df 100644
--- a/src/validations/constraints/fedramp-external-constraints.xml
+++ b/src/validations/constraints/fedramp-external-constraints.xml
@@ -585,7 +585,7 @@
-
+ Authentication Method Has Remarks
@@ -603,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.
@@ -611,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
@@ -659,16 +669,6 @@
-
-
-
-
- Inventory Item or Component Has Asset ID
-
- In a FedRAMP SSP, each inventory item and software image component MUST include the asset ID.
-
-
-
@@ -681,7 +681,7 @@
Authenticated Scan No Has Remarks
- FedRAMP requires CSPs to provide justification for any high or moderate impact system inventory item that does not support authenticated scans.
+ 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
@@ -796,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
@@ -806,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.
+
@@ -825,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/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
From 372a8f3b74b83f3671a74d4951b9e1d3981ed3a2 Mon Sep 17 00:00:00 2001
From: "~ . ~" <156969148+wandmagic@users.noreply.github.com>
Date: Thu, 9 Jan 2025 14:54:24 -0500
Subject: [PATCH 12/12] Squashed commit of the following:
commit 8c1a343b60cc162ab325b9a9ee75aab9cca01bfd
Author: Gabeblis
Date: Thu Jan 9 11:45:37 2025 -0500
Add new metapath target to 'security-level' constraint (#1079)
commit 608080ddc3697c5de8fdf0488b221146aeadd678
Author: wandmagic <156969148+wandmagic@users.noreply.github.com>
Date: Thu Jan 9 09:29:17 2025 -0500
add additional sample content (#1081)
commit 1f55a73df1df93e8e33f5e2d3509a613adf823c3
Author: Gabeblis
Date: Thu Jan 9 09:22:28 2025 -0500
Correct constraint message. (#1085)
commit 18a02c93b47d11c623730fe458feaeae6a2101e4
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 60b3c5077782c17e0decb20863e5468e7b8b0888
Author: DimitriZhurkin
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 d7b06235c1d8779c7a57fc68bf60f92859a30a1d
Author: wandmagic <156969148+wandmagic@users.noreply.github.com>
Date: Tue Jan 7 14:47:44 2025 -0500
fix constraints (#1070)
commit fc50a42fe67741fa534a71e8b36600950c02a7fc
Author: wandmagic <156969148+wandmagic@users.noreply.github.com>
Date: Fri Jan 3 14:21:47 2025 -0500
hotfix develop (#1064)
---
.../ssp/xml/fedramp-ssp-example.oscal.xml | 48 +++++--
.../content/resolved-example-profile.xml | 33 +++++
...ssp-has-required-response-points-VALID.xml | 118 ++++++++++++++++++
.../content/ssp-security-level-INVALID.xml | 9 ++
.../fedramp-external-allowed-values.xml | 5 +-
.../fedramp-external-constraints.xml | 4 +-
.../has-required-response-points-PASS.yaml | 4 +-
7 files changed, 209 insertions(+), 12 deletions(-)
create mode 100644 src/validations/constraints/content/resolved-example-profile.xml
create mode 100644 src/validations/constraints/content/ssp-has-required-response-points-VALID.xml
diff --git a/src/content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml b/src/content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml
index 769cc3a18..171d69de9 100644
--- a/src/content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml
+++ b/src/content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml
@@ -2577,8 +2577,9 @@ SSP authors must add implmentations for all required controls.
at least every 3 yearsat least annually
-
-
+
+
+
Describe how Part a is satisfied within the system.
Legacy approach. If no policy component is defined, describe here how the policy satisfies part a.
@@ -2608,6 +2609,37 @@ SSP authors must add implmentations for all required controls.
+
+
+
+
Describe how Part a is satisfied within the system.
+
Legacy approach. If no policy component is defined, describe here how the policy satisfies part a.
+
In this case, a link must be provided to the policy.
+
FedRAMP prefers all policies and procedures be attached as a resource in the back-matter. The link points to a resource.
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
+
+
+
@@ -2841,7 +2873,7 @@ SSP authors must add implmentations for all required controls.
-
+
Describe how Part a is satisfied.
@@ -2911,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.
@@ -3811,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.
@@ -3826,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.
@@ -3896,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.
+
+
+
+
+
\ No newline at end of file
diff --git a/src/validations/constraints/content/ssp-has-required-response-points-VALID.xml b/src/validations/constraints/content/ssp-has-required-response-points-VALID.xml
new file mode 100644
index 000000000..c32acfbf1
--- /dev/null
+++ b/src/validations/constraints/content/ssp-has-required-response-points-VALID.xml
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ organization-defined personnel or roles
+
+
+ Chief Information Security Officer, Information System Security Officers, and System Administrators
+
+
+
+
+
There
+
+
+
+
+
Describe the plan to complete the implementation.
+
+
+
+
+
+
Describe how this policy currently satisfies part a.
+
+
+
+
Describe the plan for addressing the missing policy elements.
+
+
+
+
+
Identify what is currently missing from this policy.
+
+
+
+
+
+
+
+
Describe how Part a is satisfied within the system.
+
Legacy approach. If no policy component is defined, describe here how the policy satisfies part a.
+
In this case, a link must be provided to the policy.
+
FedRAMP prefers all policies and procedures be attached as a resource in the back-matter. The link points to a resource.
+
+
+
+
+
+
The specified component is the system itself.
+
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.
+
+
+
+
+
+
+
+
There
+
+
+
+
+
Describe the plan to complete the implementation.
+
+
+
+
+
+
Describe how this policy currently satisfies part a.
+
+
+
+
Describe the plan for addressing the missing policy elements.
+
+
+
+
+
Identify what is currently missing from this policy.
+
+
+
+
+
+
+
+
+
Describe how Part b-1 is satisfied.
+
+
+
+
+
+
+
+
Describe how Part b-2 is satisfied.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/validations/constraints/content/ssp-security-level-INVALID.xml b/src/validations/constraints/content/ssp-security-level-INVALID.xml
index 33d9cdaef..fa4f426b4 100644
--- a/src/validations/constraints/content/ssp-security-level-INVALID.xml
+++ b/src/validations/constraints/content/ssp-security-level-INVALID.xml
@@ -24,4 +24,13 @@
INVALID-fips-199-moderate
+
+
+
+
+
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 856cad3df..af1baef6b 100644
--- a/src/validations/constraints/fedramp-external-constraints.xml
+++ b/src/validations/constraints/fedramp-external-constraints.xml
@@ -66,7 +66,7 @@
-
+ Statements implimented in SSPThis index includes all statements defined in a FedRAMP SSP
@@ -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
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