-
Notifications
You must be signed in to change notification settings - Fork 193
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
Profile specification #1017
Profile specification #1017
Conversation
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.
Here are a few comments. I'll continue to add more in a separate review.
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
<p>A <term>profile</term> in OSCAL represents a selection and configuration of a set of | ||
<term>controls</term>. In the normal case, the set of controls available to a profile is | ||
provided by a catalog. For example, the three NIST SP 800-53 profiles representing the | ||
impact baselines HIGH, MODERATE and LOW: each of these calls on a catalog representing the | ||
families, controls and control enhancements described in SP 800-53/53A. In a data | ||
processing system, this dependency can be modeled in the form of separate documents or | ||
data instances - the (nominal) <q>catalog</q> and its <q>profile</q>, the latter being a | ||
selection, adaptation and organization of controls, as distinct from the catalog from | ||
which those controls are derived.</p> | ||
<p>However, profiles may also select controls from profiles, thus deriving them from | ||
underlying catalogs as modified by those profiles. This feature enables an organization | ||
that wishes to promulgate guidelines or requirements to do so by publishing a set of | ||
customizations to an existing catalog, rather than create a catalog from scratch. Profiles | ||
can also arrange combinations of controls from more than one catalog or profile origin, | ||
making it possible to use them to support the creation of hybrid catalogs. </p> | ||
<p>In the general case OSCAL must support sourcing more than one catalog at once, in order | ||
to aggregate and organize controls from disparate sources. For example, it should be | ||
routine for a profile to acquire its controls from an authoritative standard catalog, plus | ||
a local supplement. But multiple catalog inputs, especially when they are produced and | ||
sourced independently of one another, may not combine without issues. In order to provide | ||
sensible and transparent results even for incoherent inputs, this specification defines | ||
these processes such that legible and testable results are produced even when they are | ||
formally invalid to constraints governing the outputs. Such downstream processing errors | ||
including validation errors are expected to be detectable and remediable. This especially | ||
applies to situations where multiple catalogs are sourced, or where the same catalog is | ||
sourced more than once, directly or indirectly.</p> | ||
<p>In order to support these semantics – because whatever data set is sourced by a profile, | ||
it must <q>look like a catalog</q> – the results of resolving a single profile must be in | ||
the form of a single catalog. Two different OSCAL processors that promise profile | ||
resolution, must deliver, for the same input, the same catalog with regard to its | ||
contents: which controls are included; their ordering (insofar as the target format | ||
represents ordering); and the structure (groups) in which they are embedded. This | ||
specification is designed to make this possible, by defining outputs with sufficient rigor | ||
that <q>the same</q> is meaningful and testable in this context.</p> |
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.
This is more a description of profile resolution (and profiles), which should be moved into the introduction/purpose. This section doesn't adequately define what the scope of this document is. Consider focusing this text on what this document covers directly.
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.
As I understand @stephenbanghart hasn't done much with this section yet? Agree it could be flattened and cut. One or two bits (such as how outputs may not be formally valid to OSCAL for bad inputs) could be pulled to elsewhere? Other bits might already be stated elsewhere, or not worth stating.
Also with DW wonder if the header is right for this section at least as it stands. Basically I think it says "btw because of the way catalogs work in the wild, profile resolution cannot guarantee OSCAL valid outputs for any arbitrary combination of valid OSCAL inputs (catalogs and/or upstream profiles). I think that is correct but not sure where/how it should be stated.
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.
@wendellpiez Yes. I believe what you are stating above is correct.
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 agree with Dave. You can think at "Why" we need a clear specification that defines the rules, vs "How" or the resolution rules (scope) of specification.
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.
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
operations over <q>raw catalogs</q> be supported by a profiling mechanism. We must be able | ||
to select controls; we must be able to arrange them in order (or not); and we must be able | ||
to qualify or condition them by setting parameters defined for them and making adjustments | ||
to them. </p> |
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 may be also necessary to tailor controls by adding or removing information to provide more context for a given use of the controls.
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.
#1043
Could you elaborate a bit more on your suggestion?
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.
You talk about making adjustments. You should call this tailoring.
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
src/specifications/profile-resolution/profile-resolution-specml.xml
Outdated
Show resolved
Hide resolved
Remaining blockers for first draft are resolved. Once Metaschema changes pass validation I'd consider the PR ready for it's develop merge. Re-requesting review to verify. |
e96eb93
to
ade0245
Compare
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.
LGTM. Thanks for all the hard work on this draft!
* Updated readme in utils/util (usnistgov#1014) * First draft of profile resolution specification rework * Integrated feedback from 8/31 meeting w/Dave and Wendell * Removed of Explicit/Implicit selection. Added last examples, Target section cleanup * Resolves usnistgov#1046 usnistgov#1043 usnistgov#1042 usnistgov#1041 usnistgov#1040 usnistgov#1039 * Added "flat" * Update specml-html-preview.xsl Co-authored-by: David Waltermire <[email protected]> Co-authored-by: Wendell Piez <[email protected]> Co-authored-by: Stephen Banghart <[email protected]>
* Updated readme in utils/util (usnistgov#1014) * First draft of profile resolution specification rework * Integrated feedback from 8/31 meeting w/Dave and Wendell * Removed of Explicit/Implicit selection. Added last examples, Target section cleanup * Resolves usnistgov#1046 usnistgov#1043 usnistgov#1042 usnistgov#1041 usnistgov#1040 usnistgov#1039 * Added "flat" * Update specml-html-preview.xsl Co-authored-by: David Waltermire <[email protected]> Co-authored-by: Wendell Piez <[email protected]> Co-authored-by: Stephen Banghart <[email protected]>
Committer Notes
PR to merge profile resolution specification into origin. Total document rework, includes several small model changes.
All Submissions:
Changes to Core Features: