-
Notifications
You must be signed in to change notification settings - Fork 127
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
Addresses bugs in 800-53 catalog (issues 224 226 227 for OSCAL content patch 1.2.1 #228
Conversation
During the triage meeting on 12/07/2023, the team discussed issue #224 and expressed concerns that changing the OSCAL's control IDs to include leading 0s could break the implementation of current adopters, in particular FedRAMP that provides SSP templates to its users. Since the RMF team (the owners of the 800-53 catalog of controls) announced officially that the 800-53 v5.1.1 'introduces “leading 0s” to the control identifiers' NIST is proposing to replace the labels of structure:
with
Please provide feedback on the proposed approach no later than 12/08, EOB since the patch release with the bug fixed and official control identifier captured correctly is urgent. In the meantime we are proceeding with the proposal above. |
Just want to make sure I am not misinterpreting -- is the intention to update to this? (the alt-identifier tag appears to be duplicated above)
If this is the case, I think this fits with the allowed values, and retains the original element identifier found in CPRT. |
I am working towards replacing constructs like (currently in the catalog):
with
to include the control identifier as CPRT 800-53 lists it,
will have the
@Compton-NIST -- I am working towards completing it today as well and push it as a separate commit so if changes are needed, we can address them. |
…g leading zeros to accurately reflect the SP800-53 v5.1.1 release.
@wendellpiez - since you are the expert and author of the original OSCAL SP 800-53 catalog, please review for correctness beyond validation against the schema and constraints the updates addressing the reported bugs. Thank you. |
I am proceeding to review the changes responding to bug reports, but clarification is needed with respect to the change from The explanation needs to be succinct and suitable for pasting directly into the change log, so that users can find it. I wonder why more alternatives were not considered? (I can think of a couple.) Indeed I don't much like this change since it muddies the distinction between labels and identifiers (albeit an OSCAL distinction not an SP800-53 distinction), but doesn't actually add any information. But more importantly, why community was not included in this conversation? If you feel this risks derailing the PR, and if bug fixes need to be expedited, I suggest making those changes only in a separate PR. Suggestion: use
|
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.
After leading-zero changes one to PM 7 to 9, I have no objections
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 believe the proposed change to control properties has not been sufficiently discussed with users, both whether a change is warranted and what the change should be.
Accordingly, I suggest this PR be split into two: 1 patching for actual bug fixes, and 2 implementing proposed alterations in tagging patterns, with a clear and stated rationale based on actual experience (from users), not simply hearsay.
The alternative is to impose the costs of implementing changes on the users, with no clear benefits.
@Wendell - Please note:
We will not withhold the updates since FedRAMP needs an accurate catalog, free of errors. Any issue related to the new CPRT SP800-53 control IDs needs to be raised with the RMF team. Not representing the data accurately would be an error at our (OSCAL) end. |
In the above, the definition of "control ID" is not specified. Is this a data point, and if so which one? Or is it only a rule for how to represent a control in short form (its 'code' visible on a screen)? In preparation for last week's PR @aj-stein-nist (with my help) demonstrated that we could produce PDFs in "new style" with leading zeroes, without altering anything in the data and only minor changes to styling code (XSLT in the oscal-xslt repository ). RMF team lead helped us validate this functionality worked as wanted. For both these reasons, I dispute that (a) all 'corrections' in this PR address reported bugs, and (b) that the 'solution' provided is backward compatible. (While still formally valid to schemas, it breaks code designed to represent the old data. QED.) At best, it makes it necessary to make an adjustment in processing that had been optional and a matter of preference. More fundamentally, I now see an increasing difficulty in validating the correctness of this representation against its upstream source. That was bad enough when we knew that this data set was at least internally consistent. Pending control mechanisms such as Schematron reflecting design specifications (unwritten), now we are hand patching, we lose that assurance as well. I reiterate that a separate PR could be made with actual corrections, and without disturbing 'label' semantics until community has expressed preferences. Having those diffs separate would also aid greatly with transparency. |
Please check CPRT data which is the only format supported by the CPRT team.
OSCAL team is not responsible for the generation of any PDF version of sp800-53. I was informed that the CPRT data is the official source, and OSCAL team is responsible for generating an accurate representation. As an OSCAL team member, I hope you align with this direction. Any other representation of the sp800-53 is not OSCAL team's responsibility.
"Code designed to represent the old data" will have to be updated, this is not a good, ethical reason for presenting the OSCAL sp800-53 representation for being accurate.
Why is that? It has been thoroughly reviewed by @JustKuzya. He found 3 places where leading zeros were missing.
If you want to review the commits separately - please do so today, because the oscal-content patch release is being prepared. I re-iterate, the community marked it as a bug, and the RMF team lead expects us (OSCAL team) to accurately represent the CPRT sp800-53. The issue has been discussed in OSCAL internal meetings and the approach was first reviewed internally by the participants in the Thursday meeting. As a result, including the CPRT sp800-83 IDs accurately was the resolution proposed, and the above comment describing the proposed approach and the call for feedback from the community was submitted immediately after the meeting on Th last week. All your concerns of users and community members not having a say were addressed prior to raising them, through even the fact that they requested it.. |
I am seeing Also, there is an On line 76109 appears a Additionally: wherever controls are cross-linked in the data, the link (anchor element in running content) has the 'old form' in display - which is what most renderers will show. (Look for any
Finally, I am seeing the 'old' label is nowhere found in any form (that I can see). The idea that backward compatibility is being maintained rather pales in view of this, since the only way now to match old to new is via an appropriate zero-padding or unpadding algorithm. Except here:
and here
(Will write again if I find more issues or questions.) |
Another reason I am uneasy occurred to me. I am not sure the term 'alt-identifier' has any meaning when no label is offered. Aren't they now just (all) If you are changing the meaning, maybe also change the term. (Another set of inconsistencies we have to watch for is in the usage within parameters ... still looking.) |
I have been able to confirm that only one |
Were this subject to open discussion I might also suggest the prop elements with the In view of what you have stated above, a simple way to put it might be:
Potential problem if |
This comment was under one commit. Moving it here.
I can work with team to show how to write, use and maintain a Schematron for this - again, in support of a regular process. Or you can start with Schematron examples already in the repo. |
I agree but props with class=800-53a existed and have been used by the OSCAL 800-53 catalog users. Since SP800-53a is treated in CPRT as a separate data set, and uses identifiers too. It is easy to remove, much harder to add.
|
I will work on addressing your finding. Here is the list for tracking and checking them when completed:
RESPONSE: The PR #220 submitted by AJ and reviewed by you (and me) was done to implement the list of changes AJ received from the RMF team (all small or big changes). I did not see the list of changes, nor could I review all are implemented, so I only focused on OSCAL format. However, I did observe other errors in the CPRT data where referenced controls were not updated (no leading zeros and broken links). When I raised the issue, and suggest to fix them in OSCAL, I was clearly asked (as it happened in the past too) to represent the information with existing error until they will be fixed first in the future in the CPRT .
|
@wendellpiez - all finding were fixed- please see the list above. |
The semantics of 'alt-identifier' are wiggling, say what you like. Also, it bothers me that now we have three But maybe I am wrong and there will be no complaints or grumbling about it. (I only wish I thought that meant no pain either.) Please refresh the top-level Also please consider accepting PR #230, which updates the Schematrons held in the repo, so they do not report false errors on the changed data. It is made to be accepted into your branch before merging - and ideally should be tested by someone other than its developer. |
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.
Please refresh the top-level @uuid one more time, and the metadata/last-modified timestamp. (A utility in the repo can be used to do this if wanted.)
Also please consider accepting PR #230, which updates the Schematrons held in the repo, so they do not report false errors on the changed data. It is made to be accepted into your branch before merging - and ideally should be tested by someone other than its developer.
Update done. I asked the team to review and approve your PR. If they are not doing it I will. Thank you. |
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.
Thanks for adding
Committer Notes
The latest oscal-content release is 1.2.0, so this patch should be oscal-content v 1.2.1 and not 1.1.3.
(NOTE: OSCAL models latest release is OSCAL 1.1.2 and the patch was wrongly marked as 1.1.3)
Current PR addresses the following issues flagged as bugs in the 800-53 catalog:
Resolutions for those issues are documented in the issue's comments tab.
All Submissions:
Changes to Core Features: