Cosa sono le sovrascritture non lineari / all'indietro?

6

Ho letto alcune diapositive della conferenza Black Hat USA 2012 e mi sono imbattuto nel termine non-­linear/backward overwrite , menzionato nella diapositiva 5 del Sfruttare miglioramenti della mitigazione in Windows 8 di Ken Johnson e Matt Miller, Microsoft Security Engineering Center (MSEC) (PDF) presentazione:

Attribuzione dell'immagine: Ken Johnson, Matt Miller, Microsoft Security Engineering Center (MSEC)

Secondo questa immagine, in Windows 7 non esiste ancora alcuna attenuazione per questo tipo di sovrascrittura.

Qualcuno ha idea di cosa sia questo non-­linear/backward overwrite e può darmi qualche informazione aggiuntiva su questa tecnica di sfruttamento?

    
posta user2252343 04.06.2013 - 23:04
fonte

1 risposta

5

Prima di tutto, una "sovrascrittura lineare" è il tipo più comune di overflow del buffer. Questo è l'esempio indicato nella diapositiva. Da dove, partendo da un indirizzo di base, si scrive in modo lineare e alla fine si sovrascrive l'indirizzo di ritorno:

void function(LPCSTR input){
    char buffer[256];
    strcpy(buffer, input);
}

Un esempio di sovrascrittura non lineare è questo exploit di controllo ActiveX di GroupWise scritto da rGod . Questo componente ActiveX ha una chiamata al metodo in cui uno dei parametri è un indirizzo di memoria, che consente a un utente malintenzionato di scrivere in una posizione arbitraria in memoria. Se l'indirizzo di ritorno era protetto da un canarino, l'attaccante poteva semplicemente puntare direttamente all'indirizzo di ritorno e sovrascriverlo senza corrompere il canarino. Dangling pointers può anche produrre una condizione in cui l'attaccante può controllare un indirizzo specifico in cui leggere, scrivere o eseguire una moda non lineare.

    
risposta data 05.06.2013 - 07:38
fonte

Leggi altre domande sui tag