Blast radius
A Socratic walk-through of blast radius — reasoned out one step at a time, not lectured.
The question we started with
THE QUESTION #Why is the important question about a compromised credential not what it unlocks but how far it reaches?
Two credentials leak. The first is an administrator key — full powers — for a throwaway namespace that holds one test database and expires in an hour. The second is a read-only token, the humblest thing on the list, but it is the same token in every environment, it never expires, and one of the things it can read is the store where other services keep their own keys.
Which leak is worse? The instinct trained into us by permission lists says the first, because administrator is the bigger word. Yet almost everyone who has handled a real incident says the second. If the permission label is the wrong guide, what is the right one?
Reasoning it through
REASONING #Start by asking what a permission list actually describes. It describes one hop: the set of operations this credential may perform on the resources it names. That is a genuine fact, and it is also where the analysis usually stops.
But an attacker does not stop there. Having reached a resource, they ask what that resource can reach. A machine you can run code on holds its own environment variables, its own service account, its own network position. So the real quantity is not the permission set but its transitive closure — everything reachable by following credentials found along the way. That movement is called lateral movement, and it is why a modest foothold becomes an incident.
Notice that the closure depends on facts nowhere in the permission list. Whether the reachable machine happens to store another key. Whether the network lets it talk to the payment service. Whether staging and production share an identity provider. None of that appears in the grant, and all of it determines the reach.
Now add a second dimension people often forget. A credential has a lifetime, and lifetime multiplies reach in time. A leaked token valid for five minutes reaches only what an attacker can touch in five minutes — and if the attacker found it in an archived log a year later, it reaches nothing at all. The same permissions on a token that never expires reach every state the system passes through for as long as it exists. This is why short-lived credentials are so disproportionately effective: they do not reduce what a credential can do, only how long the doing lasts, and that turns out to be most of the exposure.
There is a third dimension, and it is the one that made the read-only token worse than the administrator key: breadth of identical deployment. A secret that is the same in three environments has three times the chance of leaking and, once leaked, reaches all three. A secret unique per environment reaches one. The permission set is unchanged in both cases.
So put the three together and you have something better than a label. Reach is roughly: what this credential touches directly, times what those things can reach onward, times how long the credential stays valid, times how many places share it. Any of those factors being large makes the others matter less. That is what makes blast radius the right question — it is a product, and a permission list only tells you one term of it.
Does this mean least privilege is wrong? Not at all — but it explains why least privilege alone underperforms expectations. Trimming permissions shrinks one factor. Segmentation shrinks the second, expiry the third, per-environment secrets the fourth. Teams that only do the first are optimising the term that is easiest to see.
One more move, because it matters for automated systems in particular. An assistant acting on your behalf typically holds a credential for the span of a task it plans itself. The reach question there is not "what did we authorise" but "what is reachable from what we authorised, over a task whose steps we never enumerated". That is why scoping such credentials to one task, one resource and a short window does more for safety than tightening the verb list.
The analogy
THE ANALOGY #Think of a key given to a contractor. The question is not which door it opens but what stands behind that door. A key to a locked room with nothing in it is harmless whatever its grade. A key to the caretaker's cupboard opens a room whose only contents are other keys, and it is now, in effect, a key to the building. Now suppose the same key was cut for every site the firm operates, and never changed: one lost copy reaches all of them, for years.
a building's keys are physical and finite, so an audit can enumerate them, whereas the onward credentials reachable in a software system are created and moved constantly, and the closure you measured on Tuesday is not the one you have on Friday.
Clarifying the model
THE MODEL #Three refinements.
The first is that read-only is not a synonym for safe. Reading is how an attacker discovers everything else, and many stored secrets are readable objects: environment files, configuration stores, backups, logs that captured a header they should not have. A read-only credential over a secret store has a radius limited only by what those secrets unlock.
The second is that revocation belongs in the calculation. Reach ends when the credential stops working, so the practical question is not only how long the token is valid but how long it takes you to notice and how long to rotate. A credential you can kill in seconds has a smaller radius than an identical one embedded in a firmware image, even though their permissions match exactly. Detection latency is part of the radius, uncomfortable as that is to measure.
The third is a caution about the metaphor. A blast radius is a circle around a point, suggesting reach falls off smoothly with distance. It does not. Reach in a network is graph-shaped and lumpy: two hops through an ordinary service may lead nowhere, while one hop into an identity provider leads everywhere. Look for the hubs, not the distance.
A picture of it
THE PICTURE #How to readread the crow's feet as multiplication. One credential carries many grants, each naming a resource, and each resource may store secrets that become credentials — that loop back to the credential entity is the whole point, because it is what turns one hop into a closure. The self-relationship on the resource is lateral movement. The two entities hanging off the credential are the only brakes: the audit trail that lets you notice, and the revocation that ends the reach, whose speed is therefore part of the radius.
What became clearer
WHAT CLEARED #A permission list answers one hop of a question that has many. Reach is the product of what a credential touches, what those things can touch onward, how long it stays valid, and how many places share it — so a low-privilege secret that is eternal, universal and one hop from a key store outruns an administrator key confined to an hour and a sandbox. Design against the product, not against the label.
Where to go next
ONWARD #- How audience-bound tokens close the confused-deputy path, where a legitimate service is persuaded to use its own credentials on an attacker's behalf.
- How to scope a credential to a single agent task when the steps of that task are not known in advance.
Key terms
TERMS #| Term | What it means |
|---|---|
| Blast radius | everything reachable as a consequence of one compromise, including what is reached indirectly. |
| Least privilege | granting only the permissions the task needs, which shrinks the first hop but not the closure. |
| Lateral movement | using access to one resource to obtain access to another, typically via credentials found there. |
| Transitive closure | the full set reachable by repeatedly following whatever access each step yields. |
| Audience binding | restricting a token so only one named service will accept it, preventing replay elsewhere. |
| Revocation latency | the time between compromise and the credential ceasing to work, which forms part of the reach. |
Every term the collection defines is gathered in the glossary.