RFC: New OSCAL Model - Reference Taxonomy for Classification Schemes #2194
ivproduced
started this conversation in
Ideas
Replies: 1 comment
-
|
@ivproduced - Thank you for your submission. I hope the community will provide their perspective. Our NIST team will also carefully review the proposal and will promote the RFC to engage the community's members. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
OSCAL Reference Taxonomy Model Proposal
Date: February 13, 2026
Proposed By: euCann Development Team (IVProduced)
Target: Future OSCAL release (major or minor)
Current OSCAL Version: 1.2.0 (December 2025)
TL;DR
OSCAL lacks a standardized way to represent classification schemes like NIST SP 800-60 information types, MITRE ATT&CK techniques, and CWE weaknesses—forcing organizations to use workarounds that break interoperability. This proposal introduces a new Reference Taxonomy model that provides machine-readable representations of these classification systems, enabling consistent references across SSPs, assessment results, and component definitions without requiring schema changes to existing
Executive Summary
This proposal introduces a new OSCAL model type: Reference Taxonomy, designed to provide machine-readable representations of classification schemes, taxonomies, and reference data that are frequently cited in security and compliance documentation but do not fit the existing action-oriented OSCAL models (Catalog, Profile, SSP, Assessment, POA&M).
Demonstration Files
Complete, valid OSCAL-formatted example files accompany this proposal:
reference-taxonomy-sp800-60-example.xml - Complete SP 800-60 reference taxonomy in XML format (7 representative information types with full metadata, FIPS 199 impact levels, and classification dimensions)
reference-taxonomy-sp800-60-example.xml
reference-taxonomy-sp800-60-example.json - Same content in JSON format, demonstrating format interoperability
reference-taxonomy-sp800-60-example.json
reference-taxonomy-ssp-integration-example.xml - SSP example showing how to reference taxonomy items using existing OSCAL patterns (
categorization,prop,back-matterresources)reference-taxonomy-ssp-integration-example.xml
These files follow OSCAL conventions for metadata, linking, parties, and back-matter. While the
reference-taxonomymodel is proposed and not yet part of the official OSCAL specification, these files demonstrate how it would integrate with existing OSCAL structures and tools.Problem Statement
Current Gap in OSCAL
OSCAL currently provides excellent models for representing:
However, OSCAL lacks a standardized model for representing classification reference data that:
Current Workarounds and Limitations
Organizations currently resort to:
Forcing taxonomies into Catalog format
Embedding in SSP system-information
Custom extensions or proprietary formats
External reference links only
Use Cases
Priority Use Case: NIST SP 800-60 Information Types
Current Challenge: SP 800-60 Vol 2 Rev 1 defines 171 information types with FIPS 199 impact levels (Confidentiality, Integrity, Availability). Organizations must reference these when:
Problem: No standard OSCAL way to represent this taxonomy
Example Information Type:
Additional High-Value Use Cases
1. MITRE ATT&CK Framework
2. Common Weakness Enumeration (CWE)
3. CAPEC (Common Attack Pattern Enumeration)
4. Data Sensitivity Classifications
5. Asset Criticality Tiers
6. Compliance Jurisdiction Mapping
Proposed Model Structure
Design Principle: Reuse OSCAL Common Patterns
This model deliberately reuses OSCAL's existing
prop,part, andlinkassemblies rather than introducing custom structures. Classification metadata is expressed through typed properties, and rationale or narrative content usespartelements, consistent with how catalogs represent control metadata.Core Element:
<reference-taxonomy>JSON Structure
{ "reference-taxonomy": { "uuid": "[uuid]", "metadata": { "title": "Taxonomy Title", "published": "[datetime]", "last-modified": "[datetime]", "version": "[version]", "oscal-version": "1.2.0", "props": [ { "name": "taxonomy-type", "value": "[type]" }, { "name": "source-document", "value": "[source]" }, { "name": "authority", "value": "[authority]" } ], "links": [ { "rel": "source", "href": "[original-specification-url]" } ] }, "groups": [ { "id": "[group-id]", "title": "Group Title", "taxonomy-items": [ { "id": "[item-id]", "title": "Item Title", "description": "Detailed description", "props": [ { "name": "confidentiality", "value": "fips-199-low", "class": "impact-level" }, { "name": "integrity", "value": "fips-199-low", "class": "impact-level" }, { "name": "availability", "value": "fips-199-low", "class": "impact-level" } ], "parts": [ { "name": "confidentiality-rationale", "prose": "Justification text." }, { "name": "integrity-rationale", "prose": "Justification text." }, { "name": "availability-rationale", "prose": "Justification text." } ], "links": [ { "rel": "reference", "href": "https://doi.org/10.6028/FIPS.199" } ] } ] } ], "back-matter": { "resources": [ { "uuid": "[resource-uuid]", "title": "Source Document", "rlinks": [ { "href": "[url]", "media-type": "application/pdf" } ] } ] } } }Concrete Example: SP 800-60 Information Type
XML Example
JSON Example
{ "reference-taxonomy": { "uuid": "98af4f8d-2cd4-4de7-a176-32e4f2e0e0f1", "metadata": { "title": "NIST SP 800-60 Volume II Revision 1 Information Types", "published": "2008-08-01T00:00:00Z", "last-modified": "2026-02-12T00:00:00Z", "version": "Revision 1", "oscal-version": "1.2.0", "props": [ { "name": "taxonomy-type", "value": "information-classification" }, { "name": "source-document", "value": "NIST.SP.800-60v2r1" }, { "name": "authority", "value": "NIST" } ], "links": [ { "rel": "source", "href": "https://doi.org/10.6028/NIST.SP.800-60v2r1" }, { "rel": "canonical", "href": "https://csrc.nist.gov/publications/detail/sp/800-60/vol-2-rev-1/final" }, { "rel": "related", "href": "https://doi.org/10.6028/FIPS.199" } ], "roles": [ { "id": "authoritative-source", "title": "Original Document Authority" } ], "parties": [ { "uuid": "8238c306-4ee0-4321-a4fb-503adda3d8c1", "type": "organization", "name": "National Institute of Standards and Technology", "short-name": "NIST", "links": [ { "rel": "website", "href": "https://www.nist.gov" } ] } ], "responsible-parties": [ { "role-id": "authoritative-source", "party-uuids": ["8238c306-4ee0-4321-a4fb-503adda3d8c1"] } ] }, "groups": [ { "id": "C.2-management-of-government-resources", "title": "C.2 Management of Government Resources", "props": [ { "name": "category", "value": "mission-area" } ], "groups": [ { "id": "C.2.1-controls-and-oversight", "title": "C.2.1 Controls and Oversight", "props": [ { "name": "subcategory", "value": "function" } ], "taxonomy-items": [ { "id": "C.2.1.1", "title": "Corrective Action", "description": "Corrective Action involves the enforcement functions necessary to remedy programs that have been found non-compliant with a given law, regulation, or policy.", "props": [ { "name": "confidentiality", "value": "fips-199-low", "class": "impact-level" }, { "name": "integrity", "value": "fips-199-low", "class": "impact-level" }, { "name": "availability", "value": "fips-199-low", "class": "impact-level" }, { "name": "categorization-system", "value": "http://doi.org/10.6028/NIST.SP.800-60v2r1" } ], "parts": [ { "name": "confidentiality-rationale", "prose": "The confidentiality impact level is the effect of unauthorized disclosure of corrective action information on the ability of responsible agencies to remedy internal or external programs that have been found non-compliant. Unauthorized disclosure of most corrective action information should have only a limited adverse effect on agency operations, assets, or individuals." }, { "name": "integrity-rationale", "prose": "The consequences of undetected unauthorized modification or destruction of corrective action information can conceivably compromise the effectiveness of compliance enforcement actions. Unauthorized modification or destruction of most corrective action information should have only a limited adverse effect." }, { "name": "availability-rationale", "prose": "The availability impact level is based on the specific mission and the data supporting that mission. In most cases, disruption of access to corrective action information can be expected to have only a limited adverse effect." } ], "links": [ { "rel": "reference", "href": "https://doi.org/10.6028/FIPS.199", "text": "FIPS 199 Impact Levels" } ] } ] } ] } ], "back-matter": { "resources": [ { "uuid": "f5b38e5f-0e4d-4c57-8d7a-1b2c3d4e5f6a", "title": "NIST SP 800-60 Volume II Revision 1", "rlinks": [ { "href": "https://doi.org/10.6028/NIST.SP.800-60v2r1", "media-type": "application/pdf" } ] }, { "uuid": "a1b2c3d4-e5f6-4890-abcd-ef1234567890", "title": "FIPS Publication 199", "rlinks": [ { "href": "https://doi.org/10.6028/FIPS.199", "media-type": "application/pdf" } ] } ] } } }Referencing Taxonomies in Other OSCAL Models
The reference-taxonomy is designed to be consumed by existing OSCAL models using existing linking patterns already available in OSCAL—primarily
link,prop, andback-matterresources. No schema changes to existing models are required for basic integration.In SSP (System Security Plan)
SSP already supports
information-typewithcategorizationreferencing SP 800-60. The taxonomy provides the machine-readable source:Key design decisions:
categorizationelement (no schema change to SSP)propwithclass="reference-taxonomy"andback-matterresourceback-matterresource pattern is how OSCAL already references external documents (seeimport-profileandleveraged-authorizationpatterns)confidentiality-impact/integrity-impact/availability-impactassemblies withbase,selected, andadjustment-justificationIn Assessment Results
Findings can reference taxonomy items using existing
propandlinkpatterns. In theobservationorfindingassemblies:Key design decisions:
propwithnsattribute for namespace-qualified identifierslinkwithrel="reference"patternback-matterresource at theassessment-resultsroot level (per OSCAL AR schema)In Component Definition
Key design decisions:
propentries withnsallow referencing multiple taxonomy itemsback-matterresource pattern for taxonomy resolutionImplementation Considerations
Schema Changes Required
New metaschema module:
oscal_reference-taxonomy_metaschema.xmloscal_metadata_metaschema.xml,oscal_control-common_metaschema.xmlreference-taxonomy(root),taxonomy-itemassemblymetadata,back-matter,taxonomy-group(recursive, analogous to cataloggroup),prop,link,partNo changes required to existing OSCAL models:
categorization,prop,link, andback-matterpatternsprop(withnsandclass),link, andback-matterGenerated artifacts:
Validation Requirements
taxonomy-item/@idmust be unique within the taxonomy (enforced via<is-unique>constraint)<allowed-values>for known value sets (e.g.,fips-199-low,fips-199-moderate,fips-199-high)back-matterresource references validated via<index-has-key>(existing OSCAL pattern)<index>constraints onlink[@rel='related']ensure referenced items exist within the same taxonomy; cross-taxonomy links useback-matterresources which are resolved externally and do not create circular dependencies within the documentVersioning and Taxonomy Evolution
A critical concern for long-lived documents:
Problem: An SSP references SP 800-60 Rev 1, item C.2.4.1 (Low/Low/Low). If SP 800-60 Rev 2 changes it to (Moderate/Low/Low), what happens to the SSP reference?
Solution: This is handled using patterns already established in OSCAL:
versionfield inmetadata. SSPs reference a specific taxonomy by UUID (which is version-specific, per OSCAL identifier guidance)link: The new taxonomy can include a<link rel="predecessor-version"/>pointing to aback-matterresource that contains anrlinkto the previous version's document. This avoids misuse of#fragment identifiers (which resolve within the same document) and is consistent with how OSCAL references external documentsadjustment-justificationon impact levels, which documents any deviation from base taxonomy values regardless of versionConcrete predecessor-version example — the new taxonomy references its predecessor via
back-matter, not via#(which would imply an intra-document fragment):Here,
href="#d9e6a1f4-0c5b-4a3d-8e7f-8b9c0d1e2f3a"correctly uses a#fragment to reference a resource defined in the same document'sback-matter. That resource'srlinkthen resolves to the external predecessor document. This is a standard OSCAL pattern.This mirrors how OSCAL handles profile-to-catalog version relationships today.
Backward Compatibility
Tooling Impact
OSCAL Java Library
ReferenceTaxonomyclassTaxonomyReferencebinding classesOSCAL Python Tools
reference_taxonomy.pymodelOSCAL CLI
oscal-cli taxonomy validateoscal-cli taxonomy convertoscal-cli taxonomy mergeBenefits and Impact
For OSCAL Adopters
For Tool Vendors
For the OSCAL Community
Proposed Taxonomy Types (Non-Exhaustive)
prop class)information-classificationthreat-taxonomyweakness-taxonomyattack-patterndata-sensitivityasset-criticalitycompliance-scoperisk-factorsAlternative Approaches Considered
Option 1: Extend Catalog Model
Rejected because:
Option 2: Extend SSP Information Types
Rejected because:
Option 3: Use Back-Matter References Only
Rejected because:
Option 4: External Non-OSCAL Format
Rejected because:
Open Questions for Community Discussion
Naming: Is
reference-taxonomythe best term? Alternatives:classification-schemetaxonomy-catalogreference-libraryProperty flexibility: Should impact-level and classification properties be free-form or constrained to known vocabularies via
allowed-values?Subset/profile: Should there be a "taxonomy profile" to select subsets of large taxonomies?
Mappings: Should the model support built-in cross-taxonomy mappings (e.g., CWE→CAPEC), or should the existing Control Mapping model (new in OSCAL 1.2.0) be used for this purpose?
Localization: How should multi-language taxonomies be represented?
Extensions: Should organizations be able to extend authoritative taxonomies with custom taxonomy-items while preserving the original?
Implementation Roadmap
Phase 1: Specification (3 months)
Phase 2: Core Implementation (6 months)
Phase 3: Reference Taxonomies (6 months)
Phase 4: Documentation & Adoption (3 months)
References
OSCAL Resources
Source Taxonomies
Related Standards
Conclusion
The Reference Taxonomy model addresses a critical gap in OSCAL's coverage by providing a standardized, machine-readable format for classification schemes and reference data. This enhancement will:
We believe this proposal aligns with OSCAL's goals of standardization, automation, and interoperability, and we look forward to community feedback and collaboration on refining this model.
Contact Information
Submitting Organization: euCann Development Team
Primary Contact: Tevin Harris
GitHub: IVProduced
Discussion Forum: OSCAL Discussion Board
Appendix A: Complete SP 800-60 XML Sample
See attached file: reference-taxonomy-sp800-60-example.xml
Appendix B: MITRE ATT&CK Taxonomy Sample
Appendix C: Metaschema Definition Draft
Design notes on the metaschema:
<import>statements follow the same pattern used inoscal_catalog_metaschema.xmlandoscal_ssp_metaschema.xml. This givestaxonomy-itemaccess toprop,link,part,metadata, andback-matterwithout redefining them.classificationorclassification-dimensionassemblies are defined. Classification metadata is expressed viapropelements withname,value, andclassattributes—the same mechanism OSCAL uses throughout its existing models.taxonomy-referenceassembly is defined. Other OSCAL models reference taxonomy items using existingprop(withns/class),link(withrel="reference"), andback-matterresource patterns. No schema changes to existing models are required.taxonomy-groupmirrors the recursivegrouppattern from the catalog model, supporting nested hierarchies. The element name is<taxonomy-group>(not<group>) to avoid collision with the catalog model'sgroupassembly; in JSON, it serializes as the"groups"key per itsgroup-asattribute.<is-unique>enforces uniqueness of bothtaxonomy-item/@idandtaxonomy-group/@id. An<index>on taxonomy-item IDs enables<index-has-key>validation thatlink[@rel='related']fragment references resolve to defined items. A separate index onback-matter/resourcevalidates other#hrefs (excludingrel='related'to prevent conflict).<allowed-values>constrains recognized FIPS 199 impact levels whileallow-other="yes"permits taxonomy-specific extensions.Beta Was this translation helpful? Give feedback.
All reactions