Skip to content

Correct eleven MITRE ATLAS technique citations - #59

Open
astrogilda wants to merge 1 commit into
GenAI-Security-Project:mainfrom
astrogilda:atlas-technique-ids
Open

Correct eleven MITRE ATLAS technique citations#59
astrogilda wants to merge 1 commit into
GenAI-Security-Project:mainfrom
astrogilda:atlas-technique-ids

Conversation

@astrogilda

@astrogilda astrogilda commented Aug 3, 2026

Copy link
Copy Markdown

Summary

Eleven MITRE ATLAS control mappings pair an identifier with a name that ATLAS does not give it, across 48 rows in the three ATLAS tables. In six the identifier is right and the label is superseded; in five the label is right and current but belongs to a different technique. Every target is checked against the pinned ATLAS release named below. Judgement calls are kept out of this pull request and raised in #60.

DSGAI mapping

Every DSGAI entry except DSGAI21, plus ASI03, ASI07, ASI08 and LLM10 — 25 entry files in all, reached by regenerating from the three corrected markdown tables.

Checklist

  • Data is anonymized (no PII, credentials, or org names)
  • Entries reference at least one DSGAI ID where applicable
  • Validation scripts pass (python run_all_checks.py) — I could not tick this honestly. data_validation/run_all_checks.py currently prints "Validators not yet implemented - see validators/ for contribution guide" and exits without running a check, so a pass from it would not mean anything. npm run generate and npm run build both succeed on this branch. Please tell me if there is another gate you would like run.
  • One entry per file for dataset contributions — not applicable; this touches crosswalk/ only and adds no dataset records.

Eleven MITRE ATLAS control mappings pair an identifier with a name that ATLAS does not give it. In six the identifier is right and the label is superseded, mostly from the pass that moved the matrix off "ML" wording. In five the label is right and current but belongs to a different technique, so the identifier is what moves. This changes 48 rows across the three ATLAS tables and nothing else.

I have kept this to corrections where the primary settles the question on its own, so there should be nothing here to weigh up. Anything needing a judgement call is in the companion issue instead, including two mappings I think are wrong but where the fix could reasonably go either way.

Every target was checked against https://atlas.mitre.org/atlas-data/dist/v6/ATLAS-2026.07.yaml, sha256 0e07bb07fc6423d72cdf24ddc2038a6905bcbc00ba571064153119ee1a5888d4. The dist/ATLAS.yaml one level up in the same distribution directory declares itself deprecated on its first line, and the STIX JSON published at mitre-atlas/atlas-navigator-data lags the YAML: on 3 August it still gave AML.T0020 as "Poison Training Data" and omitted eleven identifiers, so the pinned v6 file is the one to read.

Renames, where the identifier is right and the label moved:

Identifier Recorded here ATLAS 2026.07
AML.T0020 Poison Training Data Training Data Poisoning
AML.T0029 Denial of ML Service Denial of AI Service
AML.T0013 Discover ML Model Ontology Discover AI Model Ontology
AML.T0018 Backdoor ML Model Manipulate AI Model
AML.T0025 Exfiltrate via Cyber Means Exfiltration via Cyber Means
AML.T0024.000 Membership Inference Infer Training Data Membership

Identifier errors, where the label is right and points at the wrong technique:

Recorded Should be Because
AML.T0057 "Data from Information Repositories" AML.T0036 AML.T0057 is "LLM Data Leakage"
AML.T0051 "Exploit Public-Facing Application" AML.T0049 AML.T0051 is "LLM Prompt Injection"
AML.T0031 "Craft Adversarial Data" AML.T0043 AML.T0031 is "Erode AI Model Integrity"
AML.T0016 "Exfiltration via AI Inference API" AML.T0024 AML.T0016 is Obtain Capabilities
AML.T0022 "Valid Accounts" AML.T0012 AML.T0022 appears in neither release I checked

Mostly this is not version drift, and it is worth separating the one case where it is. I read the current v6 release and the deprecated 5.6.0 line. Ten of the eleven pairings match neither, so they were never right. The exception is AML.T0020, which really was "Poison Training Data" in the 5.6.0 line and became "Training Data Poisoning", so that row was correct when it was written. I have not read the intermediate v6 releases, so I can say these do not match the current or the deprecated file, and not that they never appeared anywhere.

AML.T0022 is the odd one out in the other direction: it is absent from both files, so the row cites an identifier no release I read defines. "Valid Accounts" is AML.T0012, which is what the rest of the row describes.

The corrections are applied to the markdown tables rather than to data/entries/, since scripts/generate.js regenerates the entries from the tables and would otherwise revert them. Running npm run generate afterwards propagates the change to 25 entry files: 23 control_id values and 25 control_name values, 76 lines in all. I have included the regenerated entries and bundles so the tree is consistent, and I am happy to drop the docs/*.js bundles from the diff if you would rather regenerate those yourself.

One thing worth flagging that is not a correction. I found these by writing a script that reads each framework's primary source and compares every citation to it, and I would like to offer that separately if it is useful — it is in the companion issue rather than here, because it is a new file and a workflow, and that is a different conversation from fixing eleven rows. Two notes from building it that stand on their own regardless: scripts/generate.js stamps the current date into the four generated bundles, which means a reproducibility check on them can never pass, and npm run validate currently reports 51 errors on main independently of anything in this change.

Six rows carry a superseded label under a correct identifier, mostly
from the rename that moved the matrix off "ML" wording. Five carry a
correct, current label under an identifier belonging to a different
technique. AML.T0022 appears in neither the current v6 release nor the
deprecated 5.6.0 line.

Applied to the markdown control tables, since scripts/generate.js
regenerates data/entries from them; the regenerated entries and bundles
are included so the tree is consistent.

Verified against
https://atlas.mitre.org/atlas-data/dist/v6/ATLAS-2026.07.yaml
sha256 0e07bb07fc6423d72cdf24ddc2038a6905bcbc00ba571064153119ee1a5888d4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant