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

Set of partials == complete? #59

Open
git-ingham opened this issue Mar 7, 2019 · 7 comments
Open

Set of partials == complete? #59

git-ingham opened this issue Mar 7, 2019 · 7 comments

Comments

@git-ingham
Copy link

git-ingham commented Mar 7, 2019

It would be nice to somehow tell the system that a set of partial coverage results in a complete solution.

For example, suppose we look at "Limit system access to authorized users" (800-171 3.1.1), and we apply it to desktop users. Part of the solution comes from the security policy saying this is required, but that, by itself, is not sufficient. Part of the solution comes from the system configuration that requires authentication. Again, that, by itself is good, but not sufficient. We also want a regular configuration audit that verifies that the configuration is actually applied and active. The combination of all three of these means the issue is covered.

It might be that I need to change how I have set up the OpenControl data. I am trying to split it out by various parts (security policy, active directory configuration, audit, etc). At one of my customer organizations, they have different roles responsible for these different parts, and it is convenient for each role to have a OpenControl set for which that person is responsible.

The key thing I want to avoid is duplication of data. As an example, the network underlies many systems. I do not want to have to duplicate the network onto desktops, individual (or clusters) of servers, etc just to be able to show that the security controls provided by the network are part of (not all of!) the needed controls. Note that not all systems are connected to the organization's network; cloud-based systems should not inherit much (if anything) from the network OpenControl data.

Thanks

@git-ingham
Copy link
Author

Just another thought on this. It seems to me that this would be common. For example, using a cloud provider, the provider covers some parts, the organization covers other parts, and some parts need controls provided by both. If I was in such a situation, I presume I would include the cloud provider's OpenControl file, but I need to be able to augment it, but would rather not completely re-implement it.

@git-ingham
Copy link
Author

This looks close to what I am asking:
opencontrol/schemas#24
Adding this here because it might help others.

@shawndwells
Copy link
Member

There isn't a great way to solve this.

Often the component-level content can use partial, but then an organizational answer could be complete that outlines how each partial adds up.

@JJediny
Copy link
Member

JJediny commented Mar 17, 2019

It's not ideal but if you convert the Customer Responsibility Matrix (CRM), otherwise known as what's left for someone to do to fully implement the control, into an OpenControl certification then you can get this by layering both overlays.

But the logic isn't supported for this in current tooling, that is, there is currently no way to understand the hierarchy of implementation_status between more than one certification, but seems feasible to do.

Example:
https://gist.github.com/JJediny/bd051fefba1ca94d885ebad23d464533

opencontrol/schemas#24 (comment)

@openprivacy
Copy link
Member

If I understand what's being asked, I've used hyperGRC to implement partial coverage by multiple components for two recent federal ATOs. I have defined only four components so far - AWS, Drupal, Agency and Contractor - but I will be getting a bit finer grained on my next pass. The hyperGRC example components are already finer grained. I have a goal to publish the AWS and Drupal components and their implementation narratives (all in yaml, of course) - let me know if this would be interesting to you.

@mogul
Copy link

mogul commented Mar 18, 2019

@openprivacy I for one am very interested!

@JJediny
Copy link
Member

JJediny commented May 23, 2019

I created a diagram of the idea I mentioned above that would be great to get feedback on.

About representing the Customer Responsibilities independently from components as a new schema/yaml file I usedrequirements as a placeholder. Having another standalone file would allow for layering inheritance, allow the IaaS/PaaS/SaaS provider to maintain it independently and vendor it rather than putting it in the system control writeup, and provide a cleaner way to handle implementation_status.

DRAFT - FOR DISCUSSION ONLY
OpenControl Schema - idea on adding a new concept in requirements

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants