Utilizzo dell'architettura del set di istruzioni (ISA) per interrompere lo stack overflow

5

Ho imparato a usare gli overflow dello stack per ottenere un'esecuzione arbitraria del codice, uno dei trucchi usati è la sovrascrittura dell'indirizzo di ritorno per far sì che il flusso di controllo vada nel modo desiderato. Supponendo che il nostro sistema abbia un bit NX.

What if we made the CPU instruction set require a "landing pad" instruction for any location that it ret or jmps to?

L'idea è che un programma terminerebbe con qualche tipo di errore se salta su un'istruzione di atterraggio non di atterraggio.

Questo fermerebbe la possibilità di creare gadget ROP? Pensi che questo ISA sarebbe molto più sicuro? L'idea è stata provata in passato?

    
posta rain1 07.05.2017 - 16:47
fonte

0 risposte