By Luffy Bao, CTO at Ankayma · 26 July 2026 · ← All writing
Security programs still spend most of their endpoint budget on laptops. That made sense when the richest credentials lived on a developer's machine. It makes less sense now. Of machines that get compromised, 59% are CI/CD runners — not personal devices. The place that holds deploy keys, cloud tokens, and kubeconfigs for every environment is also the place attackers actually land.
This isn't a claim about careless teams. It's a property of where standing credentials concentrate. A laptop may hold one engineer's SSH key. A runner often holds everything the pipeline needs to touch production — across repos, branches, and nights when no human is watching. Harden the laptop and leave long-lived secrets on the runner, and you've locked the wrong door.
Leaked secrets don't die on their own. When researchers re-tested credentials that had already leaked in 2022, 64% were still usable in early 2026. Rotation policies on paper don't equal expiry in the threat model. A secret that escapes — from a log, a fork, a mis-scoped variable, a pasted config — can keep working for years unless something active kills it. Guarding it in a vault slows some paths; it does not change the fact that a standing credential is, by definition, something that can be taken and reused.
AI tooling made the surface wider, not narrower. Leaks tied to AI-service credentials rose 81% in a year. Commits with AI assistance leak secrets at roughly double the human-only rate. And tens of thousands of secrets have shown up in MCP-style config files — the glue files agents use to call tools. An agent that can reach production usually needs credentials to do it; if those credentials are long-lived files sitting next to the agent, you've recreated the CI problem under a new name.
"Access" still has two shapes, and only one belongs on a runner. A standing credential is stored, long-lived, waiting — whether in a vault synced into the job, an environment variable, or a file on disk. An ephemeral identity leaves nothing between runs: the job proves who it is for that run, receives a scoped, time-limited grant, and the grant dissolves. On a feature list they both "let CI deploy." On a compromised runner, one is a pile of usable keys; the other has already expired.
I've written the structural fix before — no long-lived secret to leak, per-run identity, access recorded in a log you can't quietly edit. This piece is the complementary half: even if you believe your vault and scanners are good, the machine that gets owned is still the one holding the standing credentials. Vaults and scanners are useful. They don't move the target off the runner.
Don't skip the cost — this model isn't free, it's different.
Let me state my bias. At Ankayma we deploy our own services through per-run identity so the runner does not keep a long-lived deploy key — including dogfooding that path on our production pipelines. Be skeptical of how I weigh the trade-off. The narrow claim is still structural: if 59% of compromised machines are runners, and leaked credentials routinely outlive the incident, then "guard the secret harder on the hottest machine" is the wrong category of answer. The right category is nothing standing left to steal when the runner is owned.
So what should you actually ask? Run it forward. If our CI runner is compromised tonight — not a laptop, the runner — what standing credentials can an attacker lift, how long do they stay valid, and can we prove afterward which jobs touched production? If the answer depends on secrets that live on that machine between runs, you have a runner-as-credential-store problem. Fix it at the root, not with another layer of guarding.
I write about this because endpoint theater is easy and runner reality is where the numbers point — and because removing standing secrets from CI is a core part of what we're building at Ankayma. If you're weighing how to make a compromised runner boring instead of catastrophic, I'd like to hear your constraints, including the ones that make this approach look wrong.
Sources: GitGuardian State of Secrets Sprawl 2026 (28.65M secrets; AI-service +81%; AI-assisted commit leak rate; 64% of 2022-leaked credentials still valid early 2026; MCP config leaks); The Hacker News coverage of the same report (59% of compromised machines = CI/CD runners); Help Net Security summary (2026-03).
Luffy Bao is CTO at Ankayma, building zero-trust mesh infrastructure for regulated organizations in Southeast Asia and the Gulf. Questions or counterarguments? hello@ankayma.com