-
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
Add the interconnection-component-has-local-protocol constraint #1089
base: canary
Are you sure you want to change the base?
Add the interconnection-component-has-local-protocol constraint #1089
Conversation
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.
As an intermediate possibility to do the following?
- Update the PR and rebase to current
develop
- Point it to the canary branch
- Review, and if approved, merge into the canary branch
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.
You should create a new branch off of canary and cherry-pick the commits for this issue so that we aren't bringing extra unrelated changes into the PR.
86254fd
to
924f7d2
Compare
<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="local" value="www.example.com"/> | ||
<prop name="uri" class="local" value="https://sample.com#content"/--> | ||
<prop name="fqdn" class="remote" value="www.example.com"/> | ||
<prop name="uri" class="remote" value="https://sample.com#content"/> | ||
<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: The constraint looks good, 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="local" value="www.example.com"/> | |
<prop name="uri" class="local" value="https://sample.com#content"/--> | |
<prop name="fqdn" class="remote" value="www.example.com"/> | |
<prop name="uri" class="remote" value="https://sample.com#content"/> | |
<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 ipv4-address, ipv6-address, or URI. --> | |
<!--<prop name="ipv4-address" class="local" value="10.1.1.1"/>--> | |
<!--<prop name="ipv6-address" class="local" value="::ffff:10.1.1.1"/>--> | |
<!--<link rel="uri" href="https://www.example.com#content"/>--> | |
</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.
After looking at Brian's comment on issue #930, it looks like we're not looking for FDQN
. I suggest you make these edits to align with his comments.
<expect id="interconnection-component-has-local-protocol" target="component[@type='interconnection']" test="count(prop[@class='local' and @name=('ipv4-address','ipv6-address','fqdn','uri')] | link[@rel='uri']) >= 1" level="ERROR"> | ||
<formal-name>Interconnection Component Has Local 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 local 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-local-protocol" target="component[@type='interconnection']" test="count(prop[@class='local' and @name=('ipv4-address','ipv6-address','fqdn','uri')] | link[@rel='uri']) >= 1" level="ERROR"> | |
<formal-name>Interconnection Component Has Local 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 local IPv4 Address, IPv6 Address, URI, or FQDN.</message> | |
</expect> | |
<expect id="interconnection-component-has-local-protocol" target="component[@type='interconnection']" test="count(prop[@class='local' and @name=('ipv4-address','ipv6-address')] | link[@rel='uri']) >= 1" level="ERROR"> | |
<formal-name>Interconnection Component Has Local 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 local IPv4 Address, IPv6 Address, or URI.</message> | |
</expect> |
# Driver for the invalid interconnection-component-has-local-protocol constraint unit test. | ||
test-case: | ||
name: The invalid interconnection-component-has-local-protocol constraint unit test. | ||
description: Test that the FedRAMP SSP interconnection component does not have local 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 local IPv4 Address, IPv6 Address, URI, or FQDN. | |
description: Test that the FedRAMP SSP interconnection component does not have local IPv4 Address, IPv6 Address, or URI. |
# Driver for the valid interconnection-component-has-local-protocol constraint unit test. | ||
test-case: | ||
name: The valid interconnection-component-has-local-protocol constraint unit test. | ||
description: Test that the FedRAMP SSP interconnection component has at least one local 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 local IPv4 Address, IPv6 Address, URI, or FQDN. | |
description: Test that the FedRAMP SSP interconnection component has at least one local IPv4 Address, IPv6 Address, or URI. |
Committer Notes
This constraint tests the following scenario:
An interconnection component has at least one local 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.