Runtime enforcement stops an agent from moving data out through legitimate tool calls before the export finishes, not minutes after an alert lands in a queue.
AI agents exfiltrate data through legitimate tool calls, not malware. The credential and the intent both look routine, so the theft only shows up in the aggregate. - Configuration pages show theoretical risk. Runtime shows the reachable exfil path, tied to a specific service account and the tables, objects, and actions it can actually touch. - Roughly 90% of agents are over-permissioned, and an agent moves about 16x more data than the human it acts for. One over-scoped token carries an outsized blast radius. - Detection alone leaves the door open. By the time the alert fires, the export has already completed. - Obsidian blocks agent data exfiltration at runtime for Claude and Microsoft Copilot today. Agentforce, Bedrock, Vertex, n8n, ServiceNow, and ChatGPT Enterprise are discover and govern, with enforcement on the roadmap. - Autonomous response, not report-only ticketing, is the operational shift that closes the path inside the agent's action window.
To block AI agent data exfiltration, you have to watch what the agent does, not read how it was configured. Exfiltration by an agent rarely looks like an attack. It looks like a Tuesday. The agent uses its assigned credential, calls an approved API, retrieves records, and forwards them to a connected destination. Every step is authorized. The loss happens in the sum of those steps, which is why a prompt-level view alone never catches it.
The paths security teams have to cover share one property: the credential in use is legitimate.
Data exfiltration is the unauthorized movement of data out of a controlled environment. Agents cause it because they hold credentials, take multi-step actions, and connect to tools that most identity systems never audit as first-class identities. Three ingredients stack up: a machine identity holding a token or service account, effective authority inside an app that exceeds the invoker's own permissions, and an outbound path through a connector, webhook, or API destination. Traditional data-loss tooling looks for a human copying a file. It does not see a non-human identity making 400 bulk reads at machine speed and forwarding the results through an integration someone approved a year ago.
Detection tells you what happened. Blocking decides whether it happens at all. For agents, the gap between those two states is measured in seconds, and the volume that moves inside that gap is the whole problem. An agent that moves about 16x more data than a person does not give a SOC queue time to react.
Walk the timeline of a typical exfil event:
| Second | Event | Detection-only response | Runtime block response |
|---|---|---|---|
| 0.0 | Agent invoked by low-privilege user | Log entry created | Identity correlation begins |
| 0.3 | Agent authenticates with maker-mode credentials | Log entry created | Effective-authority check runs |
| 0.6 | Bulk read initiated on 5,000 CRM records | Log entry created | Rule matches, action blocked |
| 1.2 | Records forwarded to external destination | Alert generated | Never happens |
| 5 min | SOC receives alert, opens ticket | Data is already gone | Not applicable |
Detection produces expensive logging. It does not close the door.
Yes, if you define permission strictly at the human layer. This is the machine insider problem. Human IAM is not agent IAM: you revoke a user's Salesforce access, and the agent they built still runs on the original credential. Session boundaries do not carry over either. A person's session times out; an agent's token often does not. The access was granted once, forgotten, and never scoped down.
The reachable exfil path is the intersection of who invoked the agent, what the agent can actually do inside each connected app, and which outbound destinations it can reach. That is not what the config file claims. It is what the runtime resolves after every entitlement is applied.
An example correlation makes the difference concrete:
A vendor's configuration page shows the agent exists. It does not show that this specific invoker, riding this specific service account, can read those GL objects and land them in a partner-shared folder. Correlating the agent's activity to its effective access inside the third-party app, the account, the objects, and the actions, is the difference between a theoretical map and the runtime truth. Obsidian's Knowledge Graph joins those signals into one view so the reachable path is visible before anyone acts on it.
The block has to land at the moment the agent tries to act. Obsidian runs an "Intel Inside" decision engine: the AI platform consults it through native APIs and webhooks, and it returns a block-or-allow decision against deterministic rules inside a one-second window. Obsidian is not an inline proxy sitting in the traffic. The platform makes the call; the decision engine supplies the verdict.
The deterministic rules that matter for exfiltration:
Truth in labeling. Runtime block enforcement today covers Claude and Microsoft Copilot. Salesforce Agentforce, Amazon Bedrock, Google Vertex, n8n, ServiceNow Now Assist, and ChatGPT Enterprise are covered by discovery, effective-authority mapping, and governance workflows. Runtime enforcement for those platforms is on the roadmap, not shipping yet. State it plainly to your stakeholders so nobody assumes a block they do not have.
The category is new, and the products are not equivalent. Judge them on three questions. Does the tool map effective authority, or only list agents from a config read? Does it see tool calls at runtime, or stop at what a static review can enumerate? Does it demand a separate connector and a SaaS admin's sign-off per app, which slows every rollout and inflates total cost? Runtime visibility and identity correlation matter more than a long feature checklist, because the loss you are trying to stop only appears at runtime.
MCP servers are becoming the primary tool layer for agents, and they are the fastest-growing exfil vector because the tools inside a server are only visible at runtime. Every server exposes a set of tools, and each tool can reach any endpoint the server is configured to hit. A static review never sees them.
The pattern runs like this:
The scale of connected-integration risk is not hypothetical. The UNC6395 campaign against Salesloft Drift moved through trusted OAuth integrations and reached around 700 organizations, and it did so with valid tokens rather than malware. An MCP tool talking to an unsanctioned endpoint is the same shape of problem one layer lower.
Closing it takes three layers in order: a server inventory that separates sanctioned from unsanctioned, runtime visibility into the tool calls themselves, and the ability to block an unauthorized call without becoming an inline chokepoint in the agent's traffic.
Report-only response sends a ticket to the SOC and waits. Autonomous response executes the block inside the agent's action window. For agents that finish an action chain in under ten seconds, only the second one closes the path.
Choose autonomous response when your agents operate at machine speed, when your ticket queue runs past 24-hour response times, or when regulated data covered by PCI, PHI, or financial rules is reachable by an agent. Choose report-only when you are still building the agent inventory, when the agents in question are internal read-only workflows, or when your compliance team has not yet approved autonomous decisions.
Most enterprises run both. Keep report-only on a new agent class for a two-week baseline, then flip to autonomous on the risk factors that matter most: maker-mode agents, over-scoped tokens, and any path that reaches regulated data.
Start with an agent inventory and maker-mode detection, then turn on runtime block for Claude and Copilot first, since those are covered today. Extend governance workflows to the other platforms while enforcement rolls out.
Claude and Microsoft Copilot. Agentforce, Bedrock, Vertex, n8n, ServiceNow Now Assist, and ChatGPT Enterprise are covered by discovery, effective-authority mapping, and governance, with runtime enforcement on the roadmap rather than shipping.
No. Obsidian runs an "Intel Inside" decision engine that the AI platform consults through native APIs, and it returns a block-or-allow verdict against deterministic rules. It is a control plane and identity graph, not a proxy in the data path.
Theoretical configuration is what a policy or config file says the agent should be able to do. Effective authority is what the agent can actually do inside each app once every entitlement resolves, down to the service account, the objects, and the actions it reaches.
A runtime block prevents the action inside a one-second enforcement window. Detection records the action after it happens and raises an alert, by which point the data has usually already moved.
Existing regimes such as GDPR, HIPAA, PCI DSS, SOX, and GLBA apply directly, and AI-specific frameworks including the NIST AI RMF, ISO 42001, and the OWASP agentic risk work address it more explicitly. The practical question is not whether they apply. It is whether your controls can prove agent-level enforcement to an auditor.