In SaaS breaches, dwell time hides inside AI agents and non-human identities that configuration tools cannot see, and correlating effective access to runtime behavior is how you compress it.
Attacker dwell time is the number of days between an intruder's initial access and the moment defenders fully evict them. In SaaS breaches it is often measured in weeks or months, not days. - The Salesloft Drift campaign (tracked as UNC6395) reached roughly 700 organizations because stolen bearer tokens looked identical to legitimate integration traffic. - Configuration snapshots cannot shorten dwell time. They describe theoretical posture, not what an agent actually did at runtime. - Maker-mode agents, orphaned agents, and unsanctioned MCP servers are the three blind spots that stretch dwell time most in 2026. - Dwell time, MTTD, and MTTC measure different windows. Report all three to the board, not just the one that looks best. - Continuous discovery of every agent and non-human identity is the practical floor under dwell-time reduction. You cannot evict what you never inventoried.
Attacker dwell time is the total number of days between an intruder's initial access and the moment defenders remove them completely. That single number is the strongest predictor of breach cost. The longer an intruder operates, the more data leaves the building, the more identities they pivot through, and the more the recovery bill grows.
Boards track attacker dwell time because it reads as a leading indicator of program maturity. A shrinking number tells directors the team is catching real threats faster. A flat or rising number tells them prevention spend is not keeping pace with attacker tradecraft. The metric is blunt on purpose. It cuts through tool inventories and control counts to one question: how long can something hostile live inside your environment before you notice.
In SaaS, that question got harder to answer. Attackers no longer grind through network segments to reach data. They ride OAuth tokens, embedded agent credentials, and third-party integrations straight into the sensitive objects. The perimeter they cross is an identity boundary, not a firewall.
Published benchmarks from the recurring Mandiant M-Trends and IBM Cost of a Data Breach reports place median global dwell time in the low tens of days. SaaS-specific intrusions tend to run longer, because native audit logs sit siloed per tenant and per app, and correlating them is manual work nobody does until an incident forces it. When the intrusion runs through an AI agent or a compromised integration, the timeline stretches further, because the malicious activity is authenticated and looks routine.
The Salesloft Drift campaign in 2025 is the clearest recent case. Attackers used stolen bearer tokens from a single integration to reach connected data across roughly 700 organizations. Legitimate and malicious calls carried the same credential and the same shape, so most victims learned of the intrusion only when disclosure reached them. That is not one company's detection failure. It is a category failure across the shared SaaS fabric.
Most detection stacks were built for humans logging into apps. That world is gone. AI agents, service accounts, and integrations now generate the bulk of authenticated activity inside enterprise SaaS. These non-human identities move roughly 16x more data than human users, and by most current estimates around 90% of them carry more permission than their job requires. They are exactly where an attacker wants to hide.
Four specific gaps stretch dwell time in 2026.
This is the visibility gap in one line: configuration tooling reports what an agent was set up to do, and says nothing about which agent was actually invoked, by whom, and what data it touched.
The fastest lever on attacker dwell time in a SaaS-heavy estate is to correlate effective access against runtime behavior for every agent and non-human identity you run. Periodic access reviews and posture snapshots will not close the gap, because they answer a hypothetical. Correlation answers the fact.
Traditional response burns days on the question "what could this token have done?" Effective-access correlation replaces it with "what did this token actually do, on whose behalf, against what data?" and answers in minutes. The mechanism is where the difference lives. Obsidian's identity graph resolves a runner's identity against the agent's maker-mode credentials against the entitlements that actually resolve inside each connected app: which service account the agent authenticates as, which tables and objects it can read, which actions it can take. That is effective access, not the vendor's theoretical configuration page. When the runner should never have reached that data even through the agent, the confused-deputy pattern surfaces on the spot, and the blast radius shows up in one view instead of a cross-tenant log-stitching project.
The point of the graph is fewer fire drills and evidence that generates itself. A working sequence:
A note on enforcement so the operating model is clear. Obsidian is not an inline proxy sitting in the traffic path. Runtime works on an "Intel Inside" model: the identity graph acts as the decision engine a platform consults. Autonomous runtime enforcement that can block an action today runs on Claude and Microsoft Copilot only. For Agentforce, Snowflake Cortex, ServiceNow and Now Assist, Moveworks, Bedrock, Vertex, and n8n, the capability today is discover and govern, and deterministic runtime enforcement is on the roadmap rather than in production. Discovery and effective-access mapping are what compress dwell time across all of them right now.
Dwell time, MTTD, and MTTC measure different windows of the same incident. Confusing them produces metrics that look healthy and change nothing.
| Metric | What it measures | When the clock stops |
|---|---|---|
| Dwell time | Initial compromise to full eviction | Attacker no longer has access |
| MTTD (mean time to detect) | Initial compromise to first valid alert | Someone notices something is wrong |
| MTTC (mean time to contain) | Detection to containment | The attacker's active path is cut off |
MTTD is a subset of dwell time. You can detect fast and still carry long dwell time when containment drags, and in SaaS breaches containment usually drags for one reason: the compromised token or agent holds entitlements nobody mapped before the incident. The team loses days reconstructing blast radius while the attacker keeps working. The practical rule for the board deck is short. If MTTD is small but dwell time is large, the problem is response, not detection, and the fix is knowing effective access before the alert fires, not after.
Discovery is not a one-time inventory project. Agents get created weekly by people who are not in security, MCP servers appear and disappear, and integrations accumulate scopes over time. A snapshot taken last quarter is already wrong. Continuous discovery of every agent and non-human identity is the insurance policy under every other control, because an agent you have never seen is a dwell-time extender by definition.
Identity segmentation is the SaaS equivalent of network segmentation. Attackers rarely cross network segments in these breaches. They cross OAuth scopes, agent-to-agent trust, and delegated permissions. Translated into controls:
Zero Trust language applies here only when it is anchored to non-human identities and agents. Anchored to human users alone, it does not touch the blind spots that stretch SaaS dwell time.
Most SaaS-heavy organizations cannot calculate their own dwell time, because they have no complete inventory of non-human identities to measure against. Start there. Build the agent and non-human identity inventory, instrument runtime observability, then measure. In that order, because the number is meaningless without the first two.
A three-question test tells you where you stand:
If any answer is no, dwell time in your environment is longer than your dashboard suggests, and the gap is not a tuning problem. It is a visibility one. The dwell-time figure on your next board deck reflects a choice you make now about where you look and what you can prove.
There is no universal number. A practical goal is measurable improvement quarter over quarter, with a stretch target of detecting and containing any integration compromise within about a week. The number matters less than whether you can calculate it honestly.
Only when it is anchored to non-human identities and agents. Zero Trust applied to human users alone leaves the maker-mode, orphaned-agent, and MCP blind spots that extend dwell time in SaaS environments untouched.
Rarely. Native logs are siloed per tenant and per app, and the interesting activity spans platforms. Cross-platform correlation of identity against effective access is where dwell-time visibility actually comes from.
Machine insider risk is the exposure created when AI agents hold credentials and act like insiders while no insider-risk program covers them. It extends dwell time because the hostile activity is authenticated and looks legitimate, so nothing flags it.
Autonomous runtime enforcement that can block an action is available today for Claude and Microsoft Copilot only. For other platforms, discovery and effective-access mapping are available now, and deterministic runtime enforcement is on the roadmap. Detection and governance are what compress dwell time across the rest of the stack today.
Obsidian is a control plane and identity graph, not an inline proxy. It resolves the effective access behind every agent and non-human identity, correlates runtime behavior against identity, and covers the hidden layer between SaaS apps, so the blast radius is known before an incident instead of reconstructed after one.