Che cosa è Stack randomizzazione?

December 23

Sicurezza informatica diventa esoterico quando si tratta di vulnerabilità di sicurezza a livello hardware. Anche la struttura di esecuzione di base del computer è dotata di fori che gli hacker possono sfruttare. Gli ingegneri devono sviluppare continuamente le tecniche per aggirare gli attacchi degli hacker. Per affrontare gli exploit di manipolazione di memoria come buffer overrun, ingegneri sviluppati pila, o il layout spazio di indirizzamento, randomizzazione. Questa tecnica rende gli attacchi tradizionali e ripetibili meno efficace, e protegge i computer da falle di sicurezza di base.

The Call Stack

La struttura di dati generica definita come "stack" rappresenta una lista di base di elementi in cui ogni elemento aggiunto aggiunge alla fine della lista, e ogni elemento rimosso viene dalla fine della lista in un ultimo-in, primo ad uscire . Lo stack di chiamate di un programma in esecuzione funzioni molto nello stesso modo. Invece di semplici elementi di dati, tuttavia, lo stack di chiamate organizza riferimenti in memoria per l'esecuzione di funzioni del programma.

BUFFER PIENO e vulnerabilità della memoria

Uno degli svantaggi di usare la struttura dati pila per pianificare programmi è relativo a come è organizzato memoria. Mentre ogni funzione in esecuzione in un programma si siede nello stack di chiamate, spesso siedono fianco a fianco nella memoria fisica. Pertanto, se un utente malintenzionato sorpassa un buffer variabile fornendo troppi dati per una struttura di dati da gestire, per esempio, allora l'informazione supplementare può sovrascrivere dati adiacenti locazioni di memoria fisica, che interessano il flusso di esecuzione del programma.

Stack randomizzazione

Per affrontare i problemi di sicurezza, gli ingegneri hanno sviluppato una tecnica di allocazione di memoria noto come stack di randomizzazione, o ASLR. Tipicamente, la memoria viene allocata in sequenza durante l'esecuzione del programma. Quando un programma viene avviato, si dividono il successivo spazio di memoria disponibile nella memoria. Quando si utilizza pila randomizzazione, il computer determina una posizione pseudo-casuale basato su un predeterminato scostamento. I puntatori telaio nello stack sono posti da questa compensati pure. L'offset viene determinato in fase di avvio dal sistema operativo.

Pila randomizzazione e sicurezza

A causa della randomizzazione pila, dati di programma non risiede interamente consecutivamente nella memoria del sistema. Questo presenta un problema per gli hacker che tentano di usare un attacco come un sovraccarico del buffer. Mentre si può verificare un sovraccarico del buffer, gli effetti non possono essere predeterminate. Prima pila randomizzazione, se un hacker conosceva la quantità di dati da utilizzare in un sovraccarico del buffer, avrebbe potuto utilizzare lo stesso exploit sullo stesso programma, più volte. Con randomizzazione, nessun attacco di buffer è garantito il successo tra ogni istanza in esecuzione di un programma, anche sullo stesso computer.