Two routes to a valid login
Route one: credentials that were already out there
Mandiant’s investigation of the Snowflake customer campaign found that the actor, tracked as UNC5537, logged in with stolen customer credentials, mainly taken from infostealer infections on systems that had nothing to do with Snowflake. At least 79.7% of the accounts used in the campaign had prior credential exposure. Some credentials had not been rotated in as long as four years. The affected accounts had no MFA, so a valid username and password was enough. About 165 potentially exposed organizations were notified.
Two further details matter for defenders. Access was not limited to trusted locations by network allow lists. And in several investigations, the first infection was on a contractor’s system that was also used for personal activity such as gaming and pirated software. Those devices held administrator-level access to several organizations.
Route two: credentials captured live
Mandiant and GTIG describe ShinyHunters-branded campaigns that work differently. Attackers phone employees and help desks, often posing as IT staff or vendors, and send them to victim-branded sign-in pages that collect SSO credentials and MFA codes in real time. They then enroll their own device in the victim’s MFA. Where that fails, they talk the help desk into a reset, using data that is often publicly known or taken from earlier breaches, such as employee IDs, SSNs and manager names.
The cleanup is deliberate. In observed cases the attackers deleted the identity provider’s “security method enrolled” notification, and used the ToogleBox Recall add-on, authorized through OAuth, to find and delete other security emails. The new MFA device and the notification of it were both hidden from the user.
Access in these cases appears opportunistic. What the attackers could reach depended on which apps the stolen SSO session was connected to. One session could open data in several platforms.
The two routes need different fixes. Old credentials fail on hygiene: no MFA, no rotation, no location limits. Live capture fails on authentication that a person can be talked into approving, and on a help desk that can be talked into a reset.
What happens after login
Once inside, the attackers use each platform’s own features rather than malware. Mandiant lists the pattern below, and the logs that record it. Some of those logs need extra licensing, which is a decision to make before an incident, not during one.
| PLATFORM | NATIVE FEATURE USED | WHERE TO LOOK |
|---|---|---|
| Salesforce | Data Loader, bulk API jobs, large report and record exports | LoginHistory, LoginEventStream, SetupAuditTrail, ApiEventStream, ReportEventStream, BulkApiResultEvent. Needs Event Monitoring or Shield. |
| Google Workspace | Google Takeout exports and OAuth app authorizations | OAuth and token authorization logs, Gmail audit events including deletions, Takeout export logs. |
| Microsoft 365 | PowerShell-driven downloads from SharePoint and OneDrive; keyword searches such as “confidential” and “vpn” | Purview Audit FileDownloaded and FileAccessed events with the user agent. |
| Identity provider (Okta, Entra ID) | MFA enrollment and reset; admin and policy changes | Sign-in events, MFA lifecycle changes, admin and security posture changes, conditional access and named location changes. |
| Pivot platforms (Atlassian, DocuSign) | Document and envelope downloads; API tokens and OAuth apps | Authentication events, admin changes, download activity, token and app activity. |
Mandiant’s hunting logic is worth turning into detections, after testing against your own field mappings:
-
An MFA enrollment or reset shortly after a sign-in or password reset.
-
A new country and a new MFA factor on the same login.
-
Three or more different users enrolling MFA from one IP address within ten minutes.
-
Google Takeout exports above roughly 500 MB.
-
Deletion of identity-provider security notification emails.
-
Bulk SharePoint or OneDrive downloads with PowerShell user agents.
-
Sign-in domains that imitate your own SSO or internal portals.
What we know, what we assess, what we do not know
Documented
-
In the Snowflake campaign, most accounts used had prior credential exposure, and the affected accounts had no MFA. No platform vulnerability was involved.
-
In the ShinyHunters-branded campaigns, GTIG said the intrusions relied on social engineering, not flaws in vendors’ products.
-
Actors in the Drift incident searched stolen Salesforce data for AWS keys, passwords and Snowflake tokens, which means SaaS data can hold the next set of credentials.
Our assessment
-
Identity is now the practical perimeter for SaaS. With no endpoint footprint, the first evidence of intrusion is a log entry in a platform few teams monitor closely.
-
Phishing-resistant authentication closes the live-capture route, but does nothing about old credentials in infostealer logs. The two controls are not substitutes.
-
The weakest link is often process, not technology: a help desk reset, a contractor device, an unreviewed app authorization.
Not established by the sources used here
-
How many organizations have the SaaS audit logs they would need to reconstruct an intrusion. No source quantifies this.
-
How long attackers dwell in a SaaS tenant before exporting data. The cases describe activity, not typical timelines.
What should change
| PRIORITY | CHANGE | BASIS |
|---|---|---|
| 1 | Require MFA on every account, then move privileged and data-rich roles to phishing-resistant methods such as FIDO2 keys or passkeys. Remove SMS, voice, push and email as factors where you can. | Snowflake accounts without MFA fell to a password alone. Mandiant advises phishing-resistant MFA against vishing. |
| 2 | Harden help desk verification. Use live video with a government ID, manager approval outside the request, and a call back on a known number. Do not reset on an employee ID, SSN or manager name alone. Block self-service resets for admin accounts. | Mandiant guidance; attackers used publicly known data to pass verification. |
| 3 | Make MFA changes loud. Alert the security team on every enrollment or reset, require re-authentication to change methods, and do not rely on a user-mailbox notification the attacker can delete. | Attackers deleted the “security method enrolled” notice. The second half is our recommendation. |
| 4 | Limit where SaaS can be reached from. Use network allow lists, device posture checks and managed-device requirements, and block personal device enrollment. | Snowflake accounts had no allow lists. Mandiant recommends managed-device and trusted-location controls. |
| 5 | Fix credential hygiene, including contractors. Monitor for exposed credentials, rotate on a schedule, remove stale accounts, and bring contractor devices that hold access into scope. | Mandiant’s Snowflake findings: credentials unrotated for years, contractor systems as the source. |
| 6 | Turn on, retain and test SaaS logs. License the platform events you need, set retention to match your investigation window, and run Mandiant’s hunting logic against them. | Detection depends on logs such as Salesforce Event Monitoring. |
| 7 | Alert on bulk export. Use platform controls such as Salesforce transaction security policies for large downloads, and thresholds on exports such as Takeout. | Mandiant and Google guidance; data theft used native export features. |
| 8 | Inventory non-human identities. Track tokens, API keys and service accounts with owners. Hold secrets in a secrets manager, prefer workload identity federation over long-lived keys, and scope credentials to resources and IP ranges. | Mandiant notes long-lived tokens and keys are targeted because they receive less monitoring. |
| 9 | Prepare the containment move. Revoke sessions and OAuth grants across the identity provider and SaaS apps, pause MFA registration, restrict self-service resets, and limit access to managed devices. | Mandiant containment guidance. |
Where to apply this
Pick the SaaS application that holds your most valuable data and answer three questions. Could a valid password alone get in from any network? Would you see a new MFA device within minutes? Would you see an export of the whole customer table? A “no” to any of them is your first piece of work.
Sources
-
Mandiant. UNC5537 Targets Snowflake Customer Instances for Data Theft and Extortion
-
Mandiant. Proactive Defense Against ShinyHunters-Branded Data Theft Targeting SaaS
-
Mandiant and Google Threat Intelligence Group. Tracking the Expansion of ShinyHunters-Branded SaaS Data Theft
-
Google Threat Intelligence Group. Widespread Data Theft Targets Salesforce Instances via Salesloft Drift
How we label evidence
Facts carry a source. Analysis and recommendations are marked as ours. Examples that are hypothetical are labeled as hypothetical.
Part of the solutionDetect, Respond & RecoverSpot attacks early and get back to business fast.See how we work →Related service
Identity Threat Detection & Response (ITDR)
Use this to strengthen detection of identity-led attacks.