Marth, D. (2021). Evaluating the arm TrustZone as an environment for rootkits : Analyzing the impact of a compromised secure world [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2021.88999
E194 - Institut für Information Systems Engineering
-
Date (published):
2021
-
Number of Pages:
110
-
Keywords:
Arm TrustZone; Rootkit; Reverse Engineering; Speichermanipulation
de
Arm TrustZone; rootkit; reverse engineering; memory manipulation
en
Abstract:
Mobile Geräte wie Smartphones verarbeiten eine hohe Menge an persönlichen und vertraulichen Daten. Um sensible Dienste vor Schadsoftware zu schützen, teilt die Arm TrustZone das Gerät in zwei so genannte Welten (“Worlds”). Kritische Dienste werden in einer isolierten Laufzeitumgebung mit eigenem Betriebssystem ausgeführt, die “SecureWorld” genannt wird. Das reguläre Betriebssystem sowie dessen Anwendungen befinden sich in der “Normal World”, der Dienste der Secure World zur Verfügung stehen. Während Speicher der Secure World vor der Normal World geschützt ist, hat die Secure World vollen Zugriff auf den Normal World Speicher. Implementierungen der Arm Trust-Zone sind herstellerspezifisch und proprietär auf allen für Endnutzer relevanten Geräten. Gleichzeitig wurden Schwachstellen in bedeutenden Implementierungen gefunden. Zusammenfassend ist die Arm TrustZone isoliert, proprietär, privilegiert, verwundbar und weit verbreitet. Diese Eigenschaften schaffen perfekte Bedingungen für fortgeschrittene Schadsoftware wie Rootkits. Die mögliche Verwendung der Arm TrustZone als Umgebung für Rootkits wurde bereits 2013 vorgeschlagen. Soweit wir wissen wurden seither keine Publikationen oder Implementierungen zu Rootkits, die die Arm Trust-Zone nutzen, veröffentlicht. Größte Herausforderung für ein Secure World Rootkit ist die fehlende semantische Interpretation des Normal World Speichers. Umsetzung von Rootkit-Funktionen erfordert das Reverse Engineering von Datenstrukturen des Kernels zur Laufzeit. Invarianten werden genutzt, um kompilations abhängige oder randomisierte Symbol-Adressen zu rekonstruieren. Diese Arbeit liefert die folgenden Beiträge. 1) Design einer Secure World Rootkit Architektur.2) Prototypische Implementierung von Rootkit-Funktionen, die mit mehreren aktuellen Versionen von Linux als Normal World Betriebssystem kompatibel sind und grundlegende Sicherheitsmaßnahmen umgehen können. 3) Diskussion über Schutzmaßnahmen, um die Normal World vor Schadsoftware in der Secure World zu beschützen.Die Rekonstruktion von internen Strukturen des Kernels hängt von der zugrundeliegenden Implementierung ab. Linux ist ein aktiv entwickeltes Projekt, daher können sich Strukturen des Kernels im Laufe der Zeit verändern. Kleinere Änderungen des Quellcodes können vom Rootkit kompensiert werden. Stabilität des Rootkits wird experimentell durch Tests mit verschiedenen Versionen des Linux-Kernels bewiesen.
de
Mobile devices such as smartphones carry an increased amount of personal and confidential data. In order to protect sensitive services from malware, the Arm TrustZone logically divides the device into two so-called “worlds”. Critical services are running in an isolated execution environment called “secure world” which has its own operating system (OS). The regular OS and its applications are located in the “normal world” and can use services provided by the secure world. While the secure world memory is protected from the normal world, the secure world has full access to the normal world memory. Implementations of the Arm TrustZone are specific to the vendor and proprietary on currently relevant consumer devices. At the same time, security vulnerabilities have been discovered in all major implementations. Summarizing, the Arm TrustZone is isolated, proprietary, privileged, vulnerable and widespread. These properties are perfect preconditions for hosting advanced malware such as rootkits. Usage of the Arm TrustZone as an environment for rootkits has been suggested already back in 2013. Since then, no publications or implementations of rootkits utilizing the Arm TrustZone were presented to the best of our knowledge. Major challenge for a secure world rootkit is that there is no semantic interpretation of the normal world memory available. Reverse engineering of kernel data structures at runtime is required to implement rootkit features. Invariants are used to reconstruct compilation-dependent or randomized symbol addresses. This work makes the following contributions. 1) Design of a rootkit architecture utilizing the secure world. 2) Proof-of-concept implementation of rootkit functions supporting multiple recent Linux kernel versions as normal world OS and circumventing basic protection mechanisms. 3) Discussion of defensive techniques protecting the normal world from malware running in the secure world. Reconstructing the internal structures of the kernel depends on the underlying implementation. Linux is an actively developed project, thus kernel structures potentially change over time. Minor changes in the source code are compensated by the rootkit implementation. Stability of the developed rootkit is proven experimentally by testing it on various versions of the Linux kernel.