Skip to content
AI Security & Governance

AI Red Teaming for assistants, agents and RAG systems

Goal-driven campaigns against your deployed assistant, agent or knowledge base. We think like the attacker, document every route we find, and hand you the evidence to fix it.

  • 2–3 week campaigns
  • Manual + automated
  • Retest included
Who this is for

Systems where a breach has a measurable cost

Red teaming is for AI that can move money, expose records, send messages or make decisions about people. It is also the right answer when a customer or regulator asks "has anyone independently tried to break this?"

  • Customer-facing agents in fintech, insurance, healthcare and legal.
  • Internal copilots with access to HR, finance or customer systems.
  • Multi-tenant SaaS products that added an AI feature on top of shared data.
  • Teams that have fixed audit findings and want to know what is left.
Security auditRed team
Starts fromChecklist and designAttacker goals
CoversBreadth across the systemDepth on what matters
NeedsCode and config accessA deployed target
FindsGaps and exploitsChained exploits
Best whenFirst review, pre-launchAfter hardening, annually
Campaign process

How a campaign runs

  1. Scope and rules

    Agree targets, goals, accounts, environments, what is out of bounds and how to stop. Written rules of engagement, signed by both sides.

  2. Threat scenarios

    Three to six attacker goals ranked by business impact, such as "read another tenant's data" or "make the agent send a payment".

  3. Attack

    Manual campaigns per goal, backed by automated payload generation. Every attempt is logged, successful or not.

  4. Triage

    Reproduce each success twice, rate severity, write the fix. Critical findings are reported the day they are confirmed.

  5. Report and retest

    Report, debrief with engineering, and a retest window once fixes land. Probes join your regression suite.

Attack trees

Each goal becomes a tree of routes

We work backwards from the goal. Each branch is a different way in: a content channel, a tool, a retrieval path, an output sink. Branches end in one of two states: a reproducible success with a severity, or a block with the name of the control that stopped it.

Both outcomes are reported. Knowing which controls held is as useful as knowing which failed, because it tells you what to keep when the next feature ships.

Example: a multi-tenant support assistant with a ticket-lookup tool and a vector index of past tickets. Three branches, two of them open.

Attack tree. Goal: read another customer's records. Three branches: indirect injection via uploaded PDF, which succeeded with critical severity through a tool call; an over-privileged lookup tool, which was blocked by a confirmation step; and cross-tenant retrieval, which succeeded with high severity because the vector query had no tenant filter. Goal: read another customer's records multi-tenant support assistant Indirect injection hidden text in uploaded PDF Over-privileged tool ask lookup_ticket for other ids Cross-tenant retrieval ask about "similar past tickets" Succeeded: Critical tool ran as service account Blocked confirmation step held Succeeded: High vector query had no tenant filter Every leaf is reported: what succeeded, what held, and which control was responsible.
An illustrative attack tree from a campaign scope. Two of three branches reached the goal; the report names the control that stopped the third.
Attack categories

What we try

The categories below map to the OWASP Top 10 for LLM Applications. Campaigns weight them by the goals you care about.

CategoryAttacker goalExample techniquesTypical finding
Direct prompt injectionBypass rules, extract the system promptRole play, instruction nesting, encoding, multilingual payloads, many-shot pressurePolicy bypass, leaked business rules
Indirect prompt injectionHijack the model through contentHidden text in PDFs and web pages, crafted emails and tickets, poisoned tool resultsUnintended tool calls, data exfiltration
Tool and agency abuseMake the model act beyond its taskArgument manipulation, scope creep, chained calls, confirmation fatigueWrites or lookups outside the user's rights
Retrieval and tenancyRead data the user may not seeCross-tenant queries, ACL gaps, metadata filter bypass, embedding probesCross-tenant disclosure
Output exploitationTurn output into an exploitMarkdown and HTML injection, link smuggling, SQL or shell fragments in outputStored XSS, data exfil via rendered links
Privacy and leakageExtract personal or secret dataMemory probing, log inspection, summarisation of restricted recordsPII in answers or logs
Resource exhaustionCost or availability damageLong-context floods, recursive tool loops, parallel sessionsDenial of wallet, degraded service
Safety and brandProduce harmful or off-policy outputJailbreaks, persona drift, competitor and legal-advice scenariosReputational and compliance exposure
Reporting

How we report

  • Reproducible findings

    Exact payloads, accounts, steps and timestamps. Each success was reproduced twice before it entered the report, so your engineers can see it on their first attempt.

  • Severity you can argue with

    Likelihood and impact are justified separately, using the same matrix as our audit. Business context from your side can move a rating; we record why.

  • Controls that held

    Blocked branches are listed with the control responsible. This becomes your "do not remove" list and your evidence for questionnaires.

  • Probes for CI

    Every payload becomes a test in your pipeline, with expected behaviour. Model upgrades and prompt edits run against the full set before release. See how we evaluate LLM outputs.

FAQ

Frequently asked questions

How is red teaming different from an LLM security audit?

An audit reviews design, code and configuration for coverage. A red team starts from attacker goals and tries to reach them by any route, in the deployed system. Do the audit first if you have never had a review; red team once the obvious gaps are closed.

Do you use automated attack tools?

Yes, for breadth: payload libraries, mutation and model-assisted generation of variants. The findings that matter most usually come from manual work that chains a weakness in retrieval, a tool and an output path. See red teaming in our glossary.

Is a red team safe to run against production?

We prefer staging with production-like data. If production is unavoidable, we agree read-only goals, test accounts, rate limits and a stop condition, and we never target real customers' data.

How often should we run a campaign?

After any major change to tools, content sources or model, and at least annually. Between campaigns, the regression probes we hand over run in CI.

Can you test safety and brand behaviour as well as security?

Yes. Campaigns can include harmful-content, off-policy advice and competitor or reputational scenarios. We separate those findings from security findings so each lands with the right owner.

Talk to us about your AI project

Tell us what you are trying to do, which systems are involved and what is in the way. We reply within one business day with an opinion and a suggested next step.