-
Notifications
You must be signed in to change notification settings - Fork 96
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
[DONOTMERGE] Add the interconnection-component-has-remote-protocol constraint #1086
base: canary
Are you sure you want to change the base?
[DONOTMERGE] Add the interconnection-component-has-remote-protocol constraint #1086
Conversation
This needs a rebase @DimitriZhurkin |
eb74c4f
to
40755e7
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After looking at #930 (comment) on issue #930, it looks like we're not looking for FDQN. I suggest you make these edits to align with his comments.
<component uuid="11111111-2222-4000-8000-009000200002" type="interconnection"> | ||
<title>Authorized Connection Information System Name</title> | ||
<description> | ||
<p>Describe the purpose of the external system/service; specifically, provide reasons for connectivity (e.g., system monitoring, system alerting, download updates, etc.)</p> | ||
</description> | ||
<prop name="nature-of-agreement" value="contract" ns="http://fedramp.gov/ns/oscal"/> | ||
<prop name="authentication-method" value="yes" ns="http://fedramp.gov/ns/oscal"> | ||
<remarks> | ||
<p>If 'yes', describe the authentication method in the remarks.</p> | ||
<p>If 'no', explain why no authentication is used in the remarks.</p> | ||
<p>If 'not-applicable', attest explain why authentication is not applicable in the remarks.</p> | ||
</remarks> | ||
</prop> | ||
<prop name="information-type" class="incoming" value="C.3.5.1" ns="http://fedramp.gov/ns/oscal"/> | ||
<prop name="information-type" class="incoming" value="C.3.5.8" ns="http://fedramp.gov/ns/oscal"/> | ||
<prop name="ipv4-address" class="local" value="10.1.1.1"/> | ||
<prop name="ipv6-address" class="local" value="::ffff:10.1.1.1"/> | ||
<!--prop name="ipv4-address" class="remote" value="10.2.2.2"/> | ||
<prop name="ipv6-address" class="remote" value="::ffff:10.2.2.2"/> | ||
<prop name="fqdn" class="remote" value="www.example.com" ns="http://fedramp.gov/ns/oscal"/> | ||
<prop name="uri" class="remote" value="https://sample.com#content" ns="http://fedramp.gov/ns/oscal"/> | ||
<prop name="connection-security" value="tls-1.3" ns="http://fedramp.gov/ns/oscal"/> | ||
<link rel="uri" href="https://www.example.com#content"/--> | ||
<status state="operational"/> | ||
<responsible-role role-id="provider"> | ||
<party-uuid>44444444-2222-4000-8000-004000000001</party-uuid> | ||
</responsible-role> | ||
<responsible-role role-id="isa-poc-remote"> | ||
<party-uuid>11111111-2222-4000-8000-004000000008</party-uuid> | ||
</responsible-role> | ||
<responsible-role role-id="isa-poc-local"> | ||
<party-uuid>11111111-2222-4000-8000-004000000008</party-uuid> | ||
</responsible-role> | ||
<responsible-role role-id="administrator"> | ||
<prop name="privilege-uuid" value="11111111-2222-4000-8000-008000000004" ns="http://fedramp.gov/ns/oscal"/> | ||
<party-uuid>11111111-2222-4000-8000-004000000010</party-uuid> | ||
<party-uuid>11111111-2222-4000-8000-004000000011</party-uuid> | ||
<party-uuid>11111111-2222-4000-8000-004000000012</party-uuid> | ||
</responsible-role> | ||
</component> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
NON-BLOCKING: This is just to make the invalid test content a little more clear as to what is being tested.
<component uuid="11111111-2222-4000-8000-009000200002" type="interconnection"> | |
<title>Authorized Connection Information System Name</title> | |
<description> | |
<p>Describe the purpose of the external system/service; specifically, provide reasons for connectivity (e.g., system monitoring, system alerting, download updates, etc.)</p> | |
</description> | |
<prop name="nature-of-agreement" value="contract" ns="http://fedramp.gov/ns/oscal"/> | |
<prop name="authentication-method" value="yes" ns="http://fedramp.gov/ns/oscal"> | |
<remarks> | |
<p>If 'yes', describe the authentication method in the remarks.</p> | |
<p>If 'no', explain why no authentication is used in the remarks.</p> | |
<p>If 'not-applicable', attest explain why authentication is not applicable in the remarks.</p> | |
</remarks> | |
</prop> | |
<prop name="information-type" class="incoming" value="C.3.5.1" ns="http://fedramp.gov/ns/oscal"/> | |
<prop name="information-type" class="incoming" value="C.3.5.8" ns="http://fedramp.gov/ns/oscal"/> | |
<prop name="ipv4-address" class="local" value="10.1.1.1"/> | |
<prop name="ipv6-address" class="local" value="::ffff:10.1.1.1"/> | |
<!--prop name="ipv4-address" class="remote" value="10.2.2.2"/> | |
<prop name="ipv6-address" class="remote" value="::ffff:10.2.2.2"/> | |
<prop name="fqdn" class="remote" value="www.example.com" ns="http://fedramp.gov/ns/oscal"/> | |
<prop name="uri" class="remote" value="https://sample.com#content" ns="http://fedramp.gov/ns/oscal"/> | |
<prop name="connection-security" value="tls-1.3" ns="http://fedramp.gov/ns/oscal"/> | |
<link rel="uri" href="https://www.example.com#content"/--> | |
<status state="operational"/> | |
<responsible-role role-id="provider"> | |
<party-uuid>44444444-2222-4000-8000-004000000001</party-uuid> | |
</responsible-role> | |
<responsible-role role-id="isa-poc-remote"> | |
<party-uuid>11111111-2222-4000-8000-004000000008</party-uuid> | |
</responsible-role> | |
<responsible-role role-id="isa-poc-local"> | |
<party-uuid>11111111-2222-4000-8000-004000000008</party-uuid> | |
</responsible-role> | |
<responsible-role role-id="administrator"> | |
<prop name="privilege-uuid" value="11111111-2222-4000-8000-008000000004" ns="http://fedramp.gov/ns/oscal"/> | |
<party-uuid>11111111-2222-4000-8000-004000000010</party-uuid> | |
<party-uuid>11111111-2222-4000-8000-004000000011</party-uuid> | |
<party-uuid>11111111-2222-4000-8000-004000000012</party-uuid> | |
</responsible-role> | |
</component> | |
<component uuid="11111111-2222-4000-8000-009000200002" type="interconnection"> | |
<!-- Missing at least one remote ipv4-address, ipv6-address, or URI. --> | |
<!--prop name="ipv4-address" class="remote" value="10.2.2.2"/>--> | |
<!--<prop name="ipv6-address" class="remote" value="::ffff:10.2.2.2"/>--> | |
<!--<link rel="uri" href="https://www.example.com#content"/--> | |
</component> |
<expect id="interconnection-component-has-remote-protocol" target="component[@type='interconnection']" test="count(prop[@class='remote' and @name=('ipv4-address','ipv6-address','fqdn','uri')] | link[@rel='uri']) >= 1" level="ERROR"> | ||
<formal-name>Interconnection Component Has Remote Protocols</formal-name> | ||
<prop namespace="https://docs.oasis-open.org/sarif/sarif/v2.1.0" name="help-url" value="https://automate.fedramp.gov/documentation/ssp/5-attachments/"/> | ||
<message>In a FedRAMP SSP, an interconnection component MUST have at least one remote IPv4 Address, IPv6 Address, URI, or FQDN.</message> | ||
</expect> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
<expect id="interconnection-component-has-remote-protocol" target="component[@type='interconnection']" test="count(prop[@class='remote' and @name=('ipv4-address','ipv6-address','fqdn','uri')] | link[@rel='uri']) >= 1" level="ERROR"> | |
<formal-name>Interconnection Component Has Remote Protocols</formal-name> | |
<prop namespace="https://docs.oasis-open.org/sarif/sarif/v2.1.0" name="help-url" value="https://automate.fedramp.gov/documentation/ssp/5-attachments/"/> | |
<message>In a FedRAMP SSP, an interconnection component MUST have at least one remote IPv4 Address, IPv6 Address, URI, or FQDN.</message> | |
</expect> | |
<expect id="interconnection-component-has-remote-protocol" target="component[@type='interconnection']" test="count(prop[@class='remote' and @name=('ipv4-address','ipv6-address')] | link[@rel='uri']) >= 1" level="ERROR"> | |
<formal-name>Interconnection Component Has Remote Protocols</formal-name> | |
<prop namespace="https://docs.oasis-open.org/sarif/sarif/v2.1.0" name="help-url" value="https://automate.fedramp.gov/documentation/ssp/5-attachments/"/> | |
<message>In a FedRAMP SSP, an interconnection component MUST have at least one remote IPv4 Address, IPv6 Address, or URI.</message> | |
</expect> |
# Driver for the invalid interconnection-component-has-remote-protocol constraint unit test. | ||
test-case: | ||
name: The invalid interconnection-component-has-remote-protocol constraint unit test. | ||
description: Test that the FedRAMP SSP interconnection component does not have remote IPv4 Address, IPv6 Address, URI, or FQDN. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
description: Test that the FedRAMP SSP interconnection component does not have remote IPv4 Address, IPv6 Address, URI, or FQDN. | |
description: Test that the FedRAMP SSP interconnection component does not have remote IPv4 Address, IPv6 Address, or URI. |
# Driver for the valid interconnection-component-has-remote-protocol constraint unit test. | ||
test-case: | ||
name: The valid interconnection-component-has-remote-protocol constraint unit test. | ||
description: Test that the FedRAMP SSP interconnection component has at least one remote IPv4 Address, IPv6 Address, URI, or FQDN. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
description: Test that the FedRAMP SSP interconnection component has at least one remote IPv4 Address, IPv6 Address, URI, or FQDN. | |
description: Test that the FedRAMP SSP interconnection component has at least one remote IPv4 Address, IPv6 Address, or URI. |
Committer Notes
This constraint tests the following scenario:
An interconnection component has at least one remote IPv4 Address, IPv6 Address, URI, or FQDN.
IMPORTANT: This constraint is blocked until OSCAL adds the following props:
fqdn
uri
Related issues:
All Submissions:
By submitting a pull request, you are agreeing to provide this contribution under the CC0 1.0 Universal public domain dedication.