Building Trust in Modern Computing Platforms
Total Page:16
File Type:pdf, Size:1020Kb
Research Collection Doctoral Thesis Building Trust in Modern Computing Platforms Author(s): Dhar, Aritra Publication Date: 2021 Permanent Link: https://doi.org/10.3929/ethz-b-000487786 Rights / License: In Copyright - Non-Commercial Use Permitted This page was generated automatically upon download from the ETH Zurich Research Collection. For more information please consult the Terms of use. ETH Library Aritra Dhar Building Trust in Modern Computing Platforms Diss. ETH No. 27668 aritra dhar BUILDINGTRUSTINMODERNCOMPUTING PLATFORMS diss. eth no. 27668 BUILDINGTRUSTINMODERNCOMPUTING PLATFORMS A dissertation submitted to attain the degree of doctor of sciences of eth zurich (Dr. sc. ETH Zurich) presented by ARITRADHAR Master of Technology in Computer Science & Engineering, IIIT Delhi, India (2014) born on 3rd March 1990 citizen of India accepted on the recommendation of Prof. Dr. Srdjan Cˇapkun, examiner Prof. Dr. Kevin R. B. Butler, co-examiner Prof. Dr. Ahmad-Reza Sadeghi, co-examiner Prof. Dr. Adrian Perrig, co-examiner 2021 Aritra Dhar: Building Trust in Modern Computing Platforms, © 2021 doi: 10.3929/ethz-b-000487786 “আমার বৈজ্ঞানিক মনির একটা অংশ আনেপ করনে যে, তানক ভান া কনর স্টানি করা যে িা, তার নৈষনে অনিক নকেুই জািা যে িা। যেইেনে আনরকটা অংশ ৈ নে যে, মািুনষর েৈ যজনি যে ার য ানভর একটা েীমা থাকা উনিত। এমি নকেু থা嗁ক, ো মািুনষর মনি প্রনের উনেক করনত পানর, নৈস্মে জানেনে তু নত পানর।” (A part of my scientific mind is frustrated as ‘it’ can not be studied more. Many things about it remained unknown. At the very same time, another part of my mind is saying that there should be a limit to the greed of knowing all. There should always be something that provokes curiosity in the human mind, raises wonder.) – Professor Shonku, The Final Adventures of Professor Shonku by Satyajit Ray Dedicated to The loving memory of Dida, Purnima Dhar, to whom I owe everything. ABSTRACT User interfaces (UI) are essential parts of modern complex computing platforms as it dictates how humans provide inputs to these systems and interpret output from them. Many remote safety and security-critical cyber- physical systems such as industrial PLCs (in manufacturing, power plants, etc.), medical implants are accessible through rich UIs over browsers or dedicated applications that are running on commodity systems or hosts. Similarly, e-banking, e-voting, social networks, and many other remote applications and services are critically dependent on UIs for user authen- tication and IO. An attacker-controlled host can not only observe user’s IO data but also can modify them undetected. Loss of integrity and con- fidentiality of user inputs can lead to catastrophic failure of critical in- frastructures, loss of human lives, leakage of sensitive data. The problem of secure communication between a user and an end-system is known as trusted path. Such attacks are not far-fetched as modern software and hardware systems are incredibly complex and span over millions of lines of code. Hence the users are bound to trust a massive trusted computing base or TCB. Exploiting software vulnerabilities of the OS, hypervisors, database systems are very prevalent. Recent technologies such as Trusted execution environments (TEEs) address this problem by reducing the TCB by running isolated environments on the CPU cores, known as enclaves, that are isolated from the OS or hypervisor. However, TEEs do not solve the trusted path problem as TEEs depend on the OS to communicate to the external IO devices. Moreover, the remote attestation mechanism by which a verifier can ensure that she is communicating with the proper enclave is vulnerable to relay attack. In the context of disaggregated computing architecture in modern data centers, the security properties of traditional TEE are insufficient as the trusted path application involves sensitive data not only on the CPU cores but also on the specialized external hardware like accelerators. In this thesis, we propose mechanisms to build trust in modern comput- ing platforms by addressing the trusted path problem, and we make the following contributions. First, we analyze existing trusted path systems and found several attacks that compromise user IO data integrity and confiden- tiality. We are the first to analyze the trusted path problem to find a set of essential security properties and implement them in a system named ix ProtectIOn using a trusted embedded device as an intermediary. This trusted device intercepts all IO data and overlays secure UI on the display signal. Next, we look into Intel SGX and investigate how one can integrate a trusted path solution to TEEs. We notice that the relay attack on the SGX remote attestation can be detrimental to the trusted path security properties. We design ProximiTEE, a system that uses distance bounding to verify physical proximity to an SGX processor. We also show how the distance bounding mechanism can be used in a high frequency to allocate or revoke platforms in data centers without relying on an online PKI. Finally, we look into the disaggregated computing model of the modern data centers where the TEEs are insufficient as the computation is no longer limited to the CPU cores but several external devices such as GPUs, accelerators, etc. We propose our system PIE based on RISC-V architecture that combines the enclaves running on the CPU and firmware external hardware to a single attestable domain that we call platform-wide enclaves. Inside these platform-wide enclaves, individual binaries (enclaves and firmware) can be remotely attested. x ZUSAMMENFASSUNG User interfaces (UI) sind wesentliche Bestandteile komplexer moderner Computerplattformen, da sie vorschreiben, wie Menschen Daten in diese Systeme eingeben und wie sie Ausgaben von den Plattformen interpretieren. Viele sicherheitskritische Cyber-Physical-Remote-Systeme wie industrielle PLC (in der Fertigung, in Kraftwerken usw.) und medizinische Implantate sind über umfangreiche Benutzeroberflächen über Browser oder dedizierte Anwendungen zugänglich, die auf handelsüblichen Systemen oder Hosts ausgeführt werden. In ähnlicher Weise sind E-Banking, E-Voting, soziale Netzwerke und viele andere Remote-Anwendungen und -Dienste entschei- dend von UIs für die Benutzerauthentifizierung und IO abhängig. Ein von einem Angreifer kontrollierter Host kann die IO-Daten des Benutzers nicht nur beobachten, sondern auch unbemerkt ändern. Der Verlust der Integrität und Vertraulichkeit von Benutzereingaben kann zu einem katastrophalen Ausfall kritischer Infrastrukturen, zum Verlust von Menschenleben und zum Verlust sensibler Daten führen. Das Problem der sicheren Kommunika- tion zwischen einem Benutzer und einem Endsystem wird als Trusted Path bezeichnet. Solche Angriffe sind nicht weit hergeholt, da moderne Soft- und Hardwaresysteme unglaublich komplex sind und aus Millionen von Code- zeilen bestehen. Daher müssen die Benutzer einer riesigen Trusted Compu- ting Base oder TCB vertrauen. Das Ausnutzen von Software-Schwachstellen in Betriebssystemen, Hypervisoren oder Datenbanksystemen ist weit ver- breitet. Neuere Technologien wie Trusted Execution Environments (TEEs) lösen dieses Problem durch eine Reduktion der TCB, indem isolierte Um- gebungen, die als Enklaven bezeichnet werden, auf CPU-Kernen laufen und vom Betriebssystem oder Hypervisor isoliert sind. TEEs lösen jedoch nicht das Problem des Trusted Path, da TEEs für die Kommunikation mit externen Geräten vom Betriebssystem abhängig sind. Darüber hinaus ist der Mechanismus für Remote Attestation, durch den ein Verifizierer sicher- stellen kann, dass er mit der richtigen Enklave kommuniziert, anfällig für Relay-Attacken. Im Kontext einer disaggregierten Rechnerarchitektur in modernen Rechenzentren sind die Sicherheitseigenschaften von traditionel- len TEEs unzureichend, da die Trusted-Path-Anwendung sensible Daten nicht nur auf den CPU-Kernen, sondern auch auf spezialisierter externen Hardware, wie z.B. Beschleuniger, beinhaltet. xi In dieser Arbeit schlagen wir Mechanismen vor, um Vertrauen in moder- ne Computerplattformen aufzubauen, indem wir das Trusted-Path-Problem angehen. Dabei leisten wir die folgenden Beiträge: Zuerst analysieren wir bestehende Trusted-Path-Systeme und decken mehrere Angriffe auf, die die Integrität und Vertraulichkeit von Benutzer-IO-Daten gefährden. Wir sind die ersten, die das Trusted-Path-Problem analysieren, um eine Reihe wesentlicher Sicherheitseigenschaften zu finden und diese in einem System namens ProtectIOn unter Verwendung eines vertrauenswürdigen eingebet- teten Geräts als Intermediär zu implementieren. Dieses vertrauenswürdige Gerät fängt alle IO-Daten ab und überlagert eine sichere Benutzeroberfläche auf dem Anzeigesignal. Als nächstes schauen wir uns Intel SGX an und untersuchen, wie man eine Trusted-Path-Lösung in TEEs integrieren kann. Wir stellen fest, dass die Relay-Attacke auf die Remote Attestation von SGX die Sicherheitseigenschaften des vertrauenswürdigen Pfads beeinträchtigen kann. Wir entwickeln ProximiTEE, ein System, das Distance Bounding verwendet, um die physische Nähe zu einem SGX-Prozessor zu überprüfen. Wir zeigen auch, wie der Mechanismus des Distance Bounding in hoher Frequenz verwendet werden kann, um Plattformen in Rechenzentren zuzu- ordnen oder zu widerrufen, ohne auf eine Online-PKI angewiesen zu sein. Schließlich betrachten wir das disaggregierte Rechnermodell moderner Re- chenzentren, in denen TEEs nicht ausreichen, da die Berechnung nicht mehr auf CPU-Kerne beschränkt ist, sondern mehrere externe Geräte wie GPUs, Beschleuniger usw. einschliessen. Basierend