Skip to main content
  1. Blog/

SolarWinds Three Months Later — Rethinking Software Supply Chain Security

·1004 words·5 mins
Osmond van Hemert
Author
Osmond van Hemert
Supply Chain Security - This article is part of a series.
Part : This Article

It’s been roughly three months since FireEye first disclosed the SolarWinds supply chain attack in December, and the picture keeps getting worse. This week, the new Biden administration signaled that investigating and responding to the breach is a top cybersecurity priority. Congressional hearings are underway. And security researchers continue to discover new details about the sophistication of the operation. As someone who’s been building and deploying software for three decades, I can say without hyperbole: this is the most consequential software supply chain attack we’ve ever seen, and the lessons it teaches should reshape how every engineering organization thinks about trust.

The Scale We’re Still Uncovering
#

For those who haven’t been tracking the details closely, here’s where things stand. The attackers — widely attributed to Russian intelligence services — compromised SolarWinds’ build pipeline for the Orion network management platform. They inserted a backdoor (dubbed SUNBURST) into legitimate software updates that were then distributed to roughly 18,000 organizations. Among the confirmed victims: the US Treasury, Commerce Department, Department of Homeland Security, Microsoft, and numerous private companies.

What makes this particularly alarming is the patience and sophistication involved. The attackers had access to SolarWinds’ build infrastructure for months before activating the backdoor. The malicious code was designed to blend in with legitimate Orion code patterns. It even checked for security tools and sandboxes before activating, and used domain generation algorithms that mimicked normal SolarWinds traffic patterns.

This week, researchers at CrowdStrike identified a third malware strain — SUNSPOT — that was specifically designed to monitor SolarWinds’ build processes and inject the SUNBURST backdoor at compile time. The attacker wasn’t just modifying source code; they were modifying the build system itself, so the source repository looked clean while the compiled artifacts were compromised.

Why Build Pipeline Security Is Fundamentally Hard
#

The SUNSPOT discovery cuts to the heart of a problem that most organizations barely think about: the integrity of the build pipeline. We obsess over source code reviews, static analysis, and dependency scanning — all important — but how many teams verify that their compiled artifacts actually correspond to the reviewed source code?

In most CI/CD pipelines, the build environment is a trusted black box. Jenkins, GitHub Actions, GitLab CI, Azure DevOps — these systems have extensive access to source code, secrets, and deployment credentials. If an attacker compromises the build environment, they can inject anything into the final artifact, and standard code review processes won’t catch it.

This is where the concept of reproducible builds becomes critically important. A reproducible build means that given the same source code, build tools, and environment specification, you get bit-for-bit identical output. If builds are reproducible, you can independently verify that a binary was built from the claimed source code. Projects like Debian have been working on reproducible builds for years, but adoption across the industry remains limited.

The related concept is build provenance — cryptographic attestation of where, when, and how a software artifact was built. Google’s Binary Authorization for GKE is one implementation of this idea, but we need industry-wide standards and tooling to make it practical.

Dependencies: The Attack Surface We Keep Ignoring
#

SolarWinds also highlights the dependency trust problem that pervades modern software development. Every organization that installed the compromised Orion update did so through their normal, trusted software update channel. They had no reason to suspect it — the update was signed with SolarWinds’ legitimate certificate.

This pattern of trust extends throughout our dependency chains. When you run npm install or pip install, you’re trusting thousands of transitive dependencies, each maintained by different individuals or teams, distributed through package registries with varying levels of security. We’ve seen smaller-scale supply chain attacks in the npm ecosystem (event-stream in 2018) and the Python ecosystem (typosquatting attacks on PyPI).

The difference with SolarWinds is scale and sophistication, but the underlying vulnerability is the same: we implicitly trust our software supply chain in ways that aren’t justified by the security measures in place.

Practical Steps for Engineering Teams
#

So what do we actually do about this? Here are concrete measures that I think are worth investing in:

Audit your build pipeline access. Who has write access to your CI/CD configuration? What secrets are available during builds? Can a compromised build step exfiltrate credentials? Most teams have never done a thorough threat model of their build system.

Pin and verify dependencies. Use lock files, pin exact versions, and verify checksums. Tools like Dependabot and Renovate can automate dependency updates while maintaining pinning discipline.

Implement artifact signing. Sign your build artifacts and verify signatures before deployment. Projects like sigstore (which is just getting started) aim to make this easier.

Adopt least-privilege for CI/CD. Your build pipeline should not have production deployment credentials unless it’s actually deploying. Separate build, test, and deployment stages with distinct permissions.

Monitor for anomalies. Network monitoring, log analysis, and behavioral detection should cover your build infrastructure, not just your production environment.

My Take
#

The SolarWinds breach is a watershed moment for software supply chain security. It demonstrated that even well-resourced organizations with dedicated security teams can be compromised through their trusted software vendors. The attack vector wasn’t a zero-day exploit or a phishing email — it was a routine software update.

I’ve been arguing for years that our industry underinvests in build pipeline security relative to its importance. The build system is one of the most privileged components in any organization — it touches source code, secrets, and deployment infrastructure — yet it often receives less security scrutiny than a customer-facing web application.

The positive outcome, if there is one, is that SolarWinds has made supply chain security impossible to ignore. I expect to see significant investment in build provenance, reproducible builds, and dependency verification tooling over the coming years. The question is whether we’ll sustain that attention or let it fade once the headlines move on. Given my experience with how the industry responds to wake-up calls, I’m hopeful but realistic — lasting change requires sustained effort, not just momentary alarm.

Supply Chain Security - This article is part of a series.
Part : This Article