1. The Incident and Its Impact
The supply chain is the soft underbelly of the software industry. An attacker does not need to break into eighteen thousand networks one by one if a trusted update channel can carry the same backdoor into all of them.
1.1 What happened, in one paragraph
Between September 2019 and December 2020, an intelligence service later identified as
Russia’s SVR (tracked across the incident as APT29 / Cozy Bear, and under the
investigation handles UNC2452 / StellarParticle / NOBELIUM / Solorigate) ran one of the
most consequential supply-chain operations on record. They did not break into their targets
one by one. Instead they got inside SolarWinds, a Texas company whose Orion network
monitoring platform sits, by design, at the privileged center of tens of thousands of
enterprise and government networks. They used a bespoke build server implant (SUNSPOT) to
quietly weld a backdoor (SUNBURST) into a single Orion assembly,
SolarWinds.Orion.Core.BusinessLayer.dll, as Orion was being compiled. Because the
tampering happened before code signing, every poisoned build shipped with what vendors
documented as a valid SolarWinds Authenticode signature and flowed out through the normal
update channel to an upper bound population of ~18,000 potentially affected customers.
SolarWinds later clarified that this download-based estimate included customers that did not
install the update or whose servers could not reach the internet. A much smaller, selected subset
was exploited hands-on.
That is the whole shape of the attack. The rest of this book is how: at the level of the decompiled code that did it.
1.2 Why this one matters
Supply-chain compromises were not new in 2020. What made SUNBURST a watershed was the combination of scale, trust, and patience:
-
Scale through a trusted distributor. Orion is a network management platform; an organization installs it precisely so that one server can reach, poll, and manage every device in the estate. Poisoning Orion created potential reach across thousands of customer environments at once, not by finding thousands of vulnerabilities, but by subverting one build pipeline.
-
Trust abuse over exploitation. There is no memory corruption exploit, no zero-day in the SUNBURST DLL, no privilege escalation trick. The backdoor was a normal-looking C# class compiled into a normal-looking signed assembly delivered over a normal update. The entire operation’s sophistication lives in abusing trust that already existed: the build server’s trust in its source tree, the signing infrastructure’s trust in the build output, the customer’s trust in a signed vendor update, and the enterprise’s trust in its own monitoring server.
-
Patience and selectivity. Installing SUNBURST did almost nothing. The implant slept for roughly 12–14 days, refused to run unless it was inside the exact Orion service process, refused to run on SolarWinds’ own or test/lab domains, checked the host for dozens of analysis and security tools before doing anything, and used a domain- generation algorithm (DGA) over
avsvmcloud[.]comto fingerprint each victim over DNS and receive a go / stand-down / kill directive encoded in the range of the DNS answer. From the upper bound population of roughly 18,000 potentially affected customers, only a much smaller, selected subset is known to have been promoted to a live command-and-control channel and a hands-on second stage: the White House (Feb 2021) put it at nine U.S. federal agencies and about 100 private sector companies, and SolarWinds later (May 2021) estimated fewer than 100 customers were actually hacked. The headline figure describes potentially affected downloads, not the number the actor chose to exploit. That distinction was widely blurred in early coverage, and one this book keeps sharp.
The result was a campaign that sat undetected in the world’s networks for the better part of a year, that compromised the U.S. departments of Treasury, Commerce, Homeland Security, State, Energy, and others, and that was ultimately uncovered not by any vendor’s telemetry but by a victim, the security firm FireEye, noticing its own breach in December 2020.
1.3 The cast (and the available evidence)
This book is grounded in a reverse-engineering archive that holds the actual artifacts. The reverse-engineering claims in later chapters trace back to these artifacts; historical, attribution, victim count, and policy claims come from the public sources identified in each chapter. The campaign is usually described as a sequence of malware families, each doing one job:
| Stage | Family | Role |
|---|---|---|
| Dry run | Benign trial DLL (8890) |
An empty placeholder backdoor class, the attacker’s test that tampered code could ride the pipeline unnoticed (Chapter 3). |
| Injector | SUNSPOT | The build server implant that swapped the source file during compilation to inject the real backdoor (Chapter 3). |
| Backdoor | SUNBURST | The dormant remote access implant compiled into Orion and distributed through affected updates (Chapter 4). |
| C2 fabric | avsvmcloud[.]com DGA |
The DNS-based victim fingerprinting and signalling layer (Chapters 4–5). |
| Second stage | TEARDROP, RAINDROP | Memory-only Cobalt Strike BEACON loaders dropped on the hand-picked targets (Chapter 6). |
| Parallel intrusion | SUPERNOVA | A .NET webshell on the same product but a different, unrelated actor, included so the picture stays honest (Chapter 7). |
| Later tooling | GoldFinder, SIBOT, GoldMax / SUNSHUTTLE | The actor’s 2021 toolkit, surfaced after disclosure (Chapter 9). |
A defining and counterintuitive technical fact, established by decompiling and diffing all four
Orion builds examined for this book: the SUNBURST implant’s decompiled source is byte-for-byte
identical across the three weaponized builds (2019.4.5200.9083, 2020.2.5200.12394,
2020.2.5300.12432). The differing file hashes come from surrounding files and version
stamps, not from the backdoor. There is, in effect, one SUNBURST, and Chapter 4 dissects
it line by line.
1.4 The arc of the book
The chapters follow the campaign in time:
- This chapter: the incident and why it matters.
- The actor: SVR / APT29, and the reason the same group has half a dozen names.
- Compromising SolarWinds: first the skeleton (an empty backdoor class planted in October 2019 to see if anyone would notice), then the full backdoor (the SUNSPOT build server injector and the first weaponized release).
- SUNBURST anatomy: the activation gates, the DGA, the C2 protocol, the command set, and the anti-analysis machinery, read out of the decompiled C#.
- Mass distribution and victimology: how it spread, and who we can see beaconing in the passive DNS record.
- The second stage: TEARDROP and RAINDROP loading Cobalt Strike BEACON on the selected targets.
- A second, unrelated intruder: SUPERNOVA, and why conflating it with SUNBURST is a common and important mistake.
- Discovery and the killswitch: how the campaign unravelled, and how its own DNS logic was turned against it.
- Later tooling and attribution: GoldFinder, SIBOT, GoldMax/SUNSHUTTLE, and the road to the formal April-2021 attribution.
- Response, consequences, and policy legacy: the emergency response, sanctions and expulsions, the landmark SEC case against SolarWinds and its CISO, and the supply-chain security policy shift the incident set off.
The epilogue, “The Privilege Multiplier,” then steps outside the chronology: why Orion’s documented LocalSystem service context increased the potential impact of a poisoned DLL, what the analyzed artifacts do and do not prove, and how least privilege could have reduced the blast radius.
1.5 A note on evidence and provenance
This is a reverse-engineering book, and it tries to be honest about how each fact is known. Throughout, claims fall into two buckets, and the text keeps them distinct:
-
Locally verified: recovered directly from the artifacts examined for this book by hashing, decompiling, decoding obfuscated constants, or parsing passive DNS. The malware compile timestamps (e.g. the first weaponized build at
2020-03-24 08:52:34), the decompiled backdoor logic, the decoded indicators, and the DGA victim decodes are all of this kind. -
Vendor-documented / secondary reporting: facts that come from public reporting and are cited as such, not derived here. Two recurring examples matter enough to flag up front:
- The poisoned DLLs carried a valid SolarWinds Authenticode signature. This is vendor-documented; it was not verified in this analysis because Authenticode verification was unavailable. Identification here rests on embedded versions, hashes, timestamps, and .NET metadata, not signatures.
- The day-level 2019 dates for the actor’s initial access (~4 Sep 2019), the trial code injection (12 Sep 2019), and its removal (~4 Nov 2019) come from SolarWinds' investigation as relayed by secondary reporting; they were not independently verified here. Where a date is a file timestamp we say so.
Sources & evidence
- Book reference: See the Appendix: Timeline, IOCs, and Artifact Map for the consolidated timeline, hashes, indicators, and artifact provenance.
- Public reporting: Mandiant/FireEye on SUNBURST; CrowdStrike on SUNSPOT; Microsoft on the second stage and later tooling; and the U.S. government’s April 2021 attribution and sanctions.