Security Data Works

Adversarial ML · D3FEND

The blind quadrant over AI systems.

I went looking for this by accident. I was rebuilding Peter Kaloroumakis's coverage dashboard for D3FEND, the one that ships as issue #599 in the ontology repo, walking every offensive framework D3FEND knows about and reporting how much of each one it can place opposite a defense, and I ran it in MITRE's own container against D3FEND 1.4.0 so the numbers would be theirs and not mine. Most of the rows came back the way you'd expect from a framework that has been maturing for years: ATT&CK Enterprise integrated at 40.8 percent, ICS higher at 55.9, OCSF at 26.7, the compliance catalogs trailing down in the single digits because they were never really artifact-shaped to begin with. Then I hit the ATLAS row, and it read 140 techniques included, 0 integrated, 0.0 percent, and I sat with that for a minute because it is a strange thing to see a whole framework scored at exactly zero.

I want to be careful here, because ATLAS is not the only zero in that report. ATT&CK Mobile sits at 0.0 percent too, over 166 techniques, and CAPEC has a single included item and no integration, so if you told me "some frameworks just haven't been mapped yet" you would be right and I would have nothing interesting to say. But ATLAS is the zero over adversarial machine learning, over prompt injection and model poisoning and agent tool abuse, and that is the quadrant where the attack surface is moving right now, so a zero there is not a backlog item the way Mobile arguably is, it is a blind spot pointed directly at the systems the industry is rushing to deploy. That is the row I decided to try to close, and most of what I learned came from taking seriously why it was zero rather than assuming it was neglect.

Written July 16, 2026, against D3FEND 1.4.0; the pull-request status and version facts here are the moving parts. Reading time: about 13 minutes. Evidence tier: A for the primary standards and the coverage measurement (the D3FEND 1.4.0 dashboard, the SPDX and CycloneDX / ECMA-424 schemas, Li & Gao at DSN 2026, arXiv 2510.16558), B for the GitHub issue and pull-request threads and the practitioner reporting, and the mappings themselves are labeled throughout as proposals for MITRE's judgment rather than merged results.

The result, up front

ATLAS coverage moves from 0.0% to 83.6%: 117 of 140 techniques, existing vocabulary only, acceptance-tested in MITRE's own container with every other framework byte-identical.

The mechanism

How a technique enters the matrix.

D3FEND connects offense to defense through a shared digital artifact, and only through a shared digital artifact. An offensive technique and a defensive countermeasure meet in the graph when they both touch the same artifact class, because the whole inference D3FEND is built to support is "this defense is relevant to that attack because they act on the same thing." So a technique enters the matrix exactly when it carries a relation to an artifact the ontology already knows, and it stays outside the matrix, invisible to every countermeasure, when it does not, no matter how well anyone understands the attack itself.

You can see the shape in any integrated technique. Take :T1003.001, OS Credential Dumping against LSASS memory, which is integrated because one of its restrictions says it accesses an authentication service:

:T1003.001 rdfs:subClassOf [ a owl:Restriction ;
                             owl:onProperty :accesses ;
                             owl:someValuesFrom :AuthenticationService ] .

That one line is what lets the reasoner set the technique opposite every countermeasure that guards authentication services, and every ATLAS mapping I ended up proposing is that same shape on an:AML.T#### class. Which means the entire problem reduces to one question asked 140 times: is there already an artifact in D3FEND for the thing this attack touches? When the answer is yes, the mapping is a one-line restriction and the technique lights up. When the answer is no, the artifact simply doesn't exist yet, so what you're looking at isn't a mapping problem so much as a missing noun, and what the dashboard was telling me with that 0.0 percent was that the things these attacks act on may not have names here yet, rather than that nobody had done the work.

The method

Exhaust the vocabulary before you invent one.

When I brought this to the D3FEND maintainers on issue #606, Adrian Medina, who reviews ontology changes in BFO terms, set the sequencing plainly: exhaust the existing vocabulary of artifacts first, and only reach for a new class once you have genuinely run out. I took that as the constraint to work under, partly because it is good ontology hygiene and partly because, taken seriously, it turns a matter of opinion into a matter of measurement. Either the existing vocabulary covers the vast majority of ATLAS or it does not, and that is answerable with a number.

The reason the first pass over-reached, and the reason I think a lot of AI-security taxonomy work over-reaches, is that the AI vocabulary collides with words D3FEND already uses, and if you match on the word instead of the category you invent classes you did not need. The model, the dataset, and the prompt are continuant artifacts, and they subclass the parents the mappers already reached for, which are ordinary :Software,:File, :DigitalMessage, :Database and the like. Theprocess (training, fine-tuning, inference) is an occurrent, an event, and it does not want a new artifact noun at all; it wants to attach to an event class through the relations D3FEND already has, which is exactly the d3f:MachineLearningEvent direction Medina himself proposed.

The three collisions are :MachineLearning, :Model, and :Agent, and each one is the same lexeme sitting in a different top-level BFO category, so the fix is a placement rule rather than a naming fight. The two words that look most like they should hold the AI model are the two that must not: :MachineLearning in D3FEND is an analytic technique under :Plan (a directive meaning "use machine learning to detect"), and:Model is a :DefensiveTactic under :Goal (meaning "model the system"), so an AI model artifact cannot be either without punning a continuant onto a plan and a goal, which is a category error a reasoner will happily propagate. The :Agent collision resolves the same way once you look at how D3FEND already uses it: the bare :Agent at the top is the agentive, intentional sense that lives near people and organizations, while the software agents the ontology ships (:NetworkAgent, :AssetInventoryAgent) subclass:Software, so an AI agent belongs under :Software as a tool, not under the agentive branch.

The property I most wanted to be able to state to an ontologist, and the one that makes the whole contribution cheap to accept, is conservativity: the proposal asserts nothing into:MachineLearning, :Model, or :Agent. New classes only ever subclass existing parents, and the mappings only ever add restrictions on the :AML.T####technique classes, so no new entailments appear anywhere in D3FEND's existing branches, and nothing already in the ontology changes meaning because I showed up. That matters more than it might sound, because D3FEND ships only three disjointWith pairs, which means a reasoner will not automatically stop a careless future mapping from quietly punning a model artifact onto the machine-learning analytic plan; the discipline that keeps the three senses apart has to be deliberate, held by the person doing the mapping, rather than enforced by the logic.

Worked through that way, the ATLAS row comes apart cleanly. Of the 140 techniques, 117 map to an artifact D3FEND already has, 55 that mapped on the first pass plus 62 of the 76 that had reached for a new class and turned out not to need one once the event model and the existing parents were on the table. Nine are genuine process-attacks whose real target is a training or inference event, and they attach to d3f:MachineLearningEvent through existing participant artifacts, so they fold into Medina's event proposal and strengthen it. Nine more have no artifact-shaped target at all. They spread across execution, exfiltration, discovery, defense evasion, and the impact family, and what they share is that each one describes an adversary action or an outcome without a digital artifact for the defense to share, which is the boundary of what an artifact-join ontology can integrate. That leaves five techniques as the entire new-artifact ask: three that need a machine-learning-model class because :Softwareis defined as authored instructions and a trained model's behavior comes from learned parameters instead, one that needs a retrieval data source wired into an LLM's context, and one that needs a callable tool definition bound to an agent, which means the ask that started as "ATLAS needs its own taxonomy" had shrunk, by the end of the pass, to about one new noun.

I did not want that to be an argument, so I made it a test. The generated restrictions are 788 triples across 197 rows, and the acceptance check appends them to the exact ontology file MITRE's dashboard consumes and re-runs their dashboard_report.py in their container, so the number the essay quotes is the number their instrument produces.

Framework coverage · before and after

D3FEND offense-defense coverage by framework, before and after the ATLAS crosswalkHorizontal bars showing the share of each framework's techniques that D3FEND can place opposite a countermeasure. ATT&CK ICS leads at 55.9 percent, ATT&CK Enterprise 40.8, OCSF 26.7, SPARTA 25.0, NIST SP 800-53 9.3, CCI 5.8, CWE 3.0, and ATT&CK Mobile, CAPEC and ATLAS all at 0.0 percent. A green extension on the ATLAS bar shows the proposed existing-vocabulary crosswalk moving it from 0 to 83.6 percent, past every other framework.0%25%50%75%100%Coverage in MITRE's #599 dashboard (D3FEND 1.4.0)share of a framework's techniques D3FEND can place opposite a countermeasureATT&CK ICS118 included55.9%ATT&CK Enterprise858 included40.8%OCSF277 included26.7%SPARTA216 included25.0%NIST SP 800-531196 included9.3%CCI5046 included5.8%CWE943 included3.0%ATT&CK Mobile166 included0.0%CAPEC1 included0.0%ATLAS140 included0.0% → 83.6%integrated todayATLAS after the proposed existing-vocabulary crosswalk (acceptance-tested)
ATLAS, ATT&CK Mobile, and CAPEC all sit at 0.0 percent in MITRE's own #599 dashboard against D3FEND 1.4.0, where coverage is the share of a framework's techniques D3FEND can place opposite a countermeasure; the green bar is the acceptance-tested result of appending the existing-vocabulary restrictions, which moves ATLAS to 83.6 percent with every other framework's counts unchanged. The green figure is a proposal under review, not a merged result.

The result is that ATLAS moves from 0 integrated to 117, from 0.0 percent to 83.6, with 197 new relationships, and every other framework's counts come back byte-identical before and after. That byte-identical clause is the part I care about most, because it is what makes this a set of restrictions the existing reasoner accepts, rather than a mapping I merely asserted.

Bottom line: Medina's instinct that existing vocabulary covers most of ATLAS was right, and measurably so, and the discipline that got there was almost entirely about refusing to let a shared word stand in for a shared category.

The convergence

Three communities, one missing vocabulary.

The strongest thing I found, though, was that I was not the only one arriving at it, and that the people arriving from the other directions had mostly never talked to each other.

Start with the defensive side, because that is where the surprise was sharpest. Ivan Kirillov at MITRE opened issue #606, the same thread where Medina would later set the sequencing, shortly after I had commented on the earlier #595 thread. He invited my feedback there by name and attached his own proposal for AI artifacts and mappings. His document maps 35 ATLAS mitigations to D3FEND countermeasures, which is real work, but it builds zero technique mappings; his own third bullet, the technique-to-artifact crosswalk, is the one thing his proposal leaves unbuilt, and that is exactly the thing I had. More striking than the gap was the overlap: reasoning from the defense-taxonomy side, with no knowledge of my mappers, he had independently written that no new top-level artifact class is necessary because D3FEND already has suitable parents, he had aligned his names to SPDX's AI profile with its AIPackage and DatasetPackage, and he had flagged thatModel is already a tactic so the artifact has to be called "AI Model." His minimal set (an AI-model class, an interaction message, a tool invocation, a provenance record) overlaps most of the small family my five-technique residual points at. Two people reasoning from opposite ends of the same graph landed on the same handful of classes, which is either a coincidence or a signal, and I think it is a signal.

Then the inventory side, where the pattern stops looking like luck. The software bill-of-materials standards have been trying to describe AI systems for a couple of years now, and both of the serious ones name the model and the dataset as first-class components: CycloneDX's ML-BOM, now standardized as ECMA-424, and SPDX 3.0.1 with its AIPackage andDatasetPackage. What neither of them has, and I checked the schemas rather than trusting the marketing, is a class for a prompt, an embedding or vector store, an adapter, or a serving endpoint. Those inference-time artifacts live only in 2026 vendor blog posts. And those are precisely the artifacts that ATLAS's prompt-injection, RAG-poisoning, and fine-tuning technique families act on, so the hole the BOM standards left on the inventory side is the same hole D3FEND had on the defensive side, with train-time things named and inference-time things not, reached from two directions that were not coordinating.

The telemetry side has the longest history and, I think, the clearest lesson. Irakle Dzneladze at IBM opened OCSF #1348 back in February 2025 (support for AI-systems telemetry) and cited MITRE ATLAS directly in the proposal, then followed it with #1431 in May, a full ai event category with its own classes and objects. That big-bang PR sat eight months without a formal review and was closed unmerged in January 2026, kept explicitly as a reference for future work, and the objection that shaped its fate came from the maintainer mlmitch, who wrote that a large portion of AI-system security telemetry is just going to be normal security telemetry and can likely be handled with additions to existing events and objects rather than a new category. What survived that verdict merged small and merged well: OCSF v1.8.0 in December 2025 took an ai_model object and added Vector and Knowledge-Graph database types, and a June 2026 PR added an ai_agentobject carrying a hashed, signed charter, and there is now an open thread proposing anagent_threat dimension anchored to an ATLAS and ATT&CK crosswalk, with OCSF reaching for the same join from the telemetry end that I was reaching for from the ontology end.

The convergence worth naming out loud is a shared instinct I'd label "extend, don't fork," stated independently by three communities that were not coordinating: mlmitch said it for OCSF, Daniel Bardenstein said it for AI-BOM when he wrote that AI is still software and you should not reinvent the wheel, and the CISA-facilitated SBOM-for-AI Tiger Team said it when it insisted its work was not a new standalone standard. When three groups who are not talking to each other land on the same shape, I take the shape as method, and it happens to be exactly the shape of this contribution: new artifact classes inside D3FEND's existing DigitalArtifact tree, restrictions on the existing technique classes, and nothing parallel. Credit belongs where it is due here, and it is spread across a lot of people: Dzneladze and the mlmitch verdict and the Fleak PR that merged the survivors on the OCSF side, Kirillov and Medina at MITRE, and Bardenstein and the Tiger Team on the BOM side, and as far as I can tell none of them set out to build the same thing.

Why now

The artifacts shipped ahead of the schema.

The reason a zero over AI systems is not something to leave for later is that the artifacts have shipped well ahead of the schemas meant to describe them. Xiaofan Li and Xing Gao at the University of Delaware measured 67,057 MCP servers across six registries and found the vetting gaps are systemic: 212 re-registrable accounts, 304 hijackable via redirects, 408 affix-squatting groups, and 833 leaking secrets, which is the closest thing to a hard number this space has (DSN 2026, arXiv 2510.16558). Unit 42's Itay Saraf and Ofir Balassiano documented model namespace reuse on Hugging Face in September 2025, where a deleted author's namespace becomes re-registrable so that name-based trust serves an attacker's replacement, and NVIDIA's Rich Harang, Joseph Lucas, and Erick Galinkin argued the same month that CVEs structurally belong to frameworks rather than to model weights, which means the inventory step your program relies on has no schema for the artifact your agent is loading. That is the same gap from the operations side that the dashboard showed from the ontology side: the model your agent is loading has no name in the schema, so nothing you have can be pointed at it.

Honest limits

What I am not claiming.

I want to be honest about the edges of this, because the number is clean enough that it would be easy to oversell. The 83.6 percent is existing-vocabulary coverage only, and the nine event-model techniques are deliberately excluded from it because they depend on ad3f:MachineLearningEvent class that does not exist in the ontology yet, so folding them in to make the headline bigger would be quoting a result I have not earned. The mappings are proposals for MITRE's judgment rather than merges: as I write this, eleven of them are live pull requests against the D3FEND repo, and Medina has approved the first and asked for one refinement, collapsing three deepfake-media restrictions into a single :produces :DigitalMedia, which I applied, so this is a conversation in progress rather than a finished contribution. The measurement itself runs against D3FEND 1.4.0, which ingests ATLAS 5.1.1 from a data repository that has since been deprecated, while ATLAS is now at v2026.06 with 173 techniques, so there are 33 newer techniques sitting in an annex waiting on the ontology's own version bump, which landed on the development branch mid-July. And ATLAS is not fixed in the general sense; it is one framework moved from zero, while ATT&CK Mobile still sits at zero next to it, so what this closes is a specific blind quadrant and not the broader problem of frameworks that no one has mapped.

None of those caveats changes the finding, which is smaller and more useful than the headline a taxonomy proposal would have carried: most adversarial-ML techniques were not waiting on a new AI ontology, they were waiting on someone to ask, one technique at a time, whether the thing being attacked already had a name, and the interesting part is that when you ask it carefully, and when you watch three other communities ask their own version of it from the inventory and telemetry sides, the answer keeps coming back the same. The pull requests are open on the D3FEND repo, the conversation is happening in the issue threads rather than in my notes, and the 83.6 percent is not a claim you have to take from me, because it reproduces in MITRE's own container against their own dashboard.

Related

MITRE ATT&CK, MITRE ATLAS, and MITRE D3FEND are trademarks of The MITRE Corporation. This essay references those public frameworks and reproduces technique identifiers under MITRE's terms of use; the analysis and the proposed mappings are my own, offered for MITRE's judgment.