Skip to content
🚧 Early alpha — building the foundation. See the roadmap →

Framework crosswalks

Updated

This page documents the specific framework-to-framework crosswalks Crosswalker’s Python tool already implements — source/target pairs, match columns, and matching strategies. A practical reference rather than a conceptual introduction.

The Python tool (frameworks_to_obsidian.py) implements these cross-framework mappings:

SourceTargetMatch ColumnMatch Type
CRI Diagnostic StatementCSF SubcategoryCSF reference columnArray contains

The CRI Community Profile is a meta-framework designed for financial institutions that maps to multiple standards. Its “CRI Profile v2.0 Structure” sheet provides the primary mapping.

SourceTargetMatch ColumnMatch Type
800-53 ControlATT&CK TechniqueMapping spreadsheetExact match

Uses the Center for Threat-Informed Defense’s Mappings Explorer as the authoritative source.

SourceTargetMatch ColumnMatch Type
ATT&CK TechniqueD3FEND CountermeasureD3FEND mapping dataRegex

D3FEND provides defensive countermeasures mapped to ATT&CK techniques.

SourceTargetMatch ColumnMatch Type
CSF SubcategoryCIS SafeguardCIS mapping spreadsheetArray contains

Column value in source must exactly equal a value in target. Used when both frameworks use standardized IDs.

Source column contains a comma-separated list; check if any item matches the target ID. Common when frameworks list multiple related controls.

Pattern-based matching for complex ID formats. Used for NIST control enhancements like AC-2(1) where parenthetical notation needs special handling.

IssueExampleSolution
Merged cellsCRI Profile Excel has merged category rowsForward-fill blank cells (hierarchical_ffill())
Inconsistent IDs”AC-2” vs “AC-02” vs “AC 2”Regex normalization before matching
Multi-value cells”AC-1, AC-2, AC-3” in one cellSplit into array, match each
Sheet structureMultiple sheets per frameworkMerge relevant sheets by primary key
Encoding issuesSpecial characters in control namesUTF-8 normalization
FrameworkID FormatHierarchySheets
NIST 800-53AC-2, AC-2(1)Family → Control → EnhancementControls, Assessment
NIST CSF 2.0PR.AC-01Function → Category → SubcategoryCore
CIS v81.1Control → SafeguardControls, IG mapping
MITRE ATT&CKT1059, T1059.001Tactic → Technique → Sub-techniqueEnterprise matrix
CRI ProfileDiagnostic statement textFunction → Category → Subcategory → StatementStructure, Mappings

NIST’s National Online Informative References Program provides official crosswalks between frameworks. These are the authoritative mapping source.

OSCAL (Open Security Controls Assessment Language)

Section titled “OSCAL (Open Security Controls Assessment Language)”

Machine-readable framework data in JSON/XML format. Resources:

NIST CPRT (Cybersecurity and Privacy Reference Tool)

Section titled “NIST CPRT (Cybersecurity and Privacy Reference Tool)”

Interactive tool for browsing CSF 2.0 with informative references: CPRT Filters

A critical problem: crosswalks become stale when either framework updates. See framework versioning for how each framework handles changes.

NIST’s OLIR program is submission-based — the submitting organization maintains their mappings. There’s no automatic mechanism to flag stale crosswalks. High-profile crosswalks (CSF↔800-53) get updated eventually, but on NIST’s timeline.

The Secure Controls Framework (SCF) solves this with a meta-framework / interlingua approach — mapping 175+ frameworks through a single hub. When one framework updates, only one mapping needs updating, and the change propagates to all others.

See data model resilience for proposed detection mechanisms: source hash comparison, version tracking in _crosswalker metadata, and machine-readable changelog ingestion.

The Crosswalker plugin currently imports individual frameworks. Cross-framework linking is planned — it will:

  1. Import framework A with Crosswalker
  2. Import framework B
  3. Use a crosswalk config to generate typed links between matching nodes
  4. Links carry metadata about the mapping relationship (exact, partial, related)

The ontology evolution problem means these links need version awareness — see open questions for unresolved design decisions.