Software (In)Security of Smart Contracts and Trusted Enclaves

Secure execution environments promise developers a way to secure their software even when running in untrusted environments. For example, the Intel software guard extensions (SGX) technology strives to provide confidential computing on hardware operated by an untrusted party. In Ethereum, software called smart contracts manages a large number of funds and assets. As such, correct execution of smart contracts is paramount. However, arbitrary network participants execute the smart contracts within an open distributed system. Secure execution environments ensure with cryptographic protocols that the integrity and confidentiality of both execution and data are preserved. While these new execution environments offer many security guarantees, they cannot automatically secure the software executing within the execution environment. This dissertation challenges the security of the software developed for and running within secure execution environments. More specifically, we tackle the (in)security of software for the execution environments of the SGX trusted computing technology and the Ethereum blockchain system. This dissertation develops methods for identification and remediation of security vulnerabilities specific to the respective secure execution environment.

Existing methods for automated vulnerability identification are not sufficient as they are not tailored to the respective execution environments. In this dissertation, we identify these shortcomings and develop new automated analysis methods. Here, an analysis tool is developed that adapts generic symbolic execution to identify vulnerabilities at the boundary between SGX enclave code and the untrusted, and as such potentially attacker-controlled, host system. Furthermore, this work shows how to use the fuzzing method to efficiently identify even complex vulnerability patterns, such as reentrancy, in Ethereum smart contracts.

Identifying vulnerabilities alone is not sufficient to ensure the security of already deployed software. As such, this dissertation also covers new methods for vulnerability remediation. Due to the immutability of smart contracts in Ethereum, it is especially hard to fix bugs and vulnerabilities. As such, we discuss a taint-tracking-based detection of reentrancy attacks, which can be integrated directly into the blockchain system. Furthermore, we also discuss an approach to automate large parts of the patching process of a smart contract, allowing developers to securely operate a smart contract on Ethereum.

Sichere Ausführungsumgebungen bieten Entwicklern die Möglichkeit, ihre Software abzusichern, auch wenn sie in nicht vertrauenswürdigen Umgebungen ausgeführt wird. Die SGX Technologie von Intel versucht, vertrauliche Datenverarbeitung (confidential computing) auf Hardware zu ermöglichen, die von einer nicht vertrauenswürdigen Partei betrieben wird. In Ethereum verwaltet Software, so genannte Smart Contracts, Cryptocurrency und anderen Vermögenswerten. Deswegen ist die korrekte Ausführung von Smart Contracts von größter Bedeutung. Da jeder dem Ethereum Netzwerk beitreten kann, werden Smart Contracts durch beliebige Netzwerkteilnehmer ausgeführt. Mithilfe von kryptografischen Protokollen sorgen sichere Ausführungsumgebungen dafür, dass die Integrität und Vertraulichkeit der Ausführung und der Daten gewahrt wird. Diese neuen Ausführungsumgebungen bieten zwar viele Sicherheitsgarantien, aber sie können sie die darin ausgeführte Software nicht vollständig vor Schwachstellen schützen. Diese Dissertation untersucht die Sicherheit der Software, die für sichere Ausführungsumgebungen entwickelt wurde, genauer gesagt mit der (Un-)Sicherheit von Software für die SGX Trusted Computing Technologie und dem Ethereum Blockchain System. Dabei werden speziell angepasste Methoden zur Identifizierung und Behebung von Sicherheitslücken erforscht.

Bestehende Methoden zum automatisierten Auffinden von Schwachstellen sind nicht ausreichend, da sie nicht auf die jeweiligen Ausführungsumgebungen zugeschnitten sind. In dieser Dissertation identifizieren wir diese Defizite und entwickeln neue Analysemethoden. Dabei wird ein Analysewerkzeug vorgestellt, welches generische symbolische Ausführung adaptiert, um Schwachstellen an der Grenze zwischen SGX Enclave-Code und dem nicht vertrauenswürdigen Host-System aufzudecken. Darüber hinaus zeigt diese Arbeit, wies sogenanntes Fuzzing eingesetzt werden kann, um selbst komplexe Schwachstellen automatisiert zu finden, wie z.B. Reentrancy in Ethereum Smart Contracts. Da das Auffinden von Schwachstellen allein jedoch nicht ausreicht, um die Sicherheit von bestehender Software zu gewährleisten, werden in dieser Dissertation auch neue Methoden zur Behebung von Schwachstellen untersucht. Aufgrund der Unveränderlichkeit von Smart Contracts in Ethereum ist es besonders schwierig Softwarefehler zu beheben. Wir diskutieren daher eine auf Taint-Tracking basierende Erkennung von Reentrancy-Angriffen, die in das Blockchain-System integriert wird und Schwachstellen zur Laufzeit erkennt und blockiert. Außerdem diskutieren wir eine Methode, um große Teile des Patching-Prozesses von Smart Contracts zu automatisieren, wodurch es Entwicklern ermöglicht wird, einen Smart Contract auf Ethereum sicher zu betreiben.

Vorschau

Zitieren

Zitierform:
Zitierform konnte nicht geladen werden.

Rechte

Nutzung und Vervielfältigung:
Alle Rechte vorbehalten