System Architectures for Data Confidentiality and Frameworks for Main Memory Extraction
Total Page:16
File Type:pdf, Size:1020Kb
Fakultät für Informatik der Technischen Universität München Lehrstuhl für Sicherheit in der Informatik System Architectures for Data Confidentiality and Frameworks for Main Memory Extraction Manuel Huber Dissertation Fakultät für Informatik der Technischen Universität München Lehrstuhl für Sicherheit in der Informatik System Architectures for Data Confidentiality and Frameworks for Main Memory Extraction Manuel Huber Vollständiger Abdruck der von der Fakultät für Informatik der Technischen Universität München zur Erlangung des akademischen Grades eines Doktors der Naturwissenschaften (Dr. rer. nat.) genehmigten Dissertation. Vorsitzender: Prof. Dr. Jörg Ott Prüfer der Dissertation: 1. Prof. Dr. Claudia Eckert 2. Prof. Dr. Georg Sigl Die Dissertation wurde am 25.09.2019 bei der Technischen Universität München eingereicht und durch die Fakultät für Informatik am 02.12.2019 angenommen. Abstract The sensitive data our modern computing systems process, transmit, and store poses a highly valuable target for cybercriminals and forensic investigators. Ranging from mobile devices and embedded devices in the internet of things to desktop and server environments, all systems expose characteristic vulnerabilities exploitable by remote and physical attack vectors of different sophistication. A resulting disclosure of confidential data, such as key material, passwords or classified documents, can lead to severe consequences for individuals, organizations and governmental bodies. The goal of this work is both the systematic protection of confidential data and the investigation of attack vectors to acquire confidential data. For the systematic protection, we design system architectures which assure data confidentiality on modern systems in the presence of both remote and physical adversaries. For the investigation of attack vectors, we develop sophisticated data extraction frameworks to demonstrate the potential of adversaries and to urge the need for carefully designed system architectures. We pursue a systematic approach where we first design a secure architecture to isolate system resources based on OS-level virtualization. The architecture enables different isolated execution environments, called containers, to restrict remote adversaries exploiting a vulnerable container from accessing other containers possibly processing confidential data. While the design is generally platform-independent, we first tailor the architecture to mobile devices. This enables us to operate multiple virtualized Android containers on a single device having one container run in foreground and the others in background. We further demonstrate the applicability of this architecture in real-world ecosystems by providing a holistic security concept. This concept covers identity management and device provisioning and enrollment based on a public key infrastructure and secure elements for users, such as smartcards. In the next step, we tailor the architecture to embedded use cases, such as to platforms for the internet of things or cyber-physical systems. We demonstrate how to integrate the architecture into productive environments at the example of a cross-domain data exchange platform connecting organizations. While our virtualization architectures for resource isolation defend against remote adversaries, these do not remediate physical memory attack scenarios, such as cold boot or DMA attacks. These attacks make it possible to extract the confidential data stored in main memory while circumventing OS protection mechanisms. To emphasize the urge for the protection of data against physical adversaries, we design a framework for cold boot attacks on mobile devices. Our framework enables the systematic extraction of data from the main memory of mobile devices. Since the main memory is not encrypted and thus stored in plaintext on common systems, memory extraction leveraging the cold boot attack is not only limited to mobile devices. v vi To counter the threat of memory attacks from physical attack vectors, we design main memory encryption architectures for different types of systems. For notebooks and desktop systems, we introduce an architecture to encrypt the main memory during device suspension. This makes memory attacks futile on suspended, likely unattended devices. While we also design this architecture for environments virtualized with a hypervisor, it does not apply to the different usage model of mobile devices. The operating systems of mobile devices donot fully suspend to support background activities in the absence or inactivity of the users. To also enable memory protection on mobile devices, we develop a main memory encryption architecture on the granularity of process groups. We combine our secure virtualization and main memory encryption architectures, making it possible to encrypt main memory of individual containers. We keep actively used containers in normal operation and encrypt suspended containers in background. The combination of the architectures not only protects the Android containers from remote adversaries, but also from physical attackers once suspended. For systems which do not necessarily suspend, such as embedded IoT devices, we present an alternate architecture for transparent runtime memory encryption based on a minimal hypervisor. When encrypting memory at runtime, attackers may still fully interact with the non- suspended systems. We point out that such encryption techniques require particularly careful design by developing a memory extraction framework targeting virtual machines on server systems that leverage hardware extensions for transparent runtime memory encryp- tion. Our framework makes it possible to fully extract the memory of encrypted virtual machines possibly being under heavy load, such as virtual machines hosting productive web servers open to the public. We additionally equip our framework with techniques to specifically extract targeted resources in short time, such as TLS, SSH, or disk encryption keys, requiring only minimal interaction with the system and leaving only a small footprint. Kurzfassung Die sensitiven Daten, die unsere heutigen Systeme verarbeiten, übertragen und speichern stellen für Kriminelle und Forensiker ein äußerst attraktives Ziel dar. Zu diesen Systemen zählen beispielsweise mobile Endgeräte, eingebettete Geräte für das Internet der Dinge, aber auch Desktop- und Serverumgebungen. All diese Systeme weißen charakteristische Schwachstellen auf, welche beiderseits von physischen Angreifern und Angreifern über ent- fernte Schnittstellen hinweg mittels Angriffsvektoren verschiedener Komplexität ausgenutzt werden können. Eine resultierende Enthüllung vertraulicher Daten, wie etwa Schlüssel- material, Passwörter oder klassifizierter Dokumente, kann zu starken Konsequenzen für Einzelpersonen, aber auch für Organisationen und Behörden führen. Das Ziel dieser Arbeit ist beiderseits der systematische Schutz vertraulicher Daten, als auch das Untersuchen von Angriffsvektoren, um an vertrauliche Daten zu gelangen. Für den systematischen Schutz entwerfen wir Systemarchitekturen, die die Vertraulichkeit von Daten auf modernen Rechengeräten unter der Bedrohungssituation von beiderseits entfernten und physisch präsenten Angreifern sicherstellen. Zur Untersuchung von Angriffsvektoren entwickeln wir fortgeschrittene Rahmenwerke zur Extrahierung von Daten, um das Potential von An- greifern zu demonstrieren und um den Bedarf für sorgfältig entworfene Systemarchitekturen zu motivieren. Wir verfolgen hierbei einen systematischen Ansatz, bei dem wir zunächst eine Sicher- heitsarchitektur entwerfen, welche Systemressourcen auf Basis von Virtualisierung auf Betriebssystem-Ebene isoliert. Diese Architektur ermöglicht es, verschiedene voneinander isolierte Ausführungsumgebungen, sogenannte Container, zu betreiben, um Angreifer, die eine Software-Schwachstelle eines verwundbaren Containers ausnutzen, innerhalb des Con- tainers zu isolieren. Dies bewahrt andere Container mit deren vertraulichen Daten vor den Auswirkungen des Angriffs. Während der Architekturentwurf generell plattformunabhängig ist, schneiden wir die Architektur zunächst auf mobile Endgeräte zu, auf denen wir mehrere, virtualisierte Android-Container betreiben. Dabei läuft ein Container für den Nutzer sichtbar im Vordergrund und die anderen Container im Hintergrund. Des weiteren demon- strieren wir die Anwendbarkeit der Architektur innerhalb produktiv genutzter Ökosysteme durch Bereitstellen eines ganzheitlichen Sicherheitskonzepts. Dies beinhaltet das Verwalten von Identitäten, sowie Geräteprovisionierung und -ausrollung, basierend auf einer Infras- truktur mit öffentlichen Schlüsselpaaren und Sicherheitselementen, wie Chipkarten, für Endnutzer. Im nächsten Schritt schneiden wir die Architektur auf Benutzungsszenarien im Bereich eingebetteter Systeme zu, wie zum Beispiel auf Plattformen im Internet der Dinge, oder auf Cyber-physische Systeme. Wir beschreiben darüber hinaus die Integration dieser Architektur in produktive Umgebungen am Beispiel einer Bereichsgrenzen überschreitenden Plattform zum Datenaustausch zwischen Organisationen. vii viii Während die Sicherheitsarchitekturen zur Isolation von Ausführungsumgebungen gegen Angreifer wirkt, welche Softwareschwachstellen ausnutzen, verhindert diese aber nicht die Angriffsszenarien auf den Hauptspeicher durch physische Angreifer. Ein Beispiel dafür sind Kaltstart- oder DMA-Attacken, welche es ermöglichen, vertrauliche, im Hauptspe- icher abgelegte Daten unter umgehen der Schutzmechanismen der Betriebssysteme