-
Notifications
You must be signed in to change notification settings - Fork 124
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
[WIP] Examples of Component Definitions with Rules #94
Conversation
…inting back to `rule`s.
"uuid": "a969feae-ae93-422f-8a95-9362adef826b", | ||
"title": "Check hardening guidelines for OCP kubelet instances with OpenSCAP", | ||
"condition": "kubelet is hardened with CIS OCPv4 baseline validated with OpenSCAP", | ||
"condition-tests": [ |
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.
I am not sure of the purpose of condition (it is just text)? What does condition test and steps represent.
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.
For now? Just text. At this stage in OSCAL, it will be a short summary statement in the first version. In a later revision and with certain OSCAL internals adapted or enhanced, we can have a structured condition, just not at this time.
"value": "5%", | ||
"class": "argument" | ||
} | ||
], |
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.
It seems specific rules in OCP4 CIS -
1.3.1 Ensure that garbage collection is configured as appropriate
- kubelet_eviction_thresholds_set_soft_memory_available
- kubelet_eviction_thresholds_set_soft_nodefs_available
- kubelet_eviction_thresholds_set_soft_nodefs_inodesfree
- kubelet_eviction_thresholds_set_soft_imagefs_available
are captured as steps here. This is not the intended use. Each rule under 1.3.1 above should be represented as a separate rule in OSCAL and not as step. Each of these rule can be associated with control/statement under "implemented-requirements" and evaluated separately.
Also, there should be a way to specify parameters for a rule. Same or similar construct used in catalogs for specifying parameters can be used here (inside a rule).
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.
are captured as steps here. This is not the intended use. Each rule under 1.3.1 above should be represented as a separate rule in OSCAL and not as step.
I had alluded to this when we met, but I think you could reasonably expect to do both. I guess I would need to find a way to explain this and show it in examples. Given a condition you want to test or verify from a CIS OpenSCAP baseline (or as they call it, a profile, different from an OSCAL profile, I know) do you want to all 100 tests in one rule or do? Do you want to have 100 rules separately?
In short you might have reasons for doing both.
Each of these rule can be associated with control/statement under "implemented-requirements" and evaluated separately.
I thought we support this now, maybe the examples aren't clear. That's on me!
This can be done bidirectionally, but the feedback given in a prior meeting was the linkage would go from a statement
in an implemented-requirement
. In the example look for the prop
with @name="evidence"
in the examples and you will see a UUID reference pointing to the rule, or individual steps.
Also, there should be a way to specify parameters for a rule. Same or similar construct used in catalogs for specifying parameters can be used here (inside a rule).
This will have to come after we handle parameters in a deeper way, in a later version of OSCAL. We have not forgotten!
Hi AJ, The rules & parameters & tests go hand in hand in compliance. Thus, the rules concept and the parameters concept and the tests concept should follow a parallel exposure and treatment in the OSCAL schemas. SSP it is straight forward:
Let now look at the Component Definition. I first show the schema and then I give an example for ROKS OpenShift as component_type "service", associated with OSCO, Tanium and OpesSCAP as component_type "validation". Schema:
Example for ROKS OpenShift as component_type "service":
Example for OSCO, Tanium and OpesSCAP as component_type "validation":
|
OK, @ancatri, I know we have discussed this before, but for this current iteration, I want to leave out
(As it stands now a
Thanks for your comments! I would look forward to discussing them soon enough. |
Rule is NOT a check... Rule is an English statement, it is the policy: "Ensure Software_a had config_b set to c." This takes param "config_b" We have for a given Rule in a product many ways to test , many checks. |
OK, time to update these with the redesigned model pushed up in usnistgov/OSCAL@f3e2e01. |
There have been some significant changes and I will be re-opening a new draft PR to address better exhaustive examples of the rules for usnistgov/OSCAL#1364. I will not delete the branch from my work however, if people wish to review in the interim. |
Committer Notes
These are examples of
component-definition
s that make us of therule
construct under evaluation in usnistgov/OSCAL#1058.NOTE: These are labelled WIP (Work In Progress) and are subject to change. Please report feedback on the issue, but also check for updates to the shape of the code as it changes.
All Submissions:
Changes to Core Features: