5 Signs You’re Losing Control of Your SaaS Environment
- Martin Snyder

- Sep 2, 2025
- 4 min read

If surprise invoices, unknown logins, or “who owns this app?” threads keep popping up, you’re not alone. The average company now runs ~100+ apps—with new AI tools multiplying at the edges—so blind spots are easy to miss. Waldo Security discovers every SaaS app and account in minutes (including shadow and AI tools), highlights SSO/MFA gaps and risky OAuth scopes, automates offboarding, and gives you exportable, audit-ready evidence—so you can get back in control fast. Start with Instant SaaS Discovery and keep auditors happy with the SaaS Compliance Overview.
The backdrop (why this happens so often)
Organizations now average ~101 apps—a record high—which expands the number of places risk can hide. (Okta)
Web apps + credentials remain among the most exploited attack patterns, so anything outside SSO/MFA is low-hanging fruit. (Verizon)
The average org uses ~9–10 GenAI apps, many adopted before policy catches up—another source of shadow access. (Netskope)
Breaches are still expensive (about $4.4M on average globally), especially when identification and containment are slow. (IBM)
Public guidance keeps repeating the same foundation: inventory + least privilege + logging—because you can’t secure what you can’t see. (CISA)
With that in mind, here are the five signals that your SaaS estate is running you—not the other way around.
1) You learn about apps from invoices, not logs
What it means: Departments are buying tools directly; pilots turn into production; duplicate tenants appear outside your IdP. Finance sees a charge before IT sees a sign-in.
How to check now:
Cross-match card charges/invoices with IdP sign-ins; flag apps with spend and no enterprise identity events.
Look for multi-tenant apps created by users (common with “Sign in with…” flows).
Quick fix: Publish a fast, well-lit path for new app requests (24-hour SLA) and require domain verification for any new tenant.
2) “SSO required” on paper, password logins in practice
What it means: SSO exists but isn’t enforced everywhere. Personal accounts, guest users, and local passwords slip around the front door—exactly the path attackers prefer in web-app breaches. (Verizon)
How to check now:
Query your IdP for non-SSO logins to apps in the catalog.
Review suite-specific loopholes (e.g., guest exclusions, local password fallback, unmanaged workspaces).
Quick fix: Enforce SSO/MFA by risk, not just popularity: start with apps touching customer data, HR, finance, source code, and legal docs.
3) OAuth consents that never expire
What it means: A harmless-looking “Sign in with…” granted broad scopes plus offline_access, which issues refresh tokens that keep renewing access without a user present. Password changes won’t close this door.
How to check now:
Pull all grants across Microsoft 365, Google Workspace, Slack, GitHub, Atlassian, etc.
Prioritize any with *.ReadWrite.All (or equivalent broad write scopes) and offline_access (persistence).
Sort by last use; revoke idle tokens at scale.
Quick fix: Restrict end-user consent to low-risk scopes and verified publishers; require admin approval for high-privilege or multi-tenant apps.
4) External guests with internal powers
What it means: Partners and contractors accumulate privileges over time and get missed during offboarding. One forgotten guest with “owner” rights can keep entire projects exposed.
How to check now:
List external identities with admin or data-export roles; validate owners; time-box elevations.
Search for orphaned projects, workspaces, and shared folders.
Quick fix: Automate guest reviews monthly; demote or expire elevated roles by default.
5) Public links and shadow AI widen your egress
What it means: Collaboration tools default to broad sharing, and browser-level AI assistants quietly move sensitive snippets off-platform. The average organization already uses ~9–10 GenAI apps—often outside SSO. (Netskope)
How to check now:
Inventory public links in sensitive spaces; alert on new ones.
Baseline GenAI domains; flag traffic without matching enterprise identities.
Quick fix: Turn off public links by default, allowlist AI tools by verified publisher, and coach users in-line when policy violations happen.
What “back in control” looks like
Living inventory: One deduped list of apps, tenants, accounts, and OAuth grants—tagged by owner, department, auth method, admin count, scopes, and sensitivity. (Yes, this is exactly what CISA recommends as the first step.) (CISA)
Identity first: SSO/MFA enforced for high-risk apps; admin elevation time-boxed; consent limited to low-risk scopes/verified publishers.
Token hygiene: No idle refresh tokens; no broad write scopes without justification.
Tidy sharing: Public links disabled by default; external share domains restricted; exceptions documented.
Continuous evidence: SaaS audit logs to SIEM; monthly packets for SSO coverage, admin changes, token revocations, offboarding timestamps, and sharing exceptions. Faster identification and containment = lower breach cost. (IBM)
A 30-day plan you can actually finish
Week 1 — See it: Run discovery across IdP, email/collab, DNS/proxy, browser extensions, and spend. Flag apps with usage or spend but no SSO.
Week 2 — Stabilize it: Enforce SSO/MFA on the top-risk apps; remove stale admins; bulk-revoke unused persistent tokens; require verified publishers for new consents.
Week 3 — Seal it: Disable public links by default; review external guests; transfer orphaned data to teams.
Week 4 — Prove it: Stream SaaS logs to your SIEM, turn on drift alerts (new apps, admins, high-privilege grants, public links), and export an evidence packet for leadership.
With Waldo, this becomes configuration and bulk actions—not a spreadsheet marathon. Start with Instant SaaS Discovery and operationalize your program with the SaaS Compliance Overview.
Sources & further reading
Okta Businesses at Work 2025 — global average ~101 apps per company. (Okta)
Verizon DBIR 2025 — web apps + stolen credentials remain leading patterns. (Verizon)
Netskope Cloud & Threat Report 2025 — average 9.6 GenAI apps per org. (Netskope)
IBM Cost of a Data Breach 2025 — average breach cost $4.4M; faster identification/containment lowers cost. (IBM)
CISA Cloud Security Technical Reference Architecture — inventory + least privilege + logging as bedrock. (CISA)
If you only do one thing this month: build a living inventory. Everything good—identity hygiene, OAuth governance, data protection, and audit sanity—starts there.



Comments