Programmazione orientata al ritorno
La programmazione orientata al ritorno (Return-oriented Programming, ROP) è un tipico attacco di riutilizzo del codice in cui l’autore di un attacco indirizza il flusso di controllo attraverso il codice esistente con un risultato dannoso. L’attacco ROP rappresenta una versione avanzata di un attacco stack-smashing. Un sovraccarico del buffer dello stack si verifica quando un programma effettua la scrittura su un indirizzo di memoria sullo stack di chiamate del programma fuori dalla struttura di dati prevista, generalmente con un buffer a lunghezza fissa.
La programmazione ROP è una tecnica di exploit che consente l’esecuzione del codice sul sistema di destinazione. Ottenuto il controllo dello stack di chiamate, l’autore dell’attacco controlla il flusso del software attendibile esistente in esecuzione sul computer e lo manipola per eseguire un’attività diversa da quella prevista.