For example, encryption at rest or in transit essentially eliminates attack vectors. The possible attack avenues necessarily shift as a result, but only because an avenue was blocked.
That's very different from e.g. adding a layer of protection around something insecure, where the insecure thing remains insecure inside the protection, which I think is what the other commenter was imagining.
Similarly, memory safe languages (including most GC languages, not just a certain language beginning with R) eliminate entire classes of security hole. Again, the possible attack vectors necessarily "shift", but that doesn't capture the fact that you've entirely eliminated a class of attacks.
The same goes for eliminating unnecessary services, firewall holes, etc.
None of these are specifically trying to "shift it to something to something that is more difficult to compromise." They're entirely blocking attack vectors, and the strength or weakness of other parts of the system aren't really a factor.
"Shift" in this context means that the attacker has to use a different attack vector. They can no longer just access plain text.
So you’re saying that the attack vector has… shifted.
In English, the word "the" in "the attack vector has shifted" is a definite article that refers to a single attack vector.
If your car breaks down and you switch to using a different car, would you say "the car has shifted"?
Speaking loosely, one might use "the attack vector has shifted" to mean something like "the possible attack vectors have changed", but that kind of looseness is misleading in an absolute claim like the one I originally responded to, about "all security measures". In fact, it would be more accurate to say that no security measures "shift the attack vector".
A vector here is the attack angle/direction. Of course I can shift my direction and then target another car.