Perché le contromisure contro gli attacchi di dirottamento del flusso di controllo sono implementate principalmente nel software?

4

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?

    
posta user3171258 30.05.2014 - 05:47
fonte

1 risposta

4

Le regioni di memoria non eseguibili sono un esempio di contromisura basata su hardware: la non eseguibilità della memoria viene applicata dalla memoria memoria unità di gestione . La protezione da overflow dell'heap può anche essere implementata a livello hardware (collocando pagine di memoria non leggibili alle estremità di un'allocazione dell'heap), ma di solito non lo è, perché riduce notevolmente lo spazio di indirizzi disponibile e funziona solo per le allocazioni che sono un multiplo esatto della dimensione della pagina.

La maggior parte delle contromisure sono implementate a livello di software perché i concetti che coinvolgono (come il layout dello spazio degli indirizzi) esistono solo a livello di software.

    
risposta data 30.05.2014 - 06:38
fonte

Leggi altre domande sui tag