Join our Newsletter — 33% off our NHI Course

Should organisations use Zero Standing Privilege for developer platforms?

Yes, when repository access needs to follow actual work rather than permanent entitlement. Zero Standing Privilege is a strong fit for GitHub because it prevents lingering access, limits the blast radius of compromised accounts, and forces every privilege grant to be justified at the moment it is used.

Why Zero Standing Privilege fits developer platforms

Developer platforms work best when access is granted for the task at hand and then removed. For repositories, CI/CD, deployment tooling, and cloud-adjacent admin surfaces, that means the platform should expose just-in-time access and zero standing privilege rather than persistent entitlement. This is especially important when the same account can move from code review into production-impacting actions.

In practice, ZSP is less about denying developers productivity and more about changing the default from permanent privilege to time-bound activation. That aligns well with Privileged Access Management, where approval, session control, and scoped elevation reduce the chance that a normal developer identity can behave like an always-on administrator. The control works best when privilege is tied to a specific role, action, and duration.

For developer platforms, the central question is whether standing access is actually needed or merely convenient. If a developer can merge, deploy, modify secrets, or alter infrastructure without re-authentication or a fresh approval path, the platform is preserving latent authority that may never be reviewed. Cloud PAM and CIEM are useful here because they help distinguish granted access from effective access, which is often where overprivilege hides.

What Zero Standing Privilege changes operationally

ZSP changes how access is issued, how long it lasts, and how much of the environment it can touch. Instead of broad roles remaining attached to a developer account, the platform should activate the minimum privilege only when work requires it, ideally with clear approval, strong logging, and revocation after use. That reduces the value of a stolen session, compromised token, or hijacked account.

The biggest operational gain is blast-radius reduction. If an attacker takes over a developer account, they should not inherit long-lived admin reach into repositories, deployment pipelines, or secrets stores. That principle is visible in Service Account Security, which treats discovery, least privilege, rotation, and governance as core controls for any identity that can act on behalf of a system or team.

ZSP also improves accountability because each elevation event becomes an observable decision. Teams can answer who requested access, why it was granted, what it touched, and when it expired. That is materially better than trying to reconstruct intent after the fact from a standing privileged role that has existed for months.

When ZSP is the right answer, and when it needs support

ZSP is strongest when developer work is episodic, high-impact, or environment-specific, such as release engineering, incident response, infrastructure changes, or repository administration. It is a weaker fit only when teams try to use it as a substitute for role design. If the underlying permissions model is messy, time-bounded access will still be messy; it will just be temporary.

Good practice is to pair ZSP with session oversight, privileged access review, and clean role boundaries. For example, the Privileged Session Management Guide is relevant wherever elevated work should be recorded or brokered instead of directly exercised. That matters for developer platforms because privileged actions often happen through consoles, runners, and automation paths rather than a single obvious admin login.

Where the platform also spans cloud permissions, build systems, or secret access, it is worth checking whether the grant model is already drifting into permanent access by another name. In those cases, ZSP should be treated as a governance pattern for the whole delivery chain, not just as a login convenience.

Risk and Threat Considerations

standing privilege on developer platforms creates a durable target for attackers, because one compromised account can inherit ongoing access to code, pipelines, secrets, and deployment paths. The same problem can also arise accidentally, through forgotten elevated roles, stale approvals, or excessive default permissions.

Failure mechanism: A developer identity keeps privileges after the work is finished, so compromise, token theft, or misuse turns into broader repository, pipeline, or environment access than the user should have at that moment.

Impact: Attackers can modify source, inject build-time changes, read secrets, or reach production-adjacent systems with a single captured account, which increases persistence and shrinks the defender’s reaction window.

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 and OWASP API Security Top 10 address the attack surface, NIST SP 800-53 Rev 5 and NIST Zero Trust (SP 800-207) set the technical controls, and ISO/IEC 27001:2022 defines the regulatory obligations.

Framework Control / Reference Relevance
NIST SP 800-53 Rev 5 IA-5 — Authenticator Management Developer-platform ZSP depends on short-lived credentials and rotation discipline.
AC-6 — Least Privilege ZSP is a least-privilege pattern for developer roles and admin pathways.
AU-12 — Audit Record Generation Just-in-time elevation needs logs that show who approved and used privilege.
Recommendation — Enforce IA-5 to issue, rotate, and revoke developer credentials with time-bound access. Apply AC-6 to remove persistent developer entitlements and grant elevation only when needed. Generate audit records for every elevation, approval, and privileged action.
ISO/IEC 27001:2022 A.5.15 — Access control Developer-platform ZSP is an access-control design choice for privileged actions.
Recommendation — Define and enforce access-control rules that prevent standing privileged developer access.
OWASP Non-Human Identity Top 10 NHI-05 — Overprivileged NHI Developer platforms often rely on service identities and automation with excess privilege.
NHI-07 — Long-Lived Secrets Persistent access on developer platforms often depends on long-lived tokens and keys.
NHI-01 — Improper Offboarding Standing privilege persists when access is not removed after role or task changes.
Recommendation — Reduce standing privilege on service and automation identities used by developer platforms. Replace long-lived secrets with short-lived, tightly scoped credentials wherever possible. Revoke developer privileges promptly when work, role, or project context changes.
OWASP API Security Top 10 API5 — Broken Function Level Authorization Developer platforms expose admin-like functions that must not remain broadly callable.
API2 — Broken Authentication Just-in-time privilege depends on strong identity checks at the moment of elevation.
Recommendation — Restrict platform functions so only approved users can invoke privileged operations. Harden authentication before granting any privileged developer action.
NIST Zero Trust (SP 800-207) Zero Trust Architecture ZSP reflects zero-trust principles of continuous verification and least privilege.
Recommendation — Apply zero-trust principles to verify each privileged developer request before granting access.

Practitioner Guidance

What to prioritise: Start with the privileges that can change code, release artefacts, deployment targets, and secret material. Those permissions create the highest-value abuse path, so they deserve the strictest JIT gating and the shortest activation windows.

What to verify: Confirm that elevated access actually expires, that approvals are logged, and that revocation is enforced even when sessions are active. If users can keep doing privileged work after the ticket or approval has closed, ZSP is only cosmetic.

Common mistake: Teams often preserve productivity by leaving a few powerful roles permanently assigned. That usually defeats the purpose, because the rare emergency use case ends up justifying permanent exposure for everyday accounts.

Practitioner takeaway: Treat standing privilege as an exception to be justified, not as the default state for developer access. If the platform cannot safely activate, observe, and remove privilege on demand, the control has not been fully implemented.