Join our Newsletter — 33% off our NHI Course
Home› Guides› SaaS Security Guide: SSPM and Configuration Drift
Guide Cloud Security

SaaS Security Guide: SSPM and Configuration Drift

← All guides
By Lalit Choda, NHI Mgmt Group Updated 17 October 2026 17 min read
On this page

Recent large SaaS data thefts, from Snowflake to Salesloft Drift, did not break the SaaS platforms themselves: they exploited the customer's half of the shared responsibility model, through weak sign-in, drifting settings, over-shared data and integrations nobody owned. Each SaaS application has its own admin console, local accounts, sharing model, API tokens and audit log, and its defaults change on the vendor's release schedule, not yours. This guide covers the controls the customer owns: inventory and shadow SaaS, configuration baselines such as CISA's SCuBA and the CIS benchmarks, SaaS security posture management (SSPM) and drift, identity and admin roles, integrations, data sharing, logging and licence tiers, backup, offboarding, and what recent SaaS supply chain incidents teach. It is written for security architects, SaaS platform owners and identity teams.

Key takeaways

  • The customer owns configuration, identity and data. The provider secures the platform; who can sign in, what they can share, which apps are connected and what is logged are your decisions, and defaults are rarely the secure option.
  • Baselines turn opinions into tests. CISA's SCuBA baselines for Microsoft 365 and Google Workspace and the CIS Microsoft 365 Foundations Benchmark give numbered, testable policies; the free ScubaGear and ScubaGoggles tools check a tenant against them.
  • Drift is the normal state. Admins change settings, vendors ship new features with permissive defaults and exceptions never expire, so posture has to be re-measured on a schedule, not certified once.
  • Stolen sessions and tokens bypass the front door. Snowflake, Salesloft Drift and the ShinyHunters Salesforce campaign used valid credentials, OAuth tokens or a connected app the victim approved, not a software vulnerability.
  • Logs depend on licence tier. Retention and high-value events such as MailItemsAccessed or Salesforce query logs often sit behind premium licences; decide what you need before an incident, not during one.

Shared responsibility in SaaS

The NCSC puts it plainly: "There is a shared responsibility between both the SaaS provider and the organisation consuming the service." In SaaS the provider runs the application, platform and infrastructure, which leaves the customer a smaller but decisive set of controls. The CSA SaaS Security Capability Framework (SSCF) was written for exactly this boundary: it defines "configurable, consumable, and customer-facing security controls provided by SaaS vendors to their customers", and works as both a procurement checklist and a hardening scope.

LayerProviderCustomerExample customer control
Infrastructure, platform, application codeOwnsAssures (SOC 2, ISO/IEC 27001 certificate, published security claims)Supplier assessment against SSCF before purchase
Identity and authenticationProvides SSO, MFA, role modelConfigures and enforcesSSO enforced, local sign-in disabled, phishing-resistant MFA for admins
Tenant configurationShips defaults, new featuresHardens and monitors for driftScheduled baseline scan with a diff against the last run
Data and sharingEncrypts, provides sharing controlsDecides who sees whatExternal sharing limited to allow-listed domains, link expiry
Integrations and API accessProvides OAuth, connected apps, API keysApproves, scopes, revokesAdmin consent workflow, IP restrictions on connected apps
LoggingGenerates audit events (tier dependent)Licenses, collects, retains, alertsAudit logs streamed to the SIEM with retention to policy
Backup and recoveryService resilience, limited restoreRecovery from error, malicious deletion and sync damageIndependent backup with tested restore

Inventory and shadow SaaS

Shadow SaaS arrives through free tiers, expense claims, trials signed up with a work email address and "Sign in with Microsoft or Google" buttons that create an OAuth grant on first use. Build the inventory from several sources, because each misses something:

  • Identity provider: SSO applications and sign-in logs; blind to apps using local passwords.
  • OAuth grants and service principals: consented third-party apps in Entra ID and Google Workspace, which surface tools users connected themselves. See the Shadow AI Discovery Guide for AI tools found this way.
  • Network and browser telemetry: secure web gateway, CASB or SSE logs, and browser extension or enterprise browser data. See the Enterprise Browser and Browser Security Guide.
  • Finance: card and expense records catch paid tools that never touch SSO.

For each application record the owner, admin, data classification, sign-in method, integrations, licence tier and whether audit logs are collected. Tier the estate: the identity provider, email and collaboration suite, CRM such as Salesforce, ITSM such as ServiceNow, data warehouses such as Snowflake, code hosting, HR and finance are tier 1 and get baselines, SSPM coverage and log collection first.

Configuration baselines and drift

A useful baseline gives each control an identifier, a required value and a test. Three sources do:

  • CISA SCuBA: the Secure Cloud Business Applications project publishes secure configuration baselines for Microsoft 365 and Google Workspace. ScubaGear queries a Microsoft 365 tenant (Entra ID, Defender, Exchange Online, SharePoint, Teams, Power BI and Power Platform), compares settings against the baselines with Open Policy Agent Rego policies and reports in HTML, JSON and CSV. ScubaGoggles does the same for Google Workspace through the Admin SDK API. US federal civilian agencies must apply them under Binding Operational Directive 25-01 (December 2024); for everyone else they are a free starting point.
  • CIS benchmarks: the CIS Microsoft 365 Foundations Benchmark (version 7.0.0 at the time of writing) is consensus-built and maps to CIS-CAT Pro scanning; CIS also publishes foundations benchmarks for other SaaS platforms such as Google Workspace.
  • Vendor hardening guides: for Salesforce, ServiceNow, Snowflake and other platforms without a SCuBA baseline, use the vendor's security guide and the SSCF controls.

Example SCuBA policies for Entra ID

Policy IDRequirement (verbatim)Why it matters
MS.AAD.1.1v1Legacy authentication SHALL be blocked.Legacy protocols cannot do MFA and are favoured for password spraying
MS.AAD.3.1v1Phishing-resistant MFA SHALL be enforced for all users.Defeats adversary-in-the-middle phishing that relays OTP codes
MS.AAD.5.1v1Only administrators SHALL be allowed to register applications.Stops users creating app identities that hold their own credentials
MS.AAD.5.2v1User consent to applications SHALL be restricted.Blocks consent phishing and unreviewed OAuth grants
MS.AAD.7.1v1A minimum of two users and a maximum of eight users SHALL be provisioned with the Global Administrator role.Limits blast radius while avoiding a single point of failure
MS.AAD.7.3v1Privileged users SHALL be provisioned cloud-only accounts separate from an on-premises directory or other federated identity providers.An on-premises compromise does not become a tenant compromise
MS.AAD.7.4v1Permanent active role assignments SHALL NOT be allowed for highly privileged roles.Forces just-in-time elevation

SSPM and drift detection

SaaS security posture management tools connect to each application's admin APIs, read configuration, users, roles and integrations, compare them to a policy set and alert on change. Whether you buy one or script the SCuBA tools, drift control needs four things: a scheduled scan (daily for tier 1), a stored previous result so each run is a diff rather than a fresh report, an exception register with an owner and expiry date for every accepted deviation, and an alert when a high-severity control flips from pass to fail. Review vendor release notes monthly for new features enabled by default, especially AI assistants and sharing options.

Identity and admin roles

  • Enforce SSO, then remove the back door: enabling SAML or OIDC is not enough if local username and password sign-in still works. Disable local sign-in where the app allows it, and list every account that can still use it. See the Identity Provider and SSO Security Guide.
  • MFA at the right layer: with SSO, enforce phishing-resistant MFA in the IdP through conditional access; for apps with local accounts, enforce the app's own MFA. Snowflake customers whose accounts lacked MFA were the ones hit in 2024. See the MFA Guide.
  • Admin roles: count super admins per app, use the platform's least-privileged admin roles (Global Reader in Microsoft 365, delegated admin roles in Google Workspace, permission sets rather than profiles in Salesforce) and use just-in-time elevation where offered. In Salesforce, treat "API Enabled", "Customize Application" and "Manage Connected Apps" as privileged permissions. See the JIT Access Guide.
  • Break-glass accounts: keep one or two local emergency accounts per tier 1 app, excluded from SSO dependency, with strong credentials held offline and an alert on every use. See the Break-Glass Account Guide.
  • Sessions: SSO does not end a session the SaaS app already issued. Set session lifetimes and restrict sign-in by device or network for high-value apps. Stolen session tokens and HAR files were central to the Okta support system breach. See the Token and Session Security Guide.
  • Access reviews: review admin roles quarterly using the app's own role data, not just IdP groups. See the Access Reviews Guide.

Where identity fits: integrations and tokens

Every connected app, integration user, API key and OAuth refresh token is a non-human identity with standing access to SaaS data, often more than any single human user. ATT&CK tracks the abuse as T1528 Steal Application Access Token and T1671 Cloud Application Integration, which describes adversaries achieving "persistence by leveraging OAuth application integrations in a software-as-a-service environment". Two settings deserve specific attention. Google Workspace domain-wide delegation gives an app "access to the data belonging to all of your users" without consent, so only super admins can grant it and scopes should be narrow and reviewed. Salesforce connected apps should have IP relaxation set to "Enforce IP restrictions" and scopes narrower than full, as Google Threat Intelligence advised after the Salesloft Drift tokens were abused. Consent policy, grant inventory, scope review and the vendor-breach revocation runbook are covered in the SaaS and OAuth App Governance Guide; vendor and contractor accounts in the Third-Party Access Guide.

Data sharing, external collaboration and backup

  • Link sharing: disable or restrict "anyone with the link" sharing for tier 1 data, set default link type to internal, and apply expiry to external links.
  • External domains and guests: allow-list partner domains for sharing and guest access instead of allowing all; expire guest accounts that have not signed in for 90 days. Teams, Slack and Google Chat settings are covered in the Collaboration Tool Security Guide.
  • Public-facing components: customer portals and public sites connected to CRM records expose data to unauthenticated users if guest user permissions are loose; review them for every public site.
  • Labels and DLP: apply sensitivity labels and DLP rules inside the SaaS platform, not only at the network edge. See the Data Loss Prevention (DLP) Guide.
  • Bulk export: restrict report export and data loader tools to named roles.
  • Backup and SaaS ransomware: native recycle bins and version history have short windows and do not protect against an admin account or a sync client deleting or overwriting data at scale. Keep an independent backup for tier 1 SaaS data and test restores. A SaaS backup service is itself a high-value integration: the Commvault Metallic breach exposed customers' Microsoft 365 app secrets. See the Backup Security and Immutable Backup Guide.

Logging, licence tiers and detection

Check what each tier 1 application logs, for how long, at which licence tier, and whether an API exposes it, before you need it. Also alert on audit logging being disabled, MFA exclusions, loosened sharing and new super admins.

PlatformWhat you get by defaultWhat needs a higher tier or add-on
Microsoft 365 (Purview Audit)Audit (Standard): enabled by default, 180-day retention, search, export and Office 365 Management Activity APIAudit (Premium): one-year retention for Entra ID, Exchange, OneDrive and SharePoint, retention policies, 10 years with an add-on licence, MailItemsAccessed insights, roughly twice the API bandwidth
Microsoft 365 non-user activityService principal, system and application activity retained for a fixed one yearNot configurable; export to your SIEM to keep longer
SalesforceSetup audit trail and login historyEvent Monitoring (part of Salesforce Shield) for API, report export and UniqueQuery events that show the queries an integration ran
Google WorkspaceAdmin and user activity reports through the Admin SDK Reports APIDepends on edition; confirm retention and export options for your licence

Ingest logs into the SIEM with the app's own retention as a floor, not a ceiling. See the Log Management and Retention Guide. High-value detections:

BehaviourATT&CKSignal
Sign-in with valid stolen credentialsT1078.004 Cloud AccountsSign-in from a new ASN or hosting provider; local sign-in on an SSO-enforced app
Token theft and replayT1528 Steal Application Access TokenIntegration token used from an IP outside the vendor's published ranges
Malicious or unexpected integrationT1671 Cloud Application IntegrationNew connected app or OAuth grant with broad scopes, especially after a support call
Bulk collection from CRMT1213.004 Customer Relationship Management SoftwareSpikes in API row counts, COUNT() queries across Account, Case, User and Opportunity, large report exports

Lessons from SaaS supply chain incidents

IncidentWhat happenedControl that would have helped
Snowflake 2024Mandiant and Snowflake notified about 165 organisations; affected accounts had no MFA, credentials from infostealer infections dating back to 2020 had not been rotated, and there were no network allow lists. Mandiant found no evidence of a breach of Snowflake's enterprise environment.Enforced MFA, network policies, credential rotation, infostealer exposure monitoring
Salesloft Drift 2025Google Threat Intelligence tracked UNC6395 using stolen Drift OAuth tokens from 8 to 18 August 2025 to query Salesforce objects, then search the data for AWS keys, passwords and Snowflake tokens. Query jobs were deleted, but logs were intact.Connected app IP restrictions, narrow scopes, query logging, secrets kept out of CRM cases
ShinyHunters Salesforce campaign 2025UNC6040 callers guided staff to approve a modified Data Loader connected app by entering a "connection code".Restrict who can authorise connected apps, allow-list apps, help desk verification
Gainsight 2025 and Klue 2026OAuth tokens or integration credentials held by an integrated vendor opened customers' Salesforce data.Integration inventory, token lifetime limits, revocation runbook
Microsoft Midnight Blizzard 2024A forgotten test tenant and an OAuth app gave access to executive mailboxes.Inventory of all tenants, MFA on every tenant, app permission reviews

Offboarding users and applications

  • Users: disabling the IdP account does not revoke app sessions, personal API tokens, OAuth grants the user made or local accounts. Use SCIM deprovisioning, revoke sessions in each tier 1 app and transfer file ownership. See the Joiner-Mover-Leaver Guide and SCIM Provisioning Guide.
  • Owners: when an app's owner leaves, reassign ownership; ownerless apps drift first.
  • Applications: when a SaaS product is retired, revoke its OAuth grants and service principals, delete integration users and API keys, remove SSO configuration, export what you must keep, and obtain written confirmation of data deletion.

Implementing a SaaS security programme

  1. Inventory and tier (weeks 1 to 4): combine IdP, OAuth, network and finance data; name owners; select tier 1 apps.
  2. Baseline in report-only mode: run ScubaGear and ScubaGoggles (or an SSPM) read-only against tier 1 tenants; record every failure as fix, accept with expiry, or not applicable.
  3. Fix identity first: block legacy authentication, enforce SSO and phishing-resistant MFA for admins, reduce super admins, restrict user consent. Pilot conditional access changes on a test group with report-only mode before enforcing, and keep break-glass accounts excluded.
  4. Integrations and sharing: review connected apps and grants, then restrict sharing defaults and guest access.
  5. Logging: license the tiers you need, stream to the SIEM, build the detections above.
  6. Automate drift: schedule scans, diff results, alert on regressions, and route fixes to app owners with a service level.
  7. Roll back safely: snapshot settings before each change (ScubaGear JSON output works), change one control group at a time, and revert if sign-in or integrations break.

Choosing an approach

OptionBest forTrade-off
Native admin centres plus SCuBA tools and CIS benchmarksSmall organisations, or estates centred on Microsoft 365 or Google WorkspaceFree, but few apps covered; drift tracking needs scripting
SSPM platformMany tier 1 SaaS apps, several admin teamsBroad posture and integration visibility; the platform itself needs high-privilege API access to every app it scans
CASB or SSE inline controlsShadow SaaS discovery, session and upload controls, unmanaged devicesSees traffic, not tenant configuration or SaaS-to-SaaS integrations
ITDR and SIEM analytics on SaaS logsDetecting live misuse of accounts and tokensDepends on log tiers and good baselines of normal activity

Larger organisations usually combine all four. See the ITDR Guide and ISPM Guide.

Detection and measurement

  • Coverage: percentage of tier 1 apps with SSO enforced and local sign-in disabled.
  • Posture: baseline pass rate per tier 1 tenant, and the number of high-severity failures open longer than 30 days.
  • Drift: mean time from a control regression to its detection and to its fix.
  • Privilege: super admin count per app against target (two to eight Global Administrators under MS.AAD.7.1v1).
  • Integrations: percentage of connected apps and OAuth grants with a named owner, and number of dormant grants removed per quarter.
  • Logging: percentage of tier 1 apps whose audit logs reach the SIEM, with retention meeting policy.

Framework mapping

AreaNIST CSF 2.0NIST SP 800-53 Rev. 5CIS Controls v8.1ISO/IEC 27001:2022 Annex A
SaaS inventoryID.AM-02CM-8, SA-9Control 2, Control 15A.5.9, A.5.23
Configuration baselines and driftPR.PS-01CM-2, CM-6, CM-3Control 4A.8.9
Identity, MFA, admin rolesPR.AA-01, PR.AA-05AC-2, AC-6, IA-2Controls 5 and 6A.5.15, A.5.18, A.8.2, A.8.5
Supplier and integration riskGV.SC-07, DE.CM-06SA-9, SR-6Control 15A.5.19 to A.5.22
Logging and monitoringDE.CM-09AU-2, AU-6, AU-11Control 8A.8.15, A.8.16

Common failure patterns

  • SSO without enforcement: local passwords still work, so infostealer credentials bypass the IdP, as in the Snowflake breach.
  • Forgotten tenants and test environments: secondary tenants outside the baseline and without MFA, as in the Midnight Blizzard breach.
  • Anyone can approve an integration: users or junior admins can authorise connected apps, which turns a vishing call into data theft.
  • Secrets stored in SaaS records: keys and passwords pasted into support cases or tickets become loot for whoever reads the CRM, which UNC6395 searched for after the Drift token theft.
  • Logs not licensed or not collected: the investigation cannot show what an integration read because query or mailbox access events were never enabled.

Practitioner checklist

  • Build a SaaS inventory from IdP, OAuth, network and finance data, with an owner and tier for each app.
  • Run ScubaGear or ScubaGoggles (or the CIS benchmark) against Microsoft 365 or Google Workspace and track every failure to fix or time-limited exception.
  • Enforce SSO and disable local sign-in on tier 1 apps; keep tested break-glass accounts.
  • Require phishing-resistant MFA for all admins and remove permanent active assignment of the highest roles.
  • Restrict who can authorise connected apps and OAuth consent; apply IP restrictions to integrations.
  • Restrict external sharing defaults and expire inactive guests.
  • License and collect the audit events you need, and alert on new admins, new integrations and bulk export.
  • Schedule posture scans with diffing and alerting on regressions.
  • Keep independent backups of tier 1 SaaS data and test restores.
  • Revoke tokens, integration users and grants when users leave and when apps are retired.

Standards and references

Related NHI Mgmt Group resources: SaaS and OAuth App Governance Guide · Third-Party Access Guide · Identity Provider and SSO Security Guide · Collaboration Tool Security Guide · ISPM Guide

Free weekly newsletter

Subscribe to the NHI & AI Identity Journal

The latest on NHI and Agentic AI security – articles, research, breaches, news and events every week.

Bonus 33% off our NHI Course when you subscribe.

NHIMG Editorial Note
Written and reviewed by Lalit Choda, NHI Mgmt Group. Last updated 17 October 2026.
NHI Mgmt Group — the #1 independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org