Living Off the Land: Detecting Execution That Uses Nothing but Trusted Binaries
When every tool in the intrusion ships with the operating system, signature-based detection has nothing to match. What remains is relationship, context and frequency.
An intrusion that never touched production directly. The attacker modified a build agent, and the organisation shipped the backdoor itself through its own signed release channel.
Executive summary
Quick facts
Most intrusions end where the attacker's access ends. This one ended where the organisation's distribution reach ended — which was considerably further.
The attacker did not steal a signing key, forge a certificate, or interfere with the release approval workflow. They modified the input to a process that was working correctly, and let that process do the rest. Every control downstream of the build agent reported success, because from the perspective of those controls nothing had gone wrong.
The build agent was self-hosted on a physical machine, provisioned three years earlier and excluded from the endpoint agent rollout on the grounds that security tooling had once caused build flakiness. That exclusion was recorded, approved, and never revisited.
Two conditions turned a single credential into full pipeline control:
Credential recovery from a single developer workstation was therefore sufficient. No exploit was involved at any stage of the intrusion.
The pipeline stored part of its definition on the agent's filesystem rather than in version control — a legacy arrangement retained so that a small number of build parameters could be adjusted without a pull request. The attacker edited that local fragment to add a post-compile step.
# Simplified reconstruction of the injected step
- name: optimise-artifact
run: ./tools/opt.sh --in $ARTIFACT --out $ARTIFACT
condition: succeeded()
The referenced script performed a genuine, verifiable size optimisation. It also appended a loader stub to the binary's overlay before writing the output. Build logs showed a step that looked plausible, ran quickly, and always succeeded.
Three properties kept the change invisible:
The third point is the important one. Without reproducible builds, there is no baseline hash to compare against, and no way to assert that identical inputs produced identical outputs.
| Signal available | Collected | Would have detected |
|---|---|---|
| Build agent process creation | No | Injected script execution |
| Local file changes to pipeline config | No | The modification itself |
| Outbound connections from agent | Partial | C2 check-in |
| Artifact hash across rebuilds | No | Non-deterministic tampering |
| Scheduled task creation | No | Persistence mechanism |
The organisation had mature detection coverage across servers and workstations. The build estate sat in a gap between the platform team, who owned the hardware, and the development team, who owned the workload — and neither had onboarded it.
Confidence in this reconstruction is high: the pipeline configuration change, the scheduled task and the artifact overlay were all recovered intact during forensics. Attribution is not assessed, and the tooling recovered was generic.
The organisational lesson is narrower than "sign your artifacts" and harder to act on. Build infrastructure is production infrastructure. It was treated as developer tooling for three years, and the exception that excluded it from monitoring outlived everyone who understood why it was granted.
Timeline
An administrator password recovered from a workstation credential store authenticated successfully against the build agent over SMB.
A task masquerading as a telemetry uploader re-established the implant after each agent reboot.
A post-compile hook was added to the pipeline configuration stored on the agent rather than in version control.
The signing service received a modified artifact and signed it exactly as designed.
A customer network team reported beaconing from a host running the vendor-supplied agent.
Pipeline rebuilt from scratch on ephemeral runners; affected releases revoked and reissued.
Sources
SLSA · 2025
NIST SP 800-218 · 2022
Related records
When every tool in the intrusion ships with the operating system, signature-based detection has nothing to match. What remains is relationship, context and frequency.