Aventura, Florida · serving clients across the United States (305) 404-9404Toll-free (800) 767-8566Emergency? Get a call within 1 hour
Financial services, wealth management Illustrative engagement

An Agent Security Review before a wealth manager rolls out Copilot Studio agents

A registered investment adviser in Connecticut with about 90 staff, a leader in its segment.

Scale
About 90 staff, 14 Copilot Studio agents planned, 6 MCP servers, 3 approval tiers, 1 Microsoft 365 tenant
Engagement
Six weeks: inventory, MCP audit, red team, remediation and a re-test

The challenge

The firm wanted client-service, research and onboarding assistants built in Copilot Studio, and staff had already connected a few tools to them without a review. Nobody could say how many agents existed, which identity each one ran as, what data each could reach, or what would be logged if one went wrong. The chief compliance officer wanted facts to put in front of the firm's counsel before a wider rollout.

A Connecticut investment adviser with about 90 staff wanted assistants for client service, research and onboarding, built in Copilot Studio. A few had already been built by staff and connected to tools without a review. The chief compliance officer asked a simple set of questions that nobody could answer from records: how many agents exist, which identity does each run as, what data can each reach, and what is logged if one misbehaves. The firm wanted facts for its counsel before it widened the rollout.

We began with an inventory from the tenant itself: each agent, its owner, the identity it runs as, its connectors and knowledge sources, and the client data those reach. We also wrote down the visibility ceiling. What a tenant can see about its agents depends on its Microsoft licences, and agents or tools outside that view are visible only through audit and sign-in logs or not at all. The firm got that limit in writing, with the list of agents and tools that sat on the far side of it, so nobody would assume coverage that did not exist.

The six MCP servers were next. MCP servers are the plug-in servers that connect an agent to tools and data. We reviewed them against the MCP authorization specification, revision 2026-07-28, and its security best practices: whether tokens are issued for the right audience, that no server passes a token through to another service, how scopes are set, and which local servers take credentials from the environment and leave no authorization log. Scanners read descriptions and configuration, so we treated their output as one input. Two servers were removed because no agent needed them.

The red team ran under a signed scope. A crafted email planted in a test mailbox steered an onboarding agent toward a request it should not have made (ASI01 Agent Goal Hijack). A research agent could be talked into calling a connector with parameters its owner never intended (ASI02 Tool Misuse). One agent ran as a shared service account with far more reach than its job needed (ASI03 Identity and Privilege Abuse). Each finding carried its OWASP identifier, reproduction steps and evidence, and a table showed which attacks the firm's logs had recorded and which they had not.

Remediation was done with the firm's IT staff: separate least-privilege identities, narrower connectors, and a person who confirms any message before it leaves the firm. We then set three approval tiers: agents that may act alone, agents that need a person to confirm each action, and uses that are not allowed. We retested every finding. The figures in this illustrative case are modeled, and a test shows what was found in scope and time, not that an agent is safe. What the firm keeps is an inventory, a test report and an approval record. Our article on the OWASP agentic list explains the categories in plain language.

What our team delivered

  • An agent inventory built from the tenant: every Copilot Studio agent, its owner, the identity it runs as, the connectors and knowledge sources it uses and the client data those sources reach
  • A written statement of the visibility ceiling: what the firm's Microsoft licences let us see, what only audit and sign-in logs show, and which agents and tools sit outside that view
  • An audit of the six MCP servers against the MCP authorization specification (revision 2026-07-28) and its security best practices: audience validation, no token passthrough, scopes, and local servers that leave no authorization log
  • Red-team testing of the agents in a signed scope, with findings mapped to the OWASP Top 10 for Agentic Applications: ASI01 Agent Goal Hijack through a planted email, ASI02 Tool Misuse, and ASI03 Identity and Privilege Abuse
  • Remediation with the firm's IT staff: least-privilege service identities, narrower connectors, human confirmation before any message leaves the firm, and removal of two unneeded MCP servers
  • Three approval tiers that decide which agents may run on their own, which need a person to confirm each action and which are not allowed, plus a log-review routine for the agent activity the tenant exposes
  • A re-test of every finding and an evaluation summary the firm can hand to counsel and its examiners

Result

In this illustrative engagement the firm launched with 11 of the 14 planned agents, held three back until their fixes were retested, and kept a written inventory, test report and approval record. The review shows what was found in scope and time, not that the agents are free of vulnerabilities.

Every agent tool call passes one checkpoint

Agents reach MCP servers only through a gateway that checks policy, enforces a per-agent scope allow-list and logs every call to the SIEM. A call outside the allow-list is blocked. A local stdio server started on a laptop skips the gateway, so it needs its own control.

Every agent tool call passes one checkpointTwo AI agents send tool calls to an MCP gateway that performs a policy check, applies a scope allow-list and writes a log. Allowed calls continue to a CRM server, a ticket server and a data store. A call to a payments tool is outside the allow-list and is blocked at the gateway. Every call is logged to a SIEM. A dashed red path from one agent goes directly to a local stdio server and bypasses the gateway, with no policy check and no log. AGENTSMCP SERVERSAgent Aticket triageAgent Bfinance helperMCP gatewaypolicy · scope · logCRM serverread toolsTicket serverread, commentData storeread onlyPayments toolnot allowedSIEMaudit logLocal stdio serverno gateway, no log1 · agent sends a tool call2 · gateway checks scope and logs the call3 · out-of-scope call blocked and loggedAllow-list per agent and per toolEvery call loggedStdio bypasses the gateway

Three approval tiers for AI agents

Every action an agent can take falls into one of three tiers: it runs on its own, a named person approves it first, or a human always does it. The examples are illustrative; each firm draws its own lines during scoping.

Three approval tiers for AI agentsThree side-by-side cards. Runs on its own: reading, drafting, searching approved sources, writing its own log. Needs approval: external email, changing records, widening access, running scripts. Never automated: moving money, changing bank details, switching off logging, deleting backups, signing contracts.What an agent may do, by approval tierRuns on its ownLow impact, easy to undoRead and summarise filesDraft text for reviewSearch approved sourcesWrite its own activity logNeeds approvalA named person says yesSend email outside the firmChange a customer recordGrant or widen accessRun a script on a serverNever automatedA human does it, every timeMove moneyChange bank detailsSwitch off logging or alertsDelete backupsSign a contractImpact and difficulty of undoing rise from left to rightExample tiers only. The lines between them are set per firm, per workflow.

How we audit an MCP deployment

We inventory every server, read its configuration and manifest, scan statically, test authorization against the MCP specification, red-team with adversarial prompts, map each finding to OWASP agentic categories, and retest after the fix.

How we audit an MCP deploymentA seven-step audit flow. Step one inventories MCP servers, local and remote. Step two reads configuration and manifests. Step three is a static scan of tool descriptions and permissions. Step four checks authorization against the MCP specification: resource indicators, audience, PKCE and issuer. Step five runs red-team prompts for injection and abuse. Step six maps findings to OWASP agentic categories. Step seven is remediation and retest, ending in a report. Typical findings are tool poisoning, excessive scope, token passthrough and missing audit logs. Inventorylocal and remote1Read configmanifests, config2Static scantool descriptions3Authorizationper the MCP spec4Red-team promptsinjection, abuse5Map to OWASPAgentic categories6Fix and retestre-test same cases7Reportfindings + evidence8STEP 4 CHECKSresource indicatorsaudiencePKCEissuerTYPICAL FINDINGStool poisoningexcessive scopetoken passthroughChecked against the MCP specOWASP Agentic mappingRetest before close

An agent with its own identity and its own token

A named human sponsors each agent. The agent gets its own identity from a blueprint, signs in and receives a token bound to one audience with narrow scopes. The resource server validates the audience, so a token meant for one resource is rejected anywhere else. No passthrough.

An agent with its own identity and its own tokenA human sponsor creates an agent identity from a blueprint. The agent identity requests an OAuth access token from the authorization server, which returns a token with an audience set to resource A and the scope tickets.read, and records the sign-in in the sign-in logs. The agent presents the token to resource A, which validates the audience and accepts it. Resource A then tries to pass the same token on to resource B, which rejects it because the audience does not match. ACCESS TOKENaud: resource Ascope: tickets.readsub: agent identitySponsorhuman ownerAgent identityfrom a blueprintAuth serverissues tokensSign-in logsResource Achecks audResource Baud mismatchno passthrough1 · sponsor creates the agent identity2 · token issued: audience and scopes3 · resource validates the audience4 · token for another resource is rejectedAudience-bound · short-lived tokensScopes per agentSponsor accountable

Frequently asked questions

Direct answers to the questions we hear most. Something else on your mind?

Send us a message
Is the wealth manager in this case a real client?

No. It is an illustrative composite that shows how an Agent Security Review works for a wealth manager planning Copilot Studio agents. The firm, figures and findings are examples, not a named client's record. Your scope, timeline and findings would depend on your own tenant and tools.

What does the review inventory before any testing?

It builds an inventory from the tenant: every Copilot Studio agent, its owner, the identity it runs as, the connectors and knowledge sources it uses, and the client data those sources reach. It also states what the firm's Microsoft licenses let us see and what sits outside that view.

What does OWASP ASI02 Tool Misuse mean here?

ASI02 is the OWASP Top 10 for Agentic Applications category for Tool Misuse: an agent using a legitimate tool in a harmful way, for example sending data out. In this case the red team tested for it in a signed scope, and fixes included narrower connectors and human confirmation before a message leaves the firm.

Does the review prove the agents are secure?

No. It shows what was found within the agreed scope and time, and it gives the firm an inventory, a test report and an approval record. It is not a guarantee that the agents are free of vulnerabilities, and it is not legal advice. The firm's counsel decides how to use the evidence.

Do you know if your company is safe?

Speak with a security engineer today. The first assessment call is free and confidential.

CallFree assessment