Skip to content

Adversarial Design Thinking

The Framework

ADT applies design thinking to adversarial testing. Five phases, each with a specific job. The cycle isn't linear. You move between phases as you learn.

A failed prototype sends you back to ideation. A surprising success sends you back to define what you actually found. The movement between phases is the system working, not failing.

The Cycle

01

Empathize

Understand the target. What are its constraints? Where has it been hardened? What's the gap between intended and actual behavior?

02

Define

Name the vulnerability precisely. Not "use encoding" but "exploit tokenizer-classifier asymmetry." Precision drives better attacks.

03

Ideate

Generate approaches without filtering. What combinations haven't been tried? What framings are underexplored? What would a different attacker attempt?

04

Prototype

Build the attack. Assemble techniques into a concrete prompt or sequence. Make it real enough to test.

05

Test

Execute and evaluate. Does the attack work? What does the response reveal about defenses? Use failure data to iterate.

← re-enter at any phase based on what you learned →

Core Principles

Study mechanisms, not templates

Understand why techniques work, not just what they look like. The mechanism is the vulnerability. The specific prompt is one expression of it.

Defenses are data

Every refusal tells you something about the system. Map the boundaries. The gaps between defenses are where vulnerabilities live.

Creativity is the edge

Novel attacks work because they haven't been seen. The exercises on this site generate the creativity that makes attacks effective.

Go Deeper