-
Notifications
You must be signed in to change notification settings - Fork 92
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
SSP Completeness Checks: 9 Services, Ports, and Protocols #806
Comments
Per @aj-stein-gsa: Check #881 and #882 for alignment with this issue. |
[I wrote this comment almost two weeks ago, but just found it unsaved in a browser tab.] PPS is addressed strictly using Similarly #882 is specifically about inventory items having an asset-id. This also has no impact to our approach to modeling PPS for FedRAMP SSPs. |
By the time we moved ahead the work was almost done, so I let it go (I realized I had not properly categorized the constraints, but the scope of work was clear and in review before I could recategorize). Apologies. 🤦 So I should have update this issue and had not. |
From the SSP:
|
AnalysisThe term "service" as it is used above is similar, but not equivalent to an OSCAL "service" Component. For example, an IaaS provides a PostgreSQL server database service to a SaaS customer. The SaaS SSP documents the entire database service as an OSCAL "service" component. This OSCAL component lists the PostgreSQL product and version, indicates who administers it, and includes a The SSP ports, protocols and services table is intended to be a summary of that SummaryEvery component that "listens" on one or more ports must have a If this is enforced, the OSCAL ports, protocols and services table becomes a summary of required documentation. |
If we can have components with one direction that is outgoing, does that not mean it is more whatever port is used for ingoing or outgoing communication if not in the ephemeral range? We can have "write-only" outbound services that are not daemonized system services listening on a TCP/UDP/what-have-you-port, correct? |
@aj-stein-gsa Sorry - I stepped away from dinner while I was still working here, but I'm not sure I fully follow your question. The PPS is about the communication happening within the boundary between components or across the boundary. To the best of my understanding of the way IP works, one component has to be "listening" for another component to initiate communication. The initiating component uses a random port to do so, while the "listening" component is on a pre-defined port. It's the pre-defined ports we are interested in capturing, as well as the protocol and IANA-registered service name associated with those ports. I think it's also important to clarify that the direction of information flow is separate from the direction of connection initiation.
Regardless, we are interested in the ports on Component B and the protocols associated with those ports. Even if Component A is only writing. The NIST OSCAL definitions for incoming and outgoing are data focused:
Although this raises a good point that a few of the constrains I defined for Table 7-1 may have inadvertently conflated data flow and connection initiation. I added a comment to #930 suggesting we pause any work involving |
Sure thing.
My question is hypothesizing that Component A is part a system in boundary that communicates only with Component B as a form of interconnection to offload application logs in a secure append-only location. Component A can only send log records to B with outgoing communication over HTTPS (TCP 443 for a client to send data to the consuming service, very much like but not exactly the Splunk HTTP Event Collector or HEC; many log provider services operate this way). So my question given this scenario: do inventory items that compose Component A have to declare HTTPS (TCP 443) even though the listening daemon on HTTPS inventory items that compose Component B? I'll skip the ephemeral port stuff and not complicate it further but this still for A is outgoing only and does not have a service listening so I am curious if and how the protocol declaration for inventory is required. |
Constraints NeededThe following component types MUST have a
The following MAY also have a
Further, any Constraints
NOTE: Documentation to be handled in GSA/automate.fedramp.gov#131 |
This is a great example, and it's considered a Scenario 3 from #808.
Because it listens on 443/SSL, component B would have a If Components A, X, Y, and Z all send their logs to Component B, then Component B would have four "used-by" links:
There is no content required within Component A's information regarding its communication with Component B. The many-to-many relationship that can exist when documenting communication pairs among components is only documented on the "listening" side in OSCAL. |
@aj-stein-gsa / @Rene2mt this is ready to have tasks issued against it |
This is a ...
fix - something needs to be different
This relates to ...
User Story
As a consumer of FedRAMP automated completeness checks I want the following OSCAL-based SSP items to be automatically verified for completeness by metaschema constraints:
Goals
SSP Completeness checks are defined, tested and documented
Dependencies
No response
Acceptance Criteria
Other information
No response
TASKS
The text was updated successfully, but these errors were encountered: