Clashing constraints in the assessment layer - Interpreting the XPath #1968
Replies: 9 comments 6 replies
-
@wendellpiez - Thank you for the detailed explanation of the XPath describing the constraints. Please note that Regarding RULE: 3 you translate it as referring to a Here is my sample (exerpt):
It fails the
|
Beta Was this translation helpful? Give feedback.
-
Changing
reduces the number of errors to only 2, but they are still conflicting and confusing.
**Should this analysis conclude that OSCAL constraints have a bug revealed by the |
Beta Was this translation helpful? Give feedback.
-
This is interesting. It suggests a different set of errors, probably 'allowed-values' errors on the It could be either of (b) or (c), assuming my reading of the first XPaths is correct. Someone closer to oscal-cli can say which. I can also look more closely to identify the rules that are being fired here, to help determine if there are logical conflicts between the rules. (In a perfect world, "reference examples" would already have flushed out those problems, but here we are.) |
Beta Was this translation helpful? Give feedback.
-
So here are two OSCAL/src/metaschema/oscal_assessment-common_metaschema.xml Lines 1769 to 1777 in 4f02dac Note that they cover only I suggest trying |
Beta Was this translation helpful? Give feedback.
-
The core OSCAL syntax (under the NIST OSCAL namespace
However, you'll notice the 800-53r5 catalog, has This was apparently changed to be an RMF extension at some point after AJ's example was created. Simply add the RFM namespace to the example above and that error will no longer be flagged. The core OSCAL metaschema needs to do a better job of only including core OSCAL, and not RMF extensions. Those RMF extensions need to be defined and documented separately, just like the FedRAMP extensions. As for the four HAS CARDINALITY rules flagged above, here is my analysis:
|
Beta Was this translation helpful? Give feedback.
-
@brian-comply0 - Thank you for your suggestion. Unfortunately, the RMF namespace is not applicable to an example like the one I created since the example is not RMF specific. It is part of the core OSCAL model, and if those constraints are needed in the OSCAL AP, then we need to properly define them and fix the bug revealed while working on an OSCAL Assessment Plan (AP) example. The bug might appear in other models as well, and further investigation is needed.
|
Beta Was this translation helpful? Give feedback.
-
I see what you are saying. In that case, the core OSCAL syntax should allow the "method" property in that context; however, the core OSCAL syntax should enumerate allowed values of "EXAMINE", "INTERVIEW" and "TEST" while setting allow-others to "yes". NIST RMF Team can further define that in the context of RMF no other values are acceptable.
Best Regards,
Brian J. Ruf, CISSP, CCSP, PMP | Director of Cybersecurity | Easy Dynamics Corp<https://www.easydynamics.com/>
T: 703-214-3410
***@***.***
…----
Interested in developing OSCAL-enabled tools? Check out https://OSCAL.io<https://oscal.io/>
________________________________
From: Michaela Iorga ***@***.***>
Sent: Tuesday, January 9, 2024 12:58 PM
To: usnistgov/OSCAL ***@***.***>
Cc: Brian Ruf ***@***.***>; Mention ***@***.***>
Subject: Re: [usnistgov/OSCAL] Interpreting some XPath (Discussion #1968)
This was apparently changed to be an RMF extension at some point after AJ's example was created. Simply add the RFM namespace to the example above and that error will no longer be flagged.
@brian-comply0<https://github.com/brian-comply0> - Thank you fro your suggestion. Unfortunately, the RMF namespace is not applicable to an example like the one I created since the example is not RMF specific. It is part of the core OSCAL model, and if those constraints are needed in the OSCAL AP, then we need to properly define them and fix the bug revealed while working on an OSCAL Assessment Plan (AP) example. The bug might appear in other models as well, and further investigation is needed.
***@***.*** and ***@***.*** constraint issues are also identified in #1972<#1972>.
—
Reply to this email directly, view it on GitHub<#1968 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AZJTI4ZPJRP2YW4LUIUO2PDYNWAK7AVCNFSM6AAAAABAU6IHQ6VHI2DSMVQWIX3LMV43SRDJONRXK43TNFXW4Q3PNVWWK3TUHM4DANZQGE4TI>.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
If others are interested in better understanding the conversation and what to try it, here is the AP example:
Validation with
NOTE A: /part/prop/@name='method' is used in the NIST 800-53 catalog (for the 800-53A) and it is passing the NOTE B:
|
Beta Was this translation helpful? Give feedback.
-
We have been discussing the need for better indexing and access to constraint definitions for some time now. Additionally, as @GaryGapinski and @david-waltermire also know (part of why this is frustrating to those of use who have been looking at this), some skills using XML-capable query technologies could rapidly mow this lawn, if used carefully. However, such developers are apparently scarce and those that are available are already oversubscribed - while at the same time even XQuery is useless if you don't know first what to look for, or can't confirm it when you think you've found it. To make matters worse, as Metaschema rolls out new features for supporting out-of-line constraints definitions, any indexing of constraints definitions (static or dynamic) may have to be realigned. |
Beta Was this translation helpful? Give feedback.
-
The assessment-common metaschema module contains some rules that can benefit from elucidation:
OSCAL/src/metaschema/oscal_assessment-common_metaschema.xml
Lines 71 to 74 in 4f02dac
All of these rules pertain to elements defined as "local-objective", including
<objective-and-methods>
.RULE 1:
There may not be more than one
part
namedobjective
orassessment-objective
RULE 2:
There must be a single
prop
namedmethod
in a part namedassessment
orassessment-method
. Yes, this entails the requirement that thepart
also exists.RULE 3:
Likewise there must be a single
prop
namedobjects
orassessment-objects
in apart
namedassessment
orassessment-method
.RULE 4:
And there must be at least one
prop
namedmethod-id
in a part namedobjective
orassessment-objective
as well.EXAMPLE:
A valid construct would look like this (untested), with
@ns
values being implicitly assigned to the OSCAL namespace:If anything seems amiss here, it could be either (a) errors in the above, (b) expressions not correctly registering designers' intent, or (c) design problems.
In view of the possibility of (a) could we verify my interpretation against current tooling?
Beta Was this translation helpful? Give feedback.
All reactions