How long does it take to revoke SaaS access after a breach? The 30-minute target, why scoping stalls the clock, and how to measure your own MTTC.

For most enterprises, the honest answer is hours to days, not minutes, because scoping the identity's reach takes far longer than pressing the revoke button. A defensible target for a single scoped identity is 30 minutes from confirmed detection to full multi-layer revocation, covering session kill, credential rotation, OAuth grant revocation, and integration deauthorization. Most teams miss it, and they miss it in the investigation phase rather than the action phase.
Assume 30 minutes for a single, scoped identity and treat anything beyond four hours as a process failure. That is the working target we recommend for SaaS breach containment: revoke, isolate, and block inside a 30-minute window from confirmed detection, independent of how complex the platform is. Real-world numbers sit much higher because the clock rarely starts when the alert fires. It starts when someone verifies the exposure is real.
The fastest path is a pre-written, pre-authorized runbook that a single on-call responder can execute without a change advisory board. Speed comes from authority, not tooling.
Run these five actions in parallel, not in sequence:
Common mistake: stopping at step one and calling it contained.
Mean time to containment (MTTC) matters because it is the only metric that reflects loss avoided rather than work performed. Time to detect tells you how long you were blind. MTTC tells you how long the adversary kept working after you could see them.
The case for shifting attention here is straightforward. CrowdStrike's 2026 Global Threat Report found 82% of detections involved no malware at all, with adversaries working through valid credentials, trusted identity flows, and approved SaaS integrations. When the intrusion runs on legitimate authority rather than tooling you can quarantine, containment means revoking that authority, and the speed of revocation becomes the control that limits loss.
Most regulatory clocks govern notification, not revocation. GDPR's 72-hour notification window and SEC material-incident disclosure rules assume you already contained the incident. Auditors, however, increasingly ask for evidence of the revocation timestamp per system. If you cannot produce that per-app record, you have a visibility gap, not just a reporting gap.
Six things happen between alert and access-off, and five of them are investigation rather than action.
Cross-app revocation works reliably only when every app trusts the same identity provider and no app issues long-lived local tokens. In practice, three categories resist bulk revocation: app-native local admins, machine identities with static API keys, and OAuth integrations authorized by users directly. Handle those with a per-app kill list built before the incident.
Scoping takes longer because a compromised account does not immediately grant production access, and neither side knows the full blast radius at the start. The adversary has to learn what the identity can reach. So do you. The difference is that attacker reconnaissance is compressing from weeks to hours, while enterprise scoping still depends on stitching together admin consoles and log exports by hand.
This is ghost chasing: reviewing theoretical configuration with no runtime evidence of what the identity actually touched. Configuration tells you what an account was set up to do. Effective authority tells you what it can execute inside each application after every entitlement, group, delegation, and maker-mode grant resolves. Without that map in a single pane of glass, scoping is archaeology.
The problem sharpens with non-human identities. Machine identities and AI agents hold bearer tokens, run continuously, bypass MFA, and often outlive the person who created them. An orphaned agent whose owner is disabled keeps executing with inherited credentials. That is machine insider risk, and no insider risk program currently covers it.
A session reset ends the current login. A grant revocation ends the standing authorization. Attackers who hold a refresh token, a personal access token, or an OAuth grant simply re-authenticate after your session reset and continue.
| Action | What it stops | What survives |
|---|---|---|
| Disable IdP account | New SSO logins | App-native accounts, API keys, OAuth grants |
| Kill sessions | Current active sessions | Refresh tokens, integration tokens |
| Rotate credential | Password or key reuse | Existing valid sessions until also killed |
| Revoke OAuth grant | Third-party app access | Data already copied out |
| Remove integration authorization | Machine-to-machine access | Local service accounts |
Usually seconds to 60 minutes, depending on token lifetime. Access tokens commonly live 15 to 60 minutes, so a user can stay active after suspension until the token expires. Explicit session and refresh token revocation is what makes logout immediate. Assume nothing is contained until you confirm it in the app itself.
Revoke sessions and tokens first, then rotate the password. Rotating first while sessions stay alive leaves the attacker logged in with a credential you now think is safe. Order matters: suspend, revoke sessions, revoke grants, then rotate.
No. Revoking access removes the identity's ability to reach data. It does not delete files, mailboxes, or records. In most SaaS platforms, files stay owned by the suspended account, and shared links may remain live until an admin transfers ownership or expires the links. Deprovisioning and deletion are separate, later decisions, and deleting too early destroys the forensic evidence you need.
Edge case worth planning for: if a suspended account owned an integration or an agent, that automation may break silently. Map ownership before you cut.
Revocation is never retroactive. It stops future access only. What you can reconstruct afterward depends entirely on what telemetry you were collecting at the time.
Choose runtime monitoring if your answer to "what data did it touch?" currently requires a week of manual correlation.
Run this as a timed exercise, not a tabletop discussion. Pick one real identity, ideally a non-human one, and measure with a stopwatch.
Most teams discover the stall is step three. If yours is, the fix is not a faster runbook, it is a live map of effective authority so enumeration stops being manual. Our note on reducing attacker dwell time in SaaS covers what that changes downstream.
Automation is safe when the action is narrow, the dependencies are known, and the rollback is trivial. Probabilistic systems need deterministic guardrails, and so does your response process.
For a scoped, single-identity incident: under 30 minutes from verified detection to full multi-layer revocation. For a broader integration compromise, detecting and containing within roughly a week is a defensible stretch goal today. Anything measured in months means the metric owns you rather than the reverse.
Concede the attacker speed argument. Exploitation happens fast, and arguing about it wastes the meeting. The number your board has not seen is your own: how long it takes your team to verify, scope, and fully revoke one compromised SaaS identity across every layer where it holds authority.
Three next steps this quarter:
Obsidian Security operates as that runtime layer for AI agents and machine identities, mapping effective authority across agent platforms so security teams can scope blast radius in minutes instead of days, with no SaaS connector required.