in che modo ASLR impedisce il ritorno a libc / ROP e attacchi simili?

3

Sto cercando di capire ASLR e come è implementato. Capisco che in realtà non "prevenga" l'overflow del buffer ecc., Lo renderà solo più difficile. Ma non sono in grado di capire come impedire un ritorno all'attacco di libc. Ad esempio, diciamo che ho un programma che ha un buffer overflow. Dò come input una slitta np-op seguita dal codice shell. Il codice shell sovrascrive l'indirizzo di ritorno nello stack frame. Quindi, quando la funzione ritorna, eseguirà il codice shell. Simile se scrivo l'indirizzo di una funzione di libc che la funzione verrà invocata. ora con ASLR, su ogni programma eseguito il programma partirà con qualche indirizzo casuale giusto? ma le funzioni di libc sono ancora allo stesso indirizzo e se sono corretto non cambierà fino a quando non riavvio una macchina. Quindi, se fondamentalmente provo a forzare un programma vulnerabile con tutti gli indirizzi possibili, posso ancora ottenere un ritorno a libc? inoltre, non previene (e come?) dagli attacchi ROP? se no quali sono le difese?

    
posta user775093 04.04.2015 - 04:29
fonte

1 risposta

4

brute force a vulnerable program with all possible addresses

Provare a forzare lo spazio degli indirizzi (ci sono 2 ^ 64 possibili indirizzi in un moderno sistema a 64 bit) dovrebbe essere praticamente impossibile a causa dei vincoli di tempo (e risorse). Vedi anche: Qual è il più grande eseguito / possibile attacco bruteforce fino ad oggi?

Su una nota più pratica, se indovini l'indirizzo sbagliato c'è una grande possibilità che il programma si arresti in modo anomalo a causa di un errore di segmentazione. Poiché la forzatura bruta di un indirizzo a 64 bit può richiedere molto tempo, questi arresti anomali possono essere rilevati.

Pertanto, trovando gli indirizzi dello shellcode nello stack, le funzioni della libreria (nel caso di return-to-libc) o dei gadget (nel caso di ROP) è troppo difficile per l'attacker.

Naturalmente, ci sono altri modi per aggirare l'ASLR. Cerca in Pointer Leaks e attacchi con layout di memoria come heapspray se sei interessato.

    
risposta data 27.12.2016 - 14:16
fonte

Leggi altre domande sui tag