fix(atlas): correct eleven MITRE ATLAS technique citations - #92
Conversation
Port of GenAI-Security-Project/GenAI-Data-Security-Initiative#65 (squash d0675741), which fixed these in the monorepo copy of crosswalk/ that has since been removed. Every target was re-checked against ATLAS-2026.07.yaml from mitre-atlas/atlas-data tag v2026.07, dist/v6 (sha256 0e07bb07fc6423d72cdf24ddc2038a6905bcbc00ba571064153119ee1a5888d4). Six renames, identifier right and label superseded: AML.T0020 Training Data Poisoning, AML.T0029 Denial of AI Service, AML.T0013 Discover AI Model Ontology, AML.T0018 Manipulate AI Model, AML.T0025 Exfiltration via Cyber Means, AML.T0024.000 Infer Training Data Membership. Five identifier errors, label right and identifier wrong: Data from Information Repositories AML.T0057 -> AML.T0036, Exploit Public-Facing Application AML.T0051 -> AML.T0049, Craft Adversarial Data AML.T0031 -> AML.T0043, Exfiltration via AI Inference API AML.T0016 -> AML.T0024, Valid Accounts AML.T0022 -> AML.T0012 (AML.T0022 is not in the release). The mapping files here have diverged from the monorepo copy, so the monorepo line changes were transplanted onto the current content with an assertion that each replaced line occurs here exactly as often as it did in the monorepo pre-image, and every changed line was checked to differ only by these eleven substitutions. 57 technique rows change (Agentic 5, DSGAI 51, LLM 1), plus the summary identifier lists, counter bullets and prose that cite the same identifiers. A changelog row is added to each of the three files. data/entries, backlinks and docs bundles are regenerated with scripts/generate.js. validate.js output is byte-identical to main (0 errors, 84 warnings, 312 passed); stats:check and the 50 unit tests pass; generator output is current. Co-authored-by: Sankalp Gilda <sankalp.gilda@gmail.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KJVKF6raJCNKBWjTkDSqR4
|
Cross-reference: #93 checks every MITRE ATLAS mapping row against ATLAS 2026.08, plus all legacy releases back to 2.0.0. This PR covers 25 of the 81 mismatched rows it found. One pair in the same class as this PR's identifier errors is not included: 14 rows in #93 also lists 17 technique names that have never appeared in any ATLAS release (e.g. LLM Capability Escalation, Model Contamination), and 21 wrong titles in |
Conflicts were only in the four generated webapp bundles, and only in their header lines: #92 regenerated them with a `// Generated:` date that this branch removes. Resolved by re-running scripts/generate.js on the merged sources; a second run is byte-identical. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014SfR2YzLxRH54DAVzDk8gR
No conflicts. Generated files re-run on the merged sources; a second generation is byte-identical. validate 0 errors, 60/60 tests. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014SfR2YzLxRH54DAVzDk8gR
Generated files re-run on the merged sources; a second generation is byte-identical. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014SfR2YzLxRH54DAVzDk8gR
Generated files re-run on the merged sources; a second generation is byte-identical. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014SfR2YzLxRH54DAVzDk8gR
Generated files re-run on the merged sources; a second generation is byte-identical. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014SfR2YzLxRH54DAVzDk8gR
Generated files re-run on the merged sources; a second generation is byte-identical. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014SfR2YzLxRH54DAVzDk8gR
Re-key Otto Sulin's LLM Top 10 x AISVS mapping from the 2025 list to the 2026 list per MIGRATION.md: sections renumbered and renamed, cross- references renumbered, severities re-baselined. Add eight requirements for the 2026 scope changes: LLM01 cross-modal (2.2.3, 2.2.4), LLM04 artifact provenance (3.1.1, 3.1.3), LLM05 fine-tuning subversion (6.1.2, 3.5.1), LLM08 hidden context (10.2.4), LLM10 generated code (9.3.7). Merge main (#91, #92) and regenerate entries, backlinks, bundles and stats: 3,803 mappings, 77 mapping files, 26 frameworks. Co-authored-by: Otto Sulin <ottosulin@users.noreply.github.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KJVKF6raJCNKBWjTkDSqR4
Generated files re-run on the merged sources; a second generation is byte-identical. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014SfR2YzLxRH54DAVzDk8gR
No conflicts. The one intermittent local test failure seen during verification is the pre-existing data/entries read/write race (Unexpected end of JSON input), fixed by #87; captured and confirmed, not caused by this merge. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014SfR2YzLxRH54DAVzDk8gR
Applies the eleven MITRE ATLAS citation corrections from GenAI-Security-Project/GenAI-Data-Security-Initiative#65 to this repository's current mapping files.
The eleven corrections
Renames: identifier right, label superseded
Identifier errors: label right, identifier wrong
Release pin
ATLAS-2026.07.yamlfrom mitre-atlas/atlas-data tagv2026.07,dist/v6/. sha2560e07bb07fc6423d72cdf24ddc2038a6905bcbc00ba571064153119ee1a5888d4, 194 techniques. I checked every new label and identifier above against that file.Per-file counts
"Pair rows" are table rows that carry one of the eleven wrong ID and name pairs. "Other lines" are summary identifier lists,
Counter AML.Txxxxbullets, prose and the priority table, where they cite the same identifiers.agentic-top10/Agentic_MITREATLAS.mddsgai-2026/DSGAI_MITREATLAS.mdllm-top10/LLM_MITREATLAS.mdast-top10/Each file also gets one changelog row, following CONTRIBUTING step 5.
After regeneration, 25 entry files change: 23
control_id, 25control_nameand 4urlvalues.data/backlinks.json,docs/backlinks.js,docs/data.js,docs/incidents.jsanddocs/frameworks-registry.jschange too. The last two differ only in theGenerated:date stamp.How it was applied
The mapping files here have diverged from the monorepo copy, so I didn't replay the patch. I took each line pair from the monorepo diff and applied it to the current files, with two assertions:
A second pass checked that every changed line differs from the original only by the eleven substitutions. There were 0 unexplained lines.
Identifiers that appear with other labels were left alone:
Verification
node scripts/generate.js: regenerated outputs are committed. A rerun leavesdata/entries docs/data.js docs/incidents.jsunchanged.node scripts/validate.js: 0 errors, 84 warnings, 312 passed. The output is byte-identical tomainat 490a7e4.npm run stats:check:data/stats.jsonandREADME.mdare current.npm run test:scripts: 50/50 pass, and the tree is clean afterwards.Heads-up
data/backlinks.json,data/entries/DSGAI21.json,docs/data.js,docs/backlinks.js,docs/frameworks-registry.js). Whichever merges second will likely neednode scripts/generate.jsrerun rather than a hand merge.generate.jswrites today's date into the bundles, so the CI step "Assert generated output is current" passes only on the day the bundles were generated (UTC). T-ENG03: make the webapp data bundles deterministic #37 addresses that.Follow-ups (not in this PR)
LLM_MITREATLAS.md.data/frameworks/mitre-atlas.jsonstill has anAML.T0022"Valid Accounts" control, and its AML.T0024 title is "Exfiltration via ML Inference API".evals/pyrit/asi04_supply_chain.py,dsgai04_rag_poisoning.pyanddsgai17_bias_detection.pyevals/garak/ASI08_cascade_failure.yaml,LLM05_data_poisoning.yamlandLLM06_resource_exhaustion.yamlevals/laaf/stage_configs/s2.yamlPorted from GenAI-Security-Project/GenAI-Data-Security-Initiative#65 by @astrogilda (that copy of crosswalk/ has since been removed).
🤖 Generated with Claude Code
https://claude.ai/code/session_01KJVKF6raJCNKBWjTkDSqR4