Skip to main content

Sicherheitslücke bei Ledger gefunden: Warum Bug-Bounties wichtig sind!

Am von

Die Entwickler der Liana Wallet fanden Anfang April eine Sicherheitslücke in der Bitcoin Anwendung des Hardware-Wallet-Herstellers Ledger. Zunächst dachten sie, auf einen Fehler in ihrer eigenen Software gestoßen zu sein, doch später stellte sich heraus, dass dieser auf eine Implementierung von Ledger selbst zurückzuführen war. Theoretisch ermöglichte die Sicherheitslücke sogar den Diebstahl von Bitcoin!

Glücklicherweise handelte es sich um eine recht neue und damit auch unbenutzte Funktionalität, die bisher ohnehin nicht wirklich produktiv eingesetzt wurde. Wahrscheinlich waren die Entwickler der Liana Wallet, welche zukünftig kompliziertere Ausgabebedingungen von Bitcoin für Anwendungsfälle wie Vererbung ermöglichen soll, die ersten, die überhaupt mit dieser Schwachstelle in Berührung kamen.

Nutzer der Ledger Hardware-Wallets waren also nicht direkt von der Schwachstelle betroffen, die mittlerweile auch behoben wurde. Auch wenn Schlagzeilen zu „Sicherheitslücken“ schnell negative Stimmung, vor allem bei Kunden, auslösen, ist dieser Fall eigentlich ein eher positives Beispiel dafür, warum Open-Source und sogenannte Bug-Bounty-Programme extrem wichtig sind!

„Heute legten wir eine Schwachstelle offen, die wir in der Miniscript Implementation von Ledgers Bitcoin Anwendung gefunden hatten.

Während diese Schwachstelle Diebstahl ermöglichte, waren die Auswirkungen minimal, da sehr wenige Menschen (Niemand?) diese Funktionalität genutzt haben.“

@darosior auf Twitter

Miniscript

Die mittlerweile behobene Sicherheitslücke fand sich in Ledgers Implementation von Miniscript, einer Programmiersprache, um einfach und vor allem sicher, auch kompliziertere Ausgabebedingungen in der Bitcoin Script Sprache umzusetzen. Da letztere schnell komplex und unleserlich wird, kann stattdessen eine gewünschte Funktionalität in Miniscript formuliert werden, welche dann in ein vollumfängliches Bitcoin Script „übersetzt“ wird.

Genau hier lag der Fehler: Eine bestimmte Miniscript-Anweisung wurde nicht vollständig in die Bitcoin Script Sprache übersetzt. Damit öffnete sich eine Sicherheitslücke, die potenziell ausgenutzt werden konnte, um Bitcoin zu stehlen.

Aber keine Sorge: Bei der normalen Nutzung der Ledger Hardware-Wallets, also beispielsweise einfaches Senden und Empfangen von Bitcoin, wird von solchen fortgeschritteneren Funktionen noch gar keinen Gebrauch gemacht.

Schwachstellen gesucht

Fehler sind in der Software-Entwicklung eigentlich kaum bis gar nicht zu vermeiden. Wenn es um sicherheitskritische Anwendungen geht, ist es daher umso wichtiger, dass Schwachstellen nicht hinter verschlossenen Türen verschwiegen werden. Der Quellcode der hier betroffenen Anwendung ist Open-Source, also für jeden frei einsehbar. Darüber hinaus führt Ledger, wie viele andere Hersteller von Hardware-Wallets übrigens auch, ein sogenanntes Bug-Bounty Programm, bei dem wortwörtlich ein Kopfgeld auf potenzielle Schwachstellen und Fehler ausgesetzt wird.

Damit haben Entwickler und Experten, darunter vor allem solche, die sich auf Sicherheit spezialisiert haben, einen klaren Anreiz, sich den offenen Quellcode überhaupt anzuschauen und nach Fehlern zu suchen. Wird ein Fehler gefunden, geht man damit nicht direkt an die Öffentlichkeit, sondern legt diesen verantwortungsbewusst an den Hersteller in einer sogenannten Responsible Disclosure offen. Der Hersteller kann dann die Sicherheitslücke schließen, das „Kopfgeld“ als Belohnung auszahlen und währenddessen den Schaden für Nutzer möglichst minimal halten.

Genau aus diesem Grund ist es wichtig, auf Hersteller und Anbieter zu setzen, die Wert auf diese Philosophie legen. Vielen sollte bewusst sein, dass Open-Source, vor allem im Bitcoin Bereich, ein wichtiger Grundsatz ist. Doch die reine Möglichkeit, sich den Quellcode anzuschauen, ist nicht immer genug: Einen wirklichen Anreiz hat man als qualifizierter Experte erst, wenn bei Fund einer Schwachstelle auch eine entsprechende Belohnung auf einen wartet.