Singleview
Fri, 03. Nov. 2023 Birgit Kremer
Sicherheitslücken im Solana-Netzwerk aufgedeckt
Solana ist eine schnell wachsende Blockchain, die es ermöglicht, dezentrale Apps zu entwickeln und auf den Markt zu bringen. Sie zeichnet sich durch Skalierbarkeit und Schnelligkeit aus, birgt aber auch spezielle Sicherheitsrisiken. Mit einer neuen Analysemethode identifizierte ein Forschungsteam von paluno – The Ruhr Institute for Software Technology an der Universität Duisburg-Essen (UDE) mehrere Schwachstellen im Solana-Netzwerk.
Von dezentralen Finanzen (DeFI) bis hin zu Marktplätzen für digitale Kunst – dezentrale Applikationen, kurz DApps, haben ein breites Anwendungsspektrum. Und sie gewinnen zunehmend an Bedeutung, weil immer mehr Nutzer:innen unabhängig von einzelnen Anbietern sein wollen. Wichtige Daten werden bei DApps nicht wie üblich auf einem bestimmten Gerät oder Server, sondern dezentral in einem Netzwerk gespeichert. Realisiert wird dies mit Smart Contracts, die im Hintergrund von DApps laufen. Diese programmierten Verträge regeln z.B. den Kauf eines digitalen Kunstwerks, indem sie das Ergebnis einer Transaktion automatisch, ohne Eingriffe von Dritten, in unveränderbaren Blöcken auf einer Blockchain codieren.
Eine der bekanntesten öffentlichen Blockchains für Smart Contracts ist Ethereum. Doch auch Solana gewinnt zunehmend an Popularität. Im Vergleich zu Ethereum zeichnet sich diese Blockchain durch ihre „zustandslose“ Architektur aus, die sie sehr schnell, skalierbar und kostengünstig macht. Allerdings hat diese Technologie auch ihre Schattenseiten: Sie eröffnet neue, spezifische Angriffsmöglichkeiten auf Solana, für die es bislang nur wenige Abwehrmechanismen gibt. Tatsächlich haben bereits Angriffe auf Smart Contracts in Solana beträchtliche Verluste von Vermögenswerten verursacht. So z.B. beim berühmten Wormhole-Hack im Februar 2022, bei dem 320 Millionen US-Dollar verloren gingen.
Neue Analysetechnik benötigt keinen Quellcode
Um die Solana-Blockchain sicherer zu machen, haben die paluno-Teams von Prof. Dr. Lucas Davi und Prof. Dr. Klaus Pohl gemeinsam mit Prof. Dr. Ghassan Karame von der Ruhr-Universität Bochum eine Lösung entwickelt, mit der sich Sicherheitslücken in der Solana-Blockchain aufdecken lassen. Ihr Ansatz basiert auf Fuzz-Testing, bei dem sie die Smart Contracts mit einer großen Anzahl von Eingaben konfrontieren, um Rückschlüsse auf die Struktur der Codes zu ziehen. „Als bislang einzige Lösung für Solana arbeiten unsere Analysetechniken direkt mit dem Binärcode der Smart Contracts und können Solana-spezifische Programmierfehler aufspüren“, erklärt Prof. Dr. Lucas Davi. „Wir benötigen also keinen Quellcode, auf den man bei Solana meist keinen Zugriff hat.“
Mit Hilfe ihrer Testmethode haben die Forschenden die bislang umfangreichste Sicherheitsanalyse im Hauptnetzwerk von Solana durchgeführt. Sie untersuchten 6049 Smart Contracts und fanden in 52 Programmen Fehler. 14 Bugs wurden als schwerwiegend eingestuft und könnten potenziell von Hackern ausgenutzt werden. Die Solana Foundation wurde über diese Schwachstellen informiert. Am 28. November 2023 stellen die Partner ihre Lösung auf der renommierten IT-Sicherheitstagung ACM CSS in Kopenhagen vor.
Die häufigsten Fehlerklassen im Solana-Hauptnetzwerk
Die meisten der aufgedeckten Schwachstellen lassen sich den Fehlerklassen „Missing Signer Checks“ und „Arbitrary Cross Program Invocation“ zuordnen.
Der Missing Signer Check ist eine fehlende Überprüfung der Signatur einer Transaktion. In vielen Fällen haben solche Schwachstellen schwerwiegende Folgen, da sie Angreifern die Möglichkeit bieten, unautorisierten Zugriff auf sensible Daten und finanzielle Ressourcen zu erhalten. Das kann zum Beispiel Crowdfunding-Initiativen betreffen, wenn sie die Transaktion von Spenden mit Hilfe von Smart Contracts realisieren. Hier muss die Methode zum Abrufen der Gelder explizit prüfen, dass die Signatur des Aufrufenden auch tatsächlich die Signatur des Crowdfunding-Initiators ist. Wenn diese Überprüfung fehlt oder unzureichend ist, liegt ein Missing Signer Check vor. In solchen Fällen kann ein beliebiger Nutzer seine eigene Signatur angeben und der Smart Contract akzeptiert die Transaktion. Angreifer könnten auf diesem Weg die gesamten Gelder des Crowdfunding-Projekts stehlen. Die Forscher fanden Missing-Signer-Check-Lücken in 30 der 6049 Smart Contracts. 3 dieser Bugs wurden nach näherer Untersuchung als schwerwiegend eingestuft.
Eine zweite Fehlerklasse, die Arbitrary Cross Program Invocation (ACPI), kann dazu führen, dass ein Smart Contract einen schädlichen, von Angreifern entwickelten Smart Contract aufruft. Bei dieser Art der Schwachstelle wird die Adresse eines unerlaubten Smart Contracts übergeben und innerhalb der aktiven Funktion zu einem späteren Zeitpunkt aufgerufen.
Dies kann zum Beispiel im Bereich von Decentralized Finance (DeFi) zu Problemen führen. Eine DeFi-Plattform besteht aus mehreren Smart Contracts, die beispielsweise eine Kreditvergabe regeln. Diese Verträge holen von externen Oracle-Services Daten ein, wie zum Beispiel den Preis einer Kryptowährung. Angreifer könnten nun einen eigenen Oracle-Service erstellen und diesen unter Ausnutzung einer ACPI-Lücke in den Kreditvertrag einschleusen. Der Kreditvertrag würde dann den vom Angreifer erstellen Oracle-Service aufrufen, welcher den Preis für die Kryptowährung beliebig niedrig ansetzt, um der DeFi-Plattform finanziellen Schaden zuzufügen.
Die Forschenden fanden ACPI-Schwachstellen in 12 der 6049 Smart Contracts. Nach näheren Untersuchungen stufte das Forschungsteam 5 Fälle als schwerwiegenden Fehler ein, der eine gezielte Ausnutzung der ACPI-Lücke ermöglicht.
Veröffentlichung
Smolka, Sven; Giesen, Jens-Rene; Winkler, Pascal; Draissi, Oussama; Davi, Lucas; Karame, Ghassan; Pohl, Klaus: Fuzz on the Beach: Fuzzing Solana Smart Contracts. In: Proceedings of the 2023 ACM SIGSAC conference on Computer & communications security. Kopenhagen, Denmark 2023. arXiv.org