Software security, through its nature, is difficult to quantify through formal ana- lysis. Security improvements most often refer to qualitative aspects like “keep it simple”. Linux kernel project security issues have always been a very appealing target for attackers and nowadays with its increasing market share and develop- ment speed this aspect has become even more important. In practice keeping the code simple and small is disregarded for favoring user satisfaction, this creating important security breaches. In this report we define concepts for measuring the software attack surface and we apply them on the Linux kernel project. We use the Linux kernel call-graph as a formal representation and we apply various metrics on this graph to measure its at- tack surface. We also aim to show how much the project complexity can decrease if we eliminate the functionality that is not needed. Hence, once we have the call- graph, we define two use cases in which we build the Linux kernel with modified configuration files and we measure the attack surface reduction in each case. The results we get indicate a reduction of the attack surface between 50% and 90%. Therefore, using this approach in a real world scenario can have an important po- sitive impact on the Linux kernel security.

A causa della sua natura, è difficile quantificare la sicurezza nel software mediante analisi formale, mentre più spesso la misura dei miglioramenti di sicurezza si rifanno a parametri qualitativi, nello stile "keep it simple". I problemi di sicurezza del kernel Linux sono sempre stati obiettivi invitanti per gli attaccanti e oggi, con l'aumento della sua fetta di mercato e la sua maggiore rapidità di sviluppo, questo aspetto è diventato ancora più importante. In pratica, viene preferita la soddisfazione degli utenti piuttosto che il mantenimento del codice semplice e contenuto, e ciò causa importanti falle di sicurezza. In questo documento definiamo i concetti per la misura della superficie di attacco di un software, e le valutiamo sul kernel Linux. Usiamo il grafo di chiamate del kernel Linux come sua rappresentazione formale e su di esso applichiamo varie metriche per misurare la sua superficie d'attacco. Abbiamo anche l'obiettivo di mostrare come la complessità del progetto possa diminuire eliminando le funzionalità non necessarie. Dunque, avendo il grafo di chiamate, definiamo due scenari nei quali compiliamo il kernel Linux con file di configurazione modificati, e misuriamo la riduzione della superficie d'attacco in entrambi i casi. I risultati che otteniamo indicano una riduzione della superficie d'attacco tra il 50% e 90%. Di conseguenza, usando questo approccio in uno scenario nel mondo reale, possiamo ottenere un importante impatto positivo sulla sicurezza del kernel Linux.

Linux kernel attack surface measurement

DORNEANU, DANIELA
2011/2012

Abstract

Software security, through its nature, is difficult to quantify through formal ana- lysis. Security improvements most often refer to qualitative aspects like “keep it simple”. Linux kernel project security issues have always been a very appealing target for attackers and nowadays with its increasing market share and develop- ment speed this aspect has become even more important. In practice keeping the code simple and small is disregarded for favoring user satisfaction, this creating important security breaches. In this report we define concepts for measuring the software attack surface and we apply them on the Linux kernel project. We use the Linux kernel call-graph as a formal representation and we apply various metrics on this graph to measure its at- tack surface. We also aim to show how much the project complexity can decrease if we eliminate the functionality that is not needed. Hence, once we have the call- graph, we define two use cases in which we build the Linux kernel with modified configuration files and we measure the attack surface reduction in each case. The results we get indicate a reduction of the attack surface between 50% and 90%. Therefore, using this approach in a real world scenario can have an important po- sitive impact on the Linux kernel security.
KURMUS, ANIL
ING V - Scuola di Ingegneria dell'Informazione
4-ott-2012
2011/2012
A causa della sua natura, è difficile quantificare la sicurezza nel software mediante analisi formale, mentre più spesso la misura dei miglioramenti di sicurezza si rifanno a parametri qualitativi, nello stile "keep it simple". I problemi di sicurezza del kernel Linux sono sempre stati obiettivi invitanti per gli attaccanti e oggi, con l'aumento della sua fetta di mercato e la sua maggiore rapidità di sviluppo, questo aspetto è diventato ancora più importante. In pratica, viene preferita la soddisfazione degli utenti piuttosto che il mantenimento del codice semplice e contenuto, e ciò causa importanti falle di sicurezza. In questo documento definiamo i concetti per la misura della superficie di attacco di un software, e le valutiamo sul kernel Linux. Usiamo il grafo di chiamate del kernel Linux come sua rappresentazione formale e su di esso applichiamo varie metriche per misurare la sua superficie d'attacco. Abbiamo anche l'obiettivo di mostrare come la complessità del progetto possa diminuire eliminando le funzionalità non necessarie. Dunque, avendo il grafo di chiamate, definiamo due scenari nei quali compiliamo il kernel Linux con file di configurazione modificati, e misuriamo la riduzione della superficie d'attacco in entrambi i casi. I risultati che otteniamo indicano una riduzione della superficie d'attacco tra il 50% e 90%. Di conseguenza, usando questo approccio in uno scenario nel mondo reale, possiamo ottenere un importante impatto positivo sulla sicurezza del kernel Linux.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
main2.pdf

solo utenti autorizzati dal 27/09/2013

Descrizione: Thesis text
Dimensione 628.69 kB
Formato Adobe PDF
628.69 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/68085