A schedule is a signature
Rotating on a timer feels like defense. To an attacker who is paying attention, it is a timetable.
Moving-target defense starts from a good idea: if the ground keeps shifting, whatever an attacker learns about it goes stale. The most common way to shift the ground is a clock. Every few minutes, rotate something.
The rhythm leaks
A clock is regular by design, and regularity is information. An attacker who watches a few rotations learns the interval. From then on they work in the gaps: settle in just after a rotation, finish before the next one, and never be where the timer is about to strike.
In our benchmark the blind timer was the only defender rated as learnable by an adaptive attacker. It also took about 15.2 seconds to evict a zero-day foothold, nearly three times as long as Phorvex, because it has no idea where the attacker is. It simply waits for its turn.
A timer cannot see what it breaks
The second problem is quieter. A timer treats every workload the same. It will rotate a database or a training job as readily as a stateless pod, and rotating those means deleting their state. In the benchmark the timer preserved zero of twenty stateful jobs.
A defense that destroys the work it protects will eventually be switched off by the people it protects.
No schedule to learn
Phorvex does not rotate on a clock. It reads the live state of the fleet on every tick and moves only the workloads that cut an attacker off, at the moment it matters. Because nothing about that follows a timetable, there is no rhythm to learn and no gap to hide in. Decoys do not help either: bait cannot trick it into wasted moves.
How it makes that choice is the part we keep to ourselves. What we publish is what it does, and what it did on a real cluster.
Not learnable by an adaptive attacker, ~5.5 s eviction, 20 / 20 stateful jobs preserved, on a real Kubernetes cluster, n=20.
Get the next one when it lands.
No schedule. We write when there is something proven to say.