Developer workstations and CI/CD build agents both matter, but they represent different control points. Workstations are where credentials can be stolen, tampered with, or used to introduce malicious code. Build agents are where trusted software is assembled and signed. Defending both matters because one protects the human entry point, while the other protects the release pipeline.
Why the Two Control Points Are Not the Same
Developer workstations and CI/CD build agents sit on different sides of the software delivery trust boundary. A workstation is an interactive endpoint used by a person, so the main concerns are user context, browser and IDE exposure, local secrets, and the possibility that a developer account is abused to change code or steal credentials. A build agent is an automation system, so the main concerns are what it can fetch, build, sign, and publish on behalf of the pipeline.
That difference matters because compromise does not flow the same way. On a workstation, attackers usually look for developer credentials, local tokens, SSH keys, or source code access. On a build agent, attackers care about the pipeline’s ability to produce trusted artifacts, reach release systems, and run with elevated automation permissions.
Workstation security is therefore about reducing the chances that a human endpoint becomes the entry point for code tampering or credential theft. Build-agent security is about preventing the release system itself from becoming a trusted distribution channel for malicious or altered software.
What Needs to Be Protected in Each Environment
On developer machines, the most sensitive assets are the materials that let a person act as a trusted contributor: source repositories, cloud consoles, package registries, issue trackers, and any secrets cached in shells, browsers, editors, or local config files. A compromised workstation can also become a staging point for malicious changes that look legitimate because they originate from a real developer context.
On build agents, the protected assets are different: signing keys, deployment tokens, artifact repository credentials, and the build logic itself. The agent should be treated as a transient, purpose-built system whose only job is to assemble known inputs into reproducible outputs. The tighter the agent’s permissions, the less useful it is to an attacker even if one job is compromised.
For both environments, secret sprawl is a recurring failure mode. NHIMG research notes that 96% of organisations store secrets outside secrets managers in vulnerable locations, including code, config files, and CI/CD tools, which is exactly the sort of exposure that turns either a developer endpoint or a build pipeline into a release-path risk.
- Developer workstations should minimise local secret persistence and privilege retention.
- Build agents should minimise outbound trust, long-lived credentials, and shared state across jobs.
- Both should preserve auditability so suspicious changes can be traced back to a source.
Where the Security Model Diverges Operationally
The operational model for a workstation is interactive and variable. Developers install tools, browse internal systems, authenticate to multiple services, and often hold broader day-to-day access than a build system should ever need. That flexibility is necessary for productivity, but it also expands the attack surface and makes endpoint hardening, patching, and anti-malware controls central.
The operational model for a build agent should be narrow and deterministic. It should run a constrained set of build steps, use short-lived or tightly scoped credentials, and avoid retaining state between jobs unless that state is explicitly controlled. If the agent is allowed to fetch arbitrary code, reach too many systems, or reuse credentials across pipelines, then the pipeline becomes a privileged execution environment rather than a bounded build service.
That is why build-agent security often leans more heavily on provenance, reproducibility, and release integrity, while workstation security leans more heavily on endpoint hygiene, user behaviour, and local credential protection. SLSA is useful here because it frames the build system as a provenance problem, not just an infrastructure problem.
For practitioners, the key distinction is scope: a developer workstation should be able to author code safely, while a build agent should be able to prove what code was built, by what process, and with what inputs.
Risk and Threat Considerations
These two control points fail in different ways, but both can create downstream release compromise. A workstation compromise typically enables credential theft, source tampering, or malicious commit injection. A build-agent compromise is often more severe because it can contaminate artifacts at the point where software becomes trusted by others.
Failure mechanism: Attackers exploit the workstation to steal developer credentials or alter source before review, or they exploit the build agent to inject malicious code, tamper with artifacts, or abuse signing and publishing privileges.
Impact: The first path can lead to unauthorised code changes and account abuse; the second can turn a legitimate pipeline into a malware distribution mechanism and create broader supply-chain exposure.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
OWASP Non-Human Identity Top 10 address the attack and risk surface, while CIS Controls v8, NIST CSF 2.0, NIST SP 800-63 and NIST Zero Trust (SP 800-207) set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| CIS Controls v8 | CIS Control 6 — Access Control Management | Limits who and what can access developer and build environments. |
| CIS Control 8 — Audit Log Management | Build trust depends on traceability for workstation changes and pipeline actions. | |
| CIS Control 16 — Application Software Security | Software delivery security directly covers the integrity of code, builds and release artifacts. | |
| Recommendation — Restrict and review access for developer and build systems to reduce abuse paths. Log workstation and CI/CD activity so suspicious code and credential events can be investigated. Secure the software delivery chain so build outputs cannot be tampered with unnoticed. | ||
| NIST CSF 2.0 | PR.AC — Access Control | The question contrasts who may access developer endpoints versus build automation. |
| PR.IP — Information Protection Processes and Procedures | Protecting secrets, build inputs and release artifacts is central to both environments. | |
| DE.CM — Security Continuous Monitoring | Both control points need detection for credential theft, tampering and abnormal pipeline activity. | |
| Recommendation — Apply least-privilege access across developer and pipeline environments. Define handling rules for secrets, source and artifacts across the delivery chain. Monitor endpoints and build systems for compromise indicators and unusual execution. | ||
| NIST SP 800-63 | IAL/AAL/FAL — Identity Assurance, Authenticator Assurance, and Federation Assurance | Developer access often depends on assurance of the human identity behind workstation use. |
| Recommendation — Use appropriate assurance levels for developer authentication and federation. | ||
| NIST Zero Trust (SP 800-207) | SC-7 — Boundary Protection | Developer endpoints and build agents should be separated by trust boundaries and constrained flows. |
| AC-6 — Least Privilege | Build agents should not hold broad standing privileges, and developers should not retain excess access. | |
| Recommendation — Segment build systems from general-purpose endpoints and limit reachable services. Minimize standing privilege for both developer and CI/CD access paths. | ||
| OWASP Non-Human Identity Top 10 | NHI-01 — Improper Offboarding and Revocation | Build and developer systems both rely on secrets and tokens that must be revoked promptly. |
| Recommendation — Revoke exposed credentials quickly when developer or pipeline compromise is suspected. | ||
Practitioner Guidance
What to prioritise: Treat workstations as high-risk credential environments and build agents as high-trust execution environments. The first should be hardened for human use, the second should be constrained for machine use.
What to verify: Confirm that developers do not keep long-lived secrets on local devices and that build agents do not have more access than a single job requires. If an agent can sign, publish, or deploy, that privilege should be explicitly justified and tightly bounded.
Common mistake: Using the same security baseline for both. A developer laptop needs strong endpoint and secret hygiene; a build agent needs minimal privilege, ephemeral credentials, and a clean trust chain for inputs and outputs.
Practitioner takeaway: The most important design question is not whether both are “secured”, but whether each one is constrained according to its role in the delivery chain, with human compromise contained on one side and release integrity protected on the other.
Related resources from NHI Mgmt Group
- What is the difference between securing IDE and CLI agents and securing headless agents in CI/CD?
- What is the difference between developer account compromise and secret compromise in CI/CD?
- What is the difference between reproducible builds and ad hoc build fixes in CI/CD?
- What is the difference between securing the code repository and securing the full CI/CD pipeline?