-
Notifications
You must be signed in to change notification settings - Fork 183
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
component-definition needs implementation-status #1300
Comments
@degenaro -as earlier discussed, OSCAL component definitions are not meant to describe implemented components, but rather suggest to or guide system owners that are using respective components for their systems how to securely configure them and the controls associated. The component in an OSCAL SSP will be the implemented component. |
Description of implementation status from OSCAL doc: The component owner, being the author of the component definition, is in the best position to provide this information and should be given the opportunity to do so. |
I think @degenaro makes an important point. If a component represents a common control providing service, such as an enterprise authentication service (aka "SSO"), then it is very helpful to know within the SSO's OSCAL component model what controls were implemented for the SSO (and any control implementation status). Is the SSO component implemented at the organization or not? Some may argue that because the SSO is a service and has its own SSP, then the SSO cannot be a component; and is simply used via an interconnection and a leverage SSP. That also makes sense...and then raises the question if there is a rule about what can be defined as a component? It seems there should be a rule. Either the SSO is a component and therefore the status should be represented in the component model; or the SSO is not a component but an interconnected system and has a System SSP to be leveraged and no component model. If the choice of what is a component is left the organization, then some organizations will say the SSO is a component and we're back to it being useful to have status information in the SSO OSCAL component model. In can also be the case that a component is implemented at the organization level (e.g., the SSO works and has controls), but the control is not yet implemented for a particular system SSP because particular system is still in the process of integrating the SSO. |
The way I think this should work is:
|
Thanks for your comments Greg & Michaela. If you look at Figure 1 and Table 1 here https://www.ibm.com/cloud/blog/compass-compliance-part-1 it is evident that the control provider, who authors the component-definition, is the one best able to "indicate the degree to which a given control is implemented". |
As @iMichaela indicates, a Both If we were to add an To add to this, just because a product supports a control, there is no gaurantee that the information system is relying on this feature or even has that feature configured to provided the control support. This is why the information system NEEDS to declare this information. Given the above, I don't see a strong argument for why @gregelin "a common control providing service, such as an enterprise authentication service (aka "SSO")" needs to be documented (option 1) using an OSCAL @degenaro The "control provider, who authors the component-definition" does know what is implemented in their software/service, so they should document the control implementation in the related |
@degenaro The NIST team would be glad to work with you on a concrete example of how all of this works to test in your tooling. We are here to help. |
@gregelin and @degenaro - To highlight the points @david-waltermire-nist is making, let's use one concrete example: |
Still not following, sorry. The very first sentence here says |
@iMichaela @david-waltermire-nist Thank you for your explanations which make perfect sense for the use cases you mention. Our cloud use case is. slightly different in the sense that the system owner subscribes to a service with controls already implemented. Before subscription there is no system , so no SSP. As the control implementer is the service provider, we need to allow them to declare the implementation-status to guide the customer system owner. |
@iMichaela @david-waltermire-nist @degenaro - This is a terrific thread. The specificity in each comment is very useful and I personally find it very helpful. Thank you. @iMichaela @david-waltermire-nist both state that the SSO service would have its own ATO, therefore its own SSP, and that seems to suggest the proper way to include the SSO in the target system's SSP is via a leveraged authorization. I recommend NIST defines that as a formal rule and part of the standard. (If that is already the rule and intention of the standard, my bad for missing it and how can I help spread the word?) @degenaro, your referenced Figure 1 diagram is terrific. Did IBM create it? You should add a credit line to it and let everyone use the documentation.) I also agree very much with your quoted text on the OSCAL component definition model. It's very easy to read that and think the control implementation status is defined within the component definition model. I want to build to the rules:
The above rules leaves a couple of question...
I think Michaela's steps is very clear and helpful and the concrete details of the Azure example is very helpful. I think these types of thoughts belong in a document called, "OSCAL by Examples." I also like David's path description of the content. I don't why I didn't notice it before. It's a very helpful convention. |
Having an example that describes @ancatri scenario would be very useful. I think it is a common scenario in cloud environment that has orchestration for deploying the target system, or from another perspective delivering specific functionality in the form of (A) partially or wholly pre-configure components into a target systems effective operational deployment or (B) separately managed services that the targeted system registers with upon operational deployment. |
@gregelin - NIST (RMF team) is not prescriptive beyond the guidance in 800-37 rev2 regarding Athorizations to Use (previously known in 800-37 as leveraged authorization). OSCAL is designed to be flexible and useful in many scenarios. |
We are finding it useful for component authors to indicate (in the CDEF)
External to the component will be agency maintained metadata that provides records containing a pointer to the component along with its vetted status (by who, when, trust "score") and usage statistics. This could influence the |
@degenaro and @ancatri - Neither @david-waltermire-nist nor I disagree with you over the fact that the provider of an implemented solution/service knows best a "service with controls already implemented". We only point out that the OSCAL SSP should then be used and not the OSCAL CDef. This is why CSPs are submitting SSPs to FedRAMP to be used for the P-ATOs and not CDefs. CRMs are also important to convey customer responsibilities. |
@degenaro - The Azure Active Directory (the instance I mentioned !! not all of them) was assessed and authorized at IL5 which demonstrates how secure the implemented system (!) is. This ATO at IL5 includes the IA and AC controls of the Active Directory as. a. system, controls used by the admins to maintain the service (the CSP's employees). The service provided to others though is a password-based authentication IDaaS. and not an MFA, and because of the bug I mentioned, the password length and complexity cannot be changed (or could not be changed 2 months ago) as described in the documentation due to the hardening of the system and the default configuration allows only for passwords with 8 characters and reduced complexity. The CDef of the Active Directory as a component of another system, will not describe an IL5 capability, nor will it include the Active Directory's own controls. Whoever users of the Active Directory- the ones that want to use it to control access to their systems, will have to use the dashboard to configure the service (aka finish implementing the component and associated controls for their system) and decide, in the process, the password length and complexity (when the bug I mentioned will be fixed).
I hope this helps... |
Given access to a library of reusable components, it seems reasonable that component controls could make the claim that they fully implement the control (and thus may be considered "Fully Inherited") or they may only partially implement the control ("Hybrid"). In either case, the ISSO managing the SSP must decide if they will consider the controls as fully inherited or not, but such hints will be useful. |
@openprivacy - we have in our oscal-content repo a component definition example which describs MongoDB's TLS which would implement SC-8(1) BUT it requires the customer to configure it in order to enable it. The component definition describes the control implementation, but until MongoDB becomes part of a system and the system owner accepts to configure the TLS 1.x & documents it, the control is not implemented. There is a risk when marking such control 'implemented', that a system owner might misinterpret it as fully done and not configure. |
@iMichaela Thank you for the pointer. Two related questions:
|
These are all good points, @openprivacy but I sense that the |
At the 11/2 Triage Meeting: This is currently being partially worked as part of DEFINE: Spiral 4 |
Following the research done as part of the DEFINE spiral 4, the issue will be (experimentally) addressed in the release candidate OSCAL 1.3.0 by allowing the declaration of the |
User Story:
As an OSCAL component-definition author, I need to be able to specify the implementation-status of my component.
Goals:
The system-security-plan.control-implementations.implemented-requirements comprises by-components.implemenation-status.
The best place to author the component implementation-status is in the component-definition by the component owner.
For a cloud provider, services SSP component rules and (with this change) implementation-status are inherited from the provider declaration in the component-definition.
Dependencies:
N/A
Acceptance Criteria
The text was updated successfully, but these errors were encountered: