Sicurezza informatica diventa esoterico quando si tratta di vulnerabilità di sicurezza a livello hardware . Anche la struttura di esecuzione di base dei computer è dotata di fori che gli hacker possono sfruttare. Gli ingegneri devono sviluppare continuamente le tecniche per eludere gli attacchi degli hacker . Per affrontare la manipolazione della memoria sfrutta come buffer overrun , ingegneri pila sviluppato o indirizzo layout dello spazio , la randomizzazione . Questa tecnica rende gli attacchi tradizionali e ripetibili meno efficace , e protegge i computer da falle di sicurezza di base . Stack di chiamate
La struttura di dati generica definita come una "pila " rappresenta un elenco di base di elementi in cui aggiunge ogni elemento aggiunto alla fine della lista , e ogni elemento viene rimosso dalla fine della lista in un last-in , first-out ordine . Lo stack di chiamate di un programma in esecuzione funzioni di molto nello stesso modo. Invece di elementi di dati semplici , tuttavia , lo stack di chiamate organizza riferimenti nella memoria per funzioni nel programma in esecuzione .
Sovraccarichi del buffer e la vulnerabilità di memoria
Uno degli svantaggi di utilizzando la struttura dati stack per organizzare i programmi è legato al modo in cui viene organizzata la memoria . Mentre ogni funzione in esecuzione in un programma si siede nello stack di chiamate , che spesso siedono fianco a fianco in memoria fisica . Di conseguenza, se il superamento di un attaccante un tampone variabile , fornendo dati troppo per una struttura di dati per gestire , ad esempio , le informazioni supplementari può sovrascrivere i dati in locazioni di memoria adiacenti fisiche , che colpisce il flusso di esecuzione del programma.
pila randomizzazione
Per affrontare i problemi di sicurezza , gli ingegneri hanno sviluppato una tecnica di allocazione di memoria noto come stack di randomizzazione , o ASLR . In genere , la memoria viene allocata in sequenza durante l' esecuzione del programma. Quando un programma viene avviato , viene allocato il successivo spazio di memoria disponibile nella memoria . Quando si utilizza pila randomizzazione , il computer determina una posizione pseudo - casuale basato su un predeterminato offset. I puntatori ai frame nello stack sono posti da questo offset pure. L'offset viene determinato al momento del boot del sistema operativo .
Pila randomizzazione e Sicurezza
causa della pila randomizzazione , i dati del programma non risiede interamente consecutivamente nella memoria del sistema . Questo presenta un problema per gli hacker che tentano di utilizzare un attacco come un sovraccarico del buffer . Mentre si può verificare un sovraccarico del buffer , gli effetti non possono essere predeterminati . Prima della randomizzazione dello stack , se un hacker sapeva quanto i dati da utilizzare in un sovraccarico del buffer , che poteva 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 .