This repository distributes data for MITRE ATLAS™ (Adversarial Threat Landscape for AI Systems), a public knowledge base of adversary TTPs targeting AI systems.
It includes the supporting tooling for parsing, validating, and managing ATLAS data.
Install uv: https://docs.astral.sh/uv/getting-started/installation/
Install dependencies:
uv syncActivate virtual environment:
source .venv/bin/activateParse and validate ATLAS data in Python:
import yaml
from pathlib import Path
from atlas.schemas import AtlasExport
path = Path("dist/ATLAS-latest.yaml")
with path.open("r") as f:
raw = yaml.safe_load(f)
atlas_data = AtlasExport.model_validate(raw)
print("Release version:", atlas_data.collection.version)
print("Tactics:", len(atlas_data.tactics))
print("Techniques:", len(atlas_data.techniques))
print("Mitigations:", len(atlas_data.mitigations))
print("Relationships:", len(atlas_data.relationships))dist/- distributed ATLAS data files and the release manifest.atlas/- ATLAS Python package containing Pydantic schemas and REST APItools/- command-line tooling to populate ATLAS YAML into the database and generate additional distribution formats (STIX, Navigator layers, Excel).tests/- test suite for ATLAS data and REST API.github/workflows/- CI workflows for release asset generation
The latest ATLAS data is stored in dist/ATLAS-latest.yaml
ATLAS releases monthly content updates. It follows two versioning schemes:
- Content version: data content version in
collection.versionthat follows YYYY.MM.N versioning (e.g.2026.05). - Format version: data format version in
format-versionthat follows semantic versioning (e.g.6.0.0).
dist/manifest.yaml ties these together by listing which file path implements which format-version for each release.
Note: separating content from format versions started with 2026.05 / 6.0.0. Previously content and format changes followed combined SEMVER versioning.
A summary of distributed ATLAS YAML files:
dist/ATLAS-latest.yamlwill always point to the latest content in the latest format.dist/v6/ATLAS-latest.yamlwill always point to the latest content in v6 format.dist/v6/ATLAS-{version}.yamlcontain historical versions of ATLAS migrated to v6 format.dist/legacy/ATLAS-{version}.yamlcontain historical versions of ATLAS in their original format at time of release.dist/ATLAS.yamlis deprecated and will no longer be updated.
The manifest (dist/manifest.yaml) contains a complete listing of distributed files. It maps each content release to one or more files by format-version.
Current distributable ATLAS format is represented by atlas.schemas.AtlasExport.
Top-level keys:
format-versioncollectionmatrixtacticstechniquesmitigationscase-studiesrelationships
High-level shape (abbreviated):
format-version: 6.0.0
collection:
id: ATLAS-collection
version: "2026.05"
name: ATLAS
description: Adversarial Threat Landscape for AI Systems
matrix:
id: ATLAS-matrix
name: ATLAS
tactics:
AML.TA0002:
id: AML.TA0002
object-type: tactic
name: Reconnaissance
techniques:
AML.T0005:
id: AML.T0005
object-type: technique
maturity: Demonstrated
platforms:
- Predictive AI
mitigations:
AML.M0001:
id: AML.M0001
object-type: mitigation
case-studies:
AML.CS0001:
id: AML.CS0001
object-type: case-study
type: Incident
relationships:
ATLAS-matrix:
sequences: [...]
AML.T0005:
achieves: [...]
AML.M0001:
mitigates: [...]
AML.CS0001:
employs: [...]The format enforces typed ID patterns, including:
- Collection ID:
ATLAS-collection - Matrix ID:
ATLAS-matrix - Tactic ID:
AML.TA#### - Technique ID:
AML.T#### - Sub-technique ID:
AML.T####.### - Mitigation ID:
AML.M#### - Case study ID:
AML.CS####
ATLAS object relationships are explicit and typed:
sequences: matrix -> tactic (ordered matrix layout)achieves: technique -> tacticspecializes: sub-technique -> parent techniquemitigates: mitigation -> techniqueemploys: case study -> technique (includestactic,step-id,leads-tometadata)
The REST API is designed to manage the ATLAS data. Data can be imported from a v6 ATLAS YAML file, modified via calls the the API, and exported for distribution.
The API is backed by a SQLite database stored at sqlite:///./atlas.db.
Install uv: https://docs.astral.sh/uv/getting-started/installation/
Install dependencies:
uv syncActivate virtual environment:
source .venv/bin/activateLoad atlas data into the database:
uv run populate-atlas-db -i dist/v6/ATLAS-2026.05.yamlRun API locally:
fastapi run atlas/api.py --reloadIt is now possible to browse the api docs at http://localhost:8000/docs
Export the data from the API:
curl http://localhost:8000/versions/2026.05/data -o ATLAS-export.yaml- health:
GET /health
- version management:
POST /versionsGET /versionsGET /versions/{version}PATCH /versions/{version}DELETE /versions/{version}GET /versions/{version}/data(exports version as YAML)
- data management (version-scoped):
/{version}/collection//{version}/matrix//{version}/tactics//{version}/techniques//{version}/mitigations//{version}/case-studies/
Tools for generating downstream data formats.
Entrypoint: atlas-to-stix (tools/atlas_to_stix.py)
Generate ATLAS STIX:
uv run tools/atlas_to_stix.py -i dist/v6/ATLAS-2026.05.yaml -o dist/stix-atlas.jsonGenerate ATLAS + ATT&CK Enterprise STIX bundle:
uv run tools/atlas_to_stix.py -i dist/v6/ATLAS-2026.05.yaml --include-attack -o dist/stix-atlas-attack-enterprise.jsonOther options:
--include-case-studies--maturity-threshold {feasible,demonstrated,realized}--url,--source_name,--identity_name
Entrypoint: atlas-to-excel (tools/atlas_to_excel.py)
Generate ATLAS Excel workbooks:
uv run atlas-to-excel -i dist/v6/ATLAS-2026.05.yamlDefault output directory: dist/excel-files/
Entrypoint: generate-navigator-layers (tools/generate_navigator_layers.py)
Generate Navigator layers:
uv run generate-navigator-layers -i dist/v6/ATLAS-2026.05.yamlApproved for Public Release; Distribution Unlimited. Public Release Case Number 26-1162 ©2026 The MITRE Corporation. ALL RIGHTS RESERVED.