AI red teaming · Flagship service
Your AI has access. Test what it can do with it.
An assistant is rarely just a model. It is an application with a system prompt, an identity, a set of tools it can call, a store it can read from, and a user on the other end whose input becomes part of its instructions.
Every one of those is reachable. An assessment works the deployed architecture — what the agent can be told to do, what it can reach when it does, and what happens downstream when its output is trusted.
What the assessment covers
The deployed system around the model, not the model in isolation.
// connected tools
Tool misuse and excessive permissions
An agent that can file a ticket, send a message or call an internal API can be steered into doing it on someone else’s behalf.
// retrieved content
Prompt injection through user input and retrieved content
Text pulled from a document store, a web page or a past conversation reaches the model as input. It is not trusted content.
// permissions
Blast radius of a service identity
Assistants are often given a service identity broader than any single user. The blast radius of one bad instruction follows that identity.
// sensitive data
Cross-user and cross-tenant isolation
Retrieval boundaries decide which records a given user’s question can surface. Those boundaries are testable, and often weaker than assumed.
01 / What is assessed
Eight classes of failure.
Each is described here as what gets assessed and why it matters. The techniques that demonstrate them belong in your report, agreed in scope, not on a public page.
- 01
Direct and indirect prompt injection
Assessed
Whether instructions arriving in user input, or inside content the system retrieves, are treated as instructions by the application.
Why it matters
The model cannot tell an instruction from data. Anything the application feeds it — a support ticket, a document, a web page, a previous message — arrives with the same authority as the system prompt unless the architecture separates them.
- 02
Application safeguard bypass
Assessed
How reliably the guardrails the application depends on hold when the request is framed differently, arrives in a different form, or spans several turns.
Why it matters
Safeguards implemented only in the prompt are advisory. Knowing which of yours are advisory and which are enforced changes where you spend the remediation effort.
- 03
Sensitive information exposure
Assessed
What the system will disclose about its own configuration, its data sources, and records held for other users, and where retrieval boundaries are enforced.
Why it matters
Retrieval boundaries are frequently applied when indexing and assumed thereafter. If the boundary is not enforced at query time against the signed-in user, the index is the access control.
- 04
Tool misuse and excessive permissions
Assessed
What actions the agent can take, with whose identity, and what an instruction it should not have followed can cause those tools to do.
Why it matters
Tool access converts a content problem into an action problem. An agent that can email, refund, escalate or write is an authenticated user of every system it can reach.
- 05
Cross-user and cross-tenant isolation
Assessed
Whether one user’s context, history, cached content or retrieved records can reach another user, or another tenant, through the assistant.
Why it matters
This is the finding that ends deals. Isolation in the underlying database does not survive a shared service identity in the layer above it.
- 06
Memory and content poisoning
Assessed
Where persistent memory or a retrieval corpus is used: whether content written today changes the system’s behaviour for someone else tomorrow.
Why it matters
Persistence turns a single injected instruction into a standing one. The failure is durable, and it is rarely visible in the conversation where it fires.
- 07
Unsafe handling of model output
Assessed
What the surrounding application does with what the model returns — rendered as markup, passed to an interpreter, used in a query, or sent to another service.
Why it matters
Model output is untrusted input to whatever consumes it. Most of the damaging outcomes here are conventional vulnerability classes reached through a new entry point.
- 08
Approval bypass and consequential actions
Assessed
Which actions require a person to approve them, whether that approval can be avoided or pre-satisfied, and whether the approver is shown enough to make the decision.
Why it matters
A human-in-the-loop control that shows a summary written by the same system taking the action is not a control. Consequential actions need an approval path that cannot be influenced by the request.
02 / From an engagement
This is not hypothetical.
On a payments platform assessed before its SOC 2 audit, a support assistant read customer-written tickets and could call internal tools to answer them. Instructions placed in a ticket were followed: the assistant disclosed its system prompt and, in one case, internal account metadata reachable through a tool it had been granted.
There was no vulnerability to patch. The system worked as built. What failed was the architecture around the model, and the fix was a guardrail layer rather than a prompt change — rebuilt with the client’s engineers and retested against the same cases.
03 / Systems in scope
If it reads something a person wrote and then acts, it is in scope.
Product copilots
Assistants embedded in a customer-facing product, with access to that customer’s account data.
Retrieval applications
Systems answering from an internal corpus, where the corpus decides what a given user can see.
Support and operations agents
Agents that read tickets or messages written by other people, and act on what they read.
Internal assistants
Assistants wired into identity, ticketing, code or document systems for staff use.
Agents with tool access
Anything permitted to call an API, run a job or write to a system rather than only produce text.
04 / Assessment workflow
From inventory to validated fix.
- 01
Inventory
Map what is actually deployed: entry points, system prompts, retrieval sources, tools, the identities each runs as, and where output goes.
- 02
Threat model
Work out which failures would matter for this system and this business, and which trust boundaries carry the weight.
- 03
Agreed test cases
Turn the threat model into a set of cases you sign off before execution, including anything you want left alone.
- 04
Controlled evaluation
Run the cases against the agreed environment, with the intensity and stop conditions set in the rules of engagement.
- 05
Findings
Report what reproduced, what it reached, and the control that removes it — with evidence for each case.
- 06
Remediation validation
Re-run the affected cases after the fix, and hand over the ones worth keeping as regression checks.
05 / Deliverables
What you keep afterwards.
- Threat model
- The deployed architecture, its trust boundaries, and the failures that matter for it — a document your team keeps using after the engagement.
- Reproducible evaluation cases
- Each case written so your engineers can run it themselves, with the expected safe behaviour stated alongside the observed one.
- Evidence
- Transcripts, tool invocations and responses that substantiate each finding, handled under the terms agreed in the statement of work.
- Control recommendations
- The architectural and implementation changes that close each finding, mapped to the failure they address rather than to a generic checklist.
- Agreed regression checks
- The subset of cases worth running continuously, in a form you can add to your own pipeline.
06 / References
Published work we reference.
Used as shared vocabulary and as a completeness check, not as a script. Referencing these publications does not imply accreditation or endorsement by their publishers.
- OWASP Top 10 for LLM Applications 2025OWASP Gen AI Security Project
- A current list of the risk categories seen in LLM applications. Useful as shared vocabulary with your engineers, and as a completeness check against the threat model.
- MITRE ATLASAdversarial Threat Landscape for Artificial-Intelligence Systems, MITRE
- A knowledge base of adversary tactics and techniques against AI-enabled systems, modelled on ATT&CK. Used to describe observed behaviour in terms a defender already recognises.
- NIST AI 100-2 E2025Adversarial Machine Learning: A Taxonomy and Terminology of Attacks and Mitigations, March 2025
- The taxonomy used when a finding needs to be named precisely rather than colloquially, particularly in reports read outside the engineering team.
- NIST AI 100-1Artificial Intelligence Risk Management Framework 1.0, January 2023
- A voluntary risk-management frame, with a Generative AI Profile companion published as NIST AI 600-1 in July 2024. Referenced when findings feed an existing governance process.
07 / Questions
Before scoping an AI assessment.
What access do you need?
Do we have to share proprietary information?
Can you test production?
Why not just test the model?
Which model providers do you cover?
How does this relate to a conventional penetration test?
Tell us what you need to test.
The tools it can call, the data behind it, and who uses it. That is enough to scope an assessment.