Das Jahr 2021 war leider ein Jahr der Krypto-Hacks. Fünf der zehn bisher größten Krypto-Hacks sind gemäß einer Comparitech-Statistik im Jahr 2021 passiert. Alleine im Dezember 2021 wurden 400 Millionen US-Dollar gestohlen.
Auf Platz 1 ist natürlich der Angriff auf das Poly-Netzwerk: Ein anonymer Hacker stahl rund 600 Millionen US-Dollar – und gab diese dann wieder größtenteils zurück. Vier Monate später im Dezember 2021 folgten drei weitere massive Exploits: Bitmart, BadgerDAO und VulcanForge. Insgesamt haben Hacker mehr als 400 Millionen US-Dollar allein im Dezember 2021 gestohlen.
Größe der Krypto-Hacks nimmt zu
Sicherheitsvorfälle wie diese sind in der Krypto-Welt nicht neu, aber die Größe dieser Hacks scheint zuzunehmen. Mögliche Gründe dafür sind, dass Preise für Kryptowährungen gestiegen sind und immer mehr Aufmerksamkeit im Mainstream auf sich ziehen. Diese Aufmerksamkeit resultiert in einem Wachstum der Liquidität, die im Krypto-Finanzsystem eingeschlossen ist. Zudem werden die Methoden der Hacker immer ausgefeilter.
Konzentrieren wir uns auf den BadgerDAO-Hack, da sich dieser konzeptionell von bisherigen, eher traditionellen Hacks unterscheidet und besonders lehrreich für unseren Umgang mit Krypto-Transaktionen sein kann. Wie konnte dieser Hack passieren? Was sollten wir daraus lernen?
Wie konnte der BadgerDAO-Hack passieren?
Badger ist eine dezentralisierte autonome Organisation – also eine DAO eben. Ihr Ziel ist es, Produkte und Infrastruktur zu bauen, die notwendig sind, um Bitcoin als Sicherheit in DeFi-Blockchains zu verwenden. Der BadgerDAO-Hack unterscheidet sich wie gesagt konzeptionell von eher traditionellen Reentrancy-Angriffen. Letztere zielen darauf ab, Schwachstellen im Code von Smart Contracts der Protokolle auszunutzen. Diese Schwachstellen werden auch Bugs genannt. Derartige Angriffe manipulieren die Logik der Ausführung von Funktionen innerhalb eines Smart Contracts.
Der BadgerDAO-Angreifer mischte sich aber nicht in den Code von Smart Contracts ein, sondern beschloss einfach, dort anzugreifen, wo es niemand erwartet hat – in der Nutzeroberfläche der BadgerDAO-Webseite. Dem Angreifer gelang es, die Smart-Contract-Adresse in der Nutzeroberfläche von BadgerDAO zu ersetzen. Wenn Benutzer Transaktionen in Auftrag gaben, erhielten sie Genehmigungsanfragen mit einer falschen Smart-Contract-Adresse. Aber weil diese Anfragen abgesehen von den Adressen der Smart Contracts nicht anders aussahen, autorisierten viele der Benutzer die falschen Genehmigungsanfragen. Dadurch sind dann die Verluste entstanden – laut Analyse-Firma PeckShield rund 2.100 BTC und 151 ETH.
Was können wir aus dem BadgerDAO-Hack lernen?
Weil die Krypto-Hacks auch im Jahr 2022 in Quantität und Qualität schwerer ausfallen werden, formuliere ich vier Maßnahmen, die wir aus dem BadgerDAO-Hack lernen können. Diese Maßnahmen können in Zukunft einen ähnlichen oder gleich gelagerten Angriff vermeiden oder zumindest weniger schwer ausfallen lassen.
Maßnahme #1: Gültige Smart-Contract-Adressen sollten über verschiedene Quellen hinweg querverwiesen werden.
Diese Quellen einer Smart-Contract-Adresse beinhalten einzelne Seiten auf der Website des Protokolls, externe Quellen, die die Adresse des gültigen Smart Contract erwähnen, Social-Media-Kanäle des Protokolls sowie die Dokumentation des Protokolls. Sobald Zweifel hinsichtlich der Art der Überweisungsanfrage bestehen, prüft man die unterschiedlichen Querverweise auf die Korrektheit der Smart-Contract-Adresse und lehnt im Zweifel besser ab. Man kann dann weitere Nutzer warnen und wahrscheinlich viele vor dem Verlust ihrer Tokens bewahren.
Maßnahme #2: Whitelist-Funktionen von Wallets ermöglichen es Nutzern, gültige Smart-Contract-Adressen zu speichern.
Diese Funktionen ermöglichen es dem Nutzer, die gültigen Smart-Contract-Adressen, die er regelmäßig verwendet, zu speichern und mit einem Label zu benennen. Wenn ein unbekannter Smart Contract eine Anfrage zur Übertragungserlaubnis sendet, wird der Benutzer auf diese Weise sofort benachrichtigt, dass es sich nicht um einen Smart Contract handelt, den er zuvor bereits verwendet hat. Apropos Ethereum-Wallets: die Metamask-Wallet, die beliebteste Desktop-Ethereum-Wallet, hat diese Funktion.
Maßnahme #3: Software-Tools wie Unrekt und DeBank ermöglichen es Nutzern, Übertragungsberechtigungen von Smart Contracts über eine Reihe von Blockchains hinweg wieder zu widerrufen.
Unrekt unterstützt Ethereum, BSC, Huobi ECO Chain, Fantom und Polygon. Debank unterstützt dieselben plus Avalanche, xDAI, Okexchain und weitere. DeBank zum Beispiel ist eine Kryptowährungs-Wallet, die entwickelt wurde, um DeFi-Daten zu verfolgen. Darunter sind auch Zinssätze für dezentrale Anwendungen oder Börsen (DEX) und DeFi.
Maßnahme #4. Automatische Berechtigungen sollten nur für Transaktionen bis zu einem definierten Maximalbetrag festgelegt werden.
Auf diese Weise riskiert man nur den in der Transaktion angegebenen Maximalbetrag und nicht die gesamte Liquidität einer bestimmten Kryptowährung oder eines Tokens in der eigenen Wallet.
Fazit
Der BadgerDao-Hack zeigt, wie wichtig ein umfassender Ansatz für die Sicherheit im Krypto-Space ist. Aus Sicht der Smart Contracts von BadgerDAO war nichts schiefgelaufen, und der Angreifer nutzte nur die von den Benutzern erteilten Genehmigungen. Das eigentliche Problem lag im Frontend, wo der Angreifer bösartige Funktionen in die Website von Badger einschleusen konnte.
Benötigt werden Sicherheits-Audits, die über den Smart-Contract-Code hinausgehen. Die Sicherheitsrichtlinien eines jeden Protokolls sollten den Schutz kritischer Daten wie API-Schlüssel umfassen. Auf der Benutzerseite ist es wichtig, niemals alle Genehmigungen einfach zu autorisieren, insbesondere für unbekannte Adressen.