La Randomizzazione dello spazio degli indirizzi (ASLR) è una tecnica di sicurezza utilizzata nei sistemi operativi, implementata per la prima volta nel 2001. Le versioni correnti di tutti i principali sistemi operativi (iOS, Android, Windows, macOS e Linux) sono dotati di protezione ASLR. Ma nella settimana scorsa è stato trovato un nuovo metodo per aggirare l'ASLR. Quindi, dovresti essere preoccupato?
Per coloro che non hanno un background di programmazione di basso livello, ASLR può essere fonte di confusione. Per capirlo, devi prima capire la memoria virtuale.
La memoria virtuale è una tecnica di gestione della memoria con molti vantaggi, ma è stata creata principalmente per semplificare la programmazione. Immagina di avere Google Chrome, Microsoft Word e molti altri programmi aperti su un computer con 4 GB di RAM. Nel complesso, i programmi su questo computer utilizzano molto più di 4 GB di RAM. Tuttavia, non tutti i programmi saranno sempre attivi o necessitano dell'accesso simultaneo a tale RAM.
Il sistema operativo assegna blocchi di memoria ai programmi denominati pagine . Se non c'è abbastanza RAM per archiviare tutte le pagine contemporaneamente, le pagine meno probabili saranno memorizzate nel disco rigido più lento (ma più spazioso). Quando sono necessarie le pagine memorizzate, cambieranno spazi con meno pagine necessarie attualmente nella RAM. Questo processo è chiamato paginazione e presta il nome al file pagefile.sys su Windows.
La memoria virtuale semplifica la gestione della memoria da parte dei programmi e li rende anche più sicuri. I programmi non devono preoccuparsi di dove altri programmi stanno memorizzando i dati, o quanta RAM è rimasta. Possono solo chiedere al sistema operativo memoria aggiuntiva (o restituire memoria non utilizzata) secondo necessità. Tutto ciò che il programma vede è un singolo blocco continuo di indirizzi di memoria per il suo uso esclusivo, chiamato indirizzi virtuali. Il programma non è autorizzato a guardare la memoria di un altro programma.
Quando un programma ha bisogno di accedere alla memoria, fornisce al sistema operativo un indirizzo virtuale. Il sistema operativo contatta l'unità di gestione della memoria (MMU) della CPU. La MMU traduce tra indirizzi virtuali e fisici, restituendo tali informazioni al sistema operativo. Il programma non interagisce direttamente con la RAM.
La Randomizzazione dello spazio degli indirizzi (ASLR) è utilizzata principalmente per proteggere dagli attacchi di overflow del buffer. In un overflow del buffer, gli hacker alimentano una funzione quanti più dati spazzatura possono gestire, seguiti da un carico utile dannoso. Il payload sovrascriverà i dati a cui il programma intende accedere. Le istruzioni per passare a un altro punto nel codice sono un carico utile comune. Il famoso metodo JailbreakMe per il jailbreak di iOS 4, ad esempio, ha utilizzato un attacco di overflow del buffer, suggerendo ad Apple di aggiungere ASLR a iOS 4.3.
I buffer overflow richiedono a un utente malintenzionato di sapere dove si trova ogni parte del programma in memoria. Capirlo è solitamente un processo difficile di tentativi ed errori. Dopo averlo determinato, devono creare un carico utile e trovare un posto adatto per iniettarlo. Se l'attaccante non sa dove si trova il suo codice obiettivo, può essere difficile o impossibile sfruttarlo.
ASLR lavora insieme alla gestione della memoria virtuale per randomizzare le posizioni di diverse parti del programma in memoria. Ogni volta che si esegue il programma, i componenti (incluso lo stack, l'heap e le librerie) vengono spostati in un indirizzo diverso nella memoria virtuale. Gli attaccanti non possono più sapere dove si trova il loro obiettivo attraverso tentativi ed errori, perché l'indirizzo sarà diverso ogni volta. Generalmente, le applicazioni devono essere compilate con il supporto ASLR, ma questo sta diventando di default ed è richiesto anche su Android 5.0 e versioni successive.
Martedì scorso, i ricercatori di SUNY Binghamton e University della California, Riverside, ha presentato un documento intitolato Jump Over ASLR: Attaccare i predittori di ramo per bypassare ASLR. La carta descrive in dettaglio come attaccare il Branch Target Buffer (BTB). Il BTB fa parte del processore che accelera se le affermazioni prevedono il risultato. Utilizzando il metodo degli autori, è possibile determinare le posizioni delle istruzioni di ramo conosciute in un programma in esecuzione. L'attacco in questione è stato eseguito su una macchina Linux con un processore Intel Haswell (rilasciato per la prima volta nel 2013), ma potrebbe probabilmente essere applicato a qualsiasi sistema operativo e processore moderni.
Detto questo, non dovresti necessariamente disperare. Il documento ha offerto alcuni modi in cui gli sviluppatori di hardware e sistema operativo possono mitigare questa minaccia. Le tecniche ASLR più recenti e a grana fine richiederebbero un maggiore sforzo da parte dell'attaccante, e l'aumento della quantità di entropia (casualità) può rendere l'attacco Jump Over non fattibile. Molto probabilmente, i nuovi sistemi operativi e processori saranno immuni da questo attacco.
Quindi cosa è rimasto da fare per? Il bypass Jump Over è nuovo e non è ancora stato individuato in natura. Quando gli aggressori lo sfruttano, il difetto aumenta il danno potenziale che un utente malintenzionato può causare sul tuo dispositivo. Questo livello di accesso non è senza precedenti; Microsoft e Apple hanno implementato solo ASLR nei loro sistemi operativi pubblicati nel 2007 e successivi. Anche se questo tipo di attacco diventa un luogo comune, non ti sentirai in condizioni peggiori di quanto non lo fossi al tempo di Windows XP.
Ricorda che gli hacker devono ancora ottenere il loro codice sul dispositivo per fare del male. Questo difetto non fornisce loro ulteriori modi per infettarti. Come sempre, dovresti seguire le migliori pratiche di sicurezza. Usa l'antivirus, stai lontano dai siti Web e dai programmi abbozzati e mantieni aggiornato il tuo software. Seguendo questi passaggi e mantenendo gli attori malvagi dal tuo computer, sarai al sicuro come non mai.
Image Credit: Steve / Flickr
Cosa è BCC e perché sei una persona terribile Se non lo usi
Poche amenità nel moderno flusso di lavoro digitale sono così ampiamente disponibili ma così ampiamente ignorate (o completamente abusate ) come la funzione email BCC. Se sei colpevole di abuso o trascuratezza (e c'è una buona possibilità che tu sia), è tempo di pentirsi e, nel processo, ridurre lo spam e proteggere la privacy dei tuoi amici e familiari.
Perché il mio browser memorizza così tanti dati privati?
Tra la cronologia del browser e i cookie di tracciamento, è facile avere la sensazione che il tuo browser stia tracciando e spiando te. Ma i browser web memorizzano questi dati privati per buone ragioni. Ti abbiamo mostrato come fare in modo che il tuo browser cancelli i dati privati ogni volta che si chiude o inizia sempre in modalità di navigazione privata.