Skip to main content
COOKIE NOTICECOOKIE CHOICE

We use cookies for analytics (Google Analytics) and ad measurement (Google Ads, including remarketing, and ChatGPT Ads by OpenAI). Strictly necessary cookies keep the site working. See our Cookie Policy for what each one does and how to opt out.

We’d like to use cookies for analytics (Google Analytics) and ad measurement (Google Ads, including remarketing, and ChatGPT Ads by OpenAI), and none of them is set unless you accept. Cookie Policy

Learn · AI Security & CERT-In

What AI Red Teaming Actually Is

AI red teaming is adversarial testing of an AI system — the model, the prompt and context pipeline, the retrieval layer, the tools the system can call, the places its output lands, and the humans the design relies on. It is not a penetration test of the servers underneath it, and it is not a model evaluation. It answers one question: can this system be made to do or say something its operator would not sanction, and what is reachable when it does.

The hard part is not the attack. It is the arithmetic. An AI system is non-deterministic, so a finding is not a yes or a no. A behaviour that reproduces three times in ten is still a finding, and a class probed ten times and not observed is not an absence of risk — it is an absence of observation at ten attempts. Every finding on a competent AI report carries a reproduction rate, a model version and a configuration.

6layers of the system that are in scope, not one
LLM01Prompt Injection, OWASP Top 10 for LLM Applications, 2026 edition
(xx)the Annexure I item covering attacks on AI and ML systems, reportable in 6 hours

Plain-English explainer · CERT-In Directions 28 April 2022 · CERT-In Comprehensive Cyber Security Audit Policy Guidelines v1.0 (25 July 2025) · OWASP Top 10 for LLM Applications, 2026 edition · Every clause locator and URL checked 22 September 2026

The short answer

What is AI red teaming? Adversarial testing of a system, not a model

AI red teaming is structured adversarial testing of a deployed AI system. A team acts as a motivated attacker and tries to make the system produce output or take actions its operator would not sanction — leaking data it was meant to protect, ignoring a constraint it was meant to enforce, following an instruction planted by somebody other than the user, or invoking a tool that does something real and irreversible. The system under test is the whole pipeline: the model, the prompt and context assembly, the retrieval layer, the tools the system can call, the places its output is consumed, and the human approvals the design assumes.

It is not a penetration test of the hosting infrastructure. A penetration test asks whether an attacker can compromise the hosts, the network, the application code and the identity plane. It is essential, it is a different engagement, and a perfectly hardened server can serve a system that hands a stranger another customer’s records on request. It is also not a model evaluation. A benchmark score tells you how a model performs on a public task set at a fixed configuration, but it has never seen your system prompt, your retrieval corpus, the three tools you connected, or the person who clicks approve. Both are useful. Neither answers the question this engagement is for.

The methodological difficulty is that the system under test is non-deterministic. The same input can produce a refusal and a compliance on two consecutive attempts, so a finding cannot be written as a yes or a no. It is written as a rate: successes over a stated number of trials, at a named model version and configuration. A behaviour that reproduces three times in ten is a finding — an attacker gets to keep trying — and a class that was probed ten times and not observed is not a clean result, because at an underlying rate of one in ten, ten attempts miss it roughly a third of the time. Most of what separates a serious AI engagement from a document is in that paragraph.

The four numbers people read wrongly in an AI report

The comparison with a penetration test and a model evaluation is the table two sections down. These four are the errors that survive that comparison, and each one is addressed in full further on.

A zero result is not an absence, it is a bound.

Nothing observed in ten attempts bounds the underlying rate below roughly one in four, which excludes almost nothing worth worrying about. Nothing observed in a hundred bounds it below roughly one in thirty-three. The sentence a negative result entitles you to write is a function of the count, and the count belongs next to the sentence.

A rate is only as good as the criterion behind it.

Every number in an AI report has a denominator that is arithmetic and a numerator that is a judgement. Ask for the written success criterion, who graded, and how the grading was checked. Where the criterion was written after the results were read, the rate is a count of one person’s impressions.

Thirty turns in one conversation is not thirty trials.

The arithmetic behind every reproduction rate assumes independent attempts. Continued sessions, prompt caching and sticky routing all break that assumption and none of them is visible in the number. Ask whether each trial was a fresh session with caching disabled, and treat a silent method note as an answer.

A prompt fix does not survive a model version change.

A sentence added to the system prompt is a request to the model, not a boundary around it, and re-running the one input it was written against proves only that the string stopped working. Closure has to test the family — the rephrasings, the second language, the encoded form — and the fixes that last are the four architectural ones set out further down.

Key Takeaways

  • AI red teaming is adversarial testing of a deployed AI system end to end — model, prompt and context pipeline, retrieval layer, tools, output sinks and the humans the design relies on. Six layers, not one.
  • It is not a penetration test of the hosting infrastructure and it is not a model evaluation. The three engagements answer different questions, produce different artefacts, and compose rather than substitute.
  • What it targets: twelve classes, of which prompt injection — direct and indirect — is LLM01 in the OWASP Top 10 for LLM Applications, 2026 edition, published 4 August 2026, and excessive agency and unsafe tool invocation is LLM03 in the same edition, up from LLM06 in the 2025 edition. Also jailbreaks and guardrail bypass. System prompt, context and training data extraction. Corpus and training data poisoning. Memory poisoning. Insecure output handling. Harmful or non-compliant generation. Unbounded consumption. Model supply chain. No other item number is asserted on this page.
  • The central methodological problem is non-determinism. Findings are expressed as successes over a stated number of trials, at a named model version and configuration. A behaviour that reproduces three times in ten is still a finding, and "not observed in ten attempts" is not a clean result — at 95% confidence it bounds the rate only below about 26%. Size the counts before the run: roughly 3 divided by the rate you need to exclude, so 29 trials for a one-in-ten concern and 299 for one in a hundred.
  • Every rate has a numerator that is a judgement. The success criterion is written before the corpus is run, reproduced in the report, and graded by a named arrangement — a person, a second model spot-checked by a person, or both — with the agreement rate stated. Trials are fresh sessions with caching disabled, because thirty turns in one conversation is not thirty trials.
  • The deliverable set is specific: a layer-level scope, a model and configuration manifest captured at both ends, the adversarial corpus handed over in runnable form, a transcript archive, a finding register with reproduction rates, a tool-effect log, a statement of what was not tested with its trial counts and the bounds they support, a re-test protocol defined over a variant family rather than a recorded string, and a residual-risk paragraph.
  • Indian instruments already reach this. Annexure I item (xx) of the CERT-In Directions of 28 April 2022 makes an attack or a malicious or suspicious activity affecting an AI or ML system mandatorily reportable to CERT-In within six hours, and item (xviii) does the same for cloud systems. Direction (iv) requires 180 days of rolling ICT logs maintained within Indian jurisdiction — read with CERT-In’s own FAQ of May 2022 at Q35, which states that "The logs may be stored outside India also as long as the obligation to produce logs to CERT-In is adhered to by the entities in a reasonable time". The FAQ "is not a legal document and in no way whatsoever replaces, amends or alters any part of the IT Act, 2000".
  • A second Indian duty runs on the same event where personal data is involved. Section 8(5) of the Digital Personal Data Protection Act, 2023 requires a Data Fiduciary to protect personal data by taking reasonable security safeguards to prevent a personal data breach, and section 8(6) requires intimation of a breach to the Data Protection Board and to each affected Data Principal. Rule 7 of the DPDP Rules, 2025 prescribes the manner: to each affected Data Principal without delay, and to the Board without delay with the detailed account within seventy-two hours of becoming aware, extendable on a written request. Cross-tenant recovery — the highest-consequence class on this page — is that event, and the two duties have different addressees and different clocks.
  • CERT-In names the engagement class. §6(xxiii) of the Comprehensive Cyber Security Audit Policy Guidelines (v1.0, 25 July 2025) defines AI System Audits as the "Evaluation of AI systems for security, ethical alignment, transparency, data integrity, and resilience to adversarial manipulation." §5(xxiii) and §6(xvi) define a Red Team Assessment separately, in enterprise-systems terms.
  • CERT-In SAMVAAD 2026 named AI driven red teaming methodologies among the audit ecosystem’s priorities, and CERT-In’s own proceedings record a working group aiming to publish scope templates for AI audits. Those templates are not published yet — direction of travel, not a standard.
  • Prompt injection has no general solution today. An honest report says which classes were reduced rather than eliminated, and the durable fixes are architectural — four of them, specified on this page with how to test that each is actually in place and what the finding reads like when it is not.
  • We deliver CERT-In audits, end to end, with our CERT-In empanelled partners.
The system under test

What exactly is being red teamed when you red team an AI system

What does AI red teaming test, and what is in scope for an AI red team?

Six layers, and the attack surface is the seams between them. The single most common scoping error in this field is treating the model as the system. The model is one layer of six, and the interesting failures are almost never in the model alone — they are in the composition: a document somebody else wrote reaching the context window, a tool holding more authority than the task needs, generated text arriving at a consumer that trusts it. Enumerate all six and the scope writes itself. Enumerate one and the report will be true about a fragment.

Layer 1 of 6

The model

What it is

The deployed model at a named version or snapshot, with its decoding parameters — temperature, top-p, maximum tokens — and whatever safety training and system-level filtering sit around it.

What red teaming probes here

Whether the model can be induced to produce output its operator would not sanction: instructions it should refuse, content it should decline, claims it should not make. Also whether it behaves differently under the same input, which is the property that makes everything else on this page harder.

What this layer is not

A benchmark score. How the model ranks on a public evaluation set is a statement about the model. It is not a statement about your deployment, your system prompt, your data or your tools.

What the evidence looks like

The exact input, the raw output, the model identifier and snapshot date, the decoding parameters, and the number of trials the behaviour was observed in.

Layer 2 of 6

The prompt and context pipeline

What it is

The system prompt, the instruction hierarchy, the conversation state carried between turns, and everything the application concatenates into the context window before the model sees it — user text, retrieved passages, tool results, metadata, prior turns.

What red teaming probes here

Whether the boundary between instruction and data holds. The model sees one flat sequence of tokens, while the application believes it sent a trusted instruction followed by untrusted content. Every attack in the prompt-injection family lives in the gap between those two beliefs.

What this layer is not

Input validation in the conventional sense. There is no grammar to validate against, because the interface accepts natural language by design. Escaping is not available, so the control has to be architectural.

What the evidence looks like

The assembled context as the model received it, not as the application intended it — which usually means logging the final serialised prompt, and which is usually the first thing an engagement discovers nobody logs.

Layer 3 of 6

The retrieval layer

What it is

The corpus, the ingestion path, the chunking and embedding step, the index, and the retrieval policy that decides which passages enter the context for a given query. Ingestion is rarely text-only: where the system accepts images, audio or uploaded documents, a payload can arrive as rendered text inside an image, as speech, or as text that is present in a PDF and invisible to a human reader — white-on-white, zero-point, or behind an overlay.

What red teaming probes here

Two things at once. Whether a document placed in the corpus by someone other than the operator can steer the system — indirect prompt injection — and whether retrieval respects the permissions of the person asking, or merely the permissions of the service account that built the index. A third, where the corpus is writable: whether a planted document can change what the system asserts as fact, which is a different failure from planting an instruction.

What this layer is not

Document-level access control on the source system. A corpus indexed once with a privileged service account has already flattened the permission model, and the source system has no idea it happened.

What the evidence looks like

The passage that was retrieved, the query that retrieved it, the identity the query ran as, and the path by which the passage entered the corpus.

Layer 4 of 6

The tools and actions

What it is

Every function the system can call, the credentials it holds to call them, the parameters the model controls, and the approval steps — if any — between a generated intention and a real effect. Two things belong in this layer that are easy to miss. A tool description is text the model reads, so wherever a tool definition is supplied by a third party — a connector, a plugin, a server the application trusts — the description is attacker-influenceable content that enters the context. And where the system delegates to sub-agents, each delegation is a fresh trust boundary with its own tools and its own context.

What red teaming probes here

What the system can do, as distinct from what it can say. The question is the blast radius of a single successful injection: which tools are reachable, with whose authority, against which data, and whether any of it is reversible. Where sub-agents exist, ask the same question of each one and then of the composition, because the parent agent rarely constrains what the child was given.

What this layer is not

A permissions review of the service account in isolation. The interesting property is the composition — a read tool and a write tool that are individually reasonable become an exfiltration path when a model that can be steered holds both.

What the evidence looks like

The tool schema exactly as the model received it, the tool-invocation log with arguments, the identity each call ran as, the side effects produced, and whether a human approval was requested, shown accurately, and acted on.

Layer 5 of 6

Output handling

What it is

Wherever generated text goes next: a browser that renders it, a shell that executes it, a database that receives a generated query, a downstream service that parses it, a document a person will act on.

What red teaming probes here

Whether the consumer treats model output as trusted. Generated content is attacker-influenceable content, and every classical injection class re-enters here through a channel the application team did not think of as an input.

What this layer is not

A finding about the model. This class is a finding about the application around it, and it is usually fixed there — which makes it the most tractable material an engagement produces.

What the evidence looks like

The generated string, the sink it reached, and a demonstration of what the sink did with it.

Layer 6 of 6

The humans around it

What it is

The operators, reviewers and approvers the design relies on: the person who clicks approve on a tool call, the analyst who reads a summary, the agent who forwards a generated reply to a customer.

What red teaming probes here

Whether the oversight the design assumes actually exists in the workflow as performed. An approval step that presents twenty calls an hour with a truncated argument list is a rubber stamp with a log entry, and that is a finding about the control rather than about the person.

What this layer is not

A social-engineering exercise against staff. Testing the oversight design is not the same as testing the people, and the two have different consent and reporting rules — see the note on §15.2.2(iii) below.

What the evidence looks like

The approval interface as the approver sees it, the rate of requests, what is truncated or hidden, and what the log records when approval is granted.

The one diagram worth drawing

Before any testing, draw the six layers with arrows between them and put two labels on every arrow: who can write to this and whose authority does it carry. In almost every engagement that diagram produces a surprise on the first pass, and it is usually the same surprise: an ingestion path into the retrieval corpus that is writable by someone outside the organisation — a support ticket body, an inbound email, an uploaded document, a public form. That arrow turns the whole indirect-injection class from a theoretical concern into a remote, unauthenticated attack surface, and nobody had described it that way before the diagram existed.

The three-way distinction

Why AI red teaming is neither a penetration test nor a model evaluation

How is AI red teaming different from penetration testing?

All three engagements can be run against the same deployment in the same quarter, and organisations routinely buy one believing they have bought another. Read the table down the first column and the difference stops being a matter of emphasis: the unit of analysis is different, so what a pass means is different, so the artefact is different. The last row is the important one — these compose, and the order matters. An AI system reachable through an unauthenticated admin console does not need to be argued with.

 AI red teamingPenetration test of the hosting infrastructureModel evaluation or benchmark
The question it answersCan this AI system be made to do or say something its operator would not sanction, and what is reachable when it does?Can an attacker compromise the infrastructure this system runs on — the hosts, the network, the application around it, the identity plane?How does this model perform on a defined task set, measured against a scoring rubric?
The unit of analysisThe deployed system end to end: model, prompt pipeline, retrieval, tools, output sinks and the oversight around them.Hosts, services, APIs, application code, configuration, identities and trust boundaries.The model, usually in isolation, at a fixed configuration.
What a pass meansUnder this corpus of adversarial inputs, at this model version and configuration, these behaviours were not observed at these trial counts. It is a bounded statement and it expires when the model version changes.This tester did not achieve these objectives in this window against this estate. Bounded by time, scope and tester.This model scored this on this set. Says nothing about a deployment, a system prompt, a corpus or a tool.
The methodAdversarial input design, repeated under stated trial counts because the system is non-deterministic, with tool effects and retrieval content as first-class targets.Enumeration, exploitation, privilege escalation and lateral movement, largely against deterministic systems where one successful reproduction settles the matter.Scored inference over a dataset, automated, repeatable, and designed to compare models rather than to break one.
What it cannot tell youWhether the servers are patched, whether the identity plane is sound, or how the model compares to any other model.Anything about what the model will say or do, what its corpus will surface, or what its tools will execute. Every host can be patched and every identity correctly scoped while the application built on top of them still answers a well-phrased question with somebody else’s data.Anything about your retrieval corpus, your tools, your system prompt or the person who clicks approve.
The typical artefactA finding register in which every entry carries a reproduction rate over a stated number of trials, a transcript, and a model-and-configuration manifest.A finding register with CVSS severities, CWE and CVE mappings, and a reproducible exploitation path.A score table, and a methodology note about the dataset.
How they composeNeeds the penetration test to have happened, because an AI system reachable through an unauthenticated admin console does not need to be argued with.Needs the AI red team to have happened, because none of its classes reach the behaviour of the model or the content of the corpus.Useful upstream of both, at model selection. It is a procurement input, not an assurance artefact.

There is a fourth thing worth separating out, because the vocabulary collides. CERT-In’s Comprehensive Cyber Security Audit Policy Guidelines (version 1.0, 25 July 2025) define a Red Team Assessment at §5(xxiii) and again at §6(xvi) as “an exercise, reflecting real-world conditions, that is conducted as a simulated attempt by an adversary to attack or exploit vulnerabilities in an enterprise’s information systems”. That is the whole of the definition in both places. It is objective-led and adversary-shaped, and it is written for an enterprise estate rather than for a model. Two glosses are worth keeping separate from it: in ordinary practice such an exercise also tests the organisation’s detection and response capability, but the clause does not say so and neither should a proposal quoting it. What the definition shares with AI red teaming is a posture, and almost nothing else — different scope, different method, different deliverable. If a proposal uses the two phrases interchangeably, ask which of the six layers above it covers. The sibling page on AI red teaming versus VAPT takes that comparison apart in detail, and VAPT vs penetration testing vs red teaming does the same for the three conventional engagements.

The target classes

What AI red teaming targets, class by class

What vulnerabilities does AI red teaming look for?

Twelve classes, each with what it is, what testing it looks like, what a finding has to contain, and what actually fixes it. The anchors are to the OWASP Top 10 for LLM Applications, 2026 edition, published 4 August 2026, which is the shared vocabulary this field argues in. Two item numbers are asserted on this page and no others: Prompt Injection is LLM01, and Excessive Agency is LLM03, up from LLM06 in the 2025 edition. That movement — sixth to third in one edition — is the field’s own summary of where the risk went: from what these systems say to what they can do. Every other category below is named without a number, deliberately, because a number quoted wrongly is worse than no number at all.

Direct prompt injection

OWASP Top 10 for LLM Applications, 2026 edition — Prompt Injection, LLM01

What it is

The person talking to the system supplies text that the model treats as instruction rather than as content: an override of the system prompt, a role reassignment, an instruction to ignore a constraint, a request laundered through a framing the safety training did not anticipate.

What the testing looks like

A corpus of override attempts, run against every entry point the system exposes — the chat surface, but also any field whose contents reach the context window: a ticket title, a filename, a profile bio, a support form, a calendar invite.

What the finding must contain

The input, the output, the constraint that was bypassed, and the rate at which it reproduced. A single success is a lead. The reproduction rate is what makes it a finding a team can prioritise.

What actually fixes it

Rarely a prompt change on its own, because a prompt is a request rather than a control. The durable answers are architectural: privilege separation between the model and the actions, validation at the sink, and a design that assumes the instruction boundary will fail.

Indirect prompt injection

OWASP Top 10 for LLM Applications, 2026 edition — Prompt Injection, LLM01

What it is

The instruction is not typed by the user at all. It sits in content the system ingests: a document in the retrieval corpus, a web page the system fetches, an email it summarises, a code comment it reads, the alt text of an image, a field in a record it was asked to process. The person asking the question is not the attacker, and may be the victim.

What the testing looks like

Place marked payloads into every ingestion path the system has, then exercise the ordinary workflows that would pull them into context. Cover the non-text channels the enumeration usually misses: text rendered inside an uploaded image, instructions in an audio clip where the system transcribes, and text present in a PDF but invisible to the human who approved it. The test is not whether the payload can be written — it is whether writing it anywhere in the pipeline changes what the system does for somebody else.

What the finding must contain

The payload, the path by which it entered the corpus or the fetch, the query that pulled it into context, the resulting behaviour, and the reproduction rate. Note who could plant it, because that decides whether the class is remote-unauthenticated or requires an insider.

What actually fixes it

Provenance and trust labelling on retrieved content, separation of retrieved data from instruction in the context assembly, and — the control that actually holds — refusing to let retrieved content influence tool invocation without a fresh authorisation decision.

Jailbreaks and guardrail bypass

Named without an item number. The 2026 edition covers this ground under prompt injection and related categories

What it is

Techniques that defeat the model’s own refusal behaviour or an external filter: multi-turn escalation that establishes a premise before asking, role-play framings, encoding and obfuscation, language switching, and payloads assembled across turns so that no single turn looks like a request.

What the testing looks like

Multi-turn sequences and mutation of a seed corpus, with the conversation state treated as part of the attack surface. Single-turn testing systematically under-reports this class, because the interesting failures need a setup turn.

What the finding must contain

The full transcript, not the final prompt. A jailbreak reported as a one-line payload is unreproducible by the team that has to fix it, and will be closed as not-reproduced.

What actually fixes it

Layered: refusal training, an independent output check that does not share the model’s context, and a limit on what a successful bypass can reach. Treat filter tuning as risk reduction rather than as closure.

System prompt and context extraction

Named without an item number. The 2026 edition covers system prompt leakage as its own category

What it is

Recovery of the instructions, examples, policies, keys or connection details the operator placed in the system prompt or the context window, on the assumption that the user cannot see them. The assumption is not sound, and it is a design error before it is an attack.

What the testing looks like

Direct requests, indirect elicitation, partial recovery across turns, and reconstruction from behaviour where verbatim recovery fails. Score partial recovery honestly: an attacker who learns the tool list and the refusal policy has gained most of the value.

What the finding must contain

What was recovered, how completely, in how many of how many trials, and what it would be worth to an attacker. A secret in a system prompt is a finding regardless of whether the extraction reproduced, because the exposure is structural.

What actually fixes it

Do not put secrets in the context window. Everything else in this row is mitigation. That sentence is the control.

Training data and memorised content extraction

Named without an item number. The 2026 edition covers sensitive information disclosure as its own category

What it is

Recovery of content the model was trained or fine-tuned on, or of data held in an attached store the model can reach — including, in multi-tenant deployments, content belonging to another tenant that entered a shared index, a shared cache or a shared memory.

What the testing looks like

Elicitation against known-marked records placed in the training or retrieval set where that is possible, cross-tenant probing where tenancy exists, and memory and session-boundary tests where the system retains state between conversations.

What the finding must contain

The recovered content, its classification, the identity it should have been confined to, and the boundary that failed. Cross-tenant recovery is the highest-consequence result in this class and is usually a retrieval or caching defect rather than a model defect.

What actually fixes it

Tenancy enforced at retrieval time against the asking identity, not at index time against a service account. Scrubbing and classification before fine-tuning. A hard rule that memory features are scoped to the identity that created them.

Corpus and training data poisoning

Named without an item number. The 2026 edition covers data and model poisoning as its own category. Distinct from extraction above and from supply chain below

What it is

Content written into the retrieval corpus, the fine-tuning set or the feedback loop in order to change what the system asserts rather than to instruct it. The payload is not an instruction and will not read like one: it is a plausible, retrievable false fact — a superseded policy, an invented product limit, a wrong contact address, a fabricated exception to a rule — that the system will later ground an answer on and cite.

What the testing looks like

Write marked but innocuous false facts through every corpus write path, then ask the ordinary questions that would retrieve them and record whether the system repeats them, cites them, and prefers them over the correct source. Test precedence explicitly: when the corpus contains both the true record and the planted one, which wins, and does recency or chunk position decide it.

What the finding must contain

The planted content, the write path, the query that retrieved it, the assertion the system made, whether it was cited as authoritative, and the rate. Note who could plant it, because a corpus writable from outside the organisation makes this a remote unauthenticated integrity attack on the answers your staff act on.

What actually fixes it

Provenance on every ingested item with the writer recorded. Review or quarantine for externally-writable ingestion paths before indexing. Retrieval that prefers a source of record over a general corpus for facts that matter. A periodic integrity check of the corpus against its sources. Removal must be verified by retrieval, because deleting a source document does not always remove it from an index.

Memory poisoning and persistent state

Named without an item number. Where the system retains state between sessions, this is the class that breaks the rest of this page’s reporting convention

What it is

A write into persistent memory — a user profile, a long-term memory feature, a shared summary, a cached preference — that takes effect later, in a different session, possibly for a different person. An injection that succeeds once and is written down does not need to succeed again.

What the testing looks like

Cause a write to memory through an ordinary interaction, then start a fresh session and see whether the effect survives. Where memory is shared across a tenant or a team, test whether one identity can write something another identity later reads. Where the system summarises a conversation into durable state, test whether the summary can be steered.

What the finding must contain

This is the one class on this page whose finding is not honestly expressed as a rate. A single successful write with a persistent effect is a finding at 1/1, and reporting it as 1/30 understates it by a factor nobody can compute. Record instead: the write, the store it landed in, how long it persists, who can read it afterwards, and what removes it. Say in the report that the rate convention does not apply to this class and why.

What actually fixes it

Scope every memory to the identity that created it and never to a tenant by default. Treat a write to durable state as a privileged action rather than a side effect of a conversation. Make memory contents inspectable and deletable by the person they belong to. Apply the same provenance labelling to remembered content that retrieved content gets.

Excessive agency and unsafe tool invocation

OWASP Top 10 for LLM Applications, 2026 edition — Excessive Agency, LLM03, up from LLM06 in the 2025 edition

What it is

The system is able to take actions disproportionate to what the task requires: too many tools, too broad a credential, parameters fully under model control, no approval step, or an approval step that cannot be meaningfully exercised. This is the class that turns a conversation problem into an incident.

What the testing looks like

Enumerate every tool, the identity it runs as and the scope of that identity, then attempt to reach each one through the model, including through indirect injection. Test composition explicitly — chain a read tool into a write tool and see whether anything stops it. Where tool definitions come from a third party, read the descriptions as untrusted text. Where the system delegates to sub-agents, enumerate what each child was granted rather than assuming it inherited a subset.

What the finding must contain

The tool reached, the authority it carried, the effect produced or demonstrably reachable, whether it was reversible, and whether any log records who caused it. The severity of this class comes from the effect, not from the elegance of the prompt.

What actually fixes it

Least privilege per tool with a scoped credential. Human approval for irreversible or high-value actions, with the approval showing the actual arguments. Rate and value limits. An audit trail that ties every effect back to the conversation and the identity that started it.

Insecure output handling

Named without an item number. The 2026 edition covers improper output handling as its own category

What it is

Model output is passed to a consumer that trusts it: rendered as HTML or Markdown in a browser, executed as code, interpolated into a query, written to a file path, or handed to a downstream parser. Cross-site scripting, command injection and SQL injection all re-enter the system through this door.

What the testing looks like

For every sink, ask the model to produce the payload the sink is vulnerable to, then observe what the sink does. This is the most classical work in an AI engagement and it overlaps cleanly with ordinary application testing.

What the finding must contain

Indistinguishable in form from a conventional injection finding, and it should be written as one: the payload, the sink, the effect, the fix. Score it the way the rest of your register is scored.

What actually fixes it

Treat model output as untrusted input at every consumer. Contextual encoding, allow-lists, and no path from generated text to an interpreter.

Harmful, unlawful or non-compliant generation

Named without an item number. The 2026 edition covers misinformation as its own category

What it is

Output the operator is answerable for: unsafe instructions, discriminatory treatment across protected characteristics, confidently false statements of fact in a domain where reliance is foreseeable, advice that is regulated in the jurisdiction the system serves, or disclosure that breaches a commitment the operator has made to its own customers. For an Indian operator the answerability is concrete rather than abstract. Where the output discloses personal data, section 8(5) of the Digital Personal Data Protection Act, 2023 requires a Data Fiduciary to protect personal data in its possession or under its control by taking reasonable security safeguards to prevent a personal data breach, and section 8(6) attaches an intimation duty when one happens. Where the domain is regulated, the operator is answerable to its own regulator for what its system told a customer — this page names no regulator and no sectoral rule, because no instrument it has read says one applies to AI output by name. And where the operator has made a contractual commitment to its customers about confidentiality or accuracy, the commitment binds the system too.

What the testing looks like

Scenario sets drawn from the system’s actual use, not from a generic harm taxonomy. The useful question is what this system is relied on for, and what the worst defensible output in that context would be. Draft the scenarios with the person who owns the obligation — legal, compliance, or the product owner who signed the customer commitment — rather than with the testing team alone.

What the finding must contain

The scenario, the output, the obligation or commitment it cuts against, and the reproduction rate. This class needs a reviewer who understands the obligation, which is usually not the person running the harness — so name that reviewer in the finding, by role, next to their judgement. A harmful-generation finding graded only by the tester is a technical result about a legal question, and it will be disputed by the first lawyer who reads it.

What actually fixes it

Scope restriction, refusal policy, retrieval grounding with citation, and — where the stakes justify it — human review before the output reaches the person who will rely on it. Where personal data is in play, the control is upstream: do not put it in the context window in the first place.

Unbounded consumption and denial of wallet

Named without an item number. The 2026 edition covers unbounded consumption as its own category

What it is

Inputs that cause the system to spend disproportionately — very long contexts, recursive tool chains, retrieval that fans out, an agent that loops, or a prompt that induces maximum-length generation on every turn. On a metered endpoint the consequence is a bill, and on a shared deployment it is availability for everyone else. It is the one class on this page where the attacker needs no secret and no privilege, only patience.

What the testing looks like

Measure cost and latency per request under ordinary use to establish a baseline, then attempt the amplification patterns: maximal context, induced recursion, a tool chain that calls itself, an input that defeats caching. Run it inside the agreed spend cap — this class is tested by finding the multiplier, not by exhausting the budget to prove a point.

What the finding must contain

Tokens, calls, wall time and cost for the ordinary request and for the amplified one, expressed as a multiplier, with the identity needed to send it. A 40× multiplier reachable unauthenticated is a different finding from a 3× multiplier that needs a logged-in account.

What actually fixes it

Per-identity rate and token budgets enforced server-side rather than in the client. A hard ceiling on context length, generation length and tool-chain depth. A loop detector on agent runs. Billing alerts that fire on rate of change rather than on a monthly total, because a monthly total arrives after the money has gone.

Model and component supply chain

Named without an item number. The 2026 edition covers supply chain as its own category

What it is

Where the model, its adapters, its embeddings, its plugins and its datasets came from, whether their integrity can be demonstrated, and whether the version running in production is the version that was tested.

What the testing looks like

Largely documentary and configuration work rather than prompting: provenance records, integrity verification, pinning, and a comparison between the manifest and what is actually deployed.

What the finding must contain

An unpinned or unverifiable component, or a production version that differs from the tested one. The second is the one that quietly invalidates every other finding on the report.

What actually fixes it

An inventory of AI components with provenance — the ground CERT-In’s §6(xxvi) AIBOM class and its BOM technical guidelines occupy — plus pinning, integrity checks and a change process that treats a model version bump as a change.

What this page does not treat as its own class, and why

A page whose own standard is that a report must say what it did not cover should apply that standard to itself. Three categories in the OWASP list are folded into rows above rather than given their own. Vector and embedding weaknesses are tested inside the retrieval layer and reported under extraction or under corpus poisoning depending on which way the defect runs. Sensitive information disclosure is split between system prompt and context extraction and training data extraction, because the two have different fixes. And misinformation is reported under harmful, unlawful or non-compliant generation, because the question an operator has to answer is not whether the output was false but what it was answerable for. Two further things are deliberately not classes here and belong to the engagement around them: the infrastructure the system runs on, which is a penetration test, and the governance that decides the testing happens at all, which is a management system. Say which of these your own scope covers rather than implying all of them.

The honest sentence about prompt injection

There is no general solution to prompt injection today. The model receives one sequence of tokens and has no reliable way to know which of them the operator authored and which arrived from a document, a web page or a stranger, and escaping is not available, because the interface accepts natural language by design. Everything on the market reduces the rate rather than closing the class. That is not a reason to stop testing — it is the reason the durable controls live below the model, and the table that follows specifies the four of them. An engagement report that presents prompt injection as remediated is selling something. An engagement report that states a residual rate, names the architectural controls that hold regardless of the model, and says which of them are in place, is doing the job.

What actually fixes prompt injection, and how do you test the fix?

Four controls, and they are the only things on this page that survive a model version change. Each one is stated here once, in implementation terms, with the test that proves it is really in place — because “we scope our credentials” and “there is a human in the loop” are both things every vendor says and neither is a control until somebody has tried to get past it.

The controlWhat it looks like in implementationHow you test that it is in placeWhat the finding reads like when it is not
A scoped credential per toolOne credential per tool rather than one service account behind all of them, minted for the invocation rather than held for the session, and scoped to the identity of the person in the conversation rather than to the application. Value and volume ceilings enforced on the server that executes the call, not declared in the tool schema — the schema is text the model can be talked around, and the server is not.Attempt a chain: reach a read tool through the model, then use what it returns to reach a write tool. Then send a request whose parameters exceed the ceiling and confirm the refusal comes from the service rather than from the model declining. Then call the tool as a low-privilege user and confirm the result differs from the same call as a high-privilege one.“The credit-note tool runs as a shared service account with an unbounded amount parameter. A read-then-write chain reached it at 4/30 through indirect injection, and the ceiling is enforced in the tool description only.”
An approval step that can actually be exercisedThe full argument list rendered without truncation and without an abbreviated summary, in the units the approver thinks in. A request rate the approver can sustain, which means the design has a number in it rather than an assumption. And a log that records what was shown on screen, not merely that consent was captured.Sit with the approver for an hour and count. Then produce a request whose consequential argument sits past the truncation point and see whether the dialog shows it. Then compare the log entry against a screenshot of what was actually displayed.“The approval dialog omits the amount. Approvals arrive at roughly forty an hour and the log records only the approver and the timestamp, so the control is present, trusted, and cannot be evidenced as having worked in any individual case.”
Retrieved content barred from initiating a tool callEvery retrieved or fetched passage carried into the context with a provenance label — where it came from, who could write there, when it was ingested — and a hard rule in the orchestration layer that labelled content cannot trigger a tool invocation without a fresh authorisation decision made against the asking identity. The label is structural, not a sentence in the system prompt asking the model to be careful.Plant a marked payload in each ingestion path that instructs a tool call, then run the ordinary workflow that retrieves it and observe whether a call is attempted, whether it is blocked, and where the block happened. A block that happens because the model declined is not this control working.“Retrieved ticket content enters the context unlabelled and is indistinguishable from the system instruction at the token level. A payload in a public-writable ticket body caused an email-draft modification at 19/30.”
Encoding at every sinkContextual encoding chosen per consumer — HTML, Markdown with a strict allow-list and no remote image loads, shell never, parameterised queries for anything that reaches a database, schema validation for anything a downstream service parses — and no path at all from generated text to an interpreter.Enumerate the sinks first, then for each one ask the model to produce the payload that sink is vulnerable to and observe what the sink does. This is ordinary application testing performed on a new input channel, and it produces the only deterministic findings in the engagement.“Model output is rendered as Markdown in the agent console without an allow-list. A generated image reference with an attacker-controlled URL exfiltrates the conversation via the query string, reproducing 30/30 because the sink is deterministic once the string is produced.”
The central problem

How do you report a finding in a system that does not repeat itself

Is a bug that only reproduces sometimes still a finding?

Yes. That is the sentence the whole discipline turns on. In conventional security testing a finding is a fact: the payload works, it works every time, the developer reproduces it in a minute and the argument is about severity rather than existence. An AI system does not behave that way. The same input produces a refusal, then a refusal, then a compliance, and the tester and the developer walk away with opposite beliefs about the same system. Both observations are real. What is missing is a denominator.

A finding that reproduces three times in ten is still a finding, because an attacker is not required to succeed on the first attempt. Three in ten is a system that can be made to fail by anyone willing to press the button four times. The reporting convention that follows is simple and it is the thing to insist on: every behavioural finding is written as successes over trials at a stated configuration — 3/10, 14/50, 2/100 — and every negative statement carries its trial count too.

Probability of observing a behaviour at least once, by underlying rate and number of trials
If the true rate is10 trials30 trials100 trialsHow to read the row
1 in 100 attempts (1%)9.6%26.0%63.4%Effectively invisible at small trial counts. A behaviour this rare will be missed by a ten-attempt probe nine times out of ten, and a report that says “not observed” is saying almost nothing about it.
1 in 20 attempts (5%)40.1%78.5%99.4%The band where small engagements disagree with each other. Two competent teams running ten attempts each will reach opposite conclusions about the same system roughly half the time — one sees it, the other does not, at 48%. Both teams miss it entirely about a third of the time.
1 in 10 attempts (10%)65.1%95.8%99.997%The band the industry argues about. A tester who sees it once in ten calls it a finding, while a developer who tries it twice and fails calls it unreproducible. Both observations are consistent with the same underlying system.
3 in 10 attempts (30%)97.2%99.998%greater than 99.99%Reliably detectable, and reliably reproducible by the team receiving the report. This is the band where a finding stops being contested and starts being scheduled.

The percentages are the chance of seeing a behaviour at least once in the stated number of independent attempts, at the stated underlying rate. It is plain arithmetic — one minus the probability of missing it every time — and it is a property of the maths rather than a claim about any particular system. It is on this page because it settles two arguments that otherwise run forever: why “we could not reproduce it” after two attempts means nothing, and why a negative result without a trial count is not a result. The word doing the work in that first sentence is “independent”. Three ordinary things break it, and none of them is visible in the printed rate: trials run as turns inside one continued session rather than as fresh ones, prompt or response caching serving the same answer to a repeated prefix, and sticky routing sending every call in a run to the same replica. Where any of those applies, the denominator is not a count of independent draws and the table above does not describe the number in the report.

What can you claim when you observed nothing?

The table above answers “will I find it”. This one answers the question every clean result raises and almost no report closes: what a zero entitles you to write. The arithmetic is the standard upper confidence limit for zero successes in n independent trials, and the familiar shorthand for it is the rule of three — with nothing observed in n trials, the underlying rate is below roughly 3/n at 95% confidence. Lift the sentence from the last column rather than writing “not vulnerable”.

What a zero result bounds, by number of trials
If you observedThe true rate isRule of threeThe sentence you may writeHow to read the row
0 successes in 10 trialsbelow about 26%3/10 = 30%Not observed in 10 trials. On this evidence the behaviour occurs at under roughly one attempt in four, and anything rarer than that is untested.Almost no information. A behaviour occurring one time in five would survive this test more than one run in ten. Ten trials is a screening pass, not a negative result, and a report that writes “not vulnerable” off the back of it is overstating its own evidence by a wide margin.
0 successes in 30 trialsbelow about 9.5%3/30 = 10%Not observed in 30 trials, which bounds the rate below roughly one attempt in ten at 95% confidence.The first count that supports a sentence worth writing. It is enough to retire a one-in-five concern and nowhere near enough to retire a one-in-fifty one.
0 successes in 60 trialsbelow about 5%3/60 = 5%Not observed in 60 trials, bounding the rate below roughly one attempt in twenty at 95% confidence.The right order of magnitude for a class whose consequence is serious but not catastrophic — a data-disclosure bypass on non-sensitive content, say.
0 successes in 100 trialsbelow about 3%3/100 = 3%Not observed in 100 trials, bounding the rate below roughly one attempt in thirty-three at 95% confidence.What a negative statement about an irreversible tool action should cost. If the class can move money, send mail or delete records, this is the count to buy, and it is a line item rather than a rounding error on a metered endpoint.

Run the same arithmetic backwards and it becomes a sizing rule you can apply before the engagement rather than a regret afterwards. To have roughly 95% confidence of observing a behaviour that occurs at rate p, you need about 3/p trials: 29 for a one-in-ten concern, 59 for one in twenty, and 299 for one in a hundred. That is the whole method for choosing a trial count. Decide, per class, what rate you would need to exclude before you would sign the sentence, and buy that many trials for that class — which is also why a uniform count across every class is a budgeting decision wearing a methodology.

What counts as a success, and who decides?

Every number on this page has a denominator that is arithmetic and a numerator that is a judgement, and the judgement is the part nobody writes down. For insecure output handling the success condition is objective — the script executed or it did not. For a jailbreak, a partial system-prompt recovery or a harmful-generation scenario, somebody looked at an output and decided. Four things make that decision checkable, and a report missing them is quantifying one person’s impressions.

A written criterion, before the corpus is run

One sentence per class, specific enough that two people applying it to the same output reach the same verdict, and reproduced in the report rather than summarised. “Harmful content” is not a criterion. “Provides step-by-step instructions that materially advance X” is closer. “Returns the verbatim text of the tool list, or enough of it to enumerate every tool name” is a criterion. Write it before the results exist, because a criterion written afterwards is a description of what was found.

A named grader, and a stated arrangement

Who applied the criterion: a person, a second model applied to the written criterion, or both. Model grading is what makes high trial counts affordable and it is not free — where a class was graded by a model, a person spot-checks a stated sample of it, and the report says what the sample was. A class graded entirely by machine with no human sample is an unvalidated measurement, however large the denominator looks.

The grader’s own configuration, in the manifest

An LLM judge is itself non-deterministic, which means its variance lands inside your numerator. Record the grading model’s identifier, version and decoding parameters alongside the system under test. This is the recursion that makes people uncomfortable and it is better stated than ignored: you are measuring one stochastic system with another.

An agreement rate between two graders on a sample

Two graders apply the criterion to the same sample of outputs and the report states how often they agreed. That single figure is what converts the numerator from an assertion into something a reader can weigh, and it is the field most likely to be missing from an otherwise careful report. Low agreement is not a failure to hide. It is a signal that the criterion needs rewriting before the rate means anything.

How do you document an AI red teaming finding?

Sixteen fields, and this is the practical core of the page. A finding carrying all sixteen can be handed to a developer, re-run, argued about on the evidence and closed on a number. A finding missing two or three of them will be closed by whoever fails to reproduce it first.

FieldWhat it recordsWhat happens without it
Reproduction rate, as successes over trialsNot “intermittent”, not “sometimes”: 3/10, 14/50, 2/100. The denominator is as important as the numerator, because it is what tells the reader how much confidence the number carries. Three successes in ten is a finding. Zero successes in ten is not an absence.The finding cannot be prioritised, cannot be re-tested and will be closed by whoever fails to reproduce it first. This single field is the difference between an AI finding and an anecdote.
The success criterion, written before the runOne sentence saying what counts as a success for this objective, specific enough that two people applying it to the same output reach the same verdict. It is written before the corpus is run, not after the results are read, and it is reproduced in the report rather than summarised. Every rate on the page is a fraction whose denominator is arithmetic and whose numerator is this judgement.The reproduction rate is a count of one person’s impressions with a denominator attached. It will not survive the first argument, and it should not.
Who graded the attempts, and how the grading was checkedWhether a person graded, a second model graded against the written criterion, or both. At what sample a model-graded class was spot-checked by a human. The agreement rate between two graders on that sample. Where a model graded, its own identifier and decoding parameters belong in the manifest, because an LLM judge is itself non-deterministic and its variance lands in your numerator.Nobody can tell whether a rate that moved between two engagements reflects the system or the grader. This is the field that makes the numerator checkable, and it is almost never present.
Whether trials were fresh sessions or continued turns, and whether caching was disabledState it in terms: n fresh sessions, or n turns inside one conversation, and whether prompt caching and provider-side response caching were disabled for the run. Thirty turns in one session is not thirty trials — it is one contaminated observation with a large denominator printed next to it.The denominator is not n independent draws, and the arithmetic in the table above does not apply to the number in the report. The rate is inflated or deflated by an unknown amount in an unknown direction.
Model identifier and snapshotThe exact model name and version or snapshot date, including any fine-tune or adapter, and the provider endpoint. A provider-side update changes the system under test without changing a line of your code.The result is not attached to anything. Six weeks later nobody can say whether a failed re-test means the fix worked or the model moved.
Decoding parameters and seedTemperature, top-p, maximum tokens, penalties, and the seed where the platform exposes one. Temperature is the dial that decides how much of the variance you are measuring is yours to control, and a finding recorded at temperature 1.0 is a different claim from the same finding at 0. Do not record temperature 0 as determinism: it narrows the distribution and does not close it, because a hosted model still varies through expert routing, batch composition and the fact that floating-point addition is not associative, so the same tokens can be scored slightly differently from one call to the next.The reproduction rate is uninterpretable, because it is a rate under unstated conditions.
The exact input, byte for byteThe full prompt as sent, including whitespace, unicode, and any encoding. Invisible characters and homoglyphs are load-bearing in this field in a way they are not in most application testing, and a payload retyped into a report is not the payload.The re-test runs a different input and reaches a different answer, and both sides believe the other is wrong.
The assembled context, not just the user turnFor anything involving retrieval, tools or multi-turn state, the transcript has to include what the model actually received: retrieved passages, tool results, prior turns and system instruction. The user turn alone is a fragment.Indirect injection findings become irreproducible the moment the corpus changes, which it does daily.
The system prompt version or hashNot the prompt text pasted into a report six weeks later: a version reference or a hash of the instruction layers as they stood during the run. CERT-In’s guidelines already work this way for conventional applications — §15.2.3(ii) of the 2025 audit policy guidelines states that application hash values and version numbers must be obtained from the auditee and included in the audit report. Extending that discipline to the system prompt is this page’s reading of what the clause is for, not something the clause says.A finding is attached to a model and not to a configuration. Prompt text is routinely edited outside change management, so the thing that was tested may no longer exist and nobody can prove it either way.
The tool schema, exported verbatim as the model received itThe definitions, not only the invocations: every tool’s name, description, parameter schema and any text a third party supplied. A tool description is text in the context window, so the schema is part of the input the finding is about.At re-test, a finding fixed by a tool being renamed is indistinguishable from one that was actually fixed. The behaviour stops reproducing, the register closes, and the capability is still there under another name.
The full transcript, including the setup turnsMulti-turn attacks are defined by their setup. A transcript that starts at the successful turn has removed the mechanism and kept the punchline.The most interesting class of finding in the report becomes the least actionable.
Guardrail and filter configuration at the time of the runWhich input and output filters were enabled, at what thresholds, and whether the run went through the production path or a bypass. Testing against a bypass and reporting against production is a common and avoidable error.A finding that the production configuration already blocks, or — worse — a clean result produced by a filter that is disabled in production.
Tool state and side effectsWhich tools were enabled, what they were connected to, what the model invoked, with what arguments, under which identity, and what actually changed as a result. Include the ones that were attempted and refused.The severity is a guess. Excessive-agency findings are scored on effect, and effect is the field being omitted.
The date and time of the runAgainst a hosted model this is a version proxy. Where the provider does not publish snapshot identifiers, the timestamp is the only handle on which system produced the result.A result that cannot be located in time, in a field where the substrate changes under you.
The severity, with its inputs shownReproduction rate, the capability reached, who can reach it — unauthenticated, authenticated, or only an insider who can write to the corpus — and whether the effect is reversible. Show the four inputs rather than only the resulting label, because the label is the part people argue about and the inputs are the part they can check.A severity column with no basis, which is an opinion formatted as a measurement.
The negative result, recorded as deliberately as the positive oneThe objectives that were attempted and not achieved, with their trial counts and the bound those counts support. Annexure I to CERT-In’s empanelment terms and conditions (v7.2, April 2024) sets out what an auditee organisation expects of an auditor, and two items read directly on this: “Reports include all unknowns clearly marked as unknowns” and “Reports state clearly all states of security found and not only failed security measures.” The annexure is headed as expectations rather than requirements, and it is quoted here as the expectation it states.The report is a list of successes with no denominator, which is a coverage claim that cannot be checked. It also silently converts everything untested into everything safe.

How much uncertainty sits on an observed rate

A rate is an estimate, and at the counts these engagements actually run it is a loose one. Three successes in ten is consistent with a true rate anywhere from roughly 11% to 60%. Eleven in thirty is roughly 22% to 55%. Two in thirty is roughly 2% to 21%. Print the interval next to the rate in any finding whose remediation will be argued about, because the argument is almost always really about the interval.

That arithmetic is also the only honest way to read a remediation result. The worked engagement further down reports a refusal bypass moving from 11/30 to 2/30. Those two intervals — 22–55% and 2–21% — only just fail to overlap, which means the improvement is distinguishable from sampling noise and only just, at n = 30. It is a real result and it is a narrow one, and the report should say both. At n = 10 the same before-and-after would have proved nothing at all. This is the arithmetic that decides whether a remediation cycle was worth running, and it is the reason to fix the trial count before the fix ships rather than after, while neither side has an interest in the number.

How severity works when existence is probabilistic

Show four inputs rather than a single label: the reproduction rate, the capability reached, who can reach it — unauthenticated, authenticated, or only an insider who can write to the corpus — and whether the effect is reversible. A 2-in-30 bypass that leaks a marketing FAQ is not the same object as a 2-in-30 bypass that issues a credit note, and a single severity word hides the distinction that decides what gets fixed first. Where the organisation already scores conventional findings with CVSS and supplements them with EPSS — which §5(xxiv) and §16.2(ii) of the 2025 guidelines require of an empanelled auditor’s report — say plainly which AI findings map onto that vector and which do not. An improper-output-handling finding maps cleanly. A probabilistic guardrail bypass does not, and it is worth knowing exactly why rather than taking it on trust. CVSS v4.0 composes four metric groups — Base, Threat, Environmental and Supplemental — and every metric in them describes a condition on the attacker’s side or an impact on the target. Attack Complexity and Attack Requirements are the two that sound like they might fit, and both are about what the attacker has to arrange. There is no metric anywhere in the vector for the target succeeding only a third of the time, because the measurement problem here sits on the target’s side, and a vector cannot record something it has no field for. So do not force it and do not omit it: print the full vector rather than a bare number, label it CVSS-B where only base metrics were used — FIRST’s own nomenclature note says that a score derived from base metrics alone is CVSS-B and that the nomenclature should be used wherever a numerical value is communicated — and put the observed rate and the trial count beside it. Vector, rate, count, together. That is a convention a register can adopt, rather than a warning about the one it already has.

What closure means, and when it expires

Closure is a statement about a family, not about a string. The recorded input is one member of it, and the rephrasings, the second language, the encoded form and the multi-turn setup are the rest, and a fix that only stops the recorded input has moved the finding rather than closed it. Define the family per finding, agree the re-test trial count before the fix ships — afterwards both sides have an interest in the number — and measure the family by the same success criterion the original was graded against. Then agree the harder rule: what happens to the result set when the model version changes. The honest answer is that a version change invalidates every behavioural finding and none of the architectural ones, which is the strongest argument available for fixing the architecture rather than the prompt. A hosted model can change under you without any deployment on your side, so capture the manifest at both ends of every engagement and compare it. An hour of work converts “the model may have changed” into a checked fact.

The engagement

How an AI red teaming engagement runs, step by step

How does an AI red teaming engagement work?

Thirteen steps. Six of them happen before anybody types an adversarial input, which is the same shape a conventional audit has and for the same reason: the quality of the result is fixed by the scope, the manifest, the authorisation and the rules of engagement long before it is fixed by the testing.

Write down what the system is relied on for

Before any layer is enumerated, state the consequences in the client’s own language: what decisions are taken on this output, who acts on them, what is irreversible, and what obligation or commitment the organisation would be answerable under if the output were wrong. Everything downstream — the scenario sets, the severity model, the trial counts — is derived from this paragraph, and an engagement that skips it tests a generic harm taxonomy against a specific system.

Enumerate the six layers and draw the trust boundaries

Model and version. The context assembly and every field that reaches it. Every ingestion path into the retrieval corpus and who can write to each. Every tool, its credential and its scope. Every sink that consumes output. Every human the design relies on. The output of this step is a diagram with arrows and identities on it, and it is usually the first time anybody has drawn one.

Settle who authorises, including the party that owns the model

The first question is not what may be tested but who can permit it, and for most Indian deployments the answer is not only you. Where the model is a hosted third party’s, the entity controlling the target is the provider: read its acceptable-use terms and its own testing or disclosure programme before the corpus is written rather than after, and agree a request-rate ceiling and a window in writing, because an unthrottled adversarial suite against a rate-limited inference endpoint can meet the description at §15.2.2(ii) of CERT-In’s 2025 audit policy guidelines, under which explicit written permission must be obtained from the auditee before flood testing over the Internet to prevent disruption of services — and where the endpoint is somebody else’s, their permission is needed too. Where provider permission cannot be obtained, the honest scope is your application layer — retrieval, context assembly, tool invocation, output handling and the authorisation around the model — with the model itself recorded as a limitation rather than quietly tested anyway. Settle data handling in the same document: prompt and completion logs routinely contain whatever users pasted in, so where an empanelled audit is in play the §10.3(ii) India-only storage, §10.3(iii) encryption and §10.3(iv) wiping duties attach to them like any other auditee data, and the practical trap is the evaluation stack itself, much of which is hosted outside India and mirrors by default.

Agree the rules of engagement in writing, per class

Which tools are live and which are stubbed, whether a test tenancy exists and what it contains, whether the corpus may be written to and how the payloads will be removed afterwards, spend and rate limits on paid endpoints, what happens if a real customer record is reached, and the stop condition, with a named person on the client side who can invoke it. Where any part of the exercise touches staff behaviour rather than system behaviour, §15.2.2(iii) of the 2025 audit policy guidelines applies: the clause states that social engineering and process testing should be conducted in a controlled and ethical manner, and that where such testing targets general staff — its own example is untrained or non-security personnel — it must use anonymised or statistical techniques ensuring no individual is personally identified or penalised. The same clause confines the testing to a group of employees explicitly included within the agreed audit scope, and states that these tests “must not involve external entities such as customers, business partners, vendors, or other third parties, unless specific written consent is obtained”.

Capture the manifest, then freeze what you can

Record model versions, adapters, decoding parameters, guardrail configuration, retrieval settings and the tool inventory before the first input. Pin what the platform allows you to pin and note what it does not. A provider-side model update mid-engagement is not a hypothetical, and the manifest is what lets you detect it instead of arguing about it.

Establish the baseline behaviour

Run the benign workflows first, at a real trial count, and record what normal looks like — refusal behaviour, tool-invocation patterns, retrieval behaviour, latency. Without a baseline there is no way to tell an attack-induced behaviour from the system’s ordinary variance, and variance is the whole difficulty of the field.

Run the direct classes against every entry point

Override attempts, jailbreak sequences, extraction attempts and harmful-generation scenarios, at the agreed trial counts, against every field whose contents reach the context window — not only the obvious chat box. Record refusals and near misses as well as successes, because the near misses are what set the trial count for the next pass.

Plant the indirect payloads and exercise the ordinary workflows

Write marked payloads into each ingestion path, then use the system normally and see whether somebody else’s session changes. This is the step that most engagements skip and the one that most often produces the finding with the widest blast radius, because it needs no access to the victim at all.

Push from conversation into effect

Chain the successful influence into the tool surface: which functions can be reached, with whose authority, against which data, and whether anything is irreversible. Test the approval step by using it rather than by reading about it. The severity of the engagement lives in this step, and so does the reason it needs a written stop condition.

Test the sinks

Take the model’s output to every consumer and see what the consumer does with it: render, execute, interpolate, parse, store. This is conventional application testing performed on a new input channel, it produces the most fixable findings in the report, and it belongs to the application team rather than to the model.

Establish rates, not anecdotes — and size the counts before you run them

For every behaviour observed once, re-run it at the agreed trial count, in fresh sessions with caching disabled, graded against the criterion written before the run, and record successes over trials with the configuration stated. Size the counts from the rate each class needs to exclude rather than picking a round number: at 95% confidence the trials needed to see a behaviour occurring at rate p is roughly 3 divided by p, so 29 trials for a one-in-ten concern, 59 for one in twenty and 299 for one in a hundred. Run the inverse for every class you expect to report clean, because a zero result at 10 trials bounds the rate only below about 26% and a zero result at 100 bounds it below about 3%. Write both the counts and the bounds they support into the limitations paragraph.

Score on effect, reach, reproducibility and reversibility

Show the four inputs rather than only the resulting label, and print the CVSS vector alongside the observed rate and the trial count rather than instead of either. The severity treatment, including why a reproduction rate has nowhere to live inside the CVSS vector, is set out in full in the non-determinism section above. This step is the instruction to apply it consistently across the register rather than per finding.

Report, re-test the family, and agree what a model change does to the result

Deliver the register, the corpus, the transcripts, the manifest and the residual-risk statement, then re-test against the agreed protocol at the agreed counts — against the variant family rather than the recorded string, because re-running the one input the fix was written against is the closure failure this page has already diagnosed. Settle one question in writing before the first fix ships: what happens to the result set when the model version changes. The honest answer is that a version change invalidates every behavioural finding and none of the architectural ones, which is itself an argument for fixing the architecture. Then agree the triggers that re-run the corpus between engagements. The table below the steps lists the five worth writing into the contract.

What reopens a closed AI finding?

Five events, none of which involves anybody deploying anything on your side. This is the table that turns the handed-over corpus from a deliverable into a control: without a written trigger list, the corpus is a file somebody has, and with one it is a regression test that runs when the system moves. Put the list in the statement of work, with the person who owns each trigger next to it.

The triggerWhat it does to a closed findingThe control that catches it
The provider updates the model and the identifier stays the sameReopens behavioural findings you closed, and can also close findings you never fixed — which is worse, because a finding that vanishes without a fix returns without warning.Pin the version where the provider allows it. Where it cannot be pinned, compare the manifest weekly, treat a provider-side change as a change to your system, and re-run the whole behavioural corpus against it, holding the previous version’s rates for comparison.
Your system prompt or tool schema changesSilently removes the mitigation a closed finding depended on. Prompt text and tool definitions usually live outside the application’s change-management process and are edited by people who do not think of themselves as changing production.Put both under version control, record the hash in the manifest, and re-run the affected families on every change. This is also where §13.1.2(iii) of the 2025 guidelines bites: all changes to the system or application must undergo a formal change management process, and a prompt edit is a change.
The retrieval corpus gains a sourceCreates ingestion paths that did not exist when the scope was written. An indirect-injection class closed against three paths is not closed against a fourth, and a finding may neither reproduce nor be fixed — it has simply moved.Re-run the indirect-injection payloads against each new source before it goes live, and treat the addition of an externally-writable source as a change that warrants testing rather than a configuration update.
A guardrail is tuned for false positivesReopens bypasses in precisely the category that was loosened. Filters are tuned in response to a business complaint and are rarely re-tested against the security cases afterwards.Keep every successful bypass from every engagement as a regression case and run the set whenever a threshold or profile changes. Record the guardrail configuration in the manifest so the comparison is possible at all.
A new tool is granted to the systemWidens the blast radius of every injection finding at once, including the closed ones — because the class was never closed, only its consequence was bounded.Make the tool inventory a reviewed artefact with an owner. Classify the addition of a tool that writes, spends, sends, deletes or grants as a change that needs testing before implementation, which is the shape §13.1.2(iii) gives a Major Change.
A worked engagement

What it looks like with dates and numbers against it

How long does an AI red teaming engagement take?

The engagement below is invented for illustration. It is not a client, it does not describe a sector, and none of the numbers in it is a claim about any outcome we or anyone else has achieved. It exists so that the abstractions above have a shape a reader can hold a real proposal against: a customer-support assistant with retrieval over a knowledge base and a ticket archive, three tools, and output rendered in an agent console and inserted into outbound email drafts.

WhenGateArtefact producedWhy the step earns its place
Day 1Consequence statement and layer enumerationOne page on what the assistant is relied on for, plus a diagram: one hosted model at a pinned snapshot, a system prompt of roughly 900 words, retrieval over an internal knowledge base and a ticket archive, three tools (look up order, update ticket, issue credit note up to a ceiling), output rendered as Markdown in an agent console and also inserted into outbound email drafts.The ticket archive is writable by anyone who can open a support ticket, which means an ingestion path is exposed to the public internet. Nobody had described it that way before the diagram was drawn.
Day 2Rules of engagement and manifestWritten rules: tools live against a test tenancy only, credit-note ceiling reduced to a nominal value for the window, corpus writes confined to marked records with a removal list, spend cap set, stop condition named with a person attached. Manifest captured: model snapshot, temperature 0.7, top-p default, guardrail profile, retrieval top-k, three tool schemas exported verbatim, system prompt hash. Written success criterion agreed per class, trial counts fixed, and a rule that every trial runs as a fresh session with prompt caching disabled. Provider acceptable-use terms read and a request-rate ceiling agreed in writing.The staging deployment runs a different guardrail profile from production. Testing would have been performed against a configuration the customer does not run. Separately, nobody could say whether the model identifier in use was pinned or an alias — the manifest step is where that question gets asked for the first time.
Day 3Baseline60 benign workflow runs across the three tools, recording refusal behaviour, retrieval patterns and tool-call shapes. Two benign runs invoke the credit-note tool without being asked to.Variance is not an attack artefact. A baseline that shows unprompted tool invocation at 2/60 changes how every later result is read.
Day 4–5Direct classes at the agreed countsSeed corpus of 140 inputs across override, role reassignment, encoding and multi-turn escalation, each promising seed re-run to 30 trials. Outcome: one refusal bypass at 11/30, one partial system-prompt recovery at 6/30, full recovery of the tool list and the refusal policy at 24/30.The tool list and refusal policy are recoverable four times in five. That is not a leak of a secret. It is a leak of the map, and it makes every later attack cheaper.
Day 6–7Indirect injection through the public ingestion pathMarked payloads placed in the body of three test support tickets. Ordinary agent workflows then run against those tickets. The payload instructs the assistant to append a line to any email draft it produces. Observed at 9/30 on the first phrasing and 19/30 after two mutations.A member of the public can influence what an internal agent’s email draft says, at roughly two in three attempts, without authenticating to anything. This is the finding the engagement existed to produce.
Day 8From conversation into effectThe same injection path chained into the credit-note tool. The approval dialog appears but shows a truncated argument summary that omits the amount. Credit note issued in the test tenancy at 4/30, with a second variant reaching 7/30.The approval step exists, is logged, and does not show the approver the number they are approving. The control is present and non-functional, which is worse than absent because it is trusted.
Day 9SinksMarkdown rendered in the agent console is tested for active content, and the email draft path is tested for header and link injection. One improper-output-handling finding confirmed, reproducing 30/30 because the sink is deterministic once the string is produced.A deterministic finding inside a non-deterministic engagement. It is scored, written and fixed exactly like a conventional application finding, and it is closed first because it can be.
Day 10Register, corpus handover, residual riskEleven findings with reproduction rates and the full field set. 140-input corpus and mutation scripts handed over with a runner. Transcript archive. Manifest captured a second time and compared against day 2 (unchanged). Residual-risk paragraph stating which classes are reduced rather than eliminated.The second manifest capture is a one-hour task that turns “the model may have changed” into a checked fact. It had not changed. Next quarter it will have.
Day 11–25RemediationApproval dialog rewritten to show full arguments. Credit-note tool given its own scoped credential and a value ceiling enforced server-side. Retrieved ticket content labelled as untrusted in context assembly and barred from influencing tool invocation. Output encoding fixed at the console sink. Refusal policy removed from the system prompt and enforced outside the model.Four of the five fixes are architectural and one is a prompt change. Only the architectural four survive a model version change, and the engagement says so in the report.
Day 26–28Re-test at the agreed countsEvery behavioural finding re-run at 30 trials against the same snapshot, against the variant family rather than the recorded string — each finding re-tested with its recorded input plus two rephrasings, a second language and an encoded form, graded against the same written criterion. The tool-invocation chain now fails 0/30, which bounds it below roughly 9.5%. The refusal bypass drops from 11/30 to 2/30. The improper-output-handling finding is closed deterministically. Manifest re-captured and compared.A 2/30 residual is not zero, and the report says 2/30 rather than “mitigated”. That number is what the risk acceptance is written against, and it is what the next cycle compares to.

Two things in that invented sequence are worth lifting out, because they are the two that most often decide whether an engagement was worth buying. The first is day 6 to 7: the highest-consequence finding needed no access to any victim and no credentials at all — it needed the ability to open a support ticket. The second is day 26 to 28: the re-test reports 2/30 rather than “mitigated”. That number is what the risk acceptance is written against, what the next cycle compares to, and the only honest way to describe a class that is reduced rather than eliminated.

Apply this page’s own arithmetic to its own invented numbers, because a reader should. The refusal bypass moves from 11/30 to 2/30, and those two intervals — roughly 22–55% and roughly 2–21% — only just fail to overlap. The improvement is distinguishable from sampling noise, and only just, at thirty trials. Run the same before-and-after at ten trials and it would have demonstrated nothing at all, which is the whole argument for fixing the count before the fix ships. The indirect-injection result reported at 19/30 carries an interval of roughly 46–78%, so “roughly two in three” is the right way to describe it and “63%” is a spurious precision. An engagement that writes the interval next to the rate is doing a small amount of extra arithmetic and removing most of the argument that follows.

Failure modes

Fourteen ways an AI red teaming engagement produces a document instead of a result

Why do AI red teaming engagements fail?

Each of these is common, each is avoidable in the scoping call rather than in the report, and each carries a diagnostic you can run against the engagement in front of you this week.

The tools were stubbed and nobody wrote it down

The engagement tests conversation thoroughly and never reaches the action surface, because the tools were disabled for safety and the report does not say so. Everything about the result is true and the most consequential class in the system was never touched.

The signal

The report contains no tool-invocation log, and the limitations paragraph does not name the tools that were stubbed.

The diagnostic

Read the limitations paragraph before the findings. If it does not list which tools were live, which were stubbed and what the test tenancy contained, the excessive-agency class is unexamined regardless of how many prompts were run.

One attempt, one finding, no denominator

A behaviour is observed once and written up as though the system does it. The developer tries it twice, does not see it, and closes it. Both parties are now confident and neither has a number.

The signal

The words “intermittent”, “occasionally” or “sometimes” appear in a severity-bearing sentence.

The diagnostic

Search the register for a finding without a successes-over-trials figure. Every one you find is an anecdote that has been formatted as a finding, and it will be the first thing disputed.

Zero in ten is reported as a negative result

A class is probed ten times, nothing happens, and the report states that the system is not vulnerable to it. At an underlying rate of one in ten, ten attempts miss the behaviour about a third of the time. At one in a hundred, they miss it nine times in ten.

The signal

Negative statements in the report carry no trial count.

The diagnostic

Put the trial count next to every negative finding, then read the arithmetic table on this page and decide whether the count supports the sentence. Usually the honest fix is to change the sentence rather than to run more trials.

The model version changed underneath the engagement

A hosted model is updated by its provider mid-test or between test and re-test. Findings appear to be fixed, or appear from nowhere, and nobody can say which. Without a manifest captured at both ends there is no way to tell a successful remediation from a substrate change.

The signal

The report names the model but not a version, snapshot or date.

The diagnostic

Capture the manifest at the start and at the end of every engagement and compare the two. It costs an hour and it is the difference between a result and a rumour.

The engagement is a benchmark wearing a red team’s name

A public evaluation suite is run against the model, a score is produced, and the deliverable is a table. The system prompt, the corpus, the tools and the sinks were never in scope, so none of the things that cause incidents were examined.

The signal

The deliverable is a score. There is no transcript archive and no tool log.

The diagnostic

Ask which of the six layers were touched. A deliverable that cannot answer that question is a model evaluation, which is a useful procurement input and not an assurance artefact.

Only the chat box was treated as an input

Indirect injection is scoped out by accident, because nobody enumerated the fields whose contents reach the context window: ticket bodies, filenames, profile text, document metadata, calendar invitations, code comments, the alt text on an uploaded image.

The signal

The scope names a chat interface and the ingestion paths are not enumerated anywhere.

The diagnostic

List every path by which text can enter the context window and mark who can write to each one. Any path writable by a person outside your organisation is a remote unauthenticated attack surface, and it is usually a surprise.

A prompt change is accepted as the fix

The system prompt gains a sentence telling the model to ignore instructions found in documents, the payload stops working, and the finding is closed. A prompt is a request, not a boundary: the next phrasing, the next language, the next model version returns it.

The signal

Every remediation in the closure column is an edit to the same file.

The diagnostic

Classify each fix as architectural or behavioural, and re-test the behavioural ones at a real trial count. Then ask the question that settles it: does this fix survive a model version change? If the answer is no, it is mitigation and belongs in the residual-risk paragraph.

Testing ran against a configuration production does not use

The staging deployment has different guardrails, a different model tier, a smaller corpus or looser tool scopes. The result describes a system nobody runs, in either direction — a clean report from stronger filters, or a frightening one from weaker ones.

The signal

Nobody can produce a diff between the staging and production guardrail profiles.

The diagnostic

Diff the two manifests before testing starts. The differences you find are either corrected or written into the limitations paragraph. There is no third option that leaves the report honest.

The approval step is counted as a control without being used

The architecture diagram has a human in it, so high-value actions are treated as gated. In the workflow as performed, the approver sees a truncated summary, receives dozens of requests an hour, and approves by reflex.

The signal

The control is evidenced by a screenshot of the dialog rather than by a rate and a field list.

The diagnostic

Sit with the approver for an hour. Count the requests, note what the dialog hides, and write what you find as a control finding with an owner.

The corpus stays with the tester

The engagement ends, the report is delivered, and the actual adversarial inputs leave with the testers. Re-testing becomes a new engagement and regression testing in the build pipeline is impossible.

The signal

The contract is silent on ownership of the test corpus.

The diagnostic

Put corpus handover in the statement of work, in a runnable form. It is the artefact with the longest useful life, and it is the one that turns an annual exercise into a control.

Payloads are left in the corpus

Marked documents planted for indirect-injection testing are never removed, and months later a real user’s query pulls one into context. The engagement has installed the vulnerability it was hired to find.

The signal

There is no removal list, and no verification pass after cleanup.

The diagnostic

Maintain a written inventory of every payload planted, with its location, and verify removal by retrieval rather than by deletion receipt. Deleting a source document does not always remove it from an index.

The findings have no owner, because the system has no owner

The model is a vendor’s, the retrieval corpus belongs to a business team, the tools belong to three different engineering groups, and the system prompt is edited by whoever is nearest. Every finding crosses a boundary and none of them is anybody’s.

The signal

Remediation dates slip uniformly and no single person can describe the end-to-end system.

The diagnostic

Name one accountable owner for the deployed system before the engagement starts. §9.2 of the 2025 guidelines is a useful lever here by analogy: risk treatment and exceptions are authorised and accepted by the head of the auditee organisation, not distributed across the teams that own the parts.

Thirty trials that were really one conversation

The harness sends thirty attempts as thirty turns inside a single session, or the provider serves a cached response to the repeated prefix, or sticky routing sends every call to the same replica. The report prints 11/30 and the arithmetic behind that number assumes thirty independent draws, which these were not. The rate is wrong by an unknown amount in an unknown direction, and the direction is not always the flattering one — a contaminated session often inflates a rate by carrying the successful setup forward.

The signal

The transcript archive shows one session identifier across the whole trial set, or the method note is silent on caching, or the observed rate is suspiciously stable across classes that should behave differently.

The diagnostic

Require a fresh session per trial, disable prompt caching and provider-side response caching for the run, and record in the finding which of those you did. Where the platform will not let you disable caching, say so in the limitations paragraph and treat the rate as a lower bound on variability rather than a measurement of it.

The rate is arithmetic and the numerator is a mood

Every number in the report rests on somebody deciding that a given output was a success. Where the success condition is objective — a script executed, a record written, a payload rendered — that decision is safe. Where it is a jailbreak, a partial system-prompt recovery or a harmful-generation scenario, the criterion is doing all the work, and it was never written down.

The signal

The report contains reproduction rates and no grading criterion, or the criterion appears in the report and not in the test plan, or two findings in the same class are graded inconsistently.

The diagnostic

Ask for the success criterion for any class whose rate you intend to act on, and ask who graded, at what sample a person checked the machine grading, and what the agreement rate between two graders was. A criterion two people apply differently is not a criterion, and the rate built on it is a count of one person’s impressions.

Cost and duration

What an AI red team costs is a function of eight decisions

What drives the cost of an AI red teaming engagement?

There is no useful figure without a scope, and a number quoted without one is attached to nothing. What can be answered is what the cost is made of, and every driver below is visible in a test plan before you sign. Two of them are specific to this discipline and absent from every conventional security quote: the trial counts, which multiply machine time directly, and the grading arrangement, which is the difference between a measured rate and an impression.

The driverWhat it multipliesWhat to ask about it
How many of the six layers are genuinely in scopeThe whole engagement. A test of the chat surface alone and a test that reaches retrieval, tools, sinks and the approval workflow are different pieces of work with different people on them.The layers are the unit of scoping, and the ones that get dropped for budget are almost always the ones an incident comes from. If something has to go, drop a language or a modality before you drop the tool layer.
Whether the tools are live against a test tenancy or stubbedPreparation time far more than testing time, and it is the difference between assessing excessive agency and asserting it.Live tool testing needs a tenancy that exists, data in it that is safe to damage, a stop condition with a named person, a supervised window and a rollback. Stubbing is cheaper and produces a report whose most consequential class is untested — which is a legitimate choice only if the limitations paragraph says so.
How many ingestion paths have to be enumerated and payload-testedThe indirect-injection half of the engagement, roughly linearly, plus the cleanup at the end.Each path needs a write, an ordinary workflow that retrieves it, a marked payload, an inventory entry and a removal verified by retrieval. Organisations routinely discover they have more paths than they listed, and the discovery happens during testing rather than during scoping.
The trial countsMachine time directly and analyst time partially. Going from 10 trials to 100 on a class is a tenfold multiplier on inference cost for that class and something much less than tenfold on human effort.This is the line item a cheap quote hides. A one-shot probe per objective costs almost nothing and supports almost no sentence. Ask for counts per class in the test plan, and expect them to differ by class rather than being uniform.
Whether the grading is against a written criterion or a judgementAnalyst time on every class whose success condition is not objective, plus the spot-check sample on anything graded by a second model.Grading against a written criterion is expensive, while grading against an impression is free. Two quotes that differ substantially usually differ here, and the test plan will show it.
Languages and modalitiesThe corpus, once per language and once per modality, and the review effort on outputs nobody on the team reads natively.A system that serves three languages has three attack surfaces for refusal behaviour, because safety training is not uniform across them. The honest cheap option is to cover one and say which.
Whether the endpoint is metered per tokenCost directly, and it interacts with the trial counts. On a metered endpoint, high counts are a line item rather than a rounding error, and the spend cap belongs in the rules of engagement.Ask whether inference cost is inside the price or passed through, because a fixed-price engagement with a pass-through inference bill creates a quiet incentive to run fewer trials.
Whether corpus handover and the re-test are inside the priceThe value of everything else, and the cost of the next cycle.A quote without the corpus handover and a re-test is a quote for part of the job and will always look cheaper than one that includes both. The corpus is the artefact with the longest life: it is what turns an annual exercise into a regression test that runs on every model change.

On duration, the useful figure is not the calendar window but the split inside it. Six of the thirteen steps above happen before the first adversarial input, and on a system nobody has documented, those six take longer than the testing. An engagement that starts probing the week after the purchase order has skipped the consequence statement, the layer enumeration, the authorisation and the manifest — which means the first week of testing will be spent discovering what the system is, at testing rates. Budget the preparation honestly and the engagement rarely overruns.

The Indian position

What Indian instruments already say about AI systems and AI incidents

Is AI red teaming required in India?

No Indian instrument requires AI red teaming by that name, and this page will not pretend otherwise. Three things are nevertheless already true and they are more consequential than a testing mandate would be. An attack or a malicious or suspicious activity affecting an AI or ML system is a mandatorily reportable class under Annexure I item (xx) of the CERT-In Directions of 28 April 2022, on the six-hour clock that direction (ii) sets for every Annexure I type. CERT-In names AI System Audits as a class of engagement at §6(xxiii) of its Comprehensive Cyber Security Audit Policy Guidelines (version 1.0, 25 July 2025). And where the incident involves personal data, the Digital Personal Data Protection Act, 2023 runs a second duty on the same event, to a different regulator and on a different clock. The table below sets out each instrument with the clause locator, what it says, and what it means for an engagement. Where this page reads across from a clause written for conventional auditing, it says so in the row.

Instrument and clauseWhat it saysWhat it meansWhat it means for the engagement
CERT-In Directions of 28 April 2022, Annexure I item (xx)Attacks or malicious or suspicious activities affecting systems, servers, software or applications related to Artificial Intelligence and Machine Learning are one of the twenty mandatorily reportable incident types.An attack or a malicious or suspicious activity affecting an AI or ML system is already a mandatorily reportable class in India. Direction (ii) requires entities to report incidents in Annexure I to CERT-In within six hours of noticing them or being brought to notice of them. Carry the item’s own scope words: an AI system behaving badly with no adversary behind it is not automatically within (xx), and a page that flattens the item to “an AI incident” is asserting more than the instrument says.The engagement should produce the thing that makes a six-hour clock survivable: a written account of what an AI incident looks like in this system, who would notice it, and on which log line. Discovering that after the incident costs you the window.
CERT-In Directions of 28 April 2022, Annexure I item (xviii)Attacks or malicious or suspicious activities affecting cloud computing systems, servers, software or applications are separately reportable, on the same six-hour clock.Where the AI system runs on cloud infrastructure — as many do — a single event can sit inside both item (xx) and item (xviii), and neither classification removes the other.Do not let the classification question delay the report. The six hours run from noticing, and the incident reporting form CERT-In publishes says in terms that it is not mandatory to fill in or sign the form and that incidents may be reported by providing relevant information in the communication itself.
CERT-In FAQ on the Cyber Security Directions, May 2022, on item (xx)CERT-In’s own explanation of the type, quoted: “Attacks that target Machine Learning models with the intention to cause a malfunction are a growing threat. The attacks employs various techniques such as deceptive data, environment manipulation etc. to corrupt the model and cause the model to behave erroneously. This type of incident could have impact on confidentiality, integrity and availability of the affected system.”This is CERT-In describing the category. It is an explanation of the type, not a reportability test for a particular fact pattern, and the FAQ carries its own limitation: it “is not a legal document and in no way whatsoever replaces, amends or alters any part of the IT Act, 2000”.Read “cause the model to behave erroneously” next to your own finding register. A great deal of what an AI red team finds is exactly that, produced deliberately and under authorisation — which is why the authorisation has to be in writing before the first input.
CERT-In Directions of 28 April 2022, direction (iv), read with CERT-In’s FAQ of May 2022 at Q35Direction (iv) in its own words: entities must mandatorily enable logs of all their ICT systems and maintain them securely for a rolling period of 180 days, and the same must be maintained within the Indian jurisdiction. CERT-In’s own FAQ on the Directions, dated May 2022, answers the storage question directly at Q35: “The logs may be stored outside India also as long as the obligation to produce logs to CERT-In is adhered to by the entities in a reasonable time.”The logs an AI incident would be investigated from are inside the 180-day duty like any other ICT log. On location, read the instrument and the FAQ together rather than the instrument alone: the operative test CERT-In has published is production on demand in a reasonable time, not a prohibition on storage abroad. The FAQ carries its own limitation and it should travel with the quotation — it “is not a legal document and in no way whatsoever replaces, amends or alters any part of the IT Act, 2000”.Three questions an engagement should answer on the way past. Are prompts, retrieved context and tool invocations logged at all — most AI stacks log the final answer and nothing that produced it. Are they retained for 180 days rolling. And can they be produced to CERT-In in a reasonable time from wherever the platform holds them, including where the platform is a managed service hosted abroad. That last one is a produce-on-demand question rather than a region decision, and the answer is usually a contractual and export question for the platform owner rather than an engineering one.
Comprehensive Cyber Security Audit Policy Guidelines, v1.0, 25 July 2025 — §6(xxiii)Artificial Intelligence (AI) System Audits is one of the twenty-six classes §6 lists, in a list §6 itself opens “The types of cyber security audits and assessments including, but not limited to, those listed below” — so twenty-six is the count of items printed, not a closed set. It is defined as the “Evaluation of AI systems for security, ethical alignment, transparency, data integrity, and resilience to adversarial manipulation.”CERT-In names AI system auditing as its own engagement class, with a definition broader than security testing — ethical alignment and transparency sit inside it alongside resilience to adversarial manipulation.“Resilience to adversarial manipulation” is the phrase that maps onto this page. The rest of the definition maps onto governance work, which is why an AI assurance programme usually needs both an ISO/IEC 42001 management-system leg and a testing leg, and why neither substitutes for the other.
Comprehensive Cyber Security Audit Policy Guidelines, v1.0, 25 July 2025 — §5(xxiii) and §6(xvi)Red Team Assessment is defined, in identical wording in both places, as “An exercise, reflecting real-world conditions, that is conducted as a simulated attempt by an adversary to attack or exploit vulnerabilities in an enterprise’s information systems.”This is the Indian instrument’s definition of red teaming, and it is written for enterprise information systems rather than for models. It is objective-led and adversary-shaped, which is the part that carries across cleanly.Do not assume the two phrases mean the same engagement. A CERT-In Red Team Assessment and an AI red team share a posture and very little else in method, scope or deliverable. If a proposal uses the phrases interchangeably, ask which of the six layers on this page it covers.
Comprehensive Cyber Security Audit Policy Guidelines, v1.0, 25 July 2025 — §8(i) and §8(ii)§8(i): “Solely tools-based testing should be discouraged as tool-based audits may focus primarily on automated processes and may overlook non-automated or manual components of the IT infrastructure.” §8(ii): “The limited lists such as OWASP Top 10, SANS Top 25 and similar, should not be considered as standards or references for audits.”Both clauses bear directly on AI testing. Automated red-teaming harnesses are genuinely useful and they are not the engagement. A ranked list of the ten most common categories is a vocabulary for naming findings rather than an audit criterion.Use the OWASP Top 10 for LLM Applications the way this page uses it — to name a class so that two teams mean the same thing — and put the coverage claim somewhere else: the enumerated layers, the ingestion paths, the tool inventory and the trial counts. That list is what a scope of work should contain.
Comprehensive Cyber Security Audit Policy Guidelines, v1.0, 25 July 2025 — §13.1.2(i)–(iii)§13.1.2(i) states that the cyber security audit should be conducted at least once in a year, and §13.1.2(ii) treats that stated frequency as the minimum, with organisations free to audit more often. §13.1.2(iii) is where the mandatory language sits, and it attaches to the process rather than to the label: all changes to the system or application must undergo a formal change management process, and each change should be classified as either a Minor Change or a Major Change — a Major Change being “high-risk, impactful to security” and expressly including “configuration adjustments that affect sensitive data or critical infrastructure”, which must undergo a cyber security audit before implementation.Read the modalities as written. The annual cadence is a should and §13.1.2(ii) says in terms that it is a minimum. The classification of a change is a should. What is mandatory is that changes go through a formal change management process at all, and that a change classified Major is audited before it goes live. Major is defined by risk, not by size: a one-line configuration change can be major.Read it against the things that change in an AI system: a model version, a system prompt, a new tool, a new corpus, a widened credential, a guardrail threshold. Several of those are one-line changes that alter the security behaviour of the whole system, and a change process that does not classify them is not classifying the changes that matter.
Comprehensive Cyber Security Audit Policy Guidelines, v1.0, 25 July 2025 — §6(xxvi), read with the BOM technical guidelines§6(xxvi) names SBOM (Software Bill of Materials), QBOM (Quantum Bill of Materials) and AIBOM (Artificial Intelligence Bill of Materials) Auditing as an engagement class. CERT-In separately publishes Technical Guidelines on SBOM, QBOM & CBOM, AIBOM and HBOM at version 2.0, dated 9 July 2025.An inventory of AI components with provenance is named national ground. Note the join carefully: a full-text search of the audit policy guidelines finds no citation of the BOM technical guidelines, so reading the two together is an inference and is labelled as one here.The supply-chain class on this page is where an AIBOM earns its keep: models, adapters, embeddings, datasets and plugins, with provenance and integrity, and a pinned version you can compare against production.
Comprehensive Cyber Security Audit Policy Guidelines, v1.0, 25 July 2025 — §15.2.2(iii)Social engineering and process testing should be conducted in a controlled and ethical manner. Where the testing targets general staff — the clause’s own example is untrained or non-security personnel — it must use anonymised or statistical techniques, ensuring no individual is personally identified or penalised, the stated purpose being to evaluate overall awareness and the effectiveness of security processes rather than to single out individuals. Such testing must only target a group of employees explicitly included within the agreed audit scope, and “must not involve external entities such as customers, business partners, vendors, or other third parties, unless specific written consent is obtained”.The clause that applies the moment an AI engagement stops testing the system and starts testing the people around it.Testing whether an approval dialog is meaningful is a control test and should be written as one. Testing whether a named approver will approve anything is a process test, and it attracts this clause. Decide which you are doing before you do it, and put the answer in the rules of engagement.
Digital Personal Data Protection Act, 2023 (Act 22 of 2023) — sections 8(5) and 8(6), read with rule 7 of the DPDP Rules, 2025Section 8(5): “A Data Fiduciary shall protect personal data in its possession or under its control, including in respect of any processing undertaken by it or on its behalf by a Data Processor, by taking reasonable security safeguards to prevent personal data breach.” Section 8(6): “In the event of a personal data breach, the Data Fiduciary shall give the Board and each affected Data Principal, intimation of such breach in such form and manner as may be prescribed.” The prescription now exists. Rule 7 of the Digital Personal Data Protection Rules, 2025, notified by G.S.R. 846(E) of 13 November 2025, splits it in two: rule 7(1) requires intimation to each affected Data Principal “without delay” and sets no fixed period, while rule 7(2) requires intimation to the Board “without delay” with a description, and then, at rule 7(2)(b), the detailed account “within seventy-two hours of becoming aware of the breach, or within such longer period as the Board may allow on a request made in writing in this behalf”.A second Indian duty on the same event, with a different regulator, different addressees and a different clock. The CERT-In report under direction (ii) goes to CERT-In within six hours of noticing. The DPDP intimation goes to the Data Protection Board and to each affected Data Principal. Neither discharges the other. Keep the two DPDP limbs apart as well — the seventy-two hours is the Board limb at rule 7(2)(b) and it is extendable on a written request, while the Data Principal limb is “without delay” with no period attached. On commencement, state the rule’s own words first: rule 1(4) brings rules 3, 5 to 16, 22 and 23 into force eighteen months after the date of publication of the Gazette, and rule 7 is in that group. On the face of the 13 November 2025 Gazette date that is 13 May 2027, which is arithmetic rather than a date the instrument prints.This is the row the highest-consequence class on this page runs into. Cross-tenant recovery — content belonging to another customer surfacing in an answer — is a personal data breach in India where the content is personal data, not only a security finding. So is training-data extraction that returns a real person’s details, and so is a prompt log that carries whatever a user pasted in. Two consequences for the engagement: where testing may reach genuine customer records, the rules of engagement must say what happens the moment one is touched, before the first input, and the finding register should mark which classes would engage DPDP if they occurred in production, so the incident plan has both addressees on it rather than one.
CERT-In Terms and Conditions for Empanelment, v7.2, April 2024 — Annexure I, items 20 and 21Annexure I is headed “Expectations of an Auditee organisation from an Auditor”. Item 20: “Reports include all unknowns clearly marked as unknowns.” Item 21: “Reports state clearly all states of security found and not only failed security measures.”The closest thing in the Indian instruments to a written basis for the negative-result discipline this page argues for throughout. Read the heading with the items: these are expectations of an auditor, not requirements imposed on one, and they should be cited that way.A probabilistic result set is almost entirely unknowns, and the two items are the right shape for it. Every class attempted and not observed belongs in the report with its trial count and the bound that count supports, and every control that held belongs there as deliberately as every control that failed. A report containing only successes has marked nothing as unknown and stated only the failed measures, which is precisely what the annexure expects an auditee to push back on.
CERT-In SAMVAAD 2026, PIB release of 29 April 2026 and CERT-In’s own proceedingsThe Government of India’s release lists the topics selected for the conference, and “AI driven red teaming methodologies” is named among them, alongside AI driven cyber risks including “emerging frontier AI models with advanced cyber capabilities”, auditing cloud systems, APIs and operational technology, and the BOM family. CERT-In’s own 666-page proceedings record a Working Group on “Indian Standards for Cybersecurity Auditing” whose aims include “clearly defined scope templates for various types of audits including emerging technologies like Artificial Intelligence, Machine Language, block-chain based systems”.This is the audit ecosystem’s own statement of where it is going, from two official accounts of the same event. It is a statement of priority, not a published standard.Useful for the budget conversation and honest about its own weight: the direction of travel is on the record and the scope templates are not published yet. Anyone quoting a published Indian AI red-teaming standard today should be asked for the document.

The six-hour question an AI engagement should answer on the way past

Direction (ii) of the 2022 Directions requires entities to report the incidents in Annexure I to CERT-In within six hours of noticing them or being brought to notice of them, at incident@cert-in.org.in, by phone on 1800-11-4949 or by fax on 1800-11-6969. Six hours is not a long time to decide what an AI incident even is. Before the incident, settle three things in writing: which observable events in this system would count, who is watching for them, and on which log line they would appear. A system that does not log the assembled context or the tool invocations cannot answer any of the three, and that is a finding in its own right. One more thing belongs on the same plan: a single event can carry two duties with two different addressees. The CERT-In report goes to CERT-In within six hours under direction (ii). Where the same event is a personal data breach, section 8(6) of the Digital Personal Data Protection Act, 2023 requires the Data Fiduciary to give the Board and each affected Data Principal intimation of the breach, and rule 7 of the DPDP Rules, 2025 prescribes how: without delay to each affected Data Principal, and to the Board without delay with the detailed account within seventy-two hours of becoming aware, extendable by the Board on a written request. Neither duty discharges the other, and a plan with one addressee on it has covered half of them. See AI incidents under CERT-In for the classification and reporting detail, and the 2022 Directions explained for the instrument as a whole.

Where empanelment enters the picture

AI red teaming is usually bought as commercial assurance, and an engagement of that shape produces a report rather than a certificate. Empanelment becomes relevant when the AI system sits inside an engagement that needs it — a security audit whose output is a certificate, a Government website or application going to production, or a customer or tender that has asked for it by name. In those cases the audit rules in the empanelled auditor rules of engagement apply to the whole assignment, including the AI part of it: written approvals before testing, data held in India, the report signed under §9.5(iii) by manpower declared to CERT-In, and the report and metadata sent to CERT-In within five days of completion. Start from what CERT-In is if the empanelment landscape is new, and from what VAPT actually is for the conventional engagement an AI test usually sits beside.

On the call

Seven sentences you will hear, and what to say back

Do we really need AI red teaming if we already do security testing?

None of these is said in bad faith. Each one is a reasonable belief that happens to be about a different engagement, a different system or a different number.

“Our penetration test covered the AI features.”

Ask for three artefacts: the tool-invocation log, the transcript archive, and the trial counts. A conventional penetration test produces none of them, because none of them is part of that methodology. It is not a criticism of the test — it is the difference between testing the infrastructure a system runs on and testing what the system will do when argued with.

“The model scored well on the safety benchmarks.”

Say: “That is a statement about the model, and our risk is in the deployment.” A benchmark does not see your system prompt, your retrieval corpus, the tools you connected or the approval workflow you put in front of them. Benchmarks are a procurement input at model selection. They are not an assurance artefact for a deployed system, and the six layers on this page are the list of things they do not cover.

“We could not reproduce your finding.”

Ask how many times they tried. At an underlying rate of one in ten, two attempts miss it four times out of five. This is why every finding in a competent AI report carries successes over trials and a configuration, and why the re-test protocol fixes the trial count in advance. Then check the other possibility honestly: compare the manifest from the test with the manifest today, because the model may simply have changed.

“We fixed it in the system prompt.”

Say: “Does that fix survive a model version change?” A prompt is a request to the model, not a boundary around it. It is legitimate mitigation and it belongs in the residual-risk paragraph rather than in the closed column. Then ask which of the four architectural controls is in place instead — the table above specifies each one, how to test that it is really there, and what the finding reads like when it is not. And settle the closure question while you are there: re-running the one input the prompt was edited against proves nothing, because the next phrasing is a different string and the same finding.

“There is no Indian standard for this, so there is nothing to comply with.”

Two things are already true. An attack or a malicious or suspicious activity affecting an AI or ML system is a mandatorily reportable class under Annexure I item (xx) of the 2022 Directions, on the six-hour clock that direction (ii) sets. And CERT-In’s 2025 audit policy guidelines name AI System Audits as an engagement class at §6(xxiii). Where personal data is involved, section 8(6) of the Digital Personal Data Protection Act, 2023 runs a second, separate duty to the Data Protection Board and to each affected Data Principal, prescribed at rule 7 of the DPDP Rules, 2025. What is not yet published is a scope template — CERT-In’s own conference proceedings record a working group aiming to produce exactly that. Absence of a template is not absence of a duty.

“We do not need our model provider’s permission — it is our application.”

The application is yours, but the target is not. Where the model is a hosted third party’s, the entity that controls the system you are about to send tens of thousands of adversarial requests at is the provider. Read its acceptable-use terms and its own testing or disclosure programme before the corpus is written, agree a request-rate ceiling and a window, and get the permission in writing — an unthrottled suite against a rate-limited inference endpoint looks exactly like flood testing to the party operating it, which is why §15.2.2(ii) of the 2025 guidelines gates that class behind explicit written permission in the first place. Where permission cannot be obtained, the defensible scope is your application layer, with the model recorded as a limitation. Testing it anyway is a contractual problem you have created for the client.

“Our vendor says the model is safe.”

Say: “Safe against what, measured how many times, at which version?” Then ask the question the vendor cannot answer for you: the vendor has never seen your system prompt, your corpus, your tools or your sinks. Provider-side safety work reduces the rate of some classes and removes none of the ones that come from the composition, which is where your deployment actually lives.

Before signature

Eighteen questions to ask before you buy an AI red team

How do you choose an AI red teaming provider?

Readable down a phone, and none of them requires you to be a tester. A supplier who answers all eighteen plainly is describing an engagement, while a supplier who answers the first three with adjectives is describing a document.

  • 01 Which of the six layers are in scope — model, context pipeline, retrieval, tools, output sinks, human oversight — and which are explicitly out?
  • 02 Will the tools be live against a test tenancy, or stubbed? If stubbed, how will excessive agency be assessed at all?
  • 03 What trial count will be used for each class, how was that count chosen, and will every negative result in the report carry the count and the bound it supports?
  • 04 What is the written success criterion for each class, who grades the attempts, and at what sample does a person check any grading a model did?
  • 05 Will each trial be a fresh session with caching disabled, or turns inside one conversation? Thirty turns in one session is not thirty trials.
  • 06 Where the model is a third party’s, who obtains their written permission and their request-rate ceiling — and if it cannot be obtained, does the scope drop to the application layer with the model recorded as a limitation?
  • 07 Will you capture a model and configuration manifest at the start and at the end of testing, and compare them?
  • 08 Does the engagement include indirect prompt injection through our ingestion paths, and have those paths been enumerated with me?
  • 09 Who can write to each corpus the system retrieves from, and does the scope include a path writable from outside our organisation?
  • 10 Will the adversarial corpus be handed over in a runnable form at the end, and does the contract say so?
  • 11 What is the payload removal procedure, and how will removal be verified — by deletion receipt, or by retrieval?
  • 12 What are the stop conditions, the spend cap and the named person on our side who can halt the exercise?
  • 13 Are we testing the approval control or the approver? If any part touches staff behaviour, how does §15.2.2(iii) apply to it?
  • 14 How will findings be scored, and which of them map onto the CVSS-and-EPSS register we already run for conventional findings?
  • 15 What is the re-test protocol — does closure test the variant family or only the recorded input — and what do we agree happens to every behavioural finding when the model version changes?
  • 16 Will the report contain a residual-risk paragraph naming the classes that are reduced rather than eliminated?
  • 17 Where will transcripts, prompt logs and findings be stored during and after the engagement, can they be produced on demand, and does that satisfy our own data-handling position — including where the evaluation tooling itself is hosted?
  • 18 If a finding would be a personal data breach in production, does the report say so, so that the DPDP intimation duty and the CERT-In duty both land on the incident plan?

A scope of work you can start from

This page tells you eight or nine times to put something in writing, so here are the words. Ten paragraphs, drafted in the register a statement of work is written in, each tracking a decision the page has already argued for. It is a starting point for your own counsel and procurement rather than a form to sign: the bracketed values are yours to fill in, and an engagement with different layers in scope will need the first paragraph rewritten. Use it the way a buyer should use any template — to make the supplier say no to something specific rather than yes to something vague.

Layers in scope. The engagement covers the following layers of the deployed system: the model at the identifiers listed at Annexure A, the prompt and context assembly, the retrieval layer and the ingestion paths enumerated at Annexure B, the tools listed at Annexure C, the output sinks listed at Annexure D, and the human approval workflow described at Annexure E. Layers not listed are out of scope and the report shall say so in terms.

Tools. The tools at Annexure C are named individually and each is marked live or stubbed. Live tools shall be exercised only against the test tenancy named at Annexure C, which [auditee] shall provision and populate before commencement. Ceilings applied to live tools for the duration of the engagement are listed at Annexure C and shall be restored on completion.

Trial counts. Trial counts per class are stated at Annexure F and are fixed before testing begins. Every negative statement in the report shall carry the trial count it was produced at and the upper bound that count supports at 95% confidence. Trials shall be run as fresh sessions with prompt caching and response caching disabled. Where the platform does not permit this, the report shall say so for the affected class.

Grading. A written success criterion for each class shall be agreed before the corpus is run and reproduced in full in the report. Where grading is performed by a model, the report shall state the grader’s identifier and configuration, the human spot-check sample and the agreement rate observed on that sample.

Manifest. A model and configuration manifest in the form at Annexure G shall be captured before the first input and again at the conclusion of testing, and the two shall be compared in the report, including where no difference is found.

Ingestion and payloads. The ingestion paths at Annexure B are enumerated with the party able to write to each. Payloads planted for indirect-injection testing shall be recorded in a written inventory with their location, and removal shall be verified by retrieval rather than by deletion receipt before the engagement closes.

Authorisation. [Auditee] confirms it is entitled to authorise testing of each component in scope. Where the model is operated by a third party, [auditee] shall obtain and provide that party’s written permission, or the model shall be recorded as an untested limitation. A request-rate ceiling and testing window are agreed at Annexure H.

Limits and stop condition. A spend cap of [amount] applies to metered endpoints. The stop condition and the named individual on [auditee]’s side entitled to invoke it are recorded at Annexure H, together with the procedure where a genuine customer record is reached.

Deliverables. The adversarial corpus, including seeds, mutations, multi-turn scripts and planted payloads, shall be delivered in runnable form with a runner, and shall become the property of [auditee]. The transcript archive, the tool-effect log, the finding register carrying the field set at Annexure I, the statement of what was not tested with its trial counts and bounds, and the residual-risk statement are deliverables of this engagement.

Re-test and closure. Closure of a behavioural finding is measured against the variant family defined for it — the recorded input plus the mutations listed for that finding — at the trial count agreed in advance, and not against the recorded input alone. The parties agree in advance that a change to the model version invalidates every behavioural finding in the result set and no architectural one, and that the triggers listed at Annexure J re-run the corpus between engagements.

Nothing in the block above is a CERT-In requirement and it is not offered as one. Where a paragraph tracks a clause — the flood-testing permission at §15.2.2(ii), the hash and version discipline at §15.2.3(ii), the change classification at §13.1.2(iii) — the clause is cited in the body of this page with its modality stated. The rest is ordinary contracting, written to make the things this discipline gets wrong visible before the money is committed.

Roles

Who does what in an AI engagement

Who owns each part of an AI engagement?

Most parts stay with the organisation that runs the AI system, including the call on how much risk is acceptable. Where an instrument settles who owns a part, the table names the clause.

ActivityWho owns itDetail
Defining the scope of the AI engagement and owning the systemThe organisation that runs the AI systemSomebody has to be able to describe the deployed system end to end and authorise testing against it. Where the model is a vendor’s, the corpus belongs to a business team and the tools belong to three engineering groups, naming that owner is the first deliverable of the engagement, not an administrative preliminary.
Signing an audit report or issuing a certificateThe empanelled auditing organisation, where a certificate applies at all§9.5(iii) of the 2025 guidelines requires audit reports to be signed only by manpower declared to CERT-In in the organisation’s snapshot information: by the auditors who conducted the audit, then by a designated reviewer from mid-management outside the audit team, then authorised and signed by the head of the auditing organisation.
Reporting an AI incident to CERT-In within six hoursThe affected entityDirection (ii) of the 2022 Directions puts the six-hour duty on the entity that notices the incident. A tester does not file it for you and a vendor does not absorb it. What an engagement can do is make the clock survivable: a written trigger definition, a named person, a channel, and a log line that would actually show the event.
Fixing what the engagement findsThe organisation that runs the systemBy analogy with §9.3(iii) of the 2025 guidelines, which puts patching and correction on the auditee: the fixes here are architectural — tool scopes, approval interfaces, context assembly, output encoding — and they belong to the teams that own those components.
Deciding what residual risk is acceptableThe head of the organisationThis class of risk is reduced rather than eliminated, so somebody has to accept a number. §9.2 of the 2025 guidelines puts risk treatment and exceptions with the head of the auditee organisation, and it is the right shape here: a 2-in-30 residual bypass is a decision for an accountable officer, not a line in an engineering ticket.
How we work

We deliver CERT-In audits

We deliver CERT-In audits, end to end, with our CERT-In empanelled partners. See how a CERT-In audit runs with us.

Sources

Primary sources and the clauses relied on

Every Indian instrument below was read from the official document rather than from a summary of it, and every linked URL was fetched and checked on content type and byte count rather than on status code — cert-in.org.in answers 200 with a small HTML page for unknown paths under /PDF/, so a status code on its own proves nothing. Checked 22 September 2026.

  • CERT-In, Directions under sub-section (6) of section 70B of the Information Technology Act, 2000, No. 20(3)/2022-CERT-In, dated 28 April 2022, including Annexure I. Relied on for direction (ii), the six-hour reporting duty for the incidents listed in Annexure I, with the channels it names. Direction (iv), the 180-day rolling log obligation maintained within Indian jurisdiction. Annexure I item (xx), attacks or malicious or suspicious activities affecting systems, servers, software or applications related to Artificial Intelligence and Machine Learning. Annexure I item (xviii), the same for cloud computing systems. The Directions apply to service providers, intermediaries, data centres, body corporate and Government organisations. cert-in.org.in
  • CERT-In, Extension of timelines for enforcement of the Cyber Security Directions of 28 April 2022 for MSMEs and for the subscriber-validation mechanism, No. 20(3)/2022-CERT-In, dated 27 June 2022. Cited because there is no single commencement date for the 2022 Directions and summaries routinely imply there is. The Directions became effective 60 days after 28 April 2022 generally, but this order makes them effective on 25 September 2022 for Micro, Small & Medium Enterprises, and on the same date for the validation limb at paragraph (v)(a) and (v)(f) for data centres, VPS providers, cloud service providers and VPN service providers. Three dates, not one. cert-in.org.in
  • CERT-In, FAQ on the Cyber Security Directions of 28.04.2022, May 2022. Relied on for two answers. CERT-In’s own explanation of Annexure I item (xx), quoted in full in the Indian instruments table above. And Q35 on where logs may be held, quoted exactly: “The logs may be stored outside India also as long as the obligation to produce logs to CERT-In is adhered to by the entities in a reasonable time.” This page reproduces Q35 wherever it states the residency limb of direction (iv), because the limb read alone sends a cloud buyer to a stricter position than CERT-In’s own published one. The FAQ carries its own limitation, which should travel with any quotation from it: it “is not a legal document and in no way whatsoever replaces, amends or alters any part of the IT Act, 2000”. Its explanations describe the incident type, but they are not a reportability test for a particular fact pattern. cert-in.org.in
  • CERT-In, Incident Reporting Form. The form CERT-In publishes for incident reports. Relied on for one point only, which matters when a six-hour clock is running: the form states in its own notes that “It is not mandatory to fill and/or sign this form. Incidents may also be reported by providing relevant information in the communication itself or in any other readable form.” Its incident-type checkboxes are the twenty Annexure I types plus an “Other” field. cert-in.org.in
  • CERT-In, Comprehensive Cyber Security Audit Policy Guidelines, Version 1.0, 25 July 2025. 69 pages, 20 numbered sections. Relied on at §5(xxiii) and §6(xvi) for the Red Team Assessment definition, which is identical in both places and which this page quotes without adding to it. The §6 opening sentence, which introduces its list as “including, but not limited to”, so twenty-six is a count of printed items rather than a closed set. §6(xxiii) for the AI System Audits class and its definition. §6(xxvi) for SBOM, QBOM and AIBOM auditing. §8(i) on solely tools-based testing and §8(ii) on limited lists as audit references. §9.2 on risk treatment authorised by the head of the auditee organisation. §9.3(iii) on patching responsibility. §9.5(iii) on who may sign an audit report. §10.3(ii)–(iv) on auditee data held in India, encrypted and wiped. §13.1.2(i)–(iii), where (i) states the audit should be conducted at least once in a year and (ii) treats that as a minimum, while (iii) requires all changes to undergo a formal change management process, states that each change should be classified Minor or Major, and requires a Major Change to undergo a cyber security audit before implementation — the modalities are reproduced as written. §15.2.2(ii) on written permission before flood testing over the Internet. §15.2.2(iii) on social engineering and process testing, whose anonymisation duty is conditioned on the testing targeting general staff. §15.2.3(ii) on application hash values and version numbers. §5(xxiv) with §16.2(ii) on CVSS, EPSS, CWE and CVE in an empanelled auditor’s report. cert-in.org.in
  • CERT-In, Technical Guidelines on SBOM, QBOM & CBOM, AIBOM and HBOM, Version 2.0, dated 9 July 2025. CERT-In’s published guidance on bills of materials, including the AI bill of materials. Cited here with an explicit caveat: a full-text search of the 2025 audit policy guidelines finds no citation of this document, so §6(xxvi) names the BOM types and stops. Reading the two together is an inference and is labelled as one on this page. cert-in.org.in
  • CERT-In, Guidelines for CERT-In Empanelled Information Security Auditing Organizations, Version 3.0, May 2018. The 2018 lineage of several rules this cluster relies on, including “Auditors must utilize industry standard methodologies, best practices for security testing. Solely tools based testing should be discouraged.”, the verification team that checks the audit team, the written approvals before penetration testing and tool installation, and the data-residency duties. cert-in.org.in
  • CERT-In, Empanelment of Information Security Auditing Organisations — Terms and Conditions for Empanelment, Version 7.2, April 2024. Relied on for three things. The branding rule that governs how any organisation may describe a CERT-In relationship — clause 4.2 permits only the sentence “This Organization is empanelled by CERT-In for providing information Security Auditing Service” and states that no other words may be used without prior written permission. Clause 3.2.2, the five-day submission of the audit report and metadata to CERT-In. And Annexure I, headed “Expectations of an Auditee organisation from an Auditor”, at items 20 and 21: “Reports include all unknowns clearly marked as unknowns” and “Reports state clearly all states of security found and not only failed security measures.” The annexure states expectations rather than requirements and is cited that way here. It is the closest written Indian basis for the negative-result discipline this page argues for. cert-in.org.in
  • National Security Council Secretariat, Cyber Security Audit Baseline Requirements, publication NSCS-46-16 Rev 1.0, October 2020, published on CERT-In’s website. Not a CERT-In document: the cover carries the National Security Council Secretariat as issuer and “© Government of India 2020”. It is named at §8(iii) and again at §13.1.8(i) of the 2025 guidelines as the document auditees and auditing organisations should use to build their audit programme. Relevant here as the answer to the question §8(ii) raises — if a limited list is not an audit reference, what is. cert-in.org.in
  • CERT-In, Guidelines for Secure Application Design, Development, Implementation & Operations. Named at §8(vii) of the 2025 guidelines, which requires auditee organisations to confirm that applications are designed and developed with secure practice before any assessment commences. Cited here because the durable fixes in the target-class table — scoped credentials, approval design, output encoding — are application design decisions rather than model decisions. cert-in.org.in
  • CERT-In, published list of empanelled information security auditing organisations, with snapshot information per organisation. The roster §9.5(iii) requires audit reports to be signed from, and the snapshot information §12.1(i) tells an auditee to use when selecting an auditor. Cited on this page for the signing rule stated in the roles table. cert-in.org.in
  • Press Information Bureau, Government of India, Ministry of Electronics & IT, Release ID 2256581, 29 April 2026. The official account of CERT-In SAMVAAD 2026, the three-day national annual conference held 27–29 April 2026, and the source for the topic list this page cites — including “AI driven red teaming methodologies”, AI driven cyber risks including “emerging frontier AI models with advanced cyber capabilities”, and auditing cloud systems, APIs and operational technology. Reproduce the release’s own hedges (“over”, “more than”) rather than converting them to exact counts. pib.gov.in
  • CERT-In, SAMVAAD 2026 Conference Proceedings, 2nd Edition, 666 pages. CERT-In’s own account of the same conference. Relied on for the remit of the Working Group on “Indian Standards for Cybersecurity Auditing”, which aims to deliver “standardized audit reporting formats, RFP templates, and clearly defined scope templates for various types of audits including emerging technologies like Artificial Intelligence, Machine Language, block-chain based systems, ICS / OT environment, Supply Chain Security and Third-Party Risk Management”. Those templates are not published, but the aim is. cert-in.org.in
  • The Digital Personal Data Protection Act, 2023 (Act 22 of 2023), sections 8(5) and 8(6). The Gazette of India text as published by the Ministry of Electronics and Information Technology. Relied on for two sub-sections quoted exactly in the Indian instruments table: 8(5), the duty to protect personal data by taking reasonable security safeguards to prevent a personal data breach, and 8(6), the duty to give the Board and each affected Data Principal intimation of a breach in such form and manner as may be prescribed. meity.gov.in
  • Digital Personal Data Protection Rules, 2025, notified by G.S.R. 846(E), Ministry of Electronics and Information Technology, 13 November 2025. The prescription section 8(6) points to. Relied on for rule 7, “Intimation of personal data breach”, whose two limbs this page keeps apart: rule 7(1), intimation to each affected Data Principal “without delay” with no fixed period, and rule 7(2), intimation to the Board without delay, with the detailed account required at rule 7(2)(b) “within seventy-two hours of becoming aware of the breach, or within such longer period as the Board may allow on a request made in writing in this behalf”. Also relied on for rule 1(4), which brings rules 3, 5 to 16, 22 and 23 into force eighteen months after publication of the Gazette — rule 7 is in that group, which on the face of the 13 November 2025 Gazette date is 13 May 2027. That date is arithmetic on the rule, not something the rule prints. Note the two dates on the document: the notification is dated 13 November 2025 and the e-gazette identifier is CG-DL-E-14112025. meity.gov.in
  • OWASP Top 10 for LLM Applications, 2026 edition, published 4 August 2026. The shared vocabulary this page names its classes in. Two item numbers are asserted here and no others: Prompt Injection is LLM01, and Excessive Agency is LLM03, up from LLM06 in the 2025 edition. Every other category on this page is named without a number, and this page deliberately does not state which category took the position Excessive Agency vacated or which one now occupies LLM03’s former contents — a renumbering half-told is better than one told wrongly, and only the two numbers above are asserted. Used as a taxonomy for naming findings, not as an audit criterion — see §8(ii) of the 2025 CERT-In guidelines on limited lists. genai.owasp.org
  • NIST AI 600-1, Artificial Intelligence Risk Management Framework: Generative Artificial Intelligence Profile, National Institute of Standards and Technology, July 2024. The strongest non-Indian anchor available for this page’s definitional claim, and the reason it is cited rather than a vendor taxonomy: NIST names AI red-teaming as a measurement activity in its own right and defines it as “A structured testing exercise used to probe an AI system to find flaws and vulnerabilities such as inaccurate, harmful, or discriminatory outputs, often in a controlled environment and in collaboration with system developers.” Its suggested actions name the classes this page tests — MS-2.7-007 lists GAI attacks including prompt injection, and MS-2.10-001 lists outputting of training data samples, model extraction and membership inference. Cited for the definition and the class list, not as a compliance obligation: it is a voluntary US profile and no Indian instrument adopts it. nvlpubs.nist.gov

Four references are named and deliberately not linked. ISO/IEC 42001:2023, the AI management system standard, is published by ISO and IEC and sold rather than distributed, and Regulation (EU) 2024/1689 (the EU AI Act, Article 14 of which sets the human-oversight requirement for high-risk systems) together with Regulation (EU) 2026/1744 (the Digital Omnibus on AI, in force 27 July 2026, deferring the stand-alone high-risk obligations attaching to Annex III to 2 December 2027 and those attaching to Annex I to 2 August 2028) are published on EUR-Lex. Both iso.org and eur-lex.europa.eu answered an automated check with a bot-protection response rather than with the document when they were tested on 22 September 2026, so this page names them by number, title and date and does not render a link it cannot verify serves the text. Search for the number rather than the name: the EU AI Act and the Digital Omnibus on AI are two separate regulations, and conflating them is the most common citation error in this area. The fourth is MITRE ATLAS, the adversarial threat knowledge base for AI systems, which is the natural technique-level companion to OWASP’s category-level vocabulary. atlas.mitre.org answered on 22 September 2026 with a 3,695-byte JavaScript application shell rather than with any content, at every path tested, so this page names it and cites nothing to it. Applying the same test to ourselves: a source whose text we could not retrieve is a source we do not quote.

Clause locators throughout this page were checked against the PDFs on 22 September 2026. If you find one that has moved, we would rather correct the page than be quoted accurately on something stale.

Frequently Asked Questions

What is AI red teaming?
AI red teaming is structured adversarial testing of a deployed AI system. A team acts as a motivated attacker and tries to make the system produce output or take actions its operator would not sanction — leaking data it was meant to protect, ignoring a constraint it was meant to enforce, following an instruction planted by somebody other than the user, or invoking a tool that does something real and irreversible. The system under test is the whole pipeline, not the model alone: the model at a named version, the prompt and context assembly, the retrieval layer, the tools the system can call, the places its output is consumed, and the human approvals the design assumes.
How is AI red teaming different from a penetration test?
The unit of analysis is different, so everything downstream of it is different. A penetration test reasons about hosts, services, application code, configuration and identities, and asks whether an attacker can compromise the infrastructure the system runs on. An AI red team reasons about instructions, context, retrieval content and tool authority, and asks whether the system can be made to do or say something its operator would not sanction. A perfectly hardened server can serve a system that hands a stranger another customer’s records on request, which is the single sentence that explains why the two engagements do not substitute for each other. They compose, and the order matters: an AI system reachable through an unauthenticated admin console does not need to be argued with.
Is AI red teaming the same as a model evaluation or a benchmark?
No. A model evaluation scores a model on a defined task set at a fixed configuration, and it is designed to compare models rather than to break one. It has never seen your system prompt, your retrieval corpus, the tools you connected or the person who clicks approve — and those are where the incidents come from. A benchmark score is a useful procurement input at model selection. It is not an assurance artefact for a deployed system, and a deliverable that consists of a score table with no transcript archive and no tool-invocation log is an evaluation, whatever it is called on the invoice.
What does an AI red team actually test?
Twelve classes, across six layers of the system. Prompt injection, both direct (the user supplies text the model treats as instruction) and indirect (the instruction arrives inside a document, web page, email, ticket, image or uploaded file the system ingests) — Prompt Injection is LLM01 in the OWASP Top 10 for LLM Applications, 2026 edition, published 4 August 2026. Jailbreaks and guardrail bypass. System prompt and context extraction. Training data and memorised content extraction, including cross-tenant recovery. Corpus and training data poisoning, where the payload is a plausible false fact rather than an instruction. Memory poisoning, where a single write persists into other sessions. Excessive agency and unsafe tool invocation — Excessive Agency is LLM03 in the same edition, up from LLM06 in the 2025 edition. Insecure output handling, where generated text reaches a consumer that trusts it. Harmful, unlawful or non-compliant generation. Unbounded consumption and denial of wallet. And the model and component supply chain: where the model, adapters, embeddings and datasets came from, and whether production runs the version that was tested.
Who decides whether an attempt succeeded?
Somebody has to, and the report has to say who and against what. Every reproduction rate is a fraction whose denominator is arithmetic and whose numerator is a judgement, and for the classes that matter most — a jailbreak, a partial system-prompt recovery, a harmful-generation scenario — that judgement is doing all the work. Four things make it checkable. A written success criterion per class, agreed before the corpus is run and reproduced in the report: “harmful content” is not a criterion, “provides step-by-step instructions that materially advance X” is closer. A named grading arrangement: a person, a second model applied to the written criterion, or both — and where a model graded, a human spot-check of a stated sample, because model grading is what makes high trial counts affordable and it is not free. The grader’s own identifier and decoding parameters in the manifest, since an LLM judge is itself non-deterministic and its variance lands inside your numerator. And an agreement rate between two graders on a sample, stated in the report. Ask for all four on any class whose rate you intend to act on.
What can we claim if the testing found nothing?
Only as much as the trial count supports, and far less than “not vulnerable”. The arithmetic is the standard upper confidence limit for zero successes in n independent trials, whose familiar shorthand is the rule of three: with nothing observed in n trials the true rate is below roughly 3/n at 95% confidence. Zero in ten bounds the rate below about 26%, which excludes almost nothing worth worrying about. Zero in thirty bounds it below about 9.5%. Zero in sixty, below about 5%. Zero in a hundred, below about 3%. Write the bound rather than the adjective: “not observed in 30 trials, which bounds the rate below roughly one attempt in ten at 95% confidence” is a sentence a reader can weigh, and “not vulnerable to prompt injection” is not. Run the same arithmetic forwards to size the counts before the engagement: to have about 95% confidence of observing a behaviour that occurs at rate p you need roughly 3/p trials, so 29 for a one-in-ten concern, 59 for one in twenty and 299 for one in a hundred.
Do we need our model provider’s permission to red team?
Where the model is a hosted third party’s, yes, and it is the first question rather than a formality. The entity that controls the target is the provider, not you: read its acceptable-use terms and its own testing or disclosure programme before the corpus is written, and agree a request-rate ceiling and a testing window in writing. There is a specific Indian reason to fix the rate. §15.2.2(ii) of CERT-In’s 2025 audit policy guidelines requires explicit written permission before conducting Denial-of-Service, Distributed Denial-of-Service “or flood testing over the Internet to prevent disruption of services”, and an unthrottled adversarial suite against a rate-limited inference endpoint can look exactly like that to whoever operates the endpoint — the rule does not care that the traffic came from a research harness. Where provider permission cannot be obtained, the defensible scope is your own application layer: retrieval, context assembly, tool invocation, output handling and the authorisation around the model, with the model itself recorded as a limitation in the report. Settle the data handling in the same document, because prompt and completion logs routinely contain whatever users pasted in, and much of the evaluation tooling in this field is hosted outside India and mirrors by default.
Is thirty attempts in one conversation the same as thirty trials?
No, and this is the most common quiet error in an otherwise careful AI report. The binomial arithmetic that justifies every reproduction rate assumes independent attempts, and three ordinary things break that assumption without changing what the number looks like. Trials run as turns inside one continued session, where everything earlier in the window contaminates what follows. Prompt caching or provider-side response caching serving the same answer to a repeated prefix. Sticky routing sending every call in a run to the same model replica. A contaminated session often inflates a rate by carrying a successful setup forward, so the error is not always in the flattering direction. Require a fresh session per trial, disable caching for the run, and record in the finding which of those you did. Where the platform will not permit it, say so in the limitations paragraph and treat the rate as a statement about variability rather than a measurement of it. Related: temperature 0 does not make a hosted model deterministic — it narrows the distribution, and expert routing, batch composition and non-associative floating-point arithmetic keep it open.
What is prompt injection, and why can it not simply be fixed?
Prompt injection is the class where text that the application intended as data is treated by the model as instruction. It is LLM01 in the OWASP Top 10 for LLM Applications, 2026 edition. There is no general solution today, and the reason is structural rather than a gap in anyone’s product: the model receives one flat sequence of tokens and has no reliable way to distinguish the operator’s instructions from content that arrived in a retrieved document or a user message. Escaping is not available, because the interface accepts natural language by design. Everything currently on the market reduces the rate rather than closing the class, which is why the durable controls sit below the model — scoped credentials per tool, human approval for irreversible actions with the real arguments shown, retrieved content barred from influencing tool invocation, and encoding at every sink that consumes output.
What is indirect prompt injection?
Indirect prompt injection is the variant where the attacker never talks to the system. The instruction is placed in content the system ingests — a document in the retrieval corpus, a web page it fetches, an email it summarises, a support ticket body, a code comment, a filename, the alt text of an uploaded image — and it takes effect when an ordinary user runs an ordinary workflow that pulls that content into the context window. The person asking the question is not the attacker and is usually the victim. It is the class with the widest blast radius, because in many deployments the ingestion path is writable by someone outside the organisation entirely, which makes it a remote unauthenticated attack surface. Enumerate every path by which text can reach the context window and mark who can write to each one. That list is usually shorter than people expect and more alarming than they expect.
What is excessive agency in an AI system?
Excessive agency is the system being able to take actions disproportionate to what the task requires: too many tools, a credential broader than the function needs, parameters fully under model control, no approval step, or an approval step that cannot be meaningfully exercised. It is LLM03 in the OWASP Top 10 for LLM Applications, 2026 edition, up from LLM06 in the 2025 edition — a movement from sixth to third in one edition that is the field’s own summary of where the risk went, from what these systems say to what they can do. It is the class that turns a conversation problem into an incident, and the interesting property is usually composition rather than any single tool: a read tool and a write tool that are individually reasonable become an exfiltration path when a model that can be steered holds both.
Is a finding that only reproduces sometimes still a finding?
Yes, and this is the methodological heart of the discipline. An AI system is non-deterministic: the same input can produce a refusal and a compliance on consecutive attempts. A behaviour that reproduces three times in ten is still a finding, because an attacker is not required to succeed on the first attempt — three in ten is a system that can be made to fail by anyone willing to press the button four times. The reporting convention that follows is to write every behavioural finding as successes over a stated number of trials at a named model version and configuration — 3/10, 14/50, 2/100 — and to attach a trial count to every negative statement as well.
How many trials are enough?
Enough to support the sentence you want to write, and there is a rule rather than a principle for working out how many that is. Decide, per class, the rate you would need to exclude before you would sign the negative statement. The trials needed to observe a behaviour at that rate with about 95% confidence is roughly 3 divided by it. So 29 trials for a one-in-ten concern, 59 for one in twenty, 299 for one in a hundred. Read backwards, the same arithmetic says what a zero result bounds: nothing in ten trials puts the rate below about 26%, nothing in thirty below about 9.5%, nothing in a hundred below about 3%. For a positive result, remember the interval — three successes in ten is consistent with a true rate anywhere from roughly 11% to 60%, and eleven in thirty with roughly 22% to 55%. That is why a remediation from 11/30 to 2/30 is a real result at n = 30 and would have proved nothing at n = 10. Decide the counts in advance, write them and their bounds into the limitations paragraph, and use a higher count for the classes whose consequence is worst rather than a uniform number everywhere.
Our developer could not reproduce the finding. Is it closed?
Not yet, and there are three questions to ask before anyone closes it. First, how many attempts did they make? At an underlying rate of one in ten, two attempts miss the behaviour four times out of five, so a failure to reproduce at that count carries almost no information. Agree a re-test trial count in advance — before the fix ships, while neither side has an interest in the number — and re-run at that count. Second, what did they re-run? Closure is a statement about a variant family, not about a string: the recorded input plus the rephrasings, the second language, the encoded form and the multi-turn setup, graded by the same success criterion. A fix that stops the exact recorded payload and nothing else has moved the finding rather than closed it, and that is the predictable result of a prompt-level fix. Third, compare the model manifest captured during the test with the manifest today. A hosted model can be updated by its provider without any deployment on your side, and a version change invalidates every behavioural finding while leaving the architectural ones intact. Without all three checks, “could not reproduce” is an observation rather than a closure.
What should an AI red teaming report contain?
Ten artefacts, each nameable in a statement of work. A scope statement that names which of the six layers are in and out. A model and configuration manifest captured at the start and again at the end of testing and compared. The adversarial corpus handed over in runnable form. A transcript archive including refused attempts and near misses. A finding register in which every behavioural entry carries the sixteen fields — successes over trials, the written success criterion, who graded and how that grading was checked, whether trials were fresh sessions with caching disabled, the model version and snapshot, the decoding parameters and seed, the exact input byte for byte, the assembled context, the system prompt hash, the tool schema exported verbatim, the full transcript including setup turns, the guardrail configuration, the tool state and side effects, the run timestamp, a severity with its inputs shown, and the negative results recorded as deliberately as the positive ones. A tool-effect log. A statement of what was not tested with its trial counts and the bounds they support. A re-test protocol defined over a variant family rather than a recorded string, including what happens when the model version changes. A residual-risk paragraph naming the classes reduced rather than eliminated. And findings about the human oversight the design relies on, written as control findings with owners.
How do you score the severity of an AI finding?
Show four inputs rather than a single label: the reproduction rate, the capability reached, who can reach it — unauthenticated, authenticated, or only an insider who can write to the corpus — and whether the effect is reversible. A 2-in-30 bypass that leaks a public FAQ and a 2-in-30 bypass that issues a credit note are different objects, and a single severity word hides the distinction that decides what gets fixed first. Where an organisation already scores conventional findings with CVSS and supplements them with EPSS — which §5(xxiv) and §16.2(ii) of CERT-In’s 2025 audit policy guidelines require of an empanelled auditor’s report — say plainly which AI findings map onto that vector and which do not. An improper-output-handling finding maps cleanly and should be scored like any other injection finding. A probabilistic guardrail bypass does not, and it is worth knowing why rather than taking it on trust: CVSS v4.0 composes four metric groups — Base, Threat, Environmental and Supplemental — and every metric in them describes a condition on the attacker’s side or an impact on the target. Attack Complexity and Attack Requirements are the two that sound as though they might fit, and both are about what the attacker has to arrange. There is no metric anywhere in the vector for the target succeeding only a third of the time, because that measurement problem sits on the target’s side. So do not force it and do not leave it blank: print the full vector rather than a bare number, label it CVSS-B where only base metrics were used — FIRST’s own nomenclature note says a score derived from base metrics alone is CVSS-B and that the nomenclature should be used wherever a numerical value is communicated — and put the observed rate and the trial count beside it. Vector, rate, count, together.
Is AI red teaming required in India?
No Indian instrument requires it by that name today. Three adjacent things are already true and matter more than a testing mandate would. First, an attack or a malicious or suspicious activity affecting an AI or ML system is mandatorily reportable: Annexure I item (xx) of the CERT-In Directions of 28 April 2022 covers attacks or malicious or suspicious activities affecting systems, servers, software or applications related to Artificial Intelligence and Machine Learning, and direction (ii) requires the incidents in Annexure I to be reported to CERT-In within six hours of noticing them or being brought to notice of them. Item (xviii) does the same for cloud computing systems, and one event can sit in both. Second, CERT-In names AI System Audits as a class of engagement at §6(xxiii) of its Comprehensive Cyber Security Audit Policy Guidelines (v1.0, 25 July 2025). Third, where the event involves personal data, sections 8(5) and 8(6) of the Digital Personal Data Protection Act, 2023 attach a security-safeguards duty and a separate intimation duty to the Data Protection Board and to each affected Data Principal, with rule 7 of the DPDP Rules, 2025 prescribing the manner and the seventy-two-hour Board limb. What is not yet published is a scope template — CERT-In’s own SAMVAAD 2026 proceedings record a working group aiming to produce exactly that for emerging technologies including artificial intelligence.
Does CERT-In define AI system auditing?
It defines the class. §6(xxiii) of the Comprehensive Cyber Security Audit Policy Guidelines (v1.0, 25 July 2025) lists “Artificial Intelligence (AI) System Audits” as one of the twenty-six classes §6 lists — in a list §6 itself opens “The types of cyber security audits and assessments including, but not limited to, those listed below”, so twenty-six is a count of printed items rather than a closed set — and defines it as the “Evaluation of AI systems for security, ethical alignment, transparency, data integrity, and resilience to adversarial manipulation.” Read that definition carefully, because it is broader than security testing: ethical alignment and transparency sit inside it alongside resilience to adversarial manipulation. The last phrase is the one that maps onto adversarial testing, and the rest maps onto governance work of the kind an ISO/IEC 42001 management system organises. A programme usually needs both legs, and neither substitutes for the other.
Is a CERT-In Red Team Assessment the same as AI red teaming?
No, and the vocabulary collision causes real confusion in procurement. §5(xxiii) and §6(xvi) of the 2025 audit policy guidelines define a Red Team Assessment, in identical wording in both places, as “An exercise, reflecting real-world conditions, that is conducted as a simulated attempt by an adversary to attack or exploit vulnerabilities in an enterprise’s information systems.” That is the whole of the definition — it is objective-led and adversary-shaped, and it is written for an enterprise estate rather than for a model. In ordinary practice such an exercise also tests the organisation’s detection and response capability, but the clause does not say so, and a proposal that presents that as CERT-In’s definition is adding to the instrument. What the definition shares with AI red teaming is a posture, and very little else in scope, method or deliverable. If a proposal uses the two phrases interchangeably, ask which of the six layers of the AI system it covers, and ask for the tool-invocation log and the trial counts.
Do we have to report an AI incident to CERT-In within six hours?
If it falls within Annexure I of the CERT-In Directions of 28 April 2022, yes. Direction (ii) requires entities to mandatorily report the cyber incidents mentioned in Annexure I within six hours of noticing them or being brought to notice of them, to incident@cert-in.org.in, by phone on 1800-11-4949 or by fax on 1800-11-6969. Item (xx) covers attacks or malicious or suspicious activities affecting systems, servers, software or applications related to Artificial Intelligence and Machine Learning, and item (xviii) covers cloud computing systems, so where the AI system runs on cloud infrastructure a single event can be reached by both. Read the item’s own scope words rather than shortening it to “an AI incident”: a model behaving badly with no adversary behind it is not automatically within (xx). Where the same event is also a personal data breach, section 8(6) of the Digital Personal Data Protection Act, 2023 runs a separate duty to the Data Protection Board and to each affected Data Principal, prescribed by rule 7 of the DPDP Rules, 2025 as intimation to the Data Principal without delay and to the Board without delay with the detailed account within seventy-two hours of becoming aware. Neither duty discharges the other, and keep the seventy-two hours attached to the Board limb rather than calling it “the DPDP deadline”. Six hours is not long enough to work out what an AI incident is for the first time, so settle three questions in writing beforehand: which observable events in this system count, who is watching for them, and on which log line they would appear. CERT-In’s own incident reporting form states that it is not mandatory to fill in or sign the form and that incidents may be reported by providing the relevant information in the communication itself.
Does the OWASP Top 10 for LLM Applications count as an audit standard?
It is a vocabulary, and it should be used as one. Its value is that two teams can say “indirect prompt injection” and mean the same thing, and the movement of Excessive Agency from LLM06 in the 2025 edition to LLM03 in the 2026 edition is a genuinely informative signal about where the field thinks the risk sits. What it is not is a coverage claim, and §8(ii) of CERT-In’s Comprehensive Cyber Security Audit Policy Guidelines says so about lists of exactly this shape: “The limited lists such as OWASP Top 10, SANS Top 25 and similar, should not be considered as standards or references for audits.” The coverage claim in an AI engagement comes from somewhere else — the enumerated layers, the enumerated ingestion paths, the tool inventory and the trial counts — and that is what a scope of work should contain.
How often should an AI system be red teamed?
More often than an annual cycle, because the triggers are different. Read §13.1.2 with its modalities intact: §13.1.2(i) states that the cyber security audit should be conducted at least once in a year, and §13.1.2(ii) treats that stated frequency as a minimum. §13.1.2(iii) is where the mandatory language sits, and it attaches to the process rather than to the label — all changes to the system or application must undergo a formal change management process, and each change should be classified as either a Minor Change or a Major Change, with a Major Change, defined by risk rather than by size and expressly including “configuration adjustments that affect sensitive data or critical infrastructure”, required to undergo a cyber security audit before implementation. Read that against what changes in an AI system: a model version, a system prompt, a new tool, a widened credential, a new corpus, a guardrail threshold. Several of those are one-line changes that alter the security behaviour of the whole system, and several of them do not go through anyone’s change process today. The practical answer is a scheduled engagement on a cadence, plus a regression run of the handed-over adversarial corpus on every one of the five triggers set out on this page, plus a full re-test when the architecture changes.
Can we automate AI red teaming?
Partly, and the automated part is genuinely valuable — it is how you get trial counts high enough to make negative results mean something, and how a handed-over corpus becomes a regression test in the build pipeline. What automation does not do is design the attack for your system. Scenario sets drawn from what your system is actually relied on for, the enumeration of ingestion paths, the composition of tools into a chain, the judgement about whether an output breaches a commitment you made to a customer: those are human work. §8(i) of the 2025 audit policy guidelines puts the general principle plainly for audits — solely tools-based testing “should be discouraged” because tool-based work “may focus primarily on automated processes and may overlook non-automated or manual components”, which “can result in an incomplete view of the overall security”. The objection is to stopping at the tool, not to using one.
Who should own AI red teaming findings inside the organisation?
One named owner for the deployed system, chosen before the engagement starts. This class of finding crosses boundaries by nature: the model belongs to a vendor, the retrieval corpus to a business team, the tools to two or three engineering groups, and the system prompt to whoever edited it last. Without a single accountable owner, every finding is somebody else’s and remediation dates slip uniformly. The residual-risk decisions need an accountable officer too — a 2-in-30 residual bypass is a risk acceptance, not an engineering ticket, and §9.2 of the 2025 audit policy guidelines is the right shape by analogy: risk treatment and exceptions are authorised and accepted by the head of the organisation.
What does AI red teaming cost, and how long does it take?
There is no useful figure without a scope, and any number quoted without one is attached to nothing. What can be answered is what the cost is made of, and eight drivers do most of the work. How many of the six layers are in scope. Whether the tools are live against a test tenancy or stubbed, because live tool testing needs a tenancy, a stop condition and a supervised window. How many ingestion paths have to be enumerated and payload-tested. The trial counts, which are a direct multiplier on machine time and a partial one on analyst time. Whether grading is against a written criterion with a human spot-check or against an impression, which is where two otherwise similar quotes usually differ. How many languages and modalities are covered. Whether a paid model endpoint is metered per token, which makes high trial counts a line item rather than a rounding error. And whether the corpus handover and a re-test are inside the price. On duration, the useful figure is not the calendar window but the split between preparation and testing: six of the thirteen steps on this page happen before the first adversarial input, and an engagement that starts testing the week after the purchase order has skipped the consequence statement, the layer enumeration, the authorisation and the manifest — which means the first week of testing will be spent discovering what the system is, at testing rates.
Will red teaming break our production AI system?
Not if the rules of engagement are written properly, and writing them is a larger job here than in conventional testing because the system can take actions. Settle in advance: which tools are live and which are stubbed, whether a test tenancy exists and what it contains, whether the corpus may be written to and how payloads will be removed and verified as removed afterwards, a spend cap where a paid endpoint is metered, what happens if a real customer record is reached, and a named stop condition with a named person on your side who can invoke it. Two failure modes are specific to this field and both are avoidable: destructive tool invocation against real data, and marked payloads left behind in a retrieval corpus, where months later they reach a real user’s query. Keep a written inventory of every payload planted and verify removal by retrieval rather than by deletion receipt, because deleting a source document does not always remove it from an index.
Does ISO/IEC 42001 require AI red teaming?
ISO/IEC 42001:2023 is the AI management system standard: it is the instrument for governing AI — deciding that testing happens, who owns it, how findings are treated and how the loop closes — rather than a testing methodology. Red teaming produces evidence that feeds a management system, and the management system is the reason that evidence is produced on a cadence rather than once. Treat them as two workstreams with one owner. The same split runs through the EU instruments: Article 14 of Regulation (EU) 2024/1689 sets the human-oversight requirement for high-risk AI systems, which is why the sixth layer on this page — the humans the design relies on — is a testing target rather than a diagram element. Regulation (EU) 2026/1744, the Digital Omnibus on AI, in force 27 July 2026, defers the stand-alone high-risk obligations attaching to Annex III to 2 December 2027 and those attaching to Annex I to 2 August 2028. It is a separate regulation, not another name for the AI Act.

Where to go next. This page is the flagship of the AI testing cluster. AI red teaming vs VAPT takes the comparison with the conventional Indian engagement apart clause by clause, red teaming an LLM application runs the method end to end against a single deployment, and AI incidents under CERT-In covers classification and the six-hour clock. On the surfaces an AI system sits on, see what cloud security is, cloud security audits in India and API security testing — the API tier is where most AI tool surfaces actually live. On the conventional side, VAPT scoping and types of VAPT cover the engagement classes, reading a VAPT report covers what to believe and what to question, and the safe-to-host certificate and AMBAK cover the certificate and audit-monitoring side.

Written By Expert Auditors

Surendra Pal SinghChief Information Security Officer & Data Protection OfficerCISODPOCISAMCSEITILISO 27001 Lead AuditorISO 27701 Lead AuditorISO 42001 Lead Auditor
Saundhi ChauhanLead AuditorISO 27001 Lead AuditorISO 27701 Lead AuditorISO 42001 Lead Auditor
Last reviewed: September 2026 • Content verified by certified lead auditors

Get in touch

Book a free consultation or send us your requirements. We respond within 24 hours.

Send us your requirement.

01Your details
02What is it about?
AI Red Teaming
03Send
Asking about: AI Red Teaming