Résumé

In September 2017, Cisco Talos revealed that CCleaner, a hugely popular Windows cleanup tool from Piriform (newly acquired by Avast), had been shipping a backdoor. Attackers had compromised Piriform's build environment and inserted malicious code into the official, validly code-signed installer, so version 5.33 distributed through Piriform's own channels carried the malware to about 2.27 million users for roughly a month before anyone noticed. The first stage merely profiled machines, but it was a sniper rather than a shotgun: from the millions of installs it served a second stage to only a few dozen selected computers at companies like Google, Microsoft, Cisco, Intel, and Samsung, and a still deeper espionage tool (the ShadowPad backdoor) was later found planted on Piriform's own internal machines. The attack is linked to the China-nexus group tracked as APT17 / Axiom. It is the lesson that a trusted update channel and a valid signature are not the same as trustworthy code, and that build pipelines are prime targets.

How it happened

The attackers did not break CCleaner; they broke the machine that builds it. They first got in through remote-access software (TeamViewer) on a Piriform developer's workstation around March 2017, then reached the build environment and inserted their backdoor into the pipeline itself. So when CCleaner version 5.33 (the 32-bit build) and CCleaner Cloud were compiled and released, the malware was baked in, then signed with Piriform's own valid, Symantec-issued code-signing certificate and pushed out through Piriform's official download servers. To every security check and every user, it looked exactly like a legitimate release, because in every way that a signature can prove, it was one. About 2.27 million people installed it between mid-August and mid-September (the attackers' command server logged around 700,000 of them).

But those millions were not the target; they were the funnel. The first-stage code only collected basic fingerprints of each machine (its name, installed software, and network address) and phoned home. From those fingerprints the operators hand-picked a small set of machines (Talos confirmed at least 20 were served a second stage) at major technology firms (Google, Microsoft, Cisco, Intel, Samsung, Sony, VMware, HTC, Akamai, D-Link, and others), and delivered a second-stage downloader (GeeSetup) that installed further trojanised, partly fileless backdoors. A deeper, third-stage tool, the ShadowPad backdoor, the calling card of a Chinese state-linked group, was separately discovered on four of Piriform's own internal machines, complete with an active keylogger. The attribution to APT17 / Axiom rested on code overlaps and was suggestive rather than definitive. It was a supply-chain attack run as precision espionage: poison a consumer utility used by millions, then reach into a few dozen specific corporations.

The damage

For most of the 2.27 million users, the practical harm was limited to the profiling stage. The real damage was the targeted intrusion into a curated list of technology companies, the kind of access that fuels long-term espionage and further supply-chain compromise. The lasting significance is the proof of concept: a nation-state had used a trusted vendor's build pipeline as a delivery mechanism, and a valid digital signature had certified malware as safe. Three years later the same playbook returned at far greater scale in the SolarWinds compromise.

Why CCleaner still matters

CCleaner is an early, clean example of the attack that now defines supply-chain security: compromise the build, not the product. Every assumption it broke is one defenders still lean on. A signature proves where code came from, not that it is safe. An official download channel is only as trustworthy as the pipeline behind it. And the sniper pattern, mass distribution as a funnel to a tiny, targeted payload, is now standard tradecraft. The defences are to treat the build and CI environment as top-tier infrastructure (least privilege, MFA, isolation), protect signing keys in hardware, demand reproducible and verified builds with provenance and an SBOM so what ships matches what was built, and monitor the integrity of build hosts and release artifacts, not just the source code.

Comment le corriger

  • Pull the trojanized version, ship a clean rebuild from a known-good pipeline, and tell users to update.
  • Rebuild build servers from trusted media and rotate code-signing keys and all CI/CD credentials.
  • Hunt downstream for the second-stage payload and persistence, especially among high-value targets.
  • Review everything that touched the build system between compromise and discovery to scope the blast radius.

Comment l’éviter

  • Harden and isolate the build and CI environment as a top-tier asset: least privilege, MFA, and tight network controls.
  • Protect signing keys in HSMs, and require reproducible, verified builds so injected code is detectable.
  • Generate and verify artifact provenance and SBOMs so what ships matches what was built from source.
  • Monitor the integrity of build hosts and release artifacts, not just the source repository.
  • Remember that a valid signature proves origin, not safety; downstream defenders should still watch update behavior.

Références

Vulnérabilités liées

Tout Supply chain →