DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Related

  • Zero Trust in API Management
  • 7 Essential Security Features for Messaging Apps to Gain User Trust
  • Dependent Feature Flags
  • From Zero Trust To Secure Access: The Evolution of Cloud Security

Trending

  • The Serverless Illusion: When “Pay for What You Use” Becomes Expensive
  • A Practical Blueprint for Deploying Agentic Solutions
  • Why Stable RAG Answers Can Still Hide Unstable Evidence
  • Token Attribution Framework for Agentic AI in CI/CD
  1. DZone
  2. Software Design and Architecture
  3. Security
  4. The Trust Problem in Modern SaaS: Why Your Authentication Succeeded, and You Still Got Breached

The Trust Problem in Modern SaaS: Why Your Authentication Succeeded, and You Still Got Breached

Modern SaaS breaches often happen after successful authentication. Learn how trust drift, weak authorization, and stale tokens create hidden risks.

By 
Igboanugo David Ugochukwu user avatar
Igboanugo David Ugochukwu
DZone Core CORE ·
Jun. 16, 26 · Analysis
Likes (0)
Comment
Save
Tweet
Share
194 Views

Join the DZone community and get the full member experience.

Join For Free

Most SaaS breaches do not happen through failure. They happen through valid authentication being trusted too far, for too long, across systems that were never designed to question each other.

That distinction is worth sitting with. Because if authentication failed, you'd know. You'd see it in the logs. The SIEM would fire. The investigation would start in an obvious place.

When authentication succeeds — and authorization is simply absent, or context has shifted since the token was issued — the system looks healthy right up until it isn't. The logs show normal traffic. The requests look legitimate. The damage accumulates silently.

This is the actual threat model for modern SaaS, and it is not adequately reflected in how most teams design, audit, or respond to their systems.

The Cloudflare Case Is the Template

In February 2024, Cloudflare published one of the more technically honest post-mortems the industry has seen. Their internal Atlassian environment — 14,099 Confluence wiki pages, 2 million Jira tickets, 11,904 Bitbucket repositories — had been accessed by a suspected nation-state actor. The intrusion ran for nine days before detection.

The entry point was not an exploit. During the Okta breach on October 18, 2023, attackers stole one service token and three service account credentials belonging to Cloudflare. These credentials were not rotated because, mistakenly, they were believed to be unused.

That is the full story of the breach. Credentials issued during one incident. Not rotated. Still valid. Still honored by Cloudflare's systems months later.

A JWT created for the Moveworks Gateway was forwarding authenticated HTTP requests directly to the private, self-hosted Atlassian server. Incoming HTTP requests that attached the JWT were forwarded without further challenge. The token was valid at issuance. The system never re-evaluated whether the holder still had legitimate standing to use it.

Most SaaS breaches are not authentication failures — they are trust relationships that were never designed to expire.

That line is not a platitude. It is a precise description of how Cloudflare, Microsoft, BeyondTrust, and dozens of less-publicized organizations were breached in the past eighteen months — not because their authentication systems failed, but because token validity was treated as a continuous proxy for authorization correctness.

It is not.

What Stacking Trust Layers Actually Produces

Modern SaaS architectures are composites. A single user action might pass through an API gateway, traverse a microservice boundary, call an identity provider, issue a token validated by a third-party integration, and write to a data layer with its own access model. Each component was built by different teams, under different threat models, in different years.

Each layer assumes the previous one enforced constraints correctly.

This assumption is not verified at runtime. It is inherited from the original design — which means it degrades silently as the design evolves. JWTs remove central control points, which also removes real-time revocation visibility. OAuth delegation enables fast integration, which also means trust propagates across service boundaries that nobody charted when the original token was issued. API gateways handle routing and coarse-grained access control, which services downstream interpret as authorization clearance they did not themselves perform.

The result is not insecurity in any one component. It is trust drift across the composite — a gradual divergence between what the system was designed to permit and what it actually permits, with no mechanism to detect the gap until something external forces the question.

IAM Drift: The Slow Accumulation Nobody Audits

By the time a breach is discovered in a SaaS environment, the permissions that made it possible have typically been accumulating for months. Sometimes years. Through entirely routine, well-intentioned decisions.

A role gets created for a project and is never sunset. A contractor is provisioned at an elevated scope to expedite an integration, then forgotten during offboarding. An OAuth application receives administrative permissions during testing, and nobody downgrades it before the production cutover. A CISA warning from early 2024 highlighted how Russian-affiliated APT29 was targeting dormant cloud accounts belonging to former employees of government agencies — accounts with standing permissions that outlasted the people they were created for.

Dormant accounts with live permissions are not an edge case. They are a near-universal condition in organizations running SaaS stacks for more than three years.

Russian attackers known as Midnight Blizzard gained access to Microsoft's internal systems, exploiting compromised credentials through a legacy OAuth application, which enabled the exfiltration of senior executives' emails. The phrase "legacy OAuth application" deserves more attention than it usually gets in the incident coverage. Legacy here does not mean ancient. It means provisioned before the current access model, never audited for scope creep, and still fully honored by every downstream service that inherited trust from the original identity provider.

In modern SaaS, trust is not broken — it is inherited too broadly, and then never re-examined.

Organizations that treat IAM as a provisioning function rather than a continuous enforcement function will produce permission surfaces that nobody at the organization can fully account for. That surface is exactly what sophisticated attackers map before they move.

The Authorization Gap Nobody Wants to Instrument

Authentication got the industry's attention first because it is legible. Failed authentication produces clear signals. Broken authorization, by contrast, is architecturally subtle and operationally expensive to detect — which is why it remains the more reliable attack surface.

The production pattern looks like this: a user authenticates correctly, receiving a valid, properly signed token from a trusted provider. They make an API call. The gateway routes it because authentication passed. The downstream service validates the token signature and executes the operation — without independently evaluating whether the scope in that token is appropriate for this specific operation, or whether the tenant context in the request header was derived server-side from verified identity, or provided by the client.

In August 2025, threat actor UNC6395 used stolen OAuth tokens from Drift's Salesforce integration to access customer environments across more than 700 organizations. The attacker needed no exploit and no phishing. The activity looked legitimate because it came from a trusted SaaS connection rather than a compromised user account.

700 customer environments. No exploit. No phishing. Just a token accepted by systems built to honor tokens — with no service in the chain asking whether this token should be trusted to make these calls on behalf of those customers. The authorization logic that would have caught it was simply not there.

One integration became a doorway into everything connected to it. That is not an accident of implementation. It is the predictable consequence of treating third-party integrations as trusted extensions of the platform rather than as external parties with scoped, audited, time-limited access.

Multi-Tenant Isolation: Where the Shortcut Becomes the Attack Vector

Multi-tenant isolation is architecturally expensive. The pressure to shortcut it is real, and I say that without judgment — I have talked to enough platform engineers to understand the sprint calculus.

The common shortcut is this: tenant context flows as a client-supplied parameter — a header, a query field, a value in the request body — which the server accepts and processes as valid context. The reasoning is that only authenticated clients can reach the endpoint, so the tenant ID they provide can be treated as ground truth.

This reasoning holds until a token is stolen, a scope is broader than intended, or authorization checks are inconsistent across services. At that point, tenant boundary enforcement becomes entirely dependent on client honesty — and attackers are not honest.

When tenant identity is client-provided rather than server-derived from verified credentials, cross-tenant data exposure is not a vulnerability. It is a design property. The only questions are timing and who finds it first.

SaaS breaches surged 300% in 2024, with attackers able to compromise core systems in as little as nine minutes. Nine minutes is not reconnaissance time. It is the execution time of someone who already understood the gap, because architectural gaps are consistent and therefore mappable in advance.

What Secure Systems Actually Do

The teams I have observed building more durable SaaS security postures are not necessarily running more tools. They are enforcing different constraints at the design layer.

Authorization is evaluated independently at every layer. Not "the gateway checked, so the service trusts." The service evaluates the request. The data layer enforces row-level policies. Each component performs its own authorization decision in context, at request time. This is operationally expensive. It is also the only architecture that fails safely when one layer is compromised.

Identity is bound to the runtime context, not the login state. A token issued at login does not carry indefinite authorization for sensitive operations. Context — session recency, request origin, device posture — is re-evaluated at privilege boundaries. Escalation patterns trigger reauthentication. The cached token is not sufficient.

Tenant isolation is a server-side invariant, not a client-side convention. Tenant ID is derived from verified identity. It is never accepted as input.

Non-human identity receives the same lifecycle discipline as human identity. In December 2024, BeyondTrust identified a security incident in which a BeyondTrust infrastructure API key for Remote Support SaaS had been compromised and used to enable access to certain Remote Support SaaS instances by resetting local application passwords. API keys, service account tokens, and integration credentials are identity. They accumulate permissions. They outlast the contexts that justified them. Organizations that audit human identities quarterly and review machine credentials annually will find that the gap between those schedules is exactly where attackers operate.

The Real Gap Is Not Knowledge

There is a version of this analysis that ends with a list of OWASP API Security Top 10 items and a recommendation to evaluate SSPM vendors. That version is accurate. It is also not the reason any of this keeps happening.

The issue is not just credentials or misconfigurations; it is the lack of visibility, real-time threat detection, and the inability to block threats before damage occurs. But even that framing undersells the structural problem. Engineers know what broken object-level authorization looks like. Security architects understand token scope. Post-mortems from Okta, Cloudflare, and Microsoft have been widely read.

The gap is enforcement under velocity pressure. Authorization models do not get updated when features ship. Integrations get added without full accounting of the trust they inherit. Scopes get provisioned broadly because narrow provisioning takes time that the sprint cannot absorb. The system keeps working — correctly, from its own perspective — until someone external points out what it has been silently permitting.

Brian Soby, CTO of AppOmni, framed the organizational consequence clearly: "In 2024, business was disrupted by costly SaaS 'bypass' breaches that circumvented IAM and zero-trust controls. 2025 will bring awareness to end-to-end controls needed for SaaS, with tight interdependencies between zero trust, identity, SaaS posture, and detection and response capabilities."

End-to-end. Not perimeter. Not gateway. Not identity provider in isolation. Every integration point. Every inherited trust relationship. The threat model has to be continuous, or the gaps accumulate exactly where the coverage stops.

The Question That Catches the Failure

Verizon's 2025 Data Breach Investigations Report examined more than 22,000 security incidents; 30% originated from a third party, including SaaS applications and software vulnerabilities. Third-party integrations are now a primary attack surface — not because they are inherently insecure, but because they are the points at which one system extends trust to another system it did not design, does not control, and often does not monitor.

The engineers who consistently build more defensible systems are not necessarily the ones with the most security certifications. They are the ones who read an architecture diagram and ask the productive question before anything ships: what does this component assume the other layer is enforcing — and what happens when that assumption is wrong?

That question, applied systematically, catches most of the failure modes described above. Not all of them. Systems are complex, and attackers are patient. But it catches the predictable ones — the inherited trust that was never re-examined, the token that outlived its context, the tenant boundary that depended on client honesty.

The question your systems need to be able to answer is not whether they are secure at the edge.

It is whether your trust relationships are still valid after they were first created — and whether you have any mechanism to know if they are not.

Most production systems do not. They will continue operating correctly — until correctness is no longer the same thing as safety.

The author covers cybersecurity architecture, DevSecOps, and identity systems engineering. Pushback, corrections, and firsthand incident accounts are welcome.

SaaS authentication Trust (business)

Opinions expressed by DZone contributors are their own.

Related

  • Zero Trust in API Management
  • 7 Essential Security Features for Messaging Apps to Gain User Trust
  • Dependent Feature Flags
  • From Zero Trust To Secure Access: The Evolution of Cloud Security

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook