Sommersemester 21
Projektgruppe HiFE: High Speed Fuzzing of Ethereum Smart Contracts
| Type of course | Projektgruppe |
|---|---|
| Lecturer | Prof. Dr.-Ing. Lucas Vincenzo Davi |
| Contact | |
| Term | Summer Semester 2021 |
| Start | 12. Apr. 2021 |
| End | 23. Jul. 2021 |
| Language | German |
| LSF | Lecture in LSF |
Bitcoin erfreut sich nicht nur eines immer steigenden Kurswertes an der Börse, sondern wird zunehmend in Bezahlsysteme integriert. Allerdings sind Bitcoin und vergleichbare Kryptowährungen stark limitiert und schöpfen nicht das ganze Potenzial von Blockchain Technologien aus. Smart Contracts, wie sie in der Ethereum Blockchain genutzt werden, erlauben hingegen Ausführung von beliebiger Programmlogik auf der Blockchain und sind somit deutlich mächtiger hinsichtlich ihrer Anwendungsfälle. Allerdings sind Smart Contracts auf der Ethereum Blockchain häufig hoch sicherheitskritisch, da oftmals mehrere Millionen Dollar an Kryptowährung verwaltet werden. Um potentiellen Angriffen entgegenzuwirken ist es unabdingbar Smart Contracts umfänglichen Sicherheitstests zu unterziehen. Für PC Software hat sich Fuzzing als eine sehr effektive Methode erwiesen, um Sicherheitsfehler in Software zu finden. Insbesondere hat sich Fuzzing als die effektivste Methode herausgestellt, um Fehler in C/C++ Code aufzuspüren. In diesem Projekt werden wir Fuzzing auf Ethereum Smart Contracts anwenden. Ethereum ist die populärste Blockchain Technologie für Smart Contracts und setzt ein eigenes Bytecode Format ein, um Smart Contract Code zu speichern und auszuführen. Dieses Format ist jedoch nicht für Ausführungsgeschwindigkeit optimiert, so dass Smart Contracts nicht effizient durch Fuzzing getestet werden können. Um Smart Contracts effektiv mit Fuzzing zu testen müssen wir zwei Probleme angehen:
- Wir müssen in der Lage sein Smart Contracts mit hoher Geschwindigkeit auszuführen.
- Wir benötigen ein "Bug Oracle" - also eine Methode, um Bugs während der Ausführung zu erkennen.
In dieser PG sollen beide Aspekte bearbeitet werden, um dann zu einem effektiven Fuzzing Framework für Smart Contracts zu gelangen. Ziel der PG ist es ebenfalls, den Teilnehmern die Möglichkeit zu geben Smart Contract Technologien sowie Sicherheitsprobleme und -lösungen kennenzulernen.
Im ersten Schritt werden wir ein Tool entwickeln, um Smart Contract Bytecode in nativen Code zu übersetzen, d.h. der Bytecode des Smart Contracts wird in äquivalenten C Code übersetzt. Damit ergibt sich ein flexibles als auch sehr effizientes Framework um Smart Contract Bytecode auszuführen. Durch die Verwendung von C als "intermediate language" lässt sich vorhandenes Tooling aus der C/C++ Fuzzing Welt wiederverwenden. Dabei muss jedoch darauf geachtet werden die Blockchain Umgebung möglichst gut zu emulieren bzw. zu modellieren, wobei in diesem Projekt das Testen von Smart Contracts in Isolation voneinander im Vordergrund steht.
Im zweiten Schritt werden wir das Framework um ein Bug Oracle erweitern, welches Fehler bei der Ausführung von Smart Contracts erkennen kann. Hier wäre z.B. Reentrancy als ein primäres Problem zu nennen. Reentrancy ist ein Concurrency Fehler, der bei Smart Contracts besonders fatale Folgen haben kann. Durch einen Reentrancy Bug wurde im „The DAO Hack“ Kryptowährung im Wert von 50 Millionen US-Dollar entwendet. Reentrancy Fehler bei Smart Contracts können im Grunde wie andere Concurrency Bugs betrachtet werden. Abschließend wird das entwickelte Fuzzing Framework hinsichtlich Code-Coverage und Geschwindigkeit evaluiert.
Termin des ersten PG-Treffens im Sommersemester: 14.04.2021 um 10:00
Concurrency
| Type of course | Vorlesung |
|---|---|
| Lecturer | Prof. Dr.-Ing. Lucas Vincenzo Davi |
| Contact | Prof. Dr.-Ing. Lucas Vincenzo Davi |
| Term | Summer Semester 2021 |
| Time | Mo, 14-16 Uhr |
| Room | Online |
| Start | 12. Apr. 2021 |
| End | 23. Jul. 2021 |
| Language | German |
| Moodle | Lecture in Moodle |
| LSF | Lecture in LSF |
- B.-A., Mordechai: Principles of Concurrent and Distributed Programming, Second Edition. Addison-Wesley 2006
- B.-A., Mordechai: Principles of the Spin Model Checker. Springer, 2008
- M. Herlihy, N. Shavit: The Art of Multiprocessor Programming, Revised Reprint. Morgan Kaufmann 2012
Übung: Concurrency
| Type of course | Übung |
|---|---|
| Lecturer | Prof. Dr.-Ing. Lucas Vincenzo Davi |
| Contact | Prof. Dr.-Ing. Lucas Vincenzo Davi |
| Term | Summer Semester 2021 |
| Time | Mo, Di, Mi, 16-18 Uhr |
| Room | Online |
| Start | 12. Apr. 2021 |
| End | 23. Jul. 2021 |
| Language | German |
| Moodle | Lecture in Moodle |
| LSF | Lecture in LSF |
Theoretische und praktische Übungen zur Vorlesung Concurrency.
Je nach Übungsart findet entweder eine Zentralübung am Mo im Vorlesungsraum SH-601 oder Kleingruppenübungen am Mo, Di, Mi im Raum SM-205 statt. Genaue Termine werden in der Vorlesung bekannt gegeben.
- B.-A., Mordechai: Principles of Concurrent and Distributed Programming, Second Edition. Addison-Wesley 2006
- B.-A., Mordechai: Principles of the Spin Model Checker. Springer, 2008
- M. Herlihy, N. Shavit: The Art of Multiprocessor Programming, Revised Reprint. Morgan Kaufmann 2012
Bachelorprojekt Sichere Software Systeme
| Type of course | Bachelorprojekt |
|---|---|
| Lecturer | Prof. Dr.-Ing. Lucas Vincenzo Davi |
| Contact | |
| Term | Summer Semester 2021 |
| Time | nach Absprache |
| Room | nach Absprache |
| Language | German/English |
| LSF | Lecture in LSF |
Das Bachelorprojekt Sichere Software Systeme konzentriert sich auf aktuelle Forschungsthemen im Bereich der anwendungsorientierten IT-Sicherheit. Bei Interesse an einem Bachelorprojekt wenden Sie sich an Prof. Davi, um einen persönlichen Termin zu vereinbaren. Basierend auf Ihren Interessen, Vorkenntnissen und unseren aktuellen Forschungsthemen, werden wir dann gemeinsam ein Thema für Sie auswählen.
Seminar Embedded Security
| Type of course | Seminar |
|---|---|
| Lecturer | Prof. Dr.-Ing. Lucas Vincenzo Davi |
| Contact | |
| Term | Summer Semester 2021 |
| Time | nach Absprache |
| Room | nach Absprache |
| Start | 12th Apr 2021 |
| Language | English |
| Moodle | Lecture in Moodle |
| LSF | Lecture in LSF |
Eingebettete Geräte sind weit im Alltag der Menschen verbreitet. Wie andere Computersysteme auch sind Schwachstellen in diesen Geräten weit verbreitet. Die Sicherheitsanalyse solcher Geräte stellt durch die verwendete Technik und Architektur einige Besonderheiten dar.
In diesem Seminar werden Grundlagen und Methoden der Sicherheitsanalyse solcher eingebetteten Systeme vermittelt. Es wird sowohl der theoretische Hintergrund, als auch der praktische Umgang mit Analysetools behandelt. Dabei werden die Teilnehmer anhand eine exemplarische IoT Applikation mit bekannten Schwachstellen, mit Hilfe von existierenden Tools analysieren um den Umgang und die Vor- und Nachteile der Methoden kennenzulernen. In der Seminararbeit werden dann die theoretischen Hintergründe und die praktischen Erfahrungen der Teilnehmer kombiniert und schriftlich ausgearbeitet. Erfahrungen in systemnaher Programmierung sind hilfreich da wir uns primär mit Systemsoftware (C, C++) auseinandersetzen aber nicht zwingend notwendig.
Die Studierenden lernen Methoden des wissenschaftlichen Arbeitens und sind in der Lage eigenständig ein Themengebiet auf Basis von wissenschaftlichen Veröffentlichungen zu erarbeiten. Durch die Seminararbeit lernen die Studierenden ein wissenschaftliches Thema zusammenzufassen sowie wissenschaftliche Publikationen zu systematisieren und bewerten.
Ergänzt wird die theoretische Arbeit durch praktische Aufgabestellungen die mit state-of-the-art Research Tools bearbeitet werden.
Die Studierenden üben die Präsentation über ein wissenschaftliches Themengebiet in Form der Abschlusspräsentation.
Der erste Termin findet am 19. April 2021 von 14:00−16:00 Uhr per Internet/moodle statt.
Für die Teilnahme ist eine vorherige, formlose Anmeldung per E-Mail an Sebastian Surminski notwendig.
Das Seminar ist bereits ausgebucht. Alle Plätze sind vergeben. Weitere Anmeldungen sind leider nicht möglich.