extract 0 0 0

0xDanielSec/duel-adversarial-logs

published by @0xDanielSec

Alignment dataset tracked in the /datasets sub-catalog.

Lifetime downloads
225
Last 30 days
33
Likes
-
Size
2.0 MB
Created on HF
2026-05-06
Age
5 months ago

Description

DUEL Adversarial Security Dataset

Dataset Description

This dataset contains synthetic adversarial telemetry generated by the DUEL framework

(Dual Unified Evasion Loop) — an adversarial LLM security research framework where an

Attacker agent and a Defender agent battle across MITRE ATT&CK and OWASP LLM Top 10

techniques against real Microsoft Sentinel schemas.

Every record is a single synthetic log entry from one round of the adversarial loop,

labelled as evaded… See the full description on the dataset page: https://huggingface.co/datasets/0xDanielSec/duel-adversarial-logs.

Tags

task_categories:text-classificationtask_categories:token-classificationlanguage:enlicense:mitsize_categories:1K<n<10Kformat:parquetmodality:tabularmodality:textlibrary:datasetslibrary:pandaslibrary:polarslibrary:mlcroissantregion:ussecuritycybersecuritymitre-attackmicrosoft-sentinelkqladversarialred-teamdetection-engineeringsynthetic

README current version from Hugging Face


language:

  • en
    license: mit
    task_categories:
  • text-classification
  • token-classification
    tags:
  • security
  • cybersecurity
  • mitre-attack
  • microsoft-sentinel
  • kql
  • adversarial
  • red-team
  • detection-engineering
  • synthetic
    size_categories:
  • 1K<n<10K

DUEL Adversarial Security Dataset

Dataset Description

This dataset contains synthetic adversarial telemetry generated by the DUEL framework
(Dual Unified Evasion Loop) — an adversarial LLM security research framework where an
Attacker agent and a Defender agent battle across MITRE ATT&CK and OWASP LLM Top 10
techniques against real Microsoft Sentinel schemas.

Every record is a single synthetic log entry from one round of the adversarial loop,
labelled as evaded (the Defender's KQL rule missed it) or detected (caught by the rule).
The accompanying kql_rule field contains the Defender's detection rule for that round.

This dataset is intended for:

  • Training and evaluating ML-based intrusion detection models
  • Benchmarking KQL detection rule quality
  • Studying adversarial mutation strategies in cloud security
  • Red/blue team simulation and detection engineering research

How It Was Generated

Attacker (llama3.1:8b)                Defender (mistral:7b)
  | generates synthetic telemetry       | writes KQL detection rule
  | mutates each round based on         | hardens rule each round based
    what got detected                     on what evaded
        <-> Detection Engine (pandas KQL executor) <->
              scores every round -> labels: evaded / detected

Each battle runs multiple rounds per technique. The Attacker carries persistent memory
across battles — evasion patterns accumulate and feed future mutation strategies.

Dataset Statistics

Split Records
Train (70%) 726
Validation (15%) 155
Test (15%) 157
Total 1038

Techniques covered: 38

LLM01, LLM02, LLM03, LLM04, LLM05, LLM06, LLM07, LLM08, LLM09, LLM10, T1018, T1040, T1069.003, T1078.001, T1078.004, T1087.004, T1098.001, T1110.003, T1114.002, T1133, T1136.003, T1190, T1199, T1485, T1486, T1526, T1528, T1530, T1537, T1550.001, T1556.006, T1562.001, T1566.001, T1566.002, T1567.002, T1606.002, T1621, T1648

Label Distribution

Label Count
evaded 620
detected 418

Average evasion rate: 60.9%

Evasion Rate Distribution

Evasion Rate Bin Records
0-25% 300
25-50% 76
50-75% 144
75-100% 518

Field Descriptions

Field Type Description
id string UUID for this record
technique_id string MITRE ATT&CK or OWASP LLM technique ID (e.g., T1078.004, LLM01)
technique_name string Human-readable technique name
tactic string ATT&CK tactic (e.g., Initial Access, Persistence)
round int Battle round number (1-indexed)
log object Synthetic telemetry entry (Microsoft Sentinel schema)
label string evaded or detected — outcome against the Defender's KQL rule
kql_rule string KQL detection rule used by the Defender in this round
attacker_strategy string Description of the Attacker's mutation strategy for this round
defender_reasoning string Description of the Defender's hardening approach for this round
evasion_rate float Fraction of logs that evaded detection this round (0.0-1.0)
mutation_round int Same as round — the mutation iteration number
model_attacker string Ollama model used for the Attacker (e.g., llama3.1:8b)
model_defender string Ollama model used for the Defender (e.g., mistral:7b)

Sentinel Table Schemas

The log field conforms to real Microsoft Sentinel table schemas:

  • SigninLogs — Azure AD sign-in events
  • AuditLogs — Azure AD audit events
  • AzureActivity — Azure resource management operations
  • OfficeActivity — Microsoft 365 activity events
  • Custom OWASP LLM schemas for AI/LLM attack simulation

Citation

@software{duel_framework_2026,
  author    = {Daniel Gomes},
  title     = {DUEL: Dual Unified Evasion Loop -- Adversarial LLM Security Research Framework},
  year      = {2026},
  url       = {https://github.com/0xDanielSec/duel-framework},
  note      = {Adversarial telemetry dataset generated by LLM agents battling across
               MITRE ATT&CK and OWASP LLM Top 10 techniques}
}

Framework

Generated by DUEL — an open-source
adversarial LLM security research framework. Zero external API calls — fully local via Ollama.

License

MIT — see LICENSE.

All telemetry is entirely synthetic. No real Azure tenants, Microsoft 365 environments,
or live Sentinel workspaces are involved.

README history 3 revisions

Every night we snapshot the README of every dataset in the catalog. When the SHA changes we archive the new version and diff it against the last. This is the evolving thought record of the alignment-data field: what the author decided to say about the corpus, and how that framing shifted over time.

  1. 2026-05-07Update README.md525c2e84.9 KB
    Loading...
  2. 2026-05-07Upload folder using huggingface_hub52fc6465.1 KB
    Loading...
  3. 2026-05-07initial commit7ca768b0 B
    Loading...

Used by abliterated models none yet

No abliterated models in our catalog have declared this dataset in their YAML metadata yet. This can mean the dataset is used but not declared, is used outside abliteration workflows, or is new. The link will populate automatically as models are indexed.

Community discussions 1 thread · 1 open · 1 comments

Threads posted by the community on Hugging Face: bug reports, questions about usage, pull requests on the README, license clarifications. Click any thread to expand and read the full conversation inline. Newest first.

  1. 2026-05-07[bot] Conversion to Parquetopen1 💬#1
    Loading...

Related datasets same stage · extract

Read further

Metadata

License
mit

Repository

Download the dataset

0

Copy any of these snippets into your notebook or terminal. All three fetch directly from Hugging Face using your own credentials.

Recommended: datasets library (Python)
from datasets import load_dataset
ds = load_dataset("0xDanielSec/duel-adversarial-logs")
Raw snapshot (Python)
from huggingface_hub import snapshot_download
snapshot_download(repo_id="0xDanielSec/duel-adversarial-logs", repo_type="dataset")
git clone (requires git-lfs)
git clone https://huggingface.co/datasets/0xDanielSec/duel-adversarial-logs
Catalog is the map. Apps are the tools.

Run models on your own machine, not in the cloud.

Every model page has an "Open in Abliteration" button that hands the model directly to the first-party desktop client, at the quantization your rig can actually run. No API keys, no subscription, no prompt leakage.

Open in Abliteration