Mi, 14. Okt. 2020   Rodler, Michael

Neue Technik behebt Sicherheitslücken in Smart Contracts

Smart Contracts haben Ethereum zur weltweit zweitgrößten Kryptowährung gemacht. Doch in jüngster Zeit kam es zu mehreren kriminellen Vorfällen, bei denen Fehler in den programmierten Verträgen ausgenutzt wurden. Die paluno-Arbeitsgruppe von Prof. Lucas Davi hat gemeinsam mit Partnern eine Technik entwickelt und evaluiert, mit der veröffentlichte Smart Contracts zeitnah ausgebessert werden können.

Smart Contracts werden in modernen Blockchain-Systemen verwendet, um vertragliche Regelungen jeglicher Art zu implementieren. Sie ermöglichen die autonome Verwaltung von Kryptowährung und regeln ohne Zutun einer dritten Partei (z.B. eines Notars oder einer Bank) den Transfer von Werten und Rechten zwischen Akteuren. Damit haben Smart Contracts großes Potenzial, Geschäftsfelder wie die Finanz-, Versicherungs- oder Energiewirtschaft zu revolutionieren. Weil sie so leicht einzusetzen sind und einige Verträge einen hohen Geldwert aufweisen, sind Smart Contracts ein attraktives Ziel für Hacker. Sie versuchen, Programmierfehler im Code auszunutzen, um z.B. Kryptowährung zu stehlen.

Um dies zu verhindern, müssen Entwickler schnell nach Bekanntwerden von Sicherheitslücken reagieren. Denn Smart Contracts sind von Natur aus immer online und immer verfügbar. Das bringt die verteilte Struktur der zugrundeliegenden Blockchain mit sich. Doch eine schnelle Korrektur geschieht selten, wie Mitarbeiter unserer Forschungsgruppe Michael Rodler weiß: „Unsere Analysen der Ethereum-Blockchain haben gezeigt, dass verwundbare Smart Contracts oft von nichts ahnenden Benutzern weiter verwendet werden, obwohl die Sicherheitslücken in diesen Contracts schon Monate zuvor öffentlich gemacht wurden. Es werden häufig keine Maßnahmen getroffen, um diese Smart Contracts zu beenden oder diese auszubessern.“

Ein Grund dürfte sein, dass die derzeit verfügbaren manuellen Korrekturverfahren aufwendig und fehleranfällig sind. Unsere Arbeitsgruppe hat daher gemeinsam mit NEC Laboratories Europe ein Framework entwickelt, das Entwicklern hilft, Fehler automatisiert zu beseitigen. Dazu verfügt das neue Patching Framework über einen sogenannten Bytecode Rewriter. Unabhängig von der verwendeten Programmiersprache und vom Compiler schreibt dieser den Bytecode gängiger Ethereum-Smart-Contracts um und schließt hierdurch bestimmte Sicherheitslücken.

Die Wirksamkeit dieser Technik wurde anhand von simulierten Angriffen auf 14.000 reale, anfällige Smart Contracts nachgewiesen. Die Angriffstransaktionen konnten erfolgreich blockiert werden, während die Funktionalität der ursprünglichen Verträge vollständig intakt blieb. Eine Usability-Studie zeigte, dass das Tool praxistauglich ist und Entwicklern einen entscheidenden Zeitvorteil bringt. „Durch unser Framework EVMPatch können Entwickler schnell auf Sicherheitslücken reagieren und direkt den fehlerhaften Code ausbessern. Damit schützen sie vor allem die Benutzer ihrer Smart Contracts“, erläutert Michael Rodler, der die Arbeit nächstes Jahr auf dem renommierten USENIX Security Symposium in Vancouver vorstellen wird.

Veröffentlichung

Rodler, Michael; Li, Wenting; Karame, Ghassan O.; Davi, Lucas: EVMPatch: Timely and Automated Patching of Ethereum Smart Contracts. In: Proc. of 30th USENIX Security Symposium. USENIX Association, Vancouver, B.C., Canada 2021. https://arxiv.org/abs/2010.00341  

Mehr Informationen auch auf unserer Projektseite zum Projekt "Securing Smart Contracts".