-
Reverse Engineering von Bambu Connect
-
Überblick über Bambu Connect
- Bambu Connect ist eine Electron-App, deren Sicherheit auf intransparente Weise implementiert ist und die daher grundsätzlich unsicher ist.
- Dieser Leitfaden soll Nutzern helfen, mehr Rechte an dem Produkt zu haben, das sie gekauft haben.
-
Prozess zur Extraktion des Sicherheitsschlüssels
- Es wird ein einfacher Prozess beschrieben, um den „privaten Schlüssel“ zu extrahieren, der für die Kommunikation mit Bambu-Geräten verwendet wird.
- Mit der MacOS-.dmg-Datei lassen sich die Dateien von Bambu Connect leichter extrahieren.
- Die App verwendet asarmor als Schutz, damit sie nicht leicht lesbar ist, und der Schlüssel wird in einem bestimmten Pfad gespeichert.
- Mit Ghidra kann man
main.nodeladen, Auto-Analyze ausführen und anschließend nach der FunktionGetKeysuchen, um den Schlüssel zu extrahieren.
-
Extraktion von privatem Schlüssel und Zertifikat
- Der private Schlüssel und das Zertifikat sind zusätzlich verschleiert; um sie offenzulegen, sind mehrere Entschlüsselungsschritte nötig.
- Es wird Beispielcode in Python bereitgestellt, um die geheimen Informationen zu extrahieren.
-
Referenzmaterial
- Es wird ein Link zu einer .dmg-Datei einer bestimmten Version von Bambu Connect bereitgestellt.
1 Kommentare
Hacker-News-Kommentare
Ich bin wütend über Bambus Lockvogel-Taktik. Ich habe den Drucker im Black-Friday-Sale gekauft, weil er angeblich „bis zu einem gewissen Grad hackbar und offen“ sei, und jetzt wollen sie ihn so sperren, dass ich ohne genehmigte Software und eine DRM-Kette nicht mehr auf meinem Drucker drucken kann.
Weitere Informationen zum Hack hier: https://hackaday.com/2025/01/19/bambu-connects-authenticatio...
Mich würde wirklich interessieren, worin hier die Lockvogel-Taktik bestehen soll und was früher offiziell möglich war, jetzt aber nicht mehr.
Von Anfang an hat mich nur etwas gestört, dass die RFID-Filamentspulen nicht ausreichend für andere Anbieter geöffnet waren.
Was ich nicht verstehe, ist, dass BambuSlicer Open Source ist. Außerdem ist es ein Fork von PrusaSlicer, also kann Bambu es nicht einfach nach Belieben neu lizenzieren.
Die Lizenz ist die für abgeleitete Werke sehr strenge Affero GPL, und wenn Bambu allen zusätzlichen Code, die Logik und die Schlüssel in die Binärdistribution aufnimmt, muss auch der Quellcode mitgeliefert werden. Andernfalls verletzen sie die Urheberrechte von Prusa und vielen Mitwirkenden.
Am Ende müsste Bambu das also alles als Open Source veröffentlichen, womit der Zweck untergraben wäre; da es ohnehin schon geleakt ist, wird es wahrscheinlich sowieso darauf hinauslaufen, oder sie müssten auch im eigenen Slicer ein separates Programm dazwischenschalten.
Auch das derzeit implementierte Bambu-Netzwerk-Plugin ist kein Teil von BambuStudio; der Client lädt es beim Öffnen von BambuStudio herunter.
Am Anfang war ich sehr gegen Bambu, weil es keine richtige Netzwerkunterstützung gab, also LAN-Unterstützung statt Cloud. Später haben sie einen LAN-Modus hinzugefügt, und ich habe tatsächlich überlegt, einen zu kaufen, aber zum Glück war ich zu faul und habe es nicht getan.
Bambu, was macht ihr da eigentlich? Sicherheit? Nicht einmal HP bringt so eine Ausrede.
https://store.bambulab.com/products/x1e
Aber das ließe sich leicht umsetzen, ohne alle Drittanbieter-Integrationen kaputtzumachen. Ein einziger Schalter in den Einstellungen, der vollständig lokal arbeitet, würde reichen.
Wenn Prusa sich nicht verzettelt hätte, hätte ich den Core One gekauft. Gemeint ist ein hypothetisches Modell mit der Qualität von BambuLab und großem Bauvolumen.
Stattdessen habe ich einen P1S gekauft, und technisch ist das wirklich eine hervorragende Maschine.
Prusa betreibt selbst 600 Drucker. Das ist eher kommerzielle Klasse, und für kommerzielles Design oder Prototyping würde ich Prusa wählen. Schon allein deshalb, weil ich nicht möchte, dass ein ständig mit der Cloud verbundener Drucker meine Entwürfe ins Ausland schickt.
Relevante Einordnung von Louis Rossmann: https://www.youtube.com/watch?v=aIyaDD8onIE
Ich verfolge dieses Thema weiter, seit ich vor etwa einem Monat einen Bambu-Drucker gekauft habe. Gleich nach dem Auspacken gefiel mir der Sicherheitszustand nicht, und es war einiges an Arbeit nötig, ihn in ein IoT-VLAN zu isolieren und trotzdem vom Hauptrechner aus nutzen zu können.
Deshalb würde ich aus dem ersten Eindruck heraus Sicherheitsverbesserungen zwar begrüßen, bin aber auch nervös, was sie tatsächlich vorlegen werden.
Ich frage mich auch, wofür der Schlüssel verwendet wird. Ich habe oft gelesen, dass man „den Schlüssel bekommen“ hat, aber keine Erklärung dazu gesehen, wofür dieser Schlüssel verwendet wird und wie er nützlich ist — oder ob er überhaupt nützlich ist.
Hoffentlich gibt es bald interessantere Neuigkeiten und belastbare technische Informationen.
Für meinen Anwendungsfall funktioniert das überhaupt nicht. Meine Drucker sind auf die China-Region festgelegt, aber ich bin gerade nicht in China und kann diesen Server nicht erreichen. Wenn ich also die Firmware aktualisiere, kann ich vermutlich nicht einmal mehr über mein lokales Netzwerk per LAN drucken, und das fühlt sich extrem unangenehm an.
Der Drucker selbst ist großartig, aber das ist völlig unnötig.
Was man hier sieht, ist eine Struktur, die Nutzer an die Software von Bambu Lab bindet. Wenn man mein Bankkonto mit einer „Sicherheitskorrektur“ dieser Art von Bambu Lab schützen wollte, würde ich das niemals zulassen.
Die Firmware kann diese Vorgänge verifizieren und MQTT-Nachrichten von Drittanbieter-Software ohne Signatur oder mit ungültiger Signatur ablehnen.
Der große Fehler dieses Ansatzes ist, dass Drittanbieter-Software wieder vollen Zugriff erhält, sobald der Schlüssel extrahiert wurde.
Es gibt keine Sicherheitsverbesserung. Wenn der Drucker oder die Cloud verwundbar waren, hält diese Obfuskationsschicht überhaupt nichts auf.
Das Authentifizierungsschema ist dasselbe wie zuvor: https://git.devminer.xyz/archive/bambu-connect/src/commit/47...
Bambus Antwort: https://blog.bambulab.com/updates-and-third-party-integratio...
Im ersten Punkt von
truth about the updateheißt es, man wolle Drittanbieter-Software nicht einschränken, sondern habe Bambu Connect geschaffen, um die Sicherheit zu stärken und gleichzeitig Integrationen aufrechtzuerhalten, und man arbeite aktiv mit Entwicklern wie Orca Slicer zusammen.Der OrcaSlicer-Entwickler hat jedoch bereits in [0] erklärt, dass Bambu diese Änderung zwei Tage vor der Ankündigung mitgeteilt hat.
Das, was Bambu als „Zusammenarbeit“ bezeichnet, scheint Hilfe bei der Umsetzung einer Weiterleitung auf die eigene Software zu sein, die von Orca aus den eigentlichen Druck startet, und das wirkt wie eine Einschränkung von Drittanbieter-Software.
Auch die Aussage „kein Zwangsupdate, sondern ein Betatest, und die Entscheidung liegt bei euch“ ist seltsam. Ist Beta-Firmware nicht letztlich dazu da, irgendwann Release-Firmware zu werden? Eher ist der Gegenwind aus der Community ein Beleg dafür, dass der Beta-Kanal wie beabsichtigt funktioniert hat.
Auch zu Panda Touch sagt Bambu, man habe BTT kontaktiert und vor dem Missbrauch des MQTT-Protokolls gewarnt, aber BQ hat das bereits in [1] behandelt. Kurzfassung: Man wollte mit Bambu kooperieren, bekam aber kaum Reaktionen und nur die Warnung, dass MQTT in künftigen Updates eventuell nicht mehr funktionieren könnte. Technisch gesehen hat man also Kontakt aufgenommen, aber faktisch lief es auf „Verbessert unser Produkt nicht“ hinaus, und am Ende macht Bambu seinen eigenen Kunden mehr Probleme als BQ.
Weiter unten heißt es zudem, der Nutzungskomfort mit Drittanbieter-Slicern wie Orca Slicer sei kaum anders, und es wird gezeigt, dass Orca die neue App einfach öffnen kann und diese dann den Druck startet. Aber genau das ist der Punkt, über den sich die Community beschwert hat, und Probleme wie fehlende Linux-Unterstützung werden dadurch ebenfalls nicht gelöst.
Zum Schluss wird noch ein neues Flussdiagramm gezeigt, aber es lässt aus, was die neue Software eigentlich tut. Man sieht nicht, wie, wann oder warum die neue Software mit der Cloud kommuniziert.
Für jemanden mit auch nur etwas Ahnung von Sicherheit ergibt diese Änderung wenig Sinn, und Bambu schafft es nicht einmal, das Sicherheitsprotokoll zu erklären, das implementiert werden soll. Meiner Ansicht nach könnte es sein, dass in die Bambu-Connect-App irgendwo ein persönliches Zertifikat eingebettet wurde und nun Druckeranfragen signiert werden — aber wenn der private Schlüssel bereits öffentlich geworden ist, verbessert das die Sicherheit überhaupt nicht.
[0] https://github.com/SoftFever/OrcaSlicer/issues/8063#issuecom...
[1] https://old.reddit.com/r/BIGTREETECH/comments/1i5lzzf/latest...
Die Stelle, dass man „app.asar nicht entpacken soll, ohne sie vorher zu patchen, weil sonst eine verschlüsselte main.js-Datei und eine 100-GB-Köderdatei erzeugt werden“, ist zwar nicht exakt eine Zip-Bombe, wirkt aber ziemlich nah daran und ist wirklich extrem nervig.
Bambu sollte sich eher um die Versorgung mit Verbrauchsmaterial und den Ausbau des Kundensupports kümmern. Es dauerte Wochen, bis ein Ticket gelöst wurde, und 8 Tage bis zur ersten Antwort waren ganz normal.
Es ist nicht überraschend, dass 3D-Drucker genauso nutzerfeindlich werden wie 2D-Drucker. Wie so oft dient heute „Sicherheit“ als Vorwand.
Es überrascht mich, dass das teure Tintenmonopol nicht auf diese Weise angegriffen wurde, und ich erinnere mich noch genau daran, dass es in meiner Kindheit Kioske im Supermarkt gab, die mit Buntstiften Nachrichten und Bilder auf leere Karten „gedruckt“ haben. Das ist nichts völlig Neues.
Laut Leuten, die sich das angesehen haben, ist auch CUPS unter macOS und Linux wahrscheinlich kein Vorbild in Sachen Sicherheit, und vor 3 Monaten gab es auch noch die Kontroverse um Remote Code Execution.
Wenn schon der Druck-Stack des Betriebssystems ein einziges Chaos ist, will man gar nicht wissen, welche Schrecken sich in der Firmware netzwerkfähiger Drucker verbergen. Angeblich werden Tintenpatronen von Drittanbietern im Namen der Sicherheit blockiert, aber was genau soll eine Tintenpatrone schon tun? Einen Buffer Overflow durch die an den Drucker gesendeten Daten auslösen? Oder sind Drucker wirklich so dumm, dass wir zu viel hineininterpretieren und die Sache noch viel weniger entschuldbar ist, als sie auf den ersten Blick wirkt?