Skip to main content

ATT&CK and STIX Data Model

AdversaryGraph stores ATT&CK and ATLAS data in two layers:

  • Normalized query tables for fast product workflows.
  • Raw STIX preservation tables for source fidelity and graph review.

This means the platform can render matrices, compare actors, and score TTP overlap quickly while still preserving the original STIX objects and relationships.

Normalized Runtime Tables

TablePurpose
attack_versionsIngested ATT&CK/ATLAS domain and version metadata
tacticsATT&CK tactic records
techniquesATT&CK/ATLAS techniques and sub-techniques
technique_tacticsTechnique-to-tactic links
apt_groupsATT&CK intrusion-set / group profiles
apt_group_techniquesGroup-to-technique usage links with procedure description and references
campaignsATT&CK campaign / named operation records
campaign_techniquesCampaign-to-technique usage links
apt_group_campaignsCampaign-to-group attribution links

These tables are used by Navigator, APT Library, Compare, AI report mapping, campaign comparison, and detection engineering workflows.

Raw STIX Preservation

Starting in v5.1, AdversaryGraph preserves the source STIX graph:

TablePurpose
stix_objectsOne row per non-relationship STIX object
stix_relationshipsOne row per STIX relationship object

stix_objects keeps the object type, STIX ID, ATT&CK ID when present, name, domain, version, revoked/deprecated flags, and the complete raw STIX JSON.

stix_relationships keeps relationship type, source STIX ID, target STIX ID, description, references, domain, version, and the complete raw relationship JSON.

Revoked or deprecated STIX objects are preserved for audit fidelity, even when they are excluded from normalized runtime tables.

Raw STIX API

Read-only endpoints expose the preserved STIX graph:

EndpointPurpose
GET /api/attack/stix/objects/{stix_id}Return one raw STIX object
GET /api/attack/stix/objects/{stix_id}/graphReturn the object plus incoming and outgoing relationships
GET /api/attack/stix/relationshipsFilter relationships by source, target, or type

Useful filters:

  • domain
  • version
  • source_stix_id
  • target_stix_id
  • relationship_type
  • limit

Ingest Flow

MITRE STIX bundle
|
v
ATT&CK ingestor
|
+--> raw STIX graph
| - stix_objects
| - stix_relationships
|
+--> normalized runtime model
- tactics
- techniques
- apt_groups
- campaigns
- relationship join tables

The normalized model remains the primary product model. The raw STIX model is the source-fidelity layer for audit, export, and future graph traversal.