Mi chiedo perché le contromisure contro gli attacchi di code-injection e control-flow hijacking (ad esempio overflow del buffer basati su stack e overflow del buffer basati su heap) siano principalmente implementate nel software.
Esempi di contromisure popolari e ampiamente dispiegate sono:
- ASLR
- Stack canaries
- Regioni di memoria non eseguibili
Ma perché esattamente queste contromisure non sono completamente implementate nell'hardware, o almeno supportate dall'hardware? Poiché oggigiorno l'hardware riconfigurabile (ad esempio FPGA) è conveniente, questo approccio mi sembra perfettamente possibile.
O esistono contromisure basate sull'hardware? E se sì, qualcuno può darmi qualche esempio?