ATLAS tactics, techniques, and case studies data
182
stars
268
commits
Python
primary language
Sep 1, 2026
updated
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 sync
Activate virtual environment:
source .venv/bin/activate
Parse 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 generationThe latest ATLAS data is stored in dist/ATLAS-latest.yaml
ATLAS releases monthly content updates. It follows two versioning schemes:
collection.version that follows YYYY.MM.N versioning (e.g. 2026.05).format-version that 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.yaml will always point to the latest content in the latest format.dist/v6/ATLAS-latest.yaml will always point to the latest content in v6 format.dist/v6/ATLAS-{version}.yaml contain historical versions of ATLAS migrated to v6 format.dist/legacy/ATLAS-{version}.yaml contain historical versions of ATLAS in their original format at time of release.dist/ATLAS.yaml is 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-studiesrelationshipsHigh-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:
ATLAS-collectionATLAS-matrixAML.TA####AML.T####AML.T####.###AML.M####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 (includes tactic, step-id, leads-to metadata)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 sync
Activate virtual environment:
source .venv/bin/activate
Load atlas data into the database:
uv run populate-atlas-db -i dist/v6/ATLAS-2026.05.yaml
Run API locally:
fastapi run atlas/api.py --reload
It 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
GET /healthPOST /versionsGET /versionsGET /versions/{version}PATCH /versions/{version}DELETE /versions/{version}GET /versions/{version}/data (exports version as YAML)/{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.json
Generate 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.json
Other options:
--include-case-studies--maturity-threshold {feasible,demonstrated,realized}--url, --source_name, --identity_nameEntrypoint: atlas-to-excel (tools/atlas_to_excel.py)
Generate ATLAS Excel workbooks:
uv run atlas-to-excel -i dist/v6/ATLAS-2026.05.yaml
Default 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.yaml
Generated layers target ATT&CK Navigator 5.3.2, layer format 4.5, and the
custom atlas-atlas domain used by the ATLAS Navigator.
©2021-2026 The MITRE Corporation. ALL RIGHTS RESERVED. Approved for Public Release; Distribution Unlimited. Public Release Case Numbers 21-2363, 26-1162.
Python
100.0%
ATLAS tactics, techniques, and case studies data
182
stars
268
commits
Python
primary language
Sep 1, 2026
updated
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 sync
Activate virtual environment:
source .venv/bin/activate
Parse 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 generationThe latest ATLAS data is stored in dist/ATLAS-latest.yaml
ATLAS releases monthly content updates. It follows two versioning schemes:
collection.version that follows YYYY.MM.N versioning (e.g. 2026.05).format-version that 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.yaml will always point to the latest content in the latest format.dist/v6/ATLAS-latest.yaml will always point to the latest content in v6 format.dist/v6/ATLAS-{version}.yaml contain historical versions of ATLAS migrated to v6 format.dist/legacy/ATLAS-{version}.yaml contain historical versions of ATLAS in their original format at time of release.dist/ATLAS.yaml is 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-studiesrelationshipsHigh-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:
ATLAS-collectionATLAS-matrixAML.TA####AML.T####AML.T####.###AML.M####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 (includes tactic, step-id, leads-to metadata)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 sync
Activate virtual environment:
source .venv/bin/activate
Load atlas data into the database:
uv run populate-atlas-db -i dist/v6/ATLAS-2026.05.yaml
Run API locally:
fastapi run atlas/api.py --reload
It 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
GET /healthPOST /versionsGET /versionsGET /versions/{version}PATCH /versions/{version}DELETE /versions/{version}GET /versions/{version}/data (exports version as YAML)/{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.json
Generate 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.json
Other options:
--include-case-studies--maturity-threshold {feasible,demonstrated,realized}--url, --source_name, --identity_nameEntrypoint: atlas-to-excel (tools/atlas_to_excel.py)
Generate ATLAS Excel workbooks:
uv run atlas-to-excel -i dist/v6/ATLAS-2026.05.yaml
Default 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.yaml
Generated layers target ATT&CK Navigator 5.3.2, layer format 4.5, and the
custom atlas-atlas domain used by the ATLAS Navigator.
©2021-2026 The MITRE Corporation. ALL RIGHTS RESERVED. Approved for Public Release; Distribution Unlimited. Public Release Case Numbers 21-2363, 26-1162.
Python
100.0%