Address Space Layout Randomization (ASLR) is a crucial defense mechanism employed by modern operating systems to mitigate exploits by randomizing the memory layout of processes. However, real-world implementations of ASLR are imperfect and subject to weaknesses that can be exploited by attackers. This thesis evaluates the effectiveness of ASLR on major desktop and mobile platforms, including Linux, MacOS, Windows, and Android. An analysis tool was developed to take samples of memory object addresses across multiple processes, threads, and system reboots; statistical analysis was performed on the sampled data to quantify the entropy, or randomness, of object placement; memory layouts were also analyzed to identify correlations between objects that could reduce overall entropy. The results show that while some systems like Linux distributions provide strong randomization, desktop platforms like Windows, MacOS and mobile platforms like Android often fail to adequately randomize key areas like executable code and libraries. Moreover, a major entropy reduction in the entropy of libraries after the Linux 5.18 version was discovered. Positive Correlation paths that an attacker could leverage to significantly reduce exploitation complexity were also identified. In the end, found weaknesses were ranked based on severity, and a proof-of-concept attack validated our entropy estimates. The findings provide insights into each platform’s resistance to memory exploitation techniques. They also highlight opportunities for OS vendors to strengthen ASLR implementations against these common vulnerabilities. Future work includes analyzing hardened and custom operating systems, quantifying the impacts of optimization techniques, and developing a profiling tool to analyze real-world executables.

L’Address Space Layout Randomization (ASLR) è un importante meccanismo di difesa impiegato dai moderni sistemi operativi per mitigare la possibilità di exploit randomizzando la disposizione della memoria dei processi. Tuttavia, le implementazioni reali di ASLR sono imperfette e soggette a debolezze che possono essere sfruttate dagli aggressori. Questa tesi valuta l’efficacia dell’ASLR sulle principali piattaforme desktop e mobili: Linux, MacOS, Windows e Android. È stato sviluppato uno strumento di analisi per campionare indirizzi di oggetti in memoria attraverso più processi, thread e riavvii del sistema. I dati campionati sono stati analizzati statisticamente per quantificare l’entropia, o randomicità, del posizionamento degli oggetti. Sono stati analizzati anche i layout di memoria per identificare le correlazioni tra gli oggetti che potrebbero contribuire a ridurre l’entropia complessiva. I risultati mostrano che, mentre alcuni sistemi come le distribuzioni Linux generalmente forniscono una forte randomizzazione, le piattaforme desktop come Windows e MacOS, e le piattaforme mobili come Android spesso non riescono a randomizzare adeguatamente aree chiave come il codice eseguibile e le librerie. Inoltre, è stata scoperta un’importante riduzione dell’entropia delle librerie dopo la versione 5.18 di Linux. Sono stati identificati anche percorsi di correlazione positiva che un aggressore potrebbe sfruttare per ridurre significativamente la complessità di attacco. Alla fine, le debolezze trovate sono state classificate in base alla gravità e un attacco proof-of-concept ha convalidato le nostre stime riguardo l’entropia. I risultati forniscono indicazioni sulla resistenza di ciascuna piattaforma alle tecniche di attacco. Inoltre, evidenziano le opportunità per i produttori di sistemi operativi di rafforzare le implementazioni ASLR contro queste vulnerabilità comuni. Il lavoro futuro prevede l’analisi di sistemi operativi rinforzati dal punto di vista della sicurezza, la quantificazione dell’impatto delle tecniche di ottimizzazione delle prestazioni e lo sviluppo di uno strumento di profiling per analizzare gli eseguibili del mondo reale.

The illusion of randomness: demystifying the entropy of ASLR on common operating systems

Barzasi, Gregorio
2022/2023

Abstract

Address Space Layout Randomization (ASLR) is a crucial defense mechanism employed by modern operating systems to mitigate exploits by randomizing the memory layout of processes. However, real-world implementations of ASLR are imperfect and subject to weaknesses that can be exploited by attackers. This thesis evaluates the effectiveness of ASLR on major desktop and mobile platforms, including Linux, MacOS, Windows, and Android. An analysis tool was developed to take samples of memory object addresses across multiple processes, threads, and system reboots; statistical analysis was performed on the sampled data to quantify the entropy, or randomness, of object placement; memory layouts were also analyzed to identify correlations between objects that could reduce overall entropy. The results show that while some systems like Linux distributions provide strong randomization, desktop platforms like Windows, MacOS and mobile platforms like Android often fail to adequately randomize key areas like executable code and libraries. Moreover, a major entropy reduction in the entropy of libraries after the Linux 5.18 version was discovered. Positive Correlation paths that an attacker could leverage to significantly reduce exploitation complexity were also identified. In the end, found weaknesses were ranked based on severity, and a proof-of-concept attack validated our entropy estimates. The findings provide insights into each platform’s resistance to memory exploitation techniques. They also highlight opportunities for OS vendors to strengthen ASLR implementations against these common vulnerabilities. Future work includes analyzing hardened and custom operating systems, quantifying the impacts of optimization techniques, and developing a profiling tool to analyze real-world executables.
BINOSI, LORENZO
ING - Scuola di Ingegneria Industriale e dell'Informazione
5-ott-2023
2022/2023
L’Address Space Layout Randomization (ASLR) è un importante meccanismo di difesa impiegato dai moderni sistemi operativi per mitigare la possibilità di exploit randomizzando la disposizione della memoria dei processi. Tuttavia, le implementazioni reali di ASLR sono imperfette e soggette a debolezze che possono essere sfruttate dagli aggressori. Questa tesi valuta l’efficacia dell’ASLR sulle principali piattaforme desktop e mobili: Linux, MacOS, Windows e Android. È stato sviluppato uno strumento di analisi per campionare indirizzi di oggetti in memoria attraverso più processi, thread e riavvii del sistema. I dati campionati sono stati analizzati statisticamente per quantificare l’entropia, o randomicità, del posizionamento degli oggetti. Sono stati analizzati anche i layout di memoria per identificare le correlazioni tra gli oggetti che potrebbero contribuire a ridurre l’entropia complessiva. I risultati mostrano che, mentre alcuni sistemi come le distribuzioni Linux generalmente forniscono una forte randomizzazione, le piattaforme desktop come Windows e MacOS, e le piattaforme mobili come Android spesso non riescono a randomizzare adeguatamente aree chiave come il codice eseguibile e le librerie. Inoltre, è stata scoperta un’importante riduzione dell’entropia delle librerie dopo la versione 5.18 di Linux. Sono stati identificati anche percorsi di correlazione positiva che un aggressore potrebbe sfruttare per ridurre significativamente la complessità di attacco. Alla fine, le debolezze trovate sono state classificate in base alla gravità e un attacco proof-of-concept ha convalidato le nostre stime riguardo l’entropia. I risultati forniscono indicazioni sulla resistenza di ciascuna piattaforma alle tecniche di attacco. Inoltre, evidenziano le opportunità per i produttori di sistemi operativi di rafforzare le implementazioni ASLR contro queste vulnerabilità comuni. Il lavoro futuro prevede l’analisi di sistemi operativi rinforzati dal punto di vista della sicurezza, la quantificazione dell’impatto delle tecniche di ottimizzazione delle prestazioni e lo sviluppo di uno strumento di profiling per analizzare gli eseguibili del mondo reale.
File allegati
File Dimensione Formato  
ThesisGB_The_Illusion_of_Randomness.pdf

accessibile in internet per tutti

Dimensione 39.58 MB
Formato Adobe PDF
39.58 MB Adobe PDF Visualizza/Apri
Executive_summary_The_Illusion_of_Randomness.pdf

accessibile in internet per tutti

Dimensione 325.09 kB
Formato Adobe PDF
325.09 kB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/210782