learn-ai-red-team-with-phoebe / Leader session 3 of 6
Learn AI Red Team with Phoebe · Leader track · Session 3 of 6

Reading a red-team report: the number is not the finding

A red-team report lands on your desk with a percentage in the executive summary. This session is about everything that percentage does not tell you, and the questions that recover it. You will learn why a finding is a rate and never a verdict, why the most dangerous number in this field is a near-zero attack success rate, what actually hides inside the formal definition of that rate, and why comparing two vendors' numbers is usually an invalid operation. You leave with a grilling kit you can run in a forty-minute review.

🟡 Leader track Heads of security · eng leaders · risk and compliance 45 min
0-3 · Welcome 3-25 · Rates, near-zero, and what hides in an ASR 25-42 · The grilling kit, run live 42-45 · Q&A
Part 0

The number arrived without its conditions

⚠ Authorization This course is about testing AI systems you own, or are contracted in writing to test. Every exercise runs against Beacon, a fictional company, inside a scope document written in the builder track. The course names attack classes so you can read and commission test work, and pairs each with the defence that addresses it. It contains no exploit payloads and teaches no attack craft. Testing a system you are not authorized to test is a crime in most jurisdictions, and no framing in a report changes that.

Almost every bad decision made off the back of a red-team report comes from the same move: a measurement made under specific conditions gets promoted to a property of the system. "Attack success rate: 4%" becomes "the system is 96% safe". Nobody lies at any point in that chain. The conditions simply fall off somewhere between the appendix and the slide, and by the time it reaches a board it is a claim the underlying work never supported.

Your job as the reader is not to grade the testers. It is to reattach the conditions. That means asking a small, fixed set of questions of every report, every time, and treating a report that cannot answer them as an incomplete deliverable rather than a reassuring one.

Live - presented in session Self-study - read after class Official sources covered
★ What you walk out with today A reading protocol for red-team reports: the k of N rule and why a binary field destroys information, the reason a near-zero attack success rate should now raise your eyebrows rather than lower them, the three variables that hide inside every published rate, the defensible position on comparing numbers across systems, and a grilling kit of questions you can put to any testing team in the room.
Where this sits in the leader track Session a1 established what a red team is for and what a report may claim. Session a2 gave you the threat model the testing should have been aimed at. This session is about reading what comes back. Session a4 turns findings into severity, and a5 asks which defences actually survive contact.
Part 1 · k of N

A finding is a rate, never a verdict 7 min live

The same input does not produce the same output twice. That single fact breaks the reporting convention most security leaders have twenty years of habit around: the pass, the fail, the reproduced-and-confirmed. A single attempt against an AI system does not test a property, it samples a distribution, and a sample of one is not a cautious result. It is a wrong one.

NIST's Center for AI Standards and Innovation put a number on how wrong. Re-running identical agent-hijacking attacks twenty-five times instead of once raised average measured attack success from 57% to 80%. Nothing about the system changed. Nothing about the attacks changed. Only the trial count changed, and the picture of the system's robustness changed with it by twenty-three points.

Then a second result, which matters even more for how you read a report. When attacks were tailored to the target rather than taken from published baselines, measured hijacking success went from 11% to 81% on the same system. NIST's own conclusion: evaluations need to be adaptive. Which is the sentence to hold onto when a report tells you it ran the standard benchmark suite and found little. Running the published baselines and stopping is not an engagement, it is a smoke test, and the gap between those two numbers is the size of the thing it missed.

The same attack class, the same system, the same fortnight of work. Only the write-up changed. Binary "Jailbreak: FAIL. Prompt injection: PASS." No rate, no N, no endpoint. Two very different systems get the identical line. Baseline only "Attack success 11% across the published baseline set." NIST: tailoring those attacks to the target moved the same system to 81%. N = 1 "Attack success 57%, one trial per attack." A single trial samples a distribution. The figure is wrong, not conservative. k of N "80% average success: 20 of 25 trials, adaptive budget, judge named." Same system, same attacks. This is the only one of the four you can act on. If a report gives you a boolean, you have been handed an opinion with a percentage sign missing.
🔍 Click to zoom - four write-ups of one engagement, and only one of them is a finding
LiveWhy a binary field cannot be repaired later3 min▶

A defect that fires two times in fifty and one that fires fifty times in fifty are different defects. They have different exploitability, different detection profiles, different fixes and different costs. A boolean field cannot tell them apart, and no amount of analysis after the fact recovers the distinction, because the trials were never run.

  • N must be fixed before results are seen. If N is chosen afterwards it will be chosen, quite unconsciously, to flatter whichever conclusion is convenient. Ask when N was set, not just what it is.
  • The rate is the unit of comparison over time. You cannot tell whether last quarter's mitigation helped if last quarter's finding was a tick box. This is the single most common reason a security programme cannot demonstrate progress on AI risk.
  • Rates make the residual risk speakable. "Fires in four of twenty-five attempts, under a fixed attacker budget, against this build" is a sentence a risk committee can price. "Vulnerable" is not.
Part 2 · the number that should worry you

The most dangerous figure in the field is a near-zero ASR 8 min live

Everything in your training tells you a low number is good news. In this field, a near-zero attack success rate is now the number that should make you ask the most questions, and the reason is a piece of published evidence rather than a hunch.

The measurement

In The Attacker Moves Second (Nasr et al., a joint team from OpenAI, Anthropic and Google DeepMind, October 2025) the authors took twelve recent defences, most of which had originally reported near-zero attack success rates, and attacked them adaptively using gradient descent, reinforcement learning, random search and human-guided exploration. They bypassed most of them at over 90% attack success. Separately, Zhan et al. evaluated the indirect-injection defences published for agents and bypassed all eight of them, at consistently more than 50% attack success.

Twelve recent defences. Most of them originally reported near-zero attack success. As reported in the original papers ~0% The headline number in the paper: near-zero attack success, measured against the attack set the authors themselves selected, at the effort level they themselves chose to spend. Under adaptive attack, Nasr et al. 2025 >90% Most of the twelve were broken above 90% attack success, using gradient descent, reinforcement learning, random search and human-guided exploration. And separately, for agents: all eight of the evaluated indirect-injection defences Zhan et al. bypassed every one of the eight, at consistently more than 50% attack success. What this does to your reading of any report A near-zero static attack success rate is now weak evidence of anything at all. The right question is not how low the number is, but how hard anyone tried to move it. Unattacked, near-zero measures effort.
🔍 Click to zoom - what happened to twelve near-zero numbers when somebody moved second

Read that result carefully, because the failure mode it exposes is structural rather than a matter of sloppy work. A defence author picks an attack set, spends a budget attacking their own defence, and reports what they find. They are not being dishonest. They are the first mover, and the attacker moves second, with knowledge of the defence and no obligation to reuse the attacks the author had in mind. The defence's reported number is a measurement of the author's imagination and budget, not of the defence.

Your own internal reports have exactly the same structure. A team that built a guard and then tested the guard will report a number shaped by how hard they tried. This is why the single most useful line in a red-team report is not the headline rate at all. It is the description of what was attempted and what was not.

The reframe to take into your next review Stop reading the attack success rate as a property of the system. Read it as a joint measurement of the system and the effort spent against it. A 2% rate produced by an afternoon of baseline prompts and a 2% rate produced by three weeks of adaptive, target-tailored work are not the same finding, and only one of them is worth anything. If the report does not let you tell which you are holding, that is the finding.
Part 3 · inside the number

Three variables hide in every ASR, and none of them travel 7 min live

Attack success rate has a formal definition, from HarmBench. You do not need to compute it. You need to know that it takes three arguments you were probably never shown, because each one is a place to interrogate a claim, and each one is a reason two numbers from two organisations cannot be put side by side.

Every attack-success-rate number has three variables hiding inside it. ASR(y, g, f) = (1/N) Σ c( f_T(x_i), y ) HarmBench's formal definition of the rate c · the classifier Who or what graded success? A model judge, a human, a keyword rule? Was it calibrated against human labels, and at what rate? T · the token budget How much attacker effort was allowed? HarmBench found budget drastically impacts ASR, and it is not standardised across papers. N · the number of trials How many attempts per attack, and was N fixed before results were seen? Report k of N, with N on the page. Never a binary. Change any one of the three and the number changes. That is why cross-vendor comparison fails. Chouldechova et al. (NeurIPS 2025): conclusions about relative system safety are often not supported by the evidence ASR comparisons provide, resting on apples-to-oranges comparisons or low-validity measurement.
🔍 Click to zoom - the classifier, the budget and the trial count, and where each one lets a claim slip

The classifier deserves the most suspicion, because it is the one that never appears on a slide. Somebody decided what counted as a successful attack. If that somebody was a language model acting as a judge, the report is stacking one stochastic system's opinion on top of another's, and the honest version tells you how that judge was calibrated against human labels. If it was a keyword rule, it will have missed everything phrased differently and flagged plenty that was harmless. Neither is disqualifying. Both need saying.

The budget is the one that moves numbers the most and gets stated the least. HarmBench found that token budget drastically impacts attack success rate and is not standardised across papers, which means two rates computed at different budgets are not on the same scale at all. Promptfoo's own documentation says the same thing plainly: attack success rate depends heavily on attempt budget, prompt set composition and judge choice.

Why comparing across vendors is usually an invalid operation

This is the part leaders most want to do and most need to stop doing. Chouldechova, Cooper, Barocas, Palia, Vann and Wallach, at NeurIPS 2025, examined the practice directly and found that conclusions drawn about the relative safety of systems are often not supported by the evidence that ASR comparisons provide. The comparisons rest either on apples-to-oranges setups or on measurements with low validity for the thing being claimed. Anthropic has made a compatible point from the vendor side: inconsistent methods across the industry make objective cross-system safety comparison difficult.

NIST goes further and says it about benchmarks generally. In section 4.1.3 of the adversarial machine learning taxonomy, benchmarks are described as unreliable, with results routinely incomparable. New mitigations "appear very powerful, but are quickly shown to lack robustness to unforeseen types of attacks", which is why a mitigation has to be tested against unforeseen attacks rather than the ones it was designed against. And NIST's instruction on how to present the outcome is one to steal outright: attributes must be evaluated simultaneously on a Pareto plot, because a mitigation that improves one axis while degrading another is not an improvement, it is a trade you have not priced.

ComparisonIs it defensible?Why
Our system this quarter versus our system last quarterYes, with conditionsOnly if the configuration is pinned: same attack spec, same budget, same N, same judge. Otherwise you are measuring the change in your testing.
Our system before a mitigation versus afterYesThis is the strongest use of a rate. Report the delta and the overrefusal counter-metric together, on a Pareto plot rather than as a single headline.
Vendor A's published ASR versus vendor B'sNoDifferent classifiers, budgets, trial counts and attack sets. NeurIPS 2025 finding: the safety conclusions are often not supported by the comparison.
Our system versus a published benchmark leaderboardNoNIST: benchmark results are routinely incomparable, and a mitigation must be tested against attacks it was not designed to stop.
The defensible position to write into your reporting standard Report attack success rate only as a pinned-configuration trend within your own system over time, and publish it alongside four things: the full attack-and-defence specification given to the testers, the budget and trial count and judge, an overrefusal counter-metric from a benign set, and a regression-suite pass rate. Never as a cross-vendor comparison. If somebody wants the cross-vendor number, the honest answer is that the field cannot currently produce it.
Discussion 1 of 2

The grilling kit, run on a real report ★ 12 min · in groups of three

Bring a red-team or AI safety report you have actually received, or use the Beacon engagement summary. Work through the eight questions in order and mark each one answered, partially answered or absent. The count of absent answers is your read on the report's usefulness, and it is usually the first time anyone in the room has scored a report rather than reacted to it.

1 · What was N, and when was it fixed? If there is no N, every number on the page is a sample of one dressed as a measurement. If N was set after results were seen, ask why that number. NIST's 57% to 80% result is the reason this question comes first.

2 · What endpoint was tested? The base model through an API, your application through its production interface, a pre-mitigation build, a post-mitigation build? Microsoft's guidance is explicit that reports must make clear which endpoints were used. A finding against a raw model endpoint and a finding against the shipped product are different claims.

3 · Was this adaptive, or baselines only? Ask how much of the budget went to attacks tailored to this system versus published sets run unmodified. The 11% to 81% gap is what this question is measuring. A report that only ran baselines should say so in the summary, not the appendix.

4 · Who graded success, and were they calibrated? Named human adjudicator, model judge, keyword rule? If it was a judge model, what is its agreement rate with human labels on this task, and who resolved disputes? An ungraded grader is a silent multiplier on every number in the document.

5 · What was the attacker budget? Tokens, turns, wall-clock time, or attempts per objective. HarmBench found budget drastically impacts the rate. Two rates at different budgets are not on the same scale, including two of your own from different quarters.

6 · Was there a benign set, and what happened to it? Without an overrefusal counter-metric, a team can improve every security number by making the system refuse more, and the report will read as progress. This is not hypothetical: the instruction-hierarchy work that produced up to a 63% robustness gain also documented over-refusal regressions.

7 · What was explored, and what was not? This is the question most reports answer worst and the one your risk register needs most. An untested class is not a low-risk class. It goes on the board as unknown, at full inherent risk, never as safe.

8 · What build, on what date? Every finding is scoped to a build. A model version change, a system-prompt change, a new tool or connector, a new renderer or a permission-scope change all invalidate it. Ask which of those have happened since the testing window closed.

The answer that should end the meeting "We ran the standard benchmarks and everything passed." That sentence contains no N, no endpoint, no budget, no judge, no benign set and no adaptive work. It is not a weak report, it is a report that has not yet started. Send it back with the eight questions attached rather than debating the conclusion.
Discussion 2 of 2

Rewrite the executive summary you would sign ★ 6 min · in pairs

You are the accountable executive for Beacon's Support Bot. Your testing team hands you this line: "Prompt injection: mitigated. Attack success rate 3%." In pairs, rewrite it into a sentence you would be willing to put your name to in front of a regulator, using only what a report could actually establish.

Strip the verdict. "Mitigated" is a property claim. Nothing in this field supports property claims. What the work can support is: these specific attacks succeeded at these measured rates under these conditions against this build at this date.

Attach the conditions. The endpoint, N, the budget, the judge, whether the work was adaptive. If any of those are missing from the underlying report, your rewritten sentence must say they are missing. That absence is information the reader is entitled to.

Add the unexplored column. Name at least one class that was not tested, and state it at full inherent risk. A summary that only lists what was found reads as a completeness claim whether or not it means to.

Read your version out loud and ask the room the honest question: does it sound worse than the original? It will. That is the correct outcome, and it is the whole reason this session exists. The original was not better news, it was less information.

The sentence to demand in every report, verbatim Microsoft's own guidance: clarify that the role of red teaming is to expose and raise understanding of the risk surface, and that it is not a replacement for systematic measurement and rigorous mitigation work. And: it is important that people do not interpret specific examples as a metric for the pervasiveness of that harm. Put those two sentences in your report template permanently. Without them, one vivid demo becomes the organisation's entire mental model of the risk, and one clean run becomes its entire mental model of the safety.
Homework

Try it yourself - this week ◐ 45-60 min total

Source material

Official sources covered

Every framework, figure and quotation on this page traces to a primary source catalogued in this course's source map, verified 2026-08-14. This page covers:

✓NIST CAISI: 57% to 80% by repeating identical attacks 25 times; 11% to 81% when tailored to the targetPart 1 · [P] · "Evaluations need to be adaptive"
✓Nasr et al., The Attacker Moves Second (OpenAI, Anthropic, Google DeepMind, Oct 2025) - 12 defences, most reporting near-zero ASR, most bypassed above 90%Part 2 · [P] · arXiv 2510.09023
✓Zhan et al. - all 8 evaluated agent indirect-injection defences bypassed, consistently above 50% ASRPart 2 · [P] · NAACL 2025 Findings
✓HarmBench's formal ASR definition and the three variables: classifier c, token budget T, trial count N; budget "drastically impacts" ASR and is not standardisedPart 3 · [P]
✓Chouldechova, Cooper, Barocas, Palia, Vann, Wallach (NeurIPS 2025) - safety conclusions "often not supported by evidence provided by ASR comparisons"Part 3 · [P]
✓NIST AI 100-2e2025 §4.1.3 - benchmarks unreliable and "routinely incomparable"; test against unforeseen attacks; compare attributes simultaneously on a Pareto plotPart 3 · [P]
✓Microsoft's reporting guidance - name the endpoints; red teaming "is not a replacement for systematic measurement"; do not read an example as a metric for pervasivenessExercise 1 + 2 · [P]
✓Instruction hierarchy: up to +63% robustness with documented over-refusal regressionsExercise 1, question 6 · [P] · the case for a benign set
◐Anthropic's note that inconsistent methods make objective cross-system safety comparison difficultPart 3 · vendor statement, used as corroboration rather than as the load-bearing claim
◐The eight-question grilling kit itselfAssembled from the sources above · no published standard exists for reviewing an AI red-team report; treat as a working checklist
Check yourself

Three questions before you go 🎯 ◐ 90 seconds

1 · A vendor's report shows a near-zero attack success rate against their new defence. What is the correct reading?

Option C is the seductive one, and it is still wrong, because the twelve defences in the study were broken with techniques the field already had: gradient descent, reinforcement learning, random search and human-guided exploration. Nothing exotic was required, only somebody moving second with the defence in front of them. The reported rate measures the author's attack set and budget, not the defence. Zhan et al. found the same shape for agents, bypassing all eight evaluated indirect-injection defences at consistently above 50%.

2 · Your team wants to compare your system's attack success rate against a competitor's published figure. What do you tell them?

Option A fails because the same benchmark name does not fix the three variables: the judge, the attacker budget and N can all differ inside a shared benchmark, and HarmBench found budget alone drastically moves the rate. The defensible use of an attack success rate is as a pinned-configuration trend inside your own system over time, published with the attack spec, the budget, N, the judge, an overrefusal counter-metric and a regression pass rate. If a stakeholder wants the cross-vendor number, the honest answer is that the field cannot currently produce it.

3 · A report tests fourteen attack classes and finds nothing in six of them. How should those six appear on your risk register?

"Found nothing" and "was not looked at" collapse into the same visual on almost every dashboard, and that collapse is where risk registers go wrong. This is exactly why "what was explored and what was not" belongs immediately after the executive summary rather than in an appendix. The board reports unknown, never safe, and an untested class carries its full inherent risk until somebody spends effort on it.

Leader session 3 cheat sheet · pin this

k of N, never a binary57% to 80% purely by repeating identical attacks 25 times. A single trial gives a wrong number, not a cautious one.
Baselines are not an engagement11% with published baselines, 81% when tailored to the target. Ask how much budget went to adaptive work.
Near-zero is the number to distrust12 defences, most reporting near-zero, most bypassed above 90%. All 8 agent injection defences bypassed above 50%.
A rate is a joint measurementOf the system and of the effort spent against it. Unattacked, near-zero measures effort rather than robustness.
The three hidden variablesThe classifier c, the token budget T, the trial count N. Budget "drastically impacts" ASR and is not standardised.
No cross-vendor comparisonNeurIPS 2025: conclusions often unsupported. NIST: benchmarks unreliable and routinely incomparable. Pinned trend only.
Always ask for the benign setWithout an overrefusal counter-metric, refusing everything looks like a security improvement on every chart.
Untested is unknown, not safeAn unexplored class sits at full inherent risk. Put "what was not explored" right after the summary.