In every computer system, bugs and vulnerabilities have always been cause of many security problems and malfunctioning. The size and the number of people that design and build these systems are growing and with them also the probability that mistakes are accidentally inserted. Privilege escalation is one of the most well known problems correlated with bugs and vulnerabilities where an attacker, exploiting a privileged software, is able to execute functionalities that belong to privilege levels higher than his/her user profile. Several works in this area try to either prevent or defeat privilege escalation in computer systems. Most of them work on the specific privilege separation inside the O.S., trying to avoid that the exploitation of a privileged software brings an attacker to gain administrative privilege level that will allow the attacker to have the machine control. However, a recent work shows that not only operating systems are suitable for privilege escalation but also multi-user logic application could suffer from this issue. It shows how a user could access functionalities of other users' profiles exploiting the new GEM vulnerabilities class. In this work, I present a new security mechanism that applies privilege separation to multi-user logic application to defeat privilege escalation and data leak. PRIVMUL, the system I present, provides a new mechanism to write or adapt this kind of application. PRIVMUL links the application to the operating system, through new provided APIs, that guarantee the safe execution of every operation. The approach I propose protects the code and data of other profiles from unauthorized access by the current profile that is running the application. To achieve this protection PRIVMUL temporarly removes all the access rights on the memory pages to profiles that are different from the current one. It also aims to protect dynamic data providing a chunk based tracker along with the support of the operating system. PRIVMUL, to be flexible, supports a runtime profile switch through an authentication mechanism. The experimental results show that this approach introduces an acceptable overhead that does not impact the overall usability of the protected application.

In ogni sistema informatico, bug e vulnerabilità sono da sempre causa di problemi di sicurezza e di malfunzionamenti. Con la complessità sempre crescente del software aumenta in proporzione anche il numero di problemi riscontrati. Tra i principali effetti collaterali che bug e vulnerabilità possono portare la privilege escalation ha un ruolo sicuramente primario, poichè permette ad un aggressore di sfruttare delle vulnerabilità per eseguire operazioni afferenti a livelli di privilegio più elevati di quelli dell'utente di base, ad esempio. Molte soluzioni sono state proposte sia per eradicare il problema sia per identificare e bloccare gli attacchi, ovvero i tentativi di sfruttare le suddette vulnerabilità. Tutti i lavori presentati si concentrano sul problema di privilege escalation di un attaccante a livello di sistema operativo, ossia l'evitare che un aggressore riesca, sfruttando vulnerabilità a programmi privilegiati, nell'acquisizione di diritti di amministrazione che gli permetterebbero di prendere il controllo della macchina. È stato inoltre dimostrato che non solo i sistemi operativi sono affetti da questo problema ma anche applicazioni con una logica multiutente, cioè applicazioni che mostrano, in funzione della tipologia di utente, solo una sotto parte delle funzionalità di tutta l'applicazione. Il mio lavoro propone un meccanismo di privilege separation contro questi tipi di attacco a supporto di applicazioni con logica multiutente. Il mio sistema, PRIVMUL, propone un nuovo modo per scrivere o adattare questo tipo di applicazioni e ne garantisce un'esecuzione sicura, con lo scopo di proteggere funzionalità e dati appartenenti a profili diversi dal profilo che sta eseguendo l'applicazione. PRIVMUL integra applicazioni, scritte utilizzando le API messe a disposizione, con il sistema operativo che ne garantisce un'esecuzione sicura. PRIVMUL annulla i privilegi di accesso delle pagine di memoria ai profili diversi da quello che sta eseguendo l'applicazione. Per fare ciò ho creato un meccanismo che permette allo sviluppatore di specificare dei profili utente al momento della compilazione dell'applicazione. PRIVMUL inoltre si propone di proteggere da possibili leak di dati sempre a causa di vulnerabilità presenti nell'applicazione. Per eliminare questa possibilità PRIVMUL traccia ogni dato creato e distrutto all'interno dell'applicazione ne impedisce l'accesso non autorizzato. PRIVMUL, per essere flessibile, supporta il cambio di profilo durante l'esecuzione attraverso un meccanismo di autenticazione. I risultati sperimentali indicano che l'aumento del tempo di esecuzione introdotto dal meccanismo di autenticazione di PRIVMUL non compromette l'usabilità dell'applicazione. I test di tracciamento delle allocazioni presentano invece un aumento consistente del tempo di esecuzione se il numero di allocazioni dinamiche è elevato. Ad ogni modo, considerando il tipo di applicazione per cui PRIVMUL è stato disegnato, e cioè applicazioni con una grossa interazione con l'utente,l'aumento del tempo di esecuzione rimane trascurabile se comparato con il tempo operativo dell'utente.

PRIVMUL : PRIVilege separation for Multi-user Logic applications

MAMBRETTI, ANDREA
2013/2014

Abstract

In every computer system, bugs and vulnerabilities have always been cause of many security problems and malfunctioning. The size and the number of people that design and build these systems are growing and with them also the probability that mistakes are accidentally inserted. Privilege escalation is one of the most well known problems correlated with bugs and vulnerabilities where an attacker, exploiting a privileged software, is able to execute functionalities that belong to privilege levels higher than his/her user profile. Several works in this area try to either prevent or defeat privilege escalation in computer systems. Most of them work on the specific privilege separation inside the O.S., trying to avoid that the exploitation of a privileged software brings an attacker to gain administrative privilege level that will allow the attacker to have the machine control. However, a recent work shows that not only operating systems are suitable for privilege escalation but also multi-user logic application could suffer from this issue. It shows how a user could access functionalities of other users' profiles exploiting the new GEM vulnerabilities class. In this work, I present a new security mechanism that applies privilege separation to multi-user logic application to defeat privilege escalation and data leak. PRIVMUL, the system I present, provides a new mechanism to write or adapt this kind of application. PRIVMUL links the application to the operating system, through new provided APIs, that guarantee the safe execution of every operation. The approach I propose protects the code and data of other profiles from unauthorized access by the current profile that is running the application. To achieve this protection PRIVMUL temporarly removes all the access rights on the memory pages to profiles that are different from the current one. It also aims to protect dynamic data providing a chunk based tracker along with the support of the operating system. PRIVMUL, to be flexible, supports a runtime profile switch through an authentication mechanism. The experimental results show that this approach introduces an acceptable overhead that does not impact the overall usability of the protected application.
ROBERTSON, WILLIAM
ZANERO, STEFANO
ING - Scuola di Ingegneria Industriale e dell'Informazione
18-dic-2014
2013/2014
In ogni sistema informatico, bug e vulnerabilità sono da sempre causa di problemi di sicurezza e di malfunzionamenti. Con la complessità sempre crescente del software aumenta in proporzione anche il numero di problemi riscontrati. Tra i principali effetti collaterali che bug e vulnerabilità possono portare la privilege escalation ha un ruolo sicuramente primario, poichè permette ad un aggressore di sfruttare delle vulnerabilità per eseguire operazioni afferenti a livelli di privilegio più elevati di quelli dell'utente di base, ad esempio. Molte soluzioni sono state proposte sia per eradicare il problema sia per identificare e bloccare gli attacchi, ovvero i tentativi di sfruttare le suddette vulnerabilità. Tutti i lavori presentati si concentrano sul problema di privilege escalation di un attaccante a livello di sistema operativo, ossia l'evitare che un aggressore riesca, sfruttando vulnerabilità a programmi privilegiati, nell'acquisizione di diritti di amministrazione che gli permetterebbero di prendere il controllo della macchina. È stato inoltre dimostrato che non solo i sistemi operativi sono affetti da questo problema ma anche applicazioni con una logica multiutente, cioè applicazioni che mostrano, in funzione della tipologia di utente, solo una sotto parte delle funzionalità di tutta l'applicazione. Il mio lavoro propone un meccanismo di privilege separation contro questi tipi di attacco a supporto di applicazioni con logica multiutente. Il mio sistema, PRIVMUL, propone un nuovo modo per scrivere o adattare questo tipo di applicazioni e ne garantisce un'esecuzione sicura, con lo scopo di proteggere funzionalità e dati appartenenti a profili diversi dal profilo che sta eseguendo l'applicazione. PRIVMUL integra applicazioni, scritte utilizzando le API messe a disposizione, con il sistema operativo che ne garantisce un'esecuzione sicura. PRIVMUL annulla i privilegi di accesso delle pagine di memoria ai profili diversi da quello che sta eseguendo l'applicazione. Per fare ciò ho creato un meccanismo che permette allo sviluppatore di specificare dei profili utente al momento della compilazione dell'applicazione. PRIVMUL inoltre si propone di proteggere da possibili leak di dati sempre a causa di vulnerabilità presenti nell'applicazione. Per eliminare questa possibilità PRIVMUL traccia ogni dato creato e distrutto all'interno dell'applicazione ne impedisce l'accesso non autorizzato. PRIVMUL, per essere flessibile, supporta il cambio di profilo durante l'esecuzione attraverso un meccanismo di autenticazione. I risultati sperimentali indicano che l'aumento del tempo di esecuzione introdotto dal meccanismo di autenticazione di PRIVMUL non compromette l'usabilità dell'applicazione. I test di tracciamento delle allocazioni presentano invece un aumento consistente del tempo di esecuzione se il numero di allocazioni dinamiche è elevato. Ad ogni modo, considerando il tipo di applicazione per cui PRIVMUL è stato disegnato, e cioè applicazioni con una grossa interazione con l'utente,l'aumento del tempo di esecuzione rimane trascurabile se comparato con il tempo operativo dell'utente.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
thesis.pdf

Open Access dal 03/12/2017

Descrizione: Thesis Text
Dimensione 853.81 kB
Formato Adobe PDF
853.81 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/102103