Scattered Spider — UNC3944 / Octo Tempest
Executive Summary
Scattered Spider is a native-English-speaking, financially-motivated collective (overlapping with the broader "Com" ecosystem) that specializes in social-engineering the human perimeter. The signature play: call the IT help desk impersonating an employee (or, per the July 2025 FBI/CISA update, impersonate an employee to a third-party/outsourced IT provider), talk an agent into resetting a password and/or MFA, enroll an attacker-controlled authenticator, and log in as a legitimate user. From there they move fast — hours, not weeks — into SSO, VDI, cloud, and SaaS.
Because initial access rarely involves a dropped binary, endpoint AV signatures miss the front of the kill chain. The defensible signal is behavioral: abuse of legitimate remote-access tools (AnyDesk, TeamViewer, Splashtop, ScreenConnect, Tailscale, Ngrok, Teleport), LSASS credential theft with Sysinternals/Mimikatz, AD reconnaissance (ADExplorer, SharpHound), identity-provider anomalies (MFA resets, new device enrollment, added federated IdPs, backdoor IAM users), and — late in the chain — BYOVD EDR-killers (STONESTOP/POORTRY) and shadow-copy destruction preceding DragonForce ransomware and ESXi encryption.
Defender priority: Instrument the identity plane first. Alert on help-desk-driven MFA/credential resets and new authenticator enrollment, then chain endpoint hunts (RMM tooling → credential access → BYOVD → shadow-copy deletion) to catch the hands-on-keyboard phase before extortion. Treat any first-time appearance of a remote-access tool on a server or admin workstation as hunt-worthy.
Source Review & Web Hunter Notes
| Tier | Source | Key Finding | Carry Fwd |
|---|---|---|---|
| 1 | CISA/FBI AA23-320A (updated 2025-07-29) | Vishing help-desk impersonation, SIM-swap, push-bombing; now impersonating employees to third-party IT; Snowflake/Teams/Slack/Exchange targeting; DragonForce + ESXi encryption | yes |
| 1 | MITRE ATT&CK G1015 | Canonical technique set across all 14 tactics; alias consolidation | yes |
| 2 | CrowdStrike Services blog | Escalation across industries; help-desk vishing in nearly all 2025 incidents targeting Entra ID / SSO / VDI | yes |
| 2 | Permiso — LUCR-3 "SaaS-y in the Cloud" | Backdoor IAM user creation (CreateUser/CreateAccessKey), added federated IdP + auto account-linking to SSO tenants | yes |
| 2 | Trellix / Rapid7 modus-operandi | STONESTOP + POORTRY BYOVD EDR-killer; LSASS dumping via ProcDump/Mimikatz; ADExplorer recon | yes |
| 2 | Darktrace / ReliaQuest / Obsidian | Ngrok/Teleport anomalous C2; AiTM token theft; IR-channel eavesdropping on Teams/Slack | partial |
| 3 | BleepingComputer / Cyber Dive (news) | 2025 sector rotation: UK retail → insurance → aviation/transport | partial |
Decisions
| Decision | Rationale | Pack Change |
|---|---|---|
| Purple / identity theme | Primary attack surface is identity & SSO, not endpoint malware | Theme + section ordering leads with identity |
| Cloud/IdP steps go to Native Audit Hunts (§7) | Front of kill chain lives in Okta/Entra/CloudTrail logs, not endpoint EDR | §7 expanded; CQL variants flagged "requires log ingestion" |
| No campaign-specific hashes hard-coded | Scattered Spider infra is highly perishable; tool binaries are legitimate/renamed | IOCs are pattern- & behavior-based; validate against current advisory |
Hunt Brief & Attack Chain
Working hypothesis: If Scattered Spider is operating in the environment, we will observe a help-desk-driven identity reset closely followed by (a) a legitimate remote-access tool appearing for the first time on an admin/server host, (b) LSASS/AD credential access, and (c) — before impact — BYOVD driver loads and shadow-copy deletion. Detecting any two of these in temporal proximity is high-confidence for an active intrusion.
Attack chain
| # | Step | Telemetry | Hunt Angle |
|---|---|---|---|
| 1 | Recon / resource dev — register victim-sso.com/-okta/-helpdesk lures; SIM-swap prep | DNS, proxy, external TI | Newly-registered lookalike domains; smishing lures |
| 2 | Initial access — vishing help desk → password/MFA reset; push-bombing; AiTM phish | IdP audit (Okta/Entra), help-desk ticketing | MFA reset + new device enroll from anomalous geo |
| 3 | Persistence — enroll attacker MFA; add federated IdP; backdoor IAM user; inbox rules | Entra/Okta admin logs, CloudTrail, O365 audit | New IdP/domain federation; CreateUser/CreateAccessKey; New-InboxRule forward/delete |
| 4 | Defense evasion — install legit RMM; BYOVD (STONESTOP/POORTRY) to kill EDR; LOTL | ProcessRollup2, driver load, service stop | First-seen RMM on server; vulnerable-driver write + EDR service tamper |
| 5 | Credential access — LSASS dump (ProcDump/comsvcs/Mimikatz); ADExplorer; DCSync | ProcessRollup2, cross-proc access | LSASS minidump; AD replication from non-DC |
| 6 | Discovery / lateral — cloud & AD enum; RDP/PsExec; Teleport/SSM pivot | ProcessRollup2, network, IdP | SharpHound; burst RDP from new host; Teleport sessions |
| 7 | Collection / exfil — SharePoint/Snowflake/cloud storage theft; IR-channel eavesdropping | Cloud data-access logs, network | Bulk download; anomalous Snowflake queries; joining IR calls |
| 8 | Impact — shadow-copy delete → DragonForce ransomware; ESXi encryption | ProcessRollup2, ESXi shell logs | vssadmin/wbadmin delete; esxcli vm kill; mass file rename |
Hypotheses (fidelity-ordered)
| ID | Hypothesis | MITRE | Conf |
|---|---|---|---|
| H1 | Unauthorized remote-access tool executed/installed on server or admin host | T1219 | High |
| H2 | Reverse-tunnel / relay tooling (Ngrok, Teleport, Tailscale) used for covert C2 | T1572, T1090 | High |
| H3 | BYOVD vulnerable-driver write + EDR/AV service tamper (STONESTOP/POORTRY) | T1562.001, T1068 | High |
| H4 | LSASS credential dumping via comsvcs/ProcDump/Mimikatz | T1003.001 | High |
| H5 | AD reconnaissance utilities (ADExplorer, SharpHound) executed | T1087, T1069 | Med |
| H6 | Shadow-copy / backup destruction preceding encryption | T1490 | High |
| H7 | MFA push-bombing burst (rapid repeated auth attempts on one account) | T1621 | Med |
| H8 | Identity persistence — new IdP federation, backdoor IAM user, mailbox forwarding rule | T1136, T1484.002, T1114.003 | Med |
Consolidated IOC Table
Scattered Spider infrastructure and file hashes are highly perishable and the tooling is largely legitimate software. Prefer the behavioral IOCs below; validate any atomic indicator against the current CISA AA23-320A appendix before deploying as a block.
| Type | Value | Conf | Action | Context |
|---|---|---|---|---|
| Domain pattern | *-sso.com, *-okta.com, *-helpdesk.com, *-vpn.com, *-servicedesk.com | medium | hunt | Lookalike SSO/help-desk phishing lures (org-name prefixed) |
| Tool | anydesk.exe, teamviewer.exe, screenconnect, splashtop, tailscale | medium | hunt | Legitimate RMM abused for persistence/C2; alert on first-seen |
| Tool | ngrok.exe, tsh.exe (Teleport), teleport | high | hunt | Reverse tunnel / relay; rarely legitimate on servers |
| Tool | procdump, mimikatz, ADExplorer, SharpHound | high | hunt | Credential access & AD recon |
| Malware | STONESTOP (loader) + POORTRY (signed malicious driver) | high | hunt | BYOVD EDR-killer toolkit; hunt on anomalous driver loads |
| Network | *.ngrok.io, *.ngrok-free.app, *.teleport.sh | medium | hunt | Tunnel egress endpoints |
| Behavior | Help-desk MFA reset + new authenticator enrollment < 1h apart | high | detect | Signature initial-access pattern (IdP logs) |
| Behavior | New federated IdP / domain added to SSO tenant | high | detect | LUCR-3 cloud persistence |
| Ransomware | DragonForce payload; ESXi mass-encryption | high | detect | Terminal impact stage |
Affected Surface & Telemetry Matrix
| Surface | Required Telemetry | Priority | Gap Risk |
|---|---|---|---|
| Identity provider (Okta / Entra ID) | Admin & auth audit logs (MFA reset, device enroll, federation) | Critical | High — needs IdP log ingestion into Falcon/NG-SIEM |
| Windows endpoints / servers | ProcessRollup2, driver load, service state, cross-process access | Critical | Low — native Falcon sensor |
| Domain controllers | AD replication, account/group changes, Identity Protection events | High | Medium — requires Falcon Identity Protection |
| Cloud IAM (AWS / Azure) | CloudTrail, Azure activity/sign-in logs | High | High — needs cloud log connector |
| M365 / Exchange Online | Unified audit log (inbox rules, mailbox access) | High | Medium — needs O365 connector |
| VMware ESXi | ESXi shell / vpxa logs, hostd | High | High — ESXi hosts rarely carry EDR |
| SaaS data stores (Snowflake, SharePoint) | Query & download audit logs | Medium | High — SaaS-specific logging |
ATT&CK Mapping
| Tactic | Technique | Observed Behavior | Query / Control |
|---|---|---|---|
| Resource Dev | T1583.001 Domains | Register lookalike SSO/help-desk domains | §7 native / TI |
| Initial Access | T1566 Phishing · T1660 (smishing) | AiTM phish, smishing lures | §7 IdP |
| Initial Access | T1078 Valid Accounts | Vishing help desk → valid creds | §7 IdP / Q8 |
| Credential Access | T1621 MFA Request Generation | Push-bombing / MFA fatigue | Q8, §7 |
| Credential Access | T1003.001 LSASS Memory | ProcDump/comsvcs/Mimikatz dump | Q4 |
| Persistence | T1136 Create Account · T1556.007 | Backdoor IAM user; MFA re-enroll | §7 cloud |
| Persistence | T1484.002 Domain Trust Modification | Add federated IdP to SSO tenant | §7 cloud |
| Persistence | T1114.003 Email Forwarding Rule | Malicious inbox rules | §7 O365 |
| Defense Evasion | T1562.001 Disable/Modify Tools | BYOVD EDR-killer; stop AV services | Q3, Q7 |
| Privilege Escalation | T1068 Exploit for Priv-Esc | Vulnerable signed driver → SYSTEM | Q3 |
| Command & Control | T1219 Remote Access Software | AnyDesk/TeamViewer/Splashtop/ScreenConnect | Q1 |
| Command & Control | T1572 Protocol Tunneling · T1090 | Ngrok / Teleport / Tailscale tunnels | Q2 |
| Discovery | T1087 Account · T1069 Groups | ADExplorer / SharpHound recon | Q5 |
| Impact | T1490 Inhibit System Recovery | vssadmin/wbadmin shadow-copy delete | Q6 |
| Impact | T1486 Data Encrypted for Impact | DragonForce ransomware; ESXi encrypt | Q6 / §7 |
Native Audit-Log Hunts (non-CQL)
The front of Scattered Spider's kill chain lives in identity and cloud audit logs. Run these in the source platform (or in Falcon NG-SIEM if the connector is ingesting them). They are the highest-value detections in this pack.
| Hunt | Source | Logic | Response |
|---|---|---|---|
| Help-desk MFA reset + re-enroll | Okta / Entra ID audit | MFA factor reset event followed by new factor/device enrollment for same user within <1h, esp. from new IP/geo | Freeze account; verify with user out-of-band |
| New device / authenticator enrollment | Entra ID sign-in + audit | New authenticator registered from device/geo never seen for that user | Challenge; revoke sessions |
| Federated IdP / domain added | Entra ID / Okta admin | Set-DomainAuthentication / new federation trust or added external IdP with auto account-linking | Treat as critical; validate change ticket |
| Backdoor IAM user | AWS CloudTrail | CreateUser + CreateAccessKey / CreateLoginProfile by a recently-compromised principal; names mimic real users | Disable keys; review IAM policy attach |
| Malicious inbox rule | M365 Unified Audit | New-InboxRule/Set-InboxRule with ForwardTo/RedirectTo/DeleteMessage to external address | Remove rule; inspect mailbox access |
| Impossible travel to SSO/VDI | Entra ID / VPN / VDI | Successful auth from geographically impossible locations within short window | Revoke tokens; force re-auth |
| Anomalous Snowflake access | Snowflake query log | Bulk export / unusual query volume from new client IP or app | Suspend session; review data scope |
| IR-channel eavesdropping | Teams / Slack audit | Compromised account joins IR/security channels or bridges; searches for "incident", "breach" | Move IR comms off-band; rotate |
CrowdStrike LogScale CQL Hunt Queries
Looks for: execution of legitimate remote-access / RMM tools Scattered Spider favors. Accomplishes: surfaces first-seen RMM on servers and admin hosts, the group's persistence & hands-on-keyboard channel.
// HUNT: Remote-access / RMM tool execution // MITRE: T1219 // CONF: high FP: medium COST: low // REQUIRES: ProcessRollup2 process telemetry // FALSE POSITIVES: sanctioned IT remote-support tooling // TUNING: exclude approved product + install path; scope to server/admin OUs #event_simpleName=ProcessRollup2 | ImageFileName=/\\(anydesk|teamviewer|screenconnect|connectwisecontrol|splashtop|tailscale|atera|syncro|pulseway|logmein|gotoassist|remoteutilities|rustdesk)\w*\.exe$/i | groupBy([ComputerName, UserName, ImageFileName], function=([count(as=execs), min(@timestamp, as=firstSeen), max(@timestamp, as=lastSeen)])) | sort(firstSeen, order=desc, limit=200)
Looks for: tunnel / relay binaries and command lines used for covert C2 egress. Accomplishes: catches Ngrok/Teleport/Tailscale channels that bypass proxy egress controls.
// HUNT: Reverse-tunnel / relay tooling for C2 // MITRE: T1572, T1090 // CONF: high FP: low COST: low // REQUIRES: ProcessRollup2 with CommandLine // FALSE POSITIVES: rare sanctioned use of Tailscale/Teleport in devops // TUNING: exclude approved devops hosts running Tailscale/Teleport agents #event_simpleName=ProcessRollup2 | ImageFileName=/\\(ngrok|tsh|teleport|cloudflared|frpc|gost)\.exe$/i or CommandLine=/(ngrok\s+(tcp|http|start)|tunnel|--authtoken|teleport\s+login|tsh\s+(login|ssh))/i | table([@timestamp, ComputerName, UserName, ImageFileName, CommandLine, ParentBaseFileName], limit=200)
Looks for: a driver (.sys) written to disk outside normal driver stores, the precursor to loading a malicious/vulnerable signed driver to kill EDR. Accomplishes: detects the BYOVD setup step before EDR is blinded.
System32\drivers. Tune by excluding trusted installer parents and signed vendor update processes.// HUNT: BYOVD - driver written outside standard driver store // MITRE: T1562.001, T1068 // CONF: high FP: low COST: medium // REQUIRES: NewExecutableWritten / PeFileWritten with TargetFileName // FALSE POSITIVES: legit driver installers into System32\drivers // TUNING: exclude trusted installer parents (msiexec, vendor updaters), signed paths #event_simpleName=/NewExecutableWritten|PeFileWritten/ | TargetFileName=/\.sys$/i | TargetFileName!=/\\(System32|SysWOW64)\\DriverStore\\/i | TargetFileName=/\\(Users|Temp|ProgramData|Windows\\Temp|PerfLogs)\\/i | groupBy([ComputerName, UserName, TargetFileName, ParentBaseFileName], function=count(as=writes)) | sort(writes, order=desc, limit=200)
Looks for: command lines that dump LSASS memory — comsvcs.dll MiniDump, ProcDump against lsass, or rundll32 minidump patterns. Accomplishes: catches the group's primary on-host credential-theft step.
// HUNT: LSASS memory dump via comsvcs/ProcDump/MiniDump // MITRE: T1003.001 // CONF: high FP: low COST: low // REQUIRES: ProcessRollup2 with CommandLine // FALSE POSITIVES: rare admin/DFIR memory captures // TUNING: exclude sanctioned DFIR collection hosts/accounts #event_simpleName=ProcessRollup2 | (CommandLine=/comsvcs\.dll.{0,40}(MiniDump|#\+?24)/i or CommandLine=/(procdump(64)?\.exe).{0,60}(-ma|-mm).{0,20}lsass/i or CommandLine=/rundll32.{0,60}MiniDump/i or CommandLine=/lsass\.dmp/i) | table([@timestamp, ComputerName, UserName, ImageFileName, CommandLine, ParentBaseFileName], limit=200)
Looks for: AD enumeration tooling execution or its command-line collection flags. Accomplishes: flags the discovery phase that precedes lateral movement and privilege targeting.
ADExplorer is a Sysinternals admin tool. Tune by excluding known AD-admin accounts / jump hosts and alerting only on non-admin or server-side execution.// HUNT: AD recon utilities // MITRE: T1087, T1069, T1482 // CONF: high FP: medium COST: low // REQUIRES: ProcessRollup2 with CommandLine // FALSE POSITIVES: legitimate AD admin use of ADExplorer // TUNING: exclude AD-admin accounts and sanctioned admin jump hosts #event_simpleName=ProcessRollup2 | ImageFileName=/\\(ADExplorer(64)?|SharpHound|BloodHound|AzureHound)\.exe$/i or CommandLine=/(-CollectionMethod\s+(All|DCOnly|Session)|Invoke-BloodHound|SharpHound)/i | groupBy([ComputerName, UserName, ImageFileName], function=([count(as=execs), collect(CommandLine, limit=3)])) | sort(execs, order=desc, limit=200)
Looks for: deletion of Volume Shadow Copies / backup catalogs and recovery disablement — the immediate precursor to DragonForce encryption. Accomplishes: last-chance detection before impact.
// HUNT: Inhibit system recovery (shadow copy / backup delete) // MITRE: T1490 // CONF: high FP: low COST: low // REQUIRES: ProcessRollup2 with CommandLine // FALSE POSITIVES: rare legitimate backup maintenance scripts // TUNING: exclude approved backup-admin service accounts #event_simpleName=ProcessRollup2 | (CommandLine=/vssadmin(\.exe)?\s+delete\s+shadows/i or CommandLine=/wmic\s+shadowcopy\s+delete/i or CommandLine=/wbadmin\s+delete\s+(catalog|systemstatebackup)/i or CommandLine=/bcdedit.{0,40}(recoveryenabled\s+no|bootstatuspolicy\s+ignoreallfailures)/i) | table([@timestamp, ComputerName, UserName, ImageFileName, CommandLine, ParentBaseFileName], limit=200)
Looks for: command-line attempts to stop, delete, or disable security services via sc, net stop, taskkill, or PowerShell. Accomplishes: catches userland defense-evasion that accompanies or substitutes for BYOVD.
// HUNT: Stop/disable EDR-AV services // MITRE: T1562.001 // CONF: medium FP: medium COST: low // REQUIRES: ProcessRollup2 with CommandLine // FALSE POSITIVES: agent upgrades / patch windows restarting services // TUNING: exclude EDR updater process + scheduled maintenance accounts #event_simpleName=ProcessRollup2 | CommandLine=/(sc(\.exe)?\s+(stop|delete|config).{0,40}(sense|csagent|windefend|mssense|sophos|sentinel|carbonblack|cylance)|net\s+stop\s+.{0,30}(defender|falcon|sophos|sentinel)|taskkill.{0,30}(MsMpEng|CSFalcon|Sense)|Set-MpPreference\s+-DisableRealtimeMonitoring\s+\$true)/i | table([@timestamp, ComputerName, UserName, ImageFileName, CommandLine, ParentBaseFileName], limit=200)
Looks for: a burst of failed logons against a single account in a short window (MFA fatigue / push-bombing). Accomplishes: flags the initial-access attempt on endpoints reporting logon telemetry.
// HUNT: MFA push-bombing / repeated failed auth burst // MITRE: T1621, T1110 // CONF: medium FP: medium COST: medium // REQUIRES: UserLogonFailed2 (endpoint) or ingested IdP auth logs // FALSE POSITIVES: stale cached creds after password reset // TUNING: raise fail threshold; correlate with subsequent UserLogon success #event_simpleName=UserLogonFailed2 | bucket(span=10m, field=@timestamp) | groupBy([UserName, _bucket], function=count(as=fails)) | fails >= 10 | sort(fails, order=desc, limit=200)
Looks for: outbound connections resolving to tunnel/RMM egress domains. Accomplishes: corroborates Q1/Q2 process hits with network egress to known relay infrastructure.
// HUNT: DNS to tunnel/RMM relay infrastructure // MITRE: T1572, T1219 // CONF: medium FP: medium COST: medium // REQUIRES: DnsRequest telemetry // FALSE POSITIVES: sanctioned dev use of tunnel services // TUNING: exclude approved dev/devops hosts; correlate with Q1/Q2 #event_simpleName=DnsRequest | DomainName=/(ngrok\.(io|com)|ngrok-free\.app|teleport\.sh|trycloudflare\.com|tailscale\.com|\.ts\.net)$/i | groupBy([ComputerName, DomainName], function=([count(as=lookups), collect(ContextBaseFileName, limit=3)])) | sort(lookups, order=desc, limit=200)
CrowdStrike Custom IOA Recommendations
Queries Q3, Q4, and Q6 are strong promotion candidates for Custom IOAs (low FP, high confidence, terminal-stage). Q1/Q2 are best kept as scheduled hunts until baselined.
| IOA Name | Field Patterns | Expected Benign Exclusions | Deployment Path |
|---|---|---|---|
| SS — LSASS MiniDump | Process create; CmdLine matches comsvcs.dll MiniDump / procdump … lsass | Sanctioned DFIR collection hosts | Endpoint Security → Custom IOA → Process Creation, action Detect/Block |
| SS — BYOVD driver drop | File write of .sys to Temp/ProgramData/Users by non-installer parent | Vendor updaters (msiexec, signed installers) | Custom IOA → File Creation, action Detect |
| SS — Shadow-copy delete | Process create; CmdLine vssadmin delete shadows / wbadmin delete catalog | Approved backup-admin service accounts | Custom IOA → Process Creation, action Block |
| SS — Tunnel binary | Process create; image ngrok/tsh/cloudflared on server OU | Sanctioned devops hosts | Custom IOA → Process Creation, action Detect |
Machine-Readable IOC Appendix
{
"actor": "Scattered Spider",
"aliases": ["UNC3944", "Octo Tempest", "0ktapus", "Muddled Libra", "LUCR-3", "Scatter Swine", "Storm-0875"],
"mitre_group": "G1015",
"generated": "2026-07-01",
"confidence_note": "Infrastructure and hashes are highly perishable; prefer behavioral IOCs. Validate atomics against current CISA AA23-320A appendix.",
"indicators": [
{ "type": "domain_pattern", "value": "*-sso.com | *-okta.com | *-helpdesk.com | *-vpn.com | *-servicedesk.com", "confidence": "medium", "action": "hunt", "source": "CISA AA23-320A", "expiry": "2026-10-01" },
{ "type": "tool", "value": "anydesk.exe, teamviewer.exe, screenconnect, splashtop, tailscale, rustdesk", "confidence": "medium", "action": "hunt", "source": "Trellix/Rapid7", "expiry": "2026-10-01" },
{ "type": "tool", "value": "ngrok.exe, tsh.exe, teleport, cloudflared", "confidence": "high", "action": "hunt", "source": "Darktrace/ReliaQuest", "expiry": "2026-10-01" },
{ "type": "tool", "value": "procdump, mimikatz, ADExplorer, SharpHound", "confidence": "high", "action": "hunt", "source": "Trellix", "expiry": "2026-10-01" },
{ "type": "malware", "value": "STONESTOP (loader) + POORTRY (signed driver) BYOVD toolkit", "confidence": "high", "action": "hunt", "source": "Trellix/industry", "expiry": "2026-10-01" },
{ "type": "network", "value": "*.ngrok.io, *.ngrok-free.app, *.teleport.sh, *.ts.net, *.trycloudflare.com", "confidence": "medium", "action": "hunt", "source": "web-hunter", "expiry": "2026-08-01" },
{ "type": "behavior", "value": "help-desk MFA reset + new authenticator enrollment <1h", "confidence": "high", "action": "detect", "source": "CrowdStrike/CISA", "expiry": "2027-01-01" },
{ "type": "behavior", "value": "new federated IdP/domain added to SSO tenant; auto account-linking", "confidence": "high", "action": "detect", "source": "Permiso LUCR-3", "expiry": "2027-01-01" },
{ "type": "behavior", "value": "AWS CloudTrail CreateUser + CreateAccessKey by compromised principal", "confidence": "high", "action": "detect", "source": "Permiso LUCR-3", "expiry": "2027-01-01" },
{ "type": "behavior", "value": "New-InboxRule with ForwardTo/RedirectTo/DeleteMessage to external", "confidence": "medium", "action": "detect", "source": "Microsoft/Red Canary", "expiry": "2027-01-01" },
{ "type": "ransomware", "value": "DragonForce payload; ESXi mass encryption", "confidence": "high", "action": "detect", "source": "CISA AA23-320A", "expiry": "2027-01-01" }
]
}
Detection Validation Gates
| Gate | Requirement | Evidence |
|---|---|---|
| 1 · Telemetry ready | ProcessRollup2 + DnsRequest flowing; IdP/cloud connectors ingesting for §7 hunts | Confirm event counts > 0 over 24h per source |
| 2 · Benign baseline | Q1/Q5/Q7/Q8/Q9 run in monitor mode; approved RMM & admin tools catalogued | FP list built; exclusions applied |
| 3 · Positive tests | Atomic Red Team / lab exec of RMM, comsvcs MiniDump, vssadmin delete, ngrok tunnel | Each query fires on the corresponding test |
| 4 · Promotion | Q3/Q4/Q6 promoted to Custom IOA after clean baseline; §7 identity hunts wired to alerts | IOA in Detect/Block; alert routing verified |
Hardening — Tiered
- Help-desk identity-verification protocol (M1017, CISA): require multi-factor, out-of-band caller verification (manager callback, video, or in-person) before any password or MFA reset. This is the single highest-leverage control against Scattered Spider.
- Restrict/monitor remote-access tooling (M1042): application-control or block unsanctioned RMM (AnyDesk, ScreenConnect, Splashtop, TeamViewer, RustDesk); alert on any first-seen on servers (feeds Q1).
- Enable BYOVD protection (M1038): turn on Microsoft vulnerable-driver blocklist (HVCI /
Sdbblocklist) and EDR tamper protection; deny unsigned/known-vulnerable drivers. - Number-matching / phishing-resistant MFA (M1032): disable simple push-approval; enforce number matching to defeat push-bombing.
- Phishing-resistant MFA (FIDO2/WebAuthn) (M1032) for admins, IT/help-desk, and remote access — removes push-bombing and AiTM entirely for those accounts.
- Lock down SSO federation changes (M1018): restrict who can add federated IdPs / modify domain authentication; alert on every change (feeds §7).
- Credential Guard + LSASS PPL (M1043/M1040): enable LSA protection and Credential Guard to blunt LSASS dumping (feeds Q4).
- Tiered admin + PIM/JIT (M1026): remove standing privilege; just-in-time elevation with approval for cloud & AD admin roles.
- Conditional Access hardening (M1036): device-compliance + managed-network requirements for VDI/SSO; block legacy auth; session controls on high-value SaaS.
- SIM-swap resilience: eliminate SMS/voice MFA org-wide; coordinate with carriers on port-freeze for executive/admin lines.
- Immutable/off-domain backups + ESXi hardening (M1053): air-gapped/immutable backups; lockdown mode, MFA, and restricted SSH on ESXi to counter the ransomware end-state.
- Ingest identity & cloud logs into NG-SIEM: wire Okta/Entra/CloudTrail/O365 so §7 hunts run continuously as detections, not manual reviews.
Deployable Playbooks
Playbook A — Enforce number-matching & phishing-resistant MFA (Entra ID)
1. Entra admin center > Protection > Authentication methods.
2. Enable "Microsoft Authenticator" > configure:
- Require number matching for push notifications = Enabled (All users)
- Show application name / geo in push = Enabled
3. Enable FIDO2 security key method; scope to Admins + IT/Helpdesk + Remote-access groups.
4. Conditional Access > New policy:
- Users: Directory roles = all privileged roles + Helpdesk group
- Grant: Require authentication strength = "Phishing-resistant MFA"
5. Report-only > validate > enable. Disable SMS/voice as an approved method.
Playbook B — Block vulnerable drivers (BYOVD) — HVCI + blocklist
# Enable Microsoft vulnerable-driver blocklist (Windows built-in) reg add "HKLM\SYSTEM\CurrentControlSet\Control\CI\Config" /v VulnerableDriverBlocklistEnable /t REG_DWORD /d 1 /f # Enable Memory Integrity (HVCI) # HVCI needs VBS enabled as well -- the scenario key alone is inert and the # control silently never activates. All three values are required. reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v EnableVirtualizationBasedSecurity /t REG_DWORD /d 1 /f reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v RequirePlatformSecurityFeatures /t REG_DWORD /d 1 /f reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v Enabled /t REG_DWORD /d 1 /f # Prereqs: UEFI + Secure Boot + virtualization extensions. Reboot required. # PILOT FIRST -- incompatible legacy drivers can block boot under HVCI. # Verify AFTER reboot (SecurityServicesRunning must contain 2): # (Get-CimInstance Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard).SecurityServicesRunning # Rollback: set both DeviceGuard values and the scenario Enabled back to 0, then reboot. # If the host will not boot, revert from Safe Mode or WinRE. # Verify (reboot required) Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard | Select-Object -ExpandProperty SecurityServicesRunning # 2 in the list = HVCI running. Confirm EDR "Tamper Protection" is ON in your console.
Playbook C — Enable LSA Protection (PPL) + Credential Guard
# LSASS as Protected Process Light reg add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v RunAsPPL /t REG_DWORD /d 1 /f # Credential Guard via Device Guard (also needs HVCI above) reg add "HKLM\SYSTEM\CurrentControlSet\Control\LSA" /v LsaCfgFlags /t REG_DWORD /d 1 /f # Verify after reboot Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard | Select-Object SecurityServicesConfigured, SecurityServicesRunning # Test that comsvcs MiniDump against lsass now fails (should be blocked / access denied).
Playbook D — CQL spot-check after hardening
// Confirm no successful LSASS dump activity post-PPL rollout
#event_simpleName=ProcessRollup2
| CommandLine=/comsvcs\.dll.{0,40}MiniDump|procdump.{0,60}lsass/i
| table([@timestamp, ComputerName, UserName, CommandLine])
// Expect: zero hits, or only sanctioned DFIR hosts.
Containment Runbook
- Network-contain affected hosts via Falcon; do not tip off the actor on monitored channels — assume they are watching Teams/Slack/Exchange and IR calls. Move IR comms out-of-band immediately.
- Suspend the compromised identities; revoke all active sessions/refresh tokens (Entra "Revoke sessions", Okta clear sessions).
- Freeze help-desk password/MFA resets org-wide pending identity re-verification.
- Remove attacker MFA enrollments; delete rogue federated IdPs/domains and backdoor IAM users; rotate the keys they created.
- Remove malicious inbox/forwarding rules; hunt for additional persistence (RMM installs, scheduled tasks, new local admins).
- Rotate credentials broadly — privileged accounts, service accounts, and any secrets exposed via LSASS/AD dumps; force password reset with re-verification.
- Uninstall unsanctioned RMM; remove BYOVD drivers; confirm EDR tamper protection restored on all hosts.
- Restore from immutable/off-domain backups only after eradication is confirmed; validate ESXi integrity before repowering VMs.
- Re-enable services under monitoring; keep §7 identity hunts and Q1–Q9 in heightened alerting for 30+ days.
- Post-incident: enforce phishing-resistant MFA, harden help-desk verification, and brief execs on SIM-swap risk.
Detection Coverage Map
| Behavior | Primary Detection | Fallback | Known Gap |
|---|---|---|---|
| Help-desk vishing → MFA reset | §7 IdP audit hunt | Help-desk ticket review | ⚠ No endpoint signal; needs IdP log ingestion |
| Push-bombing | Q8 / §7 | Entra risky sign-in | Endpoint Q8 weaker than IdP-native |
| RMM abuse | Q1 | Q9 network | FP tuning required per environment |
| Tunnel C2 | Q2 + Q9 | Proxy logs | Encrypted/sanctioned dev use |
| BYOVD EDR-kill | Q3 | EDR tamper alert | Post-kill telemetry may be lost |
| LSASS dump | Q4 | Q7 service tamper | Non-cmdline dump variants |
| AD recon | Q5 | Identity Protection | LDAP-only recon w/o tooling |
| Cloud/IdP persistence | §7 CloudTrail/Entra | — | ⚠ Requires cloud connectors |
| Inbox-rule persistence | §7 O365 audit | — | ⚠ Requires O365 connector |
| Shadow-copy delete / ransomware | Q6 | RansomwareOpenFile | ESXi encryption not on EDR |
| ESXi encryption | §7 ESXi logs | Backup alerts | ⚠ ESXi rarely carries a sensor |
Hunt Summary Ticket
TITLE: Threat Hunt — Scattered Spider (UNC3944 / Octo Tempest)
SCOPE: Identity plane (Okta/Entra), Windows endpoints & servers, cloud IAM, M365, ESXi
HYPOTHESIS: A help-desk-driven identity reset is followed by RMM tooling, credential
access, and pre-encryption behaviors indicating an active intrusion.
QUERIES RUN: Q1 RMM exec · Q2 tunnels · Q3 BYOVD · Q4 LSASS · Q5 AD recon ·
Q6 shadow-copy delete · Q7 service tamper · Q8 push-bombing · Q9 tunnel DNS
+ §7 native identity/cloud audit hunts
DATA: ProcessRollup2, NewExecutableWritten/PeFileWritten, DnsRequest,
UserLogonFailed2; (IdP/CloudTrail/O365 if ingested)
FINDINGS: <populate>
GAPS: IdP/cloud/O365/ESXi log ingestion; per-env RMM baseline
ACTIONS: Promote Q3/Q4/Q6 to Custom IOA; enforce number-matching MFA;
harden help-desk verification; enable HVCI + LSA PPL
OWNER: HuntPack
STATUS: Draft v0.1 · 2026-07-01
Changelog
| Version | Date | Change Summary |
|---|---|---|
| v0.1 | 2026-07-01 | Initial draft — 9 CQL hunts, 8 native identity/cloud audit hunts, IOA recs, tiered hardening, playbooks, containment runbook. Generated via HuntPack v2 pipeline. |
References
| Tier | Source | Used For | Access Date |
|---|---|---|---|
| 1 | CISA/FBI AA23-320A — Scattered Spider | Core TTPs, IOCs, mitigations | 2026-07-01 |
| 1 | FBI/CISA advisory PDF (2025-07-29 update) | Third-party IT targeting, DragonForce/ESXi | 2026-07-01 |
| 1 | MITRE ATT&CK — G1015 | Technique mapping, aliases | 2026-07-01 |
| 2 | CrowdStrike Services — escalating attacks | Help-desk vishing, SSO/VDI targeting | 2026-07-01 |
| 2 | Permiso — LUCR-3 SaaS/Cloud | Backdoor IAM, IdP federation persistence | 2026-07-01 |
| 2 | Trellix — Modus Operandi | STONESTOP/POORTRY, LSASS, ADExplorer | 2026-07-01 |
| 2 | Rapid7 — Insights & Recommendations | Tooling, BYOVD, recommendations | 2026-07-01 |
| 3 | BleepingComputer — aviation shift | 2025 sector rotation context | 2026-07-01 |
Automated pack — treat queries as starting points. Validate field names and tune FP exclusions in your own tenant before relying on any detection. Atomic IOCs (domains/hashes) for this actor are perishable; re-check the current CISA AA23-320A appendix.