-
Notifications
You must be signed in to change notification settings - Fork 195
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
Catalog control parts require NIST-specific part structure even with a different namespace #2112
Comments
@xee5ch - The issue you are raising is not a bug - it was determined at the time the catalog schema was created, that a control cannot exist without a statement that needs to be considered for implementation and assessment. With that said, there are catalogs I am aware of that would have informative statements (not a requirement) with normative children controls. I will put this issue in the queue, but will remove the "bug" label for the reasons stated above. |
The key detail I mentioned in the bug report and the sample catalog is that NIST asserts that is true for use of OSCAL/src/metaschema/oscal_catalog_metaschema.xml Lines 254 to 266 in 1eb7d81
If not, non-NIST usage must always use statement, and really perhaps SP800-53? There are many errors in NIST SP 800-53's catalog around invalid I still believe the reported issue to be a bug that needs fixing, and I will make a PR. Feel free to change the label. EDIT: I pasted the wrong relevant constraint to prop; I updated to include the actually relevant one for |
@xee5ch - If you recall issue #1949 - this constraint was discussed there too. You had a position there as well, but for CSF (and EUCS) to be able to use a proper representation of the information I added "overview" as allowed value for 'core OSCAL' content (namespace 'http://csrc.nist.gov/ns/oscal'). For EUCS and others a different namespace allowed for other values. If I understand you correctly, you argue that other namespaces cannot use any other value but "statement". Can you please provide the version of the |
I reviewed what you and @aj-stein-nist said. In short, it would seem that you and your staff expanded the enumerated allowed-values for NIST-defined part types to include overview (for all catalogs that have a control broken down into parts, [CSF 1.x, CSF 2.x, SP 800-53; technically CSF does not have controls, but functions, categories, and subcategories and they never use the word control). That is all well and good, but what if I want to specifically say, outside of NIST's use of overview or statement, or I want to identify my specific organization's use of statement being different from NIST, how would I do that? In #1949, it would seem you worked with the team to collapse CSF and SP 800-53 uses of pieces of controls for controls and other non-control items ( The answer to that is
So let's go back to the really important question in your follow-up comment.
Almost. I am saying that the constraint code must be further refined to allow for both your allowed-values and others. This related constraint I reported as a big does not account for parts that are not in the default namespace.
Given the logic, anyone who uses a non-core-namespace part will always require a
I can test this with github.com/usnistgov/oscal-cli and github.com/metaschema-framework/oscal-cli, you will get the same constraint violation report for the former. Therefore, I will propose a more specific constraint target later today if you do not have objections.
I mean, me too? That is why I file the issues and work on them. If you would prefer I report them and fix them somewhere else, let me know. |
Also since you asked about versions, I was able to go from |
@xee5ch - Thank you for running the Please note that an 'OSCAL control' is used to represent anything that one would like to assesses or monitor. One can even create a catalog with policy requirements mapped (using the mapping model) to "safeguards" that can be assessed or monitor, and use such approach to continuously report on compliance. CSF categories and subcategories are used around the world to secure systems and compliance against it is expected. the CRI profile (in OSCAL) is a profit based on CSF v2) and it is used by the financial sector - see OSCAL Foundation event (financial sector panel discussion). I'll work on this issue (and others) when I'll be back in the office. |
To answer the direct question, if you, as a person in NIST representing one some or all catalogs add interpretations of control types and they are not documented (or conflict with one I will document elsewhere in a registry of extension values), how can I delineate that without a namespace? Are you implying or directly asking me to add
Where is this documented? I cannot find anywhere in the models or supporting pages.nist.gov documentation that states it. That's a first for me.
So you are saying you will code a change to the constraint? I assume you meant review the issue. I can draft a PR later today unless I hear otherwise. |
This approach adjusts the oscal-catalog-control-require-statement-when- not-withdrawn constraint to look at the core NIST and non-core namespace for parts to properly constrain the required existence of a statement or withdrawn prop status value for NIST-specific catalog use cases.
Instead of adjusting the constraint, this changes alternatively proposes updating the enumeration with a new enum value of "recommendation." This may be the proposal of @iMichaela in the comment below, and this change proposal is to determine if it is the preferred approach.
Describe the bug
As a developer of OSCAL catalog content and using OSCAL-enabled tools, I would like to be able to define a control without
part[@name="statement"]
or a correspondingprop[@name="status]/@value
of"withdrawn"
for parts outside of the OSCAL namespace.This requirement is enforced by the
oscal-catalog-control-require-statement-when-not-withdrawn
constraint below, which needs to be adjusted.OSCAL/src/metaschema/oscal_catalog_metaschema.xml
Lines 222 to 230 in 1eb7d81
Who is the bug affecting
Developers of OSCAL catalogs with data that is not in the core OSCAL namespace.
What is affected by this bug
Metaschema, Modeling
How do we replicate this issue
Expected behavior (i.e. solution)
This catalog validates without an error.
Other comments
I will propose a more targeted constraint change in an upcoming PR to resolve this issue.
Revisions
No response
The text was updated successfully, but these errors were encountered: