Mit dem Aufkommen der Ethereum-Blockchain im Juli 2015 wurden Smart Contracts dem Mainstream näher gebracht. Smart Contracts sind Programme, die die zugrunde liegende Blockchain als Ausführungsumgebung nutzen. Ein Hauptargument für sie ist, dass jede:r sie untersuchen und mit ihnen interagieren kann. Allerdings können sie, sobald sie auf der Ethereum-Blockchain installiert sind, nicht mehr verändert werden, wasFehlerbehebungen unmöglich macht.Da Smart Contracts Milliarden von Euro in verschiedenen Vermögenswerten halten, bieten Exploits hohe Gewinne bei relativ geringen Risiken. Daher ist es wichtig, mögliche Schwachstellen in Smart Contracts zu erkennen, bevor sie eingesetzt werden. Schwachstellen in Smart Contracts erfordern oft bestimmte Laufzeitbedingungen oder sehr spezifischeTransaktionssequenzen.Diese Arbeit konzentriert sich auf Tools, die eine automatisierte Exploit-Generierung verwenden und versuchen, diese Probleme zu lösen. Die Arbeit untersucht zunächst bestehende Techniken zur Erkennung von Schwachstellen sowie zur automatischen Generierung von Exploits. Danach wird ein Überblick und ein theoretischer Vergleich bestehender Tools hinsichtlich der verwendeten Techniken und der Schwachstellen, die sie zu finden vorgeben, gegeben. Schließlich wird ein neuer Prototyp vorgestellt, der auf einem der zuvor untersuchten Tools (Vultron) basiert. Der Prototyp wird dann anhand einesBenchmark-Sets getestet und mit ConFuzzius und sFuzz verglichen.Obwohl alle Tools auf Fuzzing basieren, zeigt der Vergleich, dass der Prototyp nicht so gut abschneidet wie die beiden anderen Tools. Dennoch entdeckte der Prototyp Exploits in Smart Contracts, bei denen die anderen Tools nichts fanden, und bietet daher einige neue Erkenntnisse über gefundene Exploits. Um möglichst viele Schwachstellen abzudecken, reicht es außerdem nicht aus, nur ein einziges Tool zu verwenden, sondern vielmehr eine Kombination aus mehreren Tools, die unterschiedliche Analysetechniken implementieren.
de
With the rise of the Ethereum blockchain in July 2015, smart contracts were brought closer to the mainstream. Smart contracts are programs that use the underlying blockchain as their execution environment. A major argument for them is that anyone can investigate and interact with them. However, once deployed to the Ethereum blockchain they cannot be altered anymore, making bugfixes impossible.Since smart contracts hold billions of Euros in various assets, exploits offer high rewards with relatively small risks. Therefore, detecting possible vulnerabilities in smart contracts before deploying them is essential. Vulnerabilities in smart contracts often require certain run-time conditions or very specific transactions sequences.This thesis focuses on tools that employ automated exploit generation which try to tackle these problems. The work first researches existing techniques for vulnerability detection as well as automated exploit generation. Afterwards, it gives an overview as well as a theoretical comparison of existing tools regarding the techniques used and which vulnerabilities they claim to find. Finally, the thesis introduces a new prototype based on one of the before-studied tools - Vultron. The prototype is then tested against a benchmark set and compared to ConFuzzius and sFuzz.Although all tools are based on fuzzing, the comparison shows that the prototype does not perform as well as the other two tools. However, the prototype found exploits in smart contracts that the other tools did not find, and therefore provides some new insights into exploits found. Furthermore, to cover the most vulnerabilities possible it is not sufficient to use only a single tool, but rather a combination of multiple tools using different analysing techniques.