Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/fedramp citations #985

Closed
wants to merge 27 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions documents/adr/0010-fedramp-identifier-type-and-namespace.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# 10. FedRAMP System Identifier Type and Namespace

Date: 2024-10-11

## Status

Proposed

## Context

The FedRAMP automation team needs to provide clear guidance on the acceptable values for an SSP system `identifier-type`, for its extension `prop` namespace values, and the naming system identifier `system` attribute (used in the assessent results and POA&M).

The OSCAL models specify a set of allowed values for `identifier-type` (see [OSCAL Metaschema Model](https://github.com/usnistgov/OSCAL/blob/4f02dac6f698efda387cc5f55bc99581eaf494b6/src/metaschema/oscal_implementation-common_metaschema.xml#L676-L704)). For FedRAMP systems, the only allowed value is "http://fedramp.gov/ns/oscal" because "https://fedramp.gov" is deprecated. However, use of "http://fedramp.gov/ns/oscal" for `identifier-type` may cause some confusion as FedRAMP extensions currently have `@ns` values of "https://fedramp.gov/ns/oscal" (notice the difference - **http** vs **https**). Currently, the allowed value for naming system identifier (in the assessment results and POA&M) is "https://fedramp.gov/ns/oscal".

## Possible Solutions

The team considered multiple approaches listed below.

1. **Option 1** - require "https://fedramp.gov" for `identifier-type`, `system`, and `prop` namespaces attribute value.
- Pros - the `identifier-type`, `system`, and FedRAMP extension `@ns` share the same value, reducing confusion.
- Cons - this value is marked as a deprecated `identifier-type` in the NIST model, thus creating a misalignment between core OSCAL and FedRAMP OSCAL requirements.

2. **Option 2** - require "http://fedramp.gov/ns/oscal" for `identifier-type`, `system`, and `prop`.
- Pros - this approach aligns with NIST allowed values for `identifier-type`, and has the added benefit of reducing confusion since all use the same FedRAMP URI value.
- Cons - this approach is likely to impact the community since FedRAMP extensions will all need to be updated (e.g., change "https" to "http" in existing FedRAMP OSCAL documents). OSCAL content generating tools will also be impacted by the `@ns` change for FedRAMP extensions.

3. **Option 3** - require "https://fedramp.gov/ns/oscal" for `identifier-type`, `system`, and `prop` namespaces attribute value.
- Pros - perceived lesser impact on existing FedRAMP OSCAL documents and tools, as only the `identifier-type` would require change.
- Cons - this approach does not align with NIST allowed-value for `identifier-type` which may cause confusion, thus creating a misalignment between core OSCAL and FedRAMP OSCAL requirements.

4. **Option 4** - go with "http://fedramp.gov/ns/oscal" for `identifier-type`, and "https://fedramp.gov/ns/oscal" for FedRAMP extension `prop` namespaces and `system`.
- Pros - this approach aligns with NIST OSCAL allowed value for `identifier-type`, while preserving the current FedRAMP extension `prop` namespace value. This requires no change to existing FedRAMP OSCAL content or tools.
- Cons - FedRAMP OSCAL practitioners may be confused by the minor, subtle difference in allowed values for `identifier-type`, `system` and FedRAMP extention `prop` namespaces.

## Decision

Proceed with Option 2. The inconsistency in documentation and tooling was the source of a bug that initiated an investigation and led to this ADR. This change will have an impact on updating documentation for FedRAMP, but there is little evidence or public feedback to indicate one or more community-maintained tools warrant this concern. Alignment sooner rather than later by FedRAMP, who will operationalize the FedRAMP constraints, is a key factor to prioritize this change the soonest major release, not defer it until later.

## Consequences

Option 2 is not backwards compatible, as it requires updates to existing FedRAMP documentation. However, it establishes a consistent and maintainable standard that will reduce ambiguity in the long term. Implementing this now also minimizes the risk of future misalignment.
12 changes: 9 additions & 3 deletions features/fedramp_extensions.feature
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ Examples:
| deployment-model |
| external-system-nature-of-agreement |
| extraneous-implemented-requirements |
| fedramp-citations-has-correct-link |
| fedramp-version |
| fully-operational-date-is-valid |
| fully-operational-date-type |
Expand All @@ -74,7 +75,9 @@ Examples:
| has-data-flow-diagram-link-rel |
| has-data-flow-diagram-link-rel-allowed-value |
| has-data-flow-diagram-uuid |
| has-e-authentication-workflow |
| has-federation-assurance-level |
| has-fedramp-citations |
| has-fully-operational-date |
| has-identity-assurance-level |
| has-incident-response-plan |
Expand All @@ -92,7 +95,6 @@ Examples:
| has-rules-of-behavior |
| has-security-impact-level |
| has-security-sensitivity-level |
| has-separation-of-duties-matrix |
| has-system-id |
| has-system-name-short |
| has-user-guide |
Expand Down Expand Up @@ -211,6 +213,8 @@ Examples:
| external-system-nature-of-agreement-PASS.yaml |
| extraneous-implemented-requirements-FAIL.yaml |
| extraneous-implemented-requirements-PASS.yaml |
| fedramp-citations-has-correct-link-FAIL.yaml |
| fedramp-citations-has-correct-link-PASS.yaml |
| fedramp-version-FAIL.yaml |
| fedramp-version-PASS.yaml |
| fully-operational-date-is-valid-FAIL.yaml |
Expand Down Expand Up @@ -263,8 +267,12 @@ Examples:
| has-data-flow-diagram-link-rel-allowed-value-PASS.yaml |
| has-data-flow-diagram-uuid-FAIL.yaml |
| has-data-flow-diagram-uuid-PASS.yaml |
| has-e-authentication-workflow-FAIL.yaml |
| has-e-authentication-workflow-PASS.yaml |
| has-federation-assurance-level-FAIL.yaml |
| has-federation-assurance-level-PASS.yaml |
| has-fedramp-citations-FAIL.yaml |
| has-fedramp-citations-PASS.yaml |
| has-fully-operational-date-FAIL.yaml |
| has-fully-operational-date-PASS.yaml |
| has-identity-assurance-level-FAIL.yaml |
Expand Down Expand Up @@ -299,8 +307,6 @@ Examples:
| has-security-impact-level-PASS.yaml |
| has-security-sensitivity-level-FAIL.yaml |
| has-security-sensitivity-level-PASS.yaml |
| has-separation-of-duties-matrix-FAIL.yaml |
| has-separation-of-duties-matrix-PASS.yaml |
| has-system-id-FAIL.yaml |
| has-system-id-PASS.yaml |
| has-system-name-short-FAIL.yaml |
Expand Down
45 changes: 37 additions & 8 deletions src/content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1533,7 +1533,7 @@
<party-uuid>11111111-2222-4000-8000-004000000018</party-uuid>
</responsible-role>
<responsible-role role-id="admin">
<party-uuid>11111111-2222-4000-8000-004000000011</party-uuid> <!-- placeholder to satisfy constraint: component-has-non-provider-responsible-role -->
<party-uuid>11111111-2222-4000-8000-004000000011</party-uuid> <!-- placeholder to satisfy constraint: component-has-non-provider-responsible-role -->
</responsible-role>

<protocol name="remote" uuid="11111111-2222-4000-8000-010000000002">
Expand Down Expand Up @@ -1613,7 +1613,7 @@
<party-uuid>11111111-2222-4000-8000-004000000018</party-uuid>
</responsible-role>
<responsible-role role-id="admin">
<party-uuid>11111111-2222-4000-8000-004000000011</party-uuid> <!-- placeholder to satisfy constraint: component-has-non-provider-responsible-role -->
<party-uuid>11111111-2222-4000-8000-004000000011</party-uuid> <!-- placeholder to satisfy constraint: component-has-non-provider-responsible-role -->
</responsible-role>
</component>

Expand Down Expand Up @@ -1784,7 +1784,7 @@
<link href="#11111111-2222-4000-8000-009000500006" rel="used-by" />
<status state="operational"/>
<responsible-role role-id="admin">
<party-uuid>11111111-2222-4000-8000-004000000011</party-uuid> <!-- placeholder to satisfy constraint: component-has-non-provider-responsible-role -->
<party-uuid>11111111-2222-4000-8000-004000000011</party-uuid> <!-- placeholder to satisfy constraint: component-has-non-provider-responsible-role -->
</responsible-role>
<responsible-role role-id="provider">
<party-uuid>33333333-2222-4000-8000-004000000001</party-uuid>
Expand Down Expand Up @@ -2197,7 +2197,7 @@
<!-- <prop name="is-scanned" value="yes"/> -->
<status state="operational"/>
<responsible-role role-id="admin">
<party-uuid>11111111-2222-4000-8000-004000000011</party-uuid> <!-- place holder to satisfy constraint: component-has-non-provider-responsible-role -->
<party-uuid>11111111-2222-4000-8000-004000000011</party-uuid> <!-- place holder to satisfy constraint: component-has-non-provider-responsible-role -->
</responsible-role>
<responsible-role role-id="provider">
<party-uuid>33333333-2222-4000-8000-004000000001</party-uuid>
Expand Down Expand Up @@ -7879,7 +7879,7 @@
<description>
<p>Rules of Behavior</p>
</description>
<prop name="type" value="rules-of-behavior"/>
<prop name="type" value="rules-of-behavior" class='digital-identity-worksheet'/>
<prop name="published" value="2023-01-01T00:00:00Z"/>
<!-- document date -->
<prop name="version" value="Document Version"/>
Expand Down Expand Up @@ -8195,8 +8195,37 @@
</p>
</remarks>
</resource>



<resource uuid="8f742c15-9d3f-4f9a-b2b4-76f8e2734291">
<title>Privacy Impact Assessment</title>
<description>
<p>Privacy Impact Assessment (PIA)</p>
</description>
<prop name="type" value="plan" class="privacy-impact-assessment"/>
<prop name="published" value="2023-01-01T00:00:00Z"/>
<prop name="version" value="Document Version"/>
<rlink href="./documents/PIA.docx" media-type="application/msword"/>
<base64 filename="PIA.docx" media-type="application/msword">00000000</base64>
<remarks>
<p>Table 12-1 Attachments: Privacy Impact Assessment (PIA)</p>
<p>May use <code>rlink</code> with a relative path, or embedded as <code>base64</code>.
</p>
</remarks>
</resource>
<resource uuid="7d93e4f2-1b8c-4d6a-9f3b-2e5a9c8d0a1e">
<title>E-Authentication Workflow</title>
<description>
<p>E-Authentication Workflow Diagram</p>
</description>
<prop name="type" value="artifact" class="e-authentication-workflow"/>
<prop name="published" value="2023-01-01T00:00:00Z"/>
<prop name="version" value="Document Version"/>
<rlink href="./documents/EAuthWorkflow.docx" media-type="application/msword"/>
<base64 filename="EAuthWorkflow.docx" media-type="application/msword">00000000</base64>
<remarks>
<p>Table 12-1 Attachments: E-Authentication Workflow Diagram</p>
<p>May use <code>rlink</code> with a relative path, or embedded as <code>base64</code>.
</p>
</remarks>
</resource>
</back-matter>
</system-security-plan>
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<system-security-plan xmlns="http://csrc.nist.gov/ns/oscal/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" uuid="12345678-1234-4321-8765-123456789012">
<back-matter>
<resource uuid="b246c9e4-057f-4e4d-89be-a9c9234ef387">
<title>Digital Identity Worksheet</title>
<description>
<p>Digital Identity Determination Worksheet</p>
</description>
<prop name="type" value="citation" class="fedramp-citations"/>
<rlink href="./documents/digital-identity.xlsx" media-type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"/>
</resource>
</back-matter>
</system-security-plan>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking: remove with its constraint.

Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
<system-security-plan xmlns="http://csrc.nist.gov/ns/oscal/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" uuid="12345678-1234-4321-8765-123456789012">
wandmagic marked this conversation as resolved.
Show resolved Hide resolved
<back-matter>
<resource uuid="eeeeeeee-0000-4000-9000-00000000000e">
<title>Access Control Policy</title>
<description>
<p>Detailed access control policy document</p>
</description>
<prop name="type" value="policy" ns="https://fedramp.gov/ns/oscal"/>
<rlink href="https://example.com/policies/access-control.pdf"/>
</resource>
<resource uuid="90a128ac-c850-48f6-8fff-a55692f80b41">
<title>User's Guide</title>
<description>
<p>User's Guide</p>
</description>
<prop name="type" value="users-guide"/>
<prop name="published" value="2023-01-01T00:00:00Z"/>
<rlink href="./documents/guides/sample_guide.pdf"/>
<remarks>
<p>Table 12-1 Attachments: User's Guide Attachment</p>
<p>May use <code>rlink</code> with a relative path, or embedded as <code>base64</code>.</p>
</remarks>
</resource>
<resource uuid="489112e1-57f2-4c29-8dd0-95b1442fbf3b">
<title>Document Title</title>
<description>
<p>Rules of Behavior</p>
</description>
<prop name="type" value="rules-of-behavior"/>
<prop name="published" value="2023-01-01T00:00:00Z"/>
<prop name="version" value="Document Version"/>
<rlink href="./documents/rob.docx" media-type="application/msword"/>
<base64 filename="rob.docx" media-type="application/msword">00000000</base64>
<remarks>
<p>Table 12-1 Attachments: Rules of Behavior (ROB)</p>
<p>May use <code>rlink</code> with a relative path, or embedded as <code>base64</code>.</p>
</remarks>
</resource>
<resource uuid="c7860916-f2f4-43aa-b578-d48cf8e6d381">
<title>Document Title</title>
<description>
<p>Contingency Plan (CP)</p>
</description>
<prop name="type" value="plan" class="information-system-contingency-plan"/>
<prop name="published" value="2023-01-01T00:00:00Z"/>
<prop name="version" value="Document Version"/>
<rlink href="./documents/cp.docx" media-type="application/msword"/>
<base64 filename="cp.docx" media-type="application/msword">00000000</base64>
<remarks>
<p>Table 12-1 Attachments: Contingency Plan (CP) Attachment</p>
<p>May use <code>rlink</code> with a relative path, or embedded as <code>base64</code>.</p>
</remarks>
</resource>
<resource uuid="ab56cf27-0dae-40d6-89b7-d750137309af">
<title>Document Title</title>
<description>
<p>Configuration Management (CM) Plan</p>
</description>
<prop name="type" value="plan" class="configuration-management-plan"/>
<prop name="published" value="2023-01-01T00:00:00Z"/>
<prop name="version" value="Document Version"/>
<rlink href="./documents/CM_Plan.docx" media-type="application/msword"/>
<base64 filename="CM_Plan.docx" media-type="application/msword">00000000</base64>
<remarks>
<p>Table 12-1 Attachments: Configuration Management (CM) Plan Attachment</p>
<p>May use <code>rlink</code> with a relative path, or embedded as <code>base64</code>.</p>
</remarks>
</resource>
<resource uuid="3f771ab5-8016-4571-98d1-f0fb962e15e2">
<title>Document Title</title>
<description>
<p>Incident Response (IR) Plan</p>
</description>
<prop name="type" value="plan" class="incident-response-plan"/>
<prop name="published" value="2023-01-01T00:00:00Z"/>
<prop name="version" value="Document Version"/>
<rlink href="./documents/IR_Plan.docx" media-type="application/msword"/>
<base64 filename="IR_Plan.docx" media-type="application/msword">00000000</base64>
<remarks>
<p>Table 12-1 Attachments: Incident Response (IR) Plan Attachment</p>
<p>May use <code>rlink</code> with a relative path, or embedded as <code>base64</code>.</p>
</remarks>
</resource>
<resource uuid="49fb4631-1da2-41ca-b0b3-e1b1006d4025">
<title>Separation of Duties Matrix</title>
<description>
<p>Separation of Duties Matrix</p>
</description>
<prop ns="https://fedramp.gov/ns/oscal" name="type" value="separation-of-duties-matrix"/>
<prop name="published" value="2023-01-01T00:00:00Z"/>
<prop name="version" value="Document Version"/>
<rlink href="./documents/Sep_Matrix.docx" media-type="application/msword"/>
<base64 filename="Sep_Matrix.docx" media-type="application/msword">00000000</base64>
<remarks>
<p>May use <code>rlink</code> with a relative path, or embedded as <code>base64</code>.</p>
</remarks>
</resource>
<resource uuid="d2eb3c18-6754-4e3a-a933-03d289e3fad5">
<title>Authorization Boundary</title>
<description>
<p>Authorization Boundary Diagram</p>
</description>
<prop ns="https://fedramp.gov/ns/oscal" name="type" value="plan"/>
<prop name="published" value="2023-01-01T00:00:00Z"/>
<prop name="version" value="Document Version"/>
<rlink href="./documents/AuthBoundary.docx" media-type="application/msword"/>
<base64 filename="AuthBoundary.docx" media-type="application/msword">00000000</base64>
<remarks>
<p>May use <code>rlink</code> with a relative path, or embedded as <code>base64</code>.</p>
</remarks>
</resource>
<resource uuid="61081e81-850b-43c1-bf43-1ecbddcb9e7f">
<title>Network Architecture</title>
<description>
<p>Network Architecture Diagram</p>
</description>
<prop ns="https://fedramp.gov/ns/oscal" name="type" value="plan"/>
<prop name="published" value="2023-01-01T00:00:00Z"/>
<prop name="version" value="Document Version"/>
<rlink href="./documents/NetworkArchitecture.docx" media-type="application/msword"/>
<base64 filename="NetworkArchitecture.docx" media-type="application/msword">00000000</base64>
<remarks>
<p>May use <code>rlink</code> with a relative path, or embedded as <code>base64</code>.</p>
</remarks>
</resource>
<resource uuid="ac5d7535-f3b8-45d3-bf3b-735c82c64547">
<title>Data Flow</title>
<description>
<p>Data flow Diagram</p>
</description>
<prop ns="https://fedramp.gov/ns/oscal" name="type" value="plan"/>
<prop name="published" value="2023-01-01T00:00:00Z"/>
<prop name="version" value="Document Version"/>
<rlink href="./documents/Dataflo.docx" media-type="application/msword"/>
<base64 filename="Dataflow.docx" media-type="application/msword">00000000</base64>
<remarks>
<p>May use <code>rlink</code> with a relative path, or embedded as <code>base64</code>.</p>
</remarks>
</resource>
</back-matter>
</system-security-plan>
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<system-security-plan xmlns="http://csrc.nist.gov/ns/oscal/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" uuid="12345678-1234-4321-8765-123456789012">
wandmagic marked this conversation as resolved.
Show resolved Hide resolved
<back-matter>
</back-matter>
</system-security-plan>

This file was deleted.

Loading
Loading