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

Framework data sources

Updated

This reference documents the specific data sources, sheet structures, and transformation requirements for each framework that Crosswalker’s Python tool supports (and the plugin will support).

Source: sp800-53r5-control-catalog.xlsx

SheetPurposeHeader Row
SP 800-53 Revision 5Control catalog0
ColumnExampleRole
Control IdentifierAC-2Primary ID
Control (or Enhancement) NameAccount ManagementDisplay name
Control Text(long text)Body content
Discussion(long text)Body content
Related ControlsAC-3, AC-5, IA-4Links (array-contains matching)
Control FamilyAccess ControlHierarchy level 1

Pattern: [A-Z]{2}-\d+(\(\d+\))?

  • Family: AC, AU, CA, etc.
  • Control: AC-1, AC-2
  • Enhancement: AC-2(1), AC-2(2)

Source: sp800-53ar5-assessment-procedures.xlsx

Assessment IDs need normalization to merge with controls:

AC-01_ODP[01]  →  AC-1    (strip leading zero, remove suffix)
Pattern: /^([A-Za-z]+)-0?(\d+)/

Source: csf2.xlsx

ColumnExampleRole
FunctionGOVERNHierarchy level 1
CategoryOrganizational ContextHierarchy level 2
SubcategoryGV.OC-01Primary ID
Implementation Examples(text)Body content

Pattern: [A-Z]{2}\.[A-Z]{2}-\d{2}

  • Function prefix: GV, ID, PR, DE, RS, RC
  • Category: GV.OC, ID.AM, PR.AC
  • Subcategory: GV.OC-01, ID.AM-01

Source: CIS_Controls_Version_8.1_6_24_2024.xlsx

SheetPurpose
Controls V8Control and safeguard catalog
ColumnExampleRole
CIS Control1Hierarchy level 1
CIS Safeguard1.1Primary ID
TitleEstablish and Maintain Detailed Enterprise Asset InventoryDisplay name
Description(text)Body content
Asset TypeDevicesFrontmatter
Security FunctionIdentifyFrontmatter
IG1 / IG2 / IG3TRUE / FALSEFrontmatter (implementation groups)

Pattern: \d+\.\d+

  • Control: 1, 2, 3 (18 total)
  • Safeguard: 1.1, 1.2, 3.5 (153 total)

CIS data includes control-level descriptions as “preamble” rows before the safeguards. The extraction algorithm:

  1. Detect rows where the safeguard field matches the control number (e.g., safeguard 1 for control 1)
  2. Extract the title and description from these preamble rows
  3. Attach them as metadata to the control folder note
  4. Remove preamble rows from the safeguard list

Source: Final-CRI-Profile-v2.0-Public-CRI.xlsx

SheetHeader RowPurpose
CRI Profile v2.0 Structure2Core hierarchy
Diagnostic Statements by Tag3Tag-based grouping
NIST CSF v2 Mapping3Crosswalk
FFIEC CAT to Profile Mapping3Crosswalk
FFIEC AIO Mapping3Crosswalk
FFIEC BCM Mapping3Crosswalk
CISA CPG 1.0.1 Mapping3Crosswalk
NIST Ransomware Profile3Crosswalk
ColumnExampleRole
Outline IdGV.OC-01.01Alternative ID
Level4Hierarchy depth
Profile IdGV.OC-01Primary ID
Category / SubcategoryOrganizational ContextHierarchy
Diagnostic Statement(text)Body content

CRI diagnostic statements have subject tags (#access_management, #data_protection, etc.) that need aggregation:

  1. Group diagnostic statements by Profile Id
  2. Collect all unique tags across grouped rows
  3. Prefix tags with cri/ namespace: #access_management#cri/access_management
  4. Merge aggregated tags back to the structure sheet

The Structure sheet uses merged cells for Function/Category levels. Requires hierarchical forward-fill with columns ["Function", "Category", "Subcategory"].

Source: enterprise-attack-v16.1.xlsx

SheetPurpose
techniquesTechnique catalog
ColumnExampleRole
IDT1059Primary ID
nameCommand and Scripting InterpreterDisplay name
description(text)Body content
tacticsexecutionHierarchy / tags
platformsWindows, Linux, macOSFrontmatter
is sub-techniqueTRUE / FALSEHierarchy indicator
urlhttps://attack.mitre.org/techniques/T1059Frontmatter

Pattern: T\d{4}(\.\d{3})?

  • Technique: T1059, T1548
  • Sub-technique: T1059.001, T1059.003

ATT&CK uses Tactic → Technique → Sub-technique. The tactics column contains the parent tactic(s). Sub-techniques are identified by the is sub-technique flag and dot notation in the ID.

Source: d3fend.csv

ColumnExampleRole
D3FEND TechniqueD3-DENCRPrimary ID
Level 0HardenHierarchy level 1
Level 1Application HardeningHierarchy level 2
(additional levels)variesDeeper hierarchy

Special transform: Hierarchical forward-fill

Section titled “Special transform: Hierarchical forward-fill”

D3FEND has a deeply nested ontology with merged cells across multiple levels. Requires hierarchical forward-fill across all Level columns.

Full mappings file (d3fend-full-mappings.csv) and D3FEND-to-NIST mapping (d3fend_to_nist80053.csv) provide crosswalk data for linking to ATT&CK techniques and NIST controls.

Source: Engage-Data-V1.0.xlsx

SheetPurposeKey Column
ActivitiesIndividual engagement activitiesID
ApproachesGrouping of activitiesID
GoalsHigh-level objectivesID
Goal Approach MappingsGoal → Approach links
Approach Activity MappingsApproach → Activity links
Enterprise ATT&CK MappingsENGAGE → ATT&CK crosswalk

ENGAGE requires a three-level merge to build the full hierarchy:

  1. Join Goals with Goal-Approach mappings
  2. Join result with Approaches
  3. Join result with Approach-Activity mappings
  4. Join result with Activities
  5. Clean up duplicate columns (use _remove suffix tracking)

Crosswalks between frameworks require separate mapping files:

CrosswalkSource
CRI ↔ CSF 2.0CRI Excel (NIST CSF v2 Mapping sheet)
CSF 2.0 ↔ NIST 800-53NIST Concept Crosswalk
NIST 800-53 ↔ ATT&CKCenter for Threat-Informed Defense
ATT&CK ↔ D3FENDd3fend.mitre.org mapping data
CSF 2.0 ↔ CIS v8CIS Controls Mapping to CSF 2.0
D3FEND ↔ NIST 800-53D3FEND semantic mappings (d3fend_to_nist80053.csv)

See framework crosswalks for matching methods and configuration details.