Hampl, B. O. (2025). Protecting the Kernel via the Arm TrustZone. Linux Kernel Exploitation and Arm TrustZone-based Kernel Data Protection [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2025.134724
E194 - Institut für Information Systems Engineering
-
Date (published):
2025
-
Number of Pages:
146
-
Keywords:
Sicherheit; Betriebssystem; Betriebssystemsicherheit; Linux-Kernel; Kernel-Exploitation; Arm
de
Security; Operating system; Operating system security; Linux kernel; kernel exploitation; Arm; Arm TrustZone
en
Abstract:
Angesichts der Bedeutung vom Cloud-Computing und Containervirtualisierung, wird der Schutz von Ressourcen in gemeinsam genutzten Umgebungen immer wichtiger. Dies gilt auch für Smartphones, da die Anwendungen, die auf diesen Geräten laufen, voneinander getrennt sein müssen. Diese Umgebungen, welche nicht vertrauenswürdigen Code ausführen, verlassen sich auf die Sandboxing-Funktionen des Kernels, um den Zugriff auf andere Anwendungen und Ressourcen zu beschränken. Schwachstellen im Linux-Kernel und seinen Modulen machen es möglich, aus der Sandbox auszubrechen und Root-Rechte zu erlangen. Die Exploits, die diese Schwachstellen ausnutzen, verwenden in der Regel nur einige wenige Techniken, um erhöhte Berechtigungen zu erlangen, da sie alle die gleichen kritischen Kernel-Objekte ändern müssen, insbesondere die Prozess-Berechtigungsnachweise. Die Kenntnis der Techniken zur Privilegienerweiterung kann genutzt werden, um Schutzmechanismen zu entwerfen und zu implementieren, die vor diesen Techniken schützen, mit der Absicht, den Kernel unabhängig von der Schwachstelle vor zukünftigen Angriffen auf die kritischen Kernelobjekte zu schützen. In dieser Arbeit werden zunächst gängige Linux-Kernel-Privilegienerweiterungstechniken analysiert, indem reale lokale Linux-Privilegienerweiterungs-Exploits gesucht und kategorisiert werden. Anschließend wird in dieser Arbeit ein Prototyp für Linux-Kernel-Schutzmechanismen entworfen und implementiert. Dieser Prototyp basiert auf der Arm TrustZone, eine Trusted Execution Environment, die über volle Speicherzugriffsmöglichkeiten des Kernel- und des Benutzerraums verfügt. Mithilfe diesen werden die Prozess-Berechtigungsnachweise in einen schreibgeschützten Kernelspeicherbereich verschoben, der nur von der Arm TrustZone beschrieben werden kann. Um die Berechtigungsnachweise vom Kernel aus zu ändern, wird der Quellcode der Funktionen zur Berechtigungsnachweismanipulation so geändert, dass sie die Arm TrustZone-Komponente aufrufen, welche die Änderungen im Speicherbereich durchführt. Zusätzlich werden in dieser Arbeit Integritätsprüfungen sowohl im Kernel als auch in der Arm TrustZone-Komponente implementiert, um Exploits zu erkennen und zu verhindern, dass sie Änderungen an den Prozess-Berechtigungsnachweisen vornehmen. Insbesondere enthält sie eine Systemaufrufprüfung in der Arm TrustZone-Komponente, die es nur konfigurierten Systemaufrufnummern, die unter normalen Umständen Änderungen an Berechtigungsnachweisen vornehmen, erlaubt, Änderungen an den schreibgeschützten Berechtigungsnachweisen vorzunehmen. Die Evaluierung des implementierten Prototyps zeigt, dass er erfolgreich selbst entwickelte Exploits, welche die gefundenen Privilegienerweiterungstechniken nutzen, erkennen und den Linux-Kernel davor schützen kann.
de
Given the importance of cloud computing and containers, the protection of resources in shared environments is only getting more important. This also applies to smartphones, as the applications that run on these devices must be separate from each other. These shared environments that execute untrusted code, rely on sandboxing functionalities of the kernel, to restrict the access to other applications and resources. Vulnerabilities in the Linux kernel and its modules make it possible to escape the sandbox and to gain root privileges. The exploits that use these vulnerabilities generally only use a few techniques to gain elevated privileges, as they all need to modify the same critical kernel objects, specifically the process credentials. The knowledge of the privilege escalation techniques can be used to design and implement protection mechanisms that protect against them, with the intention of protecting the kernel from future attacks on the critical kernel objects, independent of the vulnerability. This thesis first analyzes common Linux kernel privilege escalation techniques by searching and categorizing real-world Linux local privilege escalation (LPE) exploits. Afterward, this work designs and implements a Linux kernel protection mechanisms prototype. This prototype relies on the Arm TrustZone, which is a trusted execution environment that has full memory access capabilities of the kernel and user space. Using this capability, the process credentials are moved into a read-only kernel memory area, that can only be written by the Arm TrustZone. To modify the credentials from within the kernel, the source code of the credential manipulation functions is modified, in such a way they call the Arm TrustZone component, which carries out the changes to the memory area. Additionally, this thesis implements integrity checks, both in the kernel and in the Arm TrustZone component, to detect exploits and to prevent them from making changes to the process credentials. In particular, it contains a system call check in the Arm TrustZone component, that only permits configured system call numbers, that make changes to credentials under normal circumstances, to perform changes to the read-only credentials. The evaluation of the implemented prototype shows that it can successfully detect self-developed exploits, which utilize the found privilege escalation techniques, and protect the Linux kernel against them.
en
Additional information:
Arbeit an der Bibliothek noch nicht eingelangt - Daten nicht geprüft Abweichender Titel nach Übersetzung der Verfasserin/des Verfassers