Cloud Security Office Hours Banner

SolarWinds 2020 — 2020

Step-by-step kill chain mapped to MITRE ATT&CK Cloud, sourced from official post-mortems and primary technical analyses.

October 2019 – December 2020 (14 months) Critical Azure AD AWS

SolarWinds – Build System Compromise → SUNBURST Backdoor → On-Prem to Cloud Pivot → Golden SAML → US Government Espionage

Russian SVR (APT29 / Cozy Bear) breached SolarWinds' build pipeline and injected the SUNBURST backdoor into signed Orion software updates sent to 18,000+ customers. At high-value government targets, they used SUNBURST to achieve domain admin on-premises, then stole the ADFS token-signing certificate to forge Golden SAML tokens — bypassing MFA entirely to access Azure AD and Microsoft 365 environments for months. This was the first major nation-state supply chain attack that explicitly pivoted from on-premises to cloud identity.

18,000+ orgs received malicious update
~100 actively exploited
14 months from build compromise to discovery
Threat actor: APT29 / Cozy Bear (Russian SVR)
📄 MITRE Campaign C0024 ↗ 📄 CISA remediation guidance ↗ 📄 Palo Alto timeline ↗
🏗 Supply Chain — Build System Compromise
01
SolarWinds build environment breached; SUNSPOT implant injected into Orion DLL at compile time (Oct 2019)
T1195.002 – Software Supply Chain

SVR gained access to SolarWinds' internal build system and installed SUNSPOT — a build-time implant that monitored the MSBuild.exe process and injected SUNBURST malicious code into Orion.Core.BusinessLayer.dll during compilation. The resulting DLL was then signed with SolarWinds' legitimate code-signing certificate, making it appear authentic.

Implant: SUNSPOT — intercepted MSBuild.exe and injected SUNBURST into target DLL
Code signing: Trojanized DLL signed with SolarWinds' legitimate certificate (trusted by customers)
Dormancy: SUNBURST waited ~2 weeks post-installation before activating (to evade sandbox detection)
SUNSPOTBuild TamperingCode Signing AbuseT1195.002
📡 Backdoor Activation and C2 Beaconing
02
SUNBURST distributed via Orion updates; C2 beacon to avsvmcloud[.]com via DNS (March 2020)
T1071.004 – DNS C2

From March 2020, trojanized Orion updates were installed by customers. SUNBURST beaconed to the attacker-controlled domain avsvmcloud[.]com using DNS subdomain queries that encoded victim environment information. SVR then selectively activated only high-value targets for further exploitation — the majority of the 18,000 infected organisations were never actively exploited.

C2 mechanism: DNS subdomain encoding — victim fingerprint data encoded in DNS query subdomains
Evasion: Traffic mimicked legitimate SolarWinds telemetry · Dormancy period bypassed sandbox detection
Selective exploitation: 18,000 infected · ~100 actively pursued by SVR
SUNBURSTDNS C2avsvmcloud.comT1071.004
03
TEARDROP dropper deploys Cobalt Strike BEACON; domain admin privileges obtained on-premises
T1078.002 – Domain Accounts

At selected high-value targets, SUNBURST delivered TEARDROP — a memory-resident dropper — which deployed Cobalt Strike BEACON for interactive C2 and lateral movement. SVR used BEACON to escalate to domain admin privileges on the victim's on-premises Active Directory, positioning themselves to attack cloud identity via the ADFS server.

Second-stage malware: TEARDROP (memory-resident dropper) → Cobalt Strike BEACON (C2)
Goal of on-prem access: Reach ADFS server to steal the SAML token-signing certificate
Evasion: All traffic masqueraded as legitimate SolarWinds API activity
TEARDROPCobalt StrikeDomain AdminLateral Movement
☁️ On-Prem to Cloud Pivot — Golden SAML
04
ADFS token-signing certificate stolen; Golden SAML tokens forged for Azure AD / M365 (bypasses MFA)
T1606.002 – SAML Token Forgery T1550 – Use Alternate Auth Material

With domain admin privileges, SVR extracted the ADFS token-signing private key and certificate from the on-premises federation server. Using this key, they could forge SAML assertions impersonating any user — "Golden SAML." Forged SAML tokens bypass MFA entirely because the SAML assertion IS the proof of authentication — no second factor is requested when a valid SAML response is presented.

Golden SAML attack steps:
1. Extract ADFS private signing key + certificate (requires domain admin)
2. Forge SAML assertion claiming to be any privileged user (Global Admin, etc.)
3. Present to Azure AD / M365 — accepted as fully legitimate
4. MFA bypassed — the forged SAML IS the authentication proof
Persistence: SAML signing certs rarely rotated — access persisted indefinitely without re-exploitation
Golden SAMLADFSMFA BypassT1606.002On-Prem to Cloud
📬 Cloud Espionage and Persistence
05
Long-term M365 email access; Azure AD backdoors added to survive Orion removal
T1114.002 – Remote Email Collection T1098 – Account Manipulation

SVR accessed M365 environments at multiple US government agencies including Treasury, Commerce, DHS, State Department, and DOJ. Critically, they also modified Azure AD to add trusted federated identity providers and OAuth application permissions — cloud-layer backdoors that persisted even after SolarWinds Orion was removed from victim networks.

Victims: US Treasury, Commerce, DHS, State Dept, DOJ, and ~95 other organisations
Cloud persistence mechanisms added:
→ New federated identity providers added to Azure AD
→ OAuth app permissions granted for API-based access
Service principal credentials added for ongoing access
Key lesson: Removing Orion did NOT remove cloud access — Azure AD had to be separately evicted
M365 Email AccessAzure AD PersistenceOAuth BackdoorsUS Government
🚨 Discovery
06
FireEye discovers its own red team tools stolen; traces back to trojanized Orion — December 13, 2020

FireEye discovered theft of its proprietary red team offensive tools during an internal investigation and traced the intrusion to a trojanized SolarWinds Orion update. Their public disclosure on December 13, 2020 triggered a global incident response and CISA Emergency Directive 21-01 requiring all federal agencies to immediately disconnect Orion. Crucially, removing Orion did not remove cloud persistence — Azure AD backdoors required a separate, comprehensive eviction process.

Discovered by: FireEye (investigating their own breach, Dec 13 2020)
Time from build compromise to discovery: ~14 months
CISA ED 21-01: All federal agencies ordered to disconnect SolarWinds Orion immediately
Critical complication: Cloud-layer backdoors (Azure AD federation, OAuth apps) persisted after Orion removal
14 Month DwellFireEye DiscoveryCISA ED 21-01Cloud Persistence Remained

🛡 How to Defend Against This Chain

Treat your ADFS / identity provider as a Tier 0 asset equal to domain controllers. The ADFS server holds the keys to all federated services. Protect it with privileged access workstations, no internet exposure, and HSM-protected signing keys. Monitor it as you would your most critical production system.
Detect Golden SAML by correlating ADFS event logs with Azure AD sign-in logs. Legitimate ADFS authentications leave traces in both systems. An Azure AD sign-in with no corresponding ADFS authentication event (IDs 1202, 1200) is highly suspicious.
Audit Azure AD federated identity providers, OAuth app permissions, and service principals regularly. SVR's cloud persistence survived Orion removal. Use Microsoft Entra audit logs or Defender for Cloud Apps to detect new high-privilege applications.
Implement software supply chain integrity verification for build systems. Monitor build environments with endpoint security. Verify build artifact integrity. Implement reproducible builds. Treat your CI/CD pipeline as production infrastructure.
Plan for cloud-specific eviction as a separate step from on-prem remediation. Any on-prem compromise may have resulted in cloud-layer backdoors. Azure AD, OAuth app permissions, and federated IdPs must be independently reviewed and evicted.