Why attack a hardened target when you can compromise something it trusts? Supply-chain attacks poison software before it reaches the victim - and it arrives with a valid signature.
The two main shapes
- Build-pipeline compromise (SolarWinds-style) - the attacker modifies artifacts during CI, after code review and before signing. The backdoor ships to every customer, signed and trusted.
- Dependency poisoning - a malicious or hijacked package (npm/PyPI), a typosquatted name, or a compromised maintainer account. You
npm installthe compromise.
Why it's so effective
The malicious code inherits the trust of the legitimate software - it's signed, it's from your vendor or registry, and it runs with production access. Traditional "is this file known-bad?" checks wave it through.
Detect + defend
- Diff shipped artifacts against a reproducible build from clean source.
- Alert on CI steps that modify source after checkout/review, or unexpected outbound connections from build agents.
- Adopt SLSA provenance + artifact attestation; sign from an isolated, minimal builder.
- Lock and vet dependencies - pin versions, use a lockfile, scan with tools like OSV-Scanner, and watch for new maintainers or sudden postinstall scripts.
Treat your build server as a crown-jewel asset - because to an attacker, it's the master key.
