Die Skandale um den chinesischen Asic-Fabrikanten BitMain hören nicht auf. Gestern wurde ein Stück Code in der Standardsoftware der S9-Miner enthüllt, durch welches die Mining-Geräte aus der Ferne abgeschaltet werden können. Wir haben mit Bitmains Jihan Wu und einem kanadischen Miner über den Vorfall geredet, um ein wenig Klarheit zu schaffen. Bug oder Feature?
Gestern ging die Webseite Antbleed.com online. Die professionell gestaltete Seite enthüllt eine Backdoor in der Software der neuen Generation von AntMinern. Diese sind die beliebtesten und effizientesten Mining-Maschinen auf dem Markt. Sie werden von BitMain hergestellt, einem chinesischen Asic-Produzenten. Seit BitMains AntPool Bitcoin Unlimited anstatt SegWit Blöcke erzeugt, ist die Firma das Ziel eines digitalen Dauer-Wutanfalls der Bitcoin-Commuity.
Wie die AntBleed-Webseite erklärt, gibt es in der Software der AntMiner – die Open Source, aber auf den Asics vorinstalliert ist – einen Abschnitt mit einer rätselhaften Funktion. Der Miner „verbindet sich in einem zufälligen Zeitraum alle 1 bis 11 Minuten mit einem zentralen Server. Jede Verbindung übermittelt die Seriennummer des AntMiners, die MAC Adresse sowie die IP Adresse.“ Eine solche geheime, die Privatsphäre verletzende Verbindung ist fragwürdig – aber erst der Anfang des Dramas: Denn wenn der Server die Information „false“ zurückgibt, hört der Miner auf zu minen.
Mit diesem Code kann BitMain jeden AntMiner der S9 Serie herunterfahren. Die Firma kann auch, wie die Webseite erklärt, spezifische Miner per Seriennummr oder IP-Adresse ansteuern und herunterfahren. Da zudem der Anruf beim Server etwas unsicher geschrieben ist, können Man-in-the-Middle-Angriffe oder große Anti-DoS-Provider wie CloudFlare die Miner angreifen und herunterfahren. All dies scheint ohne jeden Zweifel richtig zu sein.
Lediglich ein Schutz gegen den Diebstahl von Minern?
Über einen Chat habe ich versucht, Jihan Wu von Bitmain zu einem Kommentar zu bewegen. Kurz bevor ich den Artikel veröffentlichen wollte, hat er geantwortet (womit ich den ganzen Text nochmal umschrieben musste). Er räumte ein, dass die AntBleed-Webseite größtenteils korrekt ist, und erklärt, was es mit dem Code auf sich hat:
„Es ist ein Feature, das wir derzeit entwickeln und das noch unvollständig ist. Es soll den Besitzern von Minern helfen, ihre Geräte zu orten, wenn sie bei einer dritten Partei gehostet werden. Wenn die Miner gestohlen oder gekapert werden, kann der Besitzer dieses Feature nutzen, um den Miner abzuschalten.“
In einem Statement, das BitMain mehr oder weniger zum selben Zeitpunkt veröffentlichte, erklärt die Firma, weshalb man dieses Feature entwickelt hat: „Dies geschah, nachdem es mehrfach passiert ist, dass ein Miner von einer Farm gestohlen wurde oder von deren Betreiber gekidnappt wurde.“ Die Webseite listet einige Vorfälle von 2014, 2015 und 2017, während denen mehrere tausend Antminer von den Hosting Providern eingezogen wurden.
Wegen technischer Probleme, erklärt Jihan Wu, wurde das Feature jedoch niemals fertiggestellt. Die Tatsache, dass eine bösartige Partei in der Lage ist, den Code zu patchen, so dass man den Miner nicht mehr herunterfahren kann, macht es mehr oder weniger wertlos. Wu räumt ein, dass es „ein Bug ist, den Code stehen zu lassen und den Test-Server herunterzufahren. Wir haben den Code nun entfernt und eine neue Version der Firmware veröffentlicht.“
Kein Killswitch, aber ein „Telefonier nach Hause“-Feature?
Bevor ich mit Jihan Wu gechattet habe, hatte ich ein Gespräch mit einem kanadischen Miner über AntBleed. Der Miner möchte anonym bleiben, daher nur soviel: Er schürft verschiedene Kryptowährungen und betreibt eine Mining-Farm mit verschiedenen Geräten, darunter auch Antminer S9. Seine Erklärungen sind teilweise durch das Statement von Jihan Wu hinfällig, werfen aber doch ein interessantes Licht auf den zur Debatte stehenden Code – und sie liefern alternative Erklärungen für dessen Zweck, für den Fall, dass ihr BitMain nicht glaubt.
Der Miner hat die ganze Nacht damit verbracht, den Vorfall zu testen. Er erklärt, dass der Remote Server, mit dem die AntMiner sich verbinden, die DNS-Adresse auth.minerlink.com hat. Gegenwärtig ist diese Adresse inaktiv – wenn man sie anpingt, gibt es keine Antwort – aber es ist möglich, lokal die DNS-Adresse an eine andere IP-Adresse weiterzuleiten, indem man eine Datei auf seinem System verändert. Die AntBleed-Website stellt einen Server bereit, mit dem man seinen Miner verbinden kann, um herauszufinden, ob die Maschine aus der Ferne abgeschaltet werden kann.
Der kanadische Miner mit dem ich geredet habe, wollte allerdings keine Daten an eine anyome Webseite weiterleiten, weshalb er „das AntBleed Python Script auf eine Virtuelle Maschine geladen und es für die ganze Farm getestet“ hat. Das Ergebnis war, dass 12 Prozent seiner Miner aufgehört haben, zu minen. Dies sind die meisten, aber nicht alle Maschinen, die hergestellt wurden, nachdem BitMain den AntBleed Code in die Firmware geschrieben hat. Der Miner konnte nicht erklären, weshalb nicht alle der betreffenden Geräte mit dem Mining aufgehört haben.
Gefragt, ob er meint, dass das ein „Killswitch“ für AntMiner sei, antwortete er: „Ich denke nicht. Es ist tatsächlich nur ein Feature, dass der Miner zuhause anrufen und eine Antwort vom Server bekommen kann. Und die Adresse, auf der er anruft, ist in den Code eingeschrieben.“ Um diese Funktion zu hacken, muss man die Auflösung der DNS-Adresse in eine IP-Adresse großflächig manipulieren, was nicht trivial ist, aber etwa durch Regierungen, DynDNS-Provider oder Anti-DoS-Dienstleister wie CloudFlare möglich sein könnte.
Zugleich stimmte der Miner aber zu, dass BitMain „alle Maschinen, die das Feature haben, herunterfahren kann. Und ja, sie können auch spezifische Kunden anpeilen, etwa indem sie die ID der Maschine speichern, bevor sie sie ausliefern.“ Auf der anderen Seite „ist es trivial, das Feature zu umgehen: Man muss nur eine Zeile in die Datei /etc/hosts einfügen.“ Die Webseite AntBleed erklärt, wie man die Funktion abschalten kann. Dies ist vermutlich der Patch, von dem Jihan Wu sagt, dass er es wertlos macht.
Remote control und Copyright
Der kanadische Miner stimmt BitMain zu, dass AntBleed nicht als Bug oder Backdoor, sondern als Feature eingebaut wurde: „Vor einiger Zeit,“ spekuliert er, „habe ich von Minerlink gehört. Das war ein Projekt von BitMain, mit dem man den Miner aus der Ferne kontrollieren und beobachten kann, über eine Webseite.“ Der Code, der nun enthüllt wurde, „würde vom Miner aus bei der Zentrale anrufen und Daten weiterleiten, wie die IP, die Mac Adresse, die ID des Hashboards und so weiter.“
Da BitMain offenbar aufgehört hat, am Minerlink-Projekt zu arbeiten, reagiert die Webseite derzeit nicht auf Pings. Dies bedeutet, dass die Funktion vermutlich niemals aktiviert wurde. Jihan Wu verneinte jedoch auf die Frage, ob der Code ein Teil von Minerlink ist. Ganz im Gegenteil: „Wenn das Feature fertig ist, werden die User in der Lage sein, ihren eigenen Auth Server aufzusetzen und zu konfigurieren, anstatt durch Minerlink zu gehen.“
„Es ist entweder ein Feature, mit dem man den Miner über die Ferne abschalten kann,“ fährt der kanadische Miner fort, um dann eine interessante Alternative ins Gespräch zu bringen, „aber es kann auch sein, dass BitMain einen Weg gefunden hat, um damit zu verhindern, dass die Miner kopiert werden.“ So ähnlich, wie Google angeblich einen Copyright-Schutz für Hardware als Backdoor in Android-Systeme geschrieben habe, mit dem Android-Geräte herunterfahren könne, könne BitMain das Feature nutzen, um gefälschte Hash Boards zu erkennen und abzuschalten.
„Weaponize“ Code
„Ich denke nicht, dass es einen Wunsch gibt, den Code als Waffe zu verwenden,“ meint der Miner, „Google fährt auch nicht alle Android Smartphones herunter. Wenn der Code in böser Absicht gesetzt worden wäre, hätten sie zumindest versucht, ihn zu verschleiern.“ Aus Sicht des Miners wurde der Code lediglich von Core-Fans als Waffe eingesetzt, um den Ruf von BitMain zu beschädigen. Seitdem BitMain beschlossen hat, Bitcoin Unlimited zu minen, anstatt das von Core entwickelte SegWit, steht die Firma nahezu ununterbrochen unter Beschuss. Das professionelle Design der AntBleed-Webseite und die massive Aktivität auf sozialen Medien unmittelbar nach der Enthüllung weisen darauf hin, dass AntBleed zumindest mit genutzt wurde, um Stimmung gegen BitMain zu machen. Sozusagen als ein Nebenprodukt der Enthüllung.
Dies ändert jedoch nichts an den Fakten. Die Option, einen Miner herunterzufahren, sei es durch den Besitzer, BitMain oder eine Regierung, sollte es nicht geben. Dass sie unbemerkt und unbekannt in der Mining-Software schlief, bis sie enthüllt wurde, wirft kein gutes Licht auf BitMain. Wer weiß, was noch in der Software steckt? Man kann an dieser Stelle nur hoffen, dass die Enthüllung hilft, das Feature so schnell wie möglich auf so vielen Minern wie möglich zu deaktivieren. Dass BitMain es bereits entfernt hat, ist ein Schritt in die richtige Richtung.
Heute haben, könnte man aus all dem folgen, viele Leute gelernt, dass Mining weniger sicher ist, als gedacht – während das Mining zugleich heute sicherer geworden ist.
