Kernel Self-Protection through Quantified Attack Surface Reduction

Kurmus, Anil

Ein Betriebssystemkern (Kernel) verwaltet den Zugriff von Anwendungen auf die Hardware. Ein Großteil der gesamten Systemsicherheit hängt vom Kernel ab, jedoch bestehen gewöhnliche Betriebssystemkerne aus Millionen von Zeilen an Programm-Code. Unausweichlich enthalten Teile dieses Codes Schwachstellen, die ein Angreifer ausnutzen kann. Dennoch müssen Angreifer mehr als eine einzelne Schwachstelle im Programm-Code finden. Sie müssen die nötigen Voraussetzungen identifizieren, unter welchen die Schwachstelle ausgenutzt werden kann. Der Umfang an Kernel-Code, welcher für einen Angreifer erreichbar ist und unabhängig davon ob dieser vom Angreifer ausgenutzt wird, ist hier als "Angriffsfläche" definiert. Diese Dissertation liefert eine tiefgehende Analyse darüber, was die Angriffsfläche beim Kernel ist und wie man diese messen kann. Außerdem zeit sie, wie sich die Angriffsfläche reduzieren lässt und evaluiert die Vor- und Nachteile verschiedener Ansätze. Die Quantifizierung basiert auf einer Erreichbarkeitsanalyse des Kernel-Codes unter Berücksichtigung von Annahmen über die Zugriffsrechte des Angreifers. Zum Beispiel haben präzise Analysen des Kernels einer populären Linux Distribution gezeigt, dass von 10 Millionen Zeilen im Kernel Code nur 2,5 Millionen Zeilen von einem lokalen Angreifer mit eingeschränkten Zugriffsrechten erreichbar sind. Die zwei Techniken zur Reduzierung der Angriffsfläche sind folgende. Die erste nutzt die Konfigurierbarkeit des Linux-Kernels und generiert einen an die Anwendung angepassten Kernel zur Übersetzungszeit. Die zweite Technik erreicht eine feinere Granularität durch das Instrumentieren von individuellen Kernel-Funktionen zur Laufzeit, ohne dass der Kernel neu kompiliert werden muss. Mittels der Quantifizierungstechniken dieser Dissertation wird die Effektivität der beiden Ansätze gezeigt. Beide können die Angriffsfläche des Kernels drastisch reduzieren (um mehr als das Vierfache). Ich schließe daraus, dass die Reduzierung der Angriffsfläche, oder das Prinzip der "economy of mechanism", in gewöhnlichen Betriebssystemkernen vernachlässigt wurde. Die Sicherheitsvorteile, welche erzielt würden, überwiegen in vielen praktischen Anwendungsfällen dessen Nachteile.

An operating system kernel orchestrates the use of the hardware by programs. Much of the overall security of a system depends on the kernel, yet commodity OS kernels count millions of lines of code. Inevitably, some of this code contains vulnerabilities that can be exploited by attackers. However, attackers need more than finding a single vulnerability in the source code. They need to realize the conditions under which the vulnerability is triggered. The amount of the kernel code that is reachable to an attacker, regardless of it being exploitable is defined here as the "attack surface". This thesis provides an in-depth analysis of what the kernel attack surface is and how it can be measured, how it can be reduced, and an evaluation of the advantages and disadvantages of doing so. The quantification is based on a reachability analysis over the kernel call graph, taking into account assumptions on the attacker's privileges. For example, precise measurements show that, out of the 10 million lines of code in the kernel sources, only about 2.5 million lines are reachable to a local unprivileged attacker on a popular Linux distribution. The attack surface reduction techniques are twofold. The first makes use of the Linux kernel's configurability to generate a workload-tailored Linux kernel, at compile time. The second achieves finer granularity by instrumenting individual kernel functions at run time, without requiring any kernel recompilation. Using the quantification techniques of this thesis, I show the effectiveness of both approaches. They can both reduce drastically (more than four-fold) the kernel attack surface. I conclude that attack surface reduction, or the principle of "economy of mechanism", has been rather neglected on commodity OS kernels, and that the security benefits that would be achieved outweigh their drawbacks in many practical use cases.

Vorschau

Zitieren

Zitierform:

Kurmus, Anil: Kernel Self-Protection through Quantified Attack Surface Reduction. 2014.

Zugriffsstatistik

Gesamt:
Volltextzugriffe:
Metadatenansicht:
12 Monate:
Volltextzugriffe:
Metadatenansicht:

Details anzeigen

Rechte

Nutzung und Vervielfältigung:
Alle Rechte vorbehalten

Export