Enterprise software · Customer support assistant

Giving a support assistant real authority, with evidence it won't be misused.

CASE STUDY / 01

A global B2B software company wanted its support assistant to do more than answer questions: look up accounts, change seats and issue service credits. The question was whether it could be trusted with those tools in front of every customer.

By Vigilantia TeamPublished

Sector

Enterprise software (B2B SaaS)

System

Retrieval-backed support assistant with ticketing, account and billing tools

Engagement

AI Red Team and AI Security Assessment

Timeline

Six-week engagement; continuous assurance since

The situation

The next release gave it hands.

The support team had spent a year on a retrieval-backed assistant that answered from the help centre and policy documents. It worked, and customers used it. The next release connected it to live systems: it could read an account's plan and history, change seats, and apply service credits up to a set limit. Product was ready to ship. Security was not ready to sign.

Nobody disagreed about the value. The gap was evidence. The team could show that the assistant answered well; it could not show what happened when a customer, or a message a customer pasted in, tried to steer it. They asked us to find out before their customers did.

What we found

The conversation could reach the tools.

F/01

Ticket content steered the assistant's tools

Text inside a customer's own ticket - a pasted email, a forwarded message - could instruct the assistant to apply a credit to a different account the customer named. The assistant treated the instruction as part of the conversation. Four distinct paths reached the billing tool this way.

F/02

Account boundaries lived in the prompt, not the system

The assistant was told which account it was serving; it was not technically restricted to it. Under pressure it looked up and summarised another organisation's plan details.

F/03

Retrieval surfaced internal-only guidance

Help-centre search also indexed internal escalation playbooks. The right phrasing returned them verbatim, including the conditions under which staff are allowed to waive fees.

F/04

The credit limit was a suggestion

The per-request cap was enforced in the prompt. Splitting a request across several turns passed it.

What changed

Authority moved out of the prompt and into the system.

Every validated path was closed at the layer that could actually enforce it, and the assistant shipped with tool access in the next release - with evidence the security team could sign.

  • Account scope enforced at the API layer, derived from the authenticated session rather than the conversation
  • Billing and account tools placed behind a policy service with hard limits and human approval above a threshold
  • Customer-submitted content tagged and isolated from instruction context before it reaches the model
  • Internal playbooks removed from the customer-facing retrieval index
  • A reproducible attack suite covering every validated path, handed to the engineering team

Ongoing assurance

Every release is tested the way an attacker would.

The assistant now ships every few weeks. Each release, model update and prompt change runs through the attack suite and a behavioural regression set we maintain together. When a model upgrade quietly changed how the assistant handled pasted content earlier this year, the regression caught it before release.

We review results with the team each quarter and extend the suite as new tools are added.

How continuous assurance works

Begin with evidence

Know what your AI system can do before an attacker does.

Start an assessment