2 Punkte von GN⁺ 2025-01-21 | 1 Kommentare | Auf WhatsApp teilen
  • 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.node laden, Auto-Analyze ausführen und anschließend nach der Funktion GetKey suchen, 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

 
GN⁺ 2025-01-21
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...

    • Von Lockvogel-Taktik zu sprechen, ist fragwürdig; aus Sicht von Leuten, die Open-Source-3D-Drucker unterstützen, war das schon von Weitem absehbar. Bambu hatte diesen Plan von Anfang an sehr deutlich, und sie haben selbst gesagt, dass sie das „Apple-Modell“ verfolgen. Das war ziemlich transparent, und die Leute sind trotzdem darauf hereingefallen.
    • Ich weiß nicht, warum man dachte, der Drucker sei hackbar oder offen. Schon seit dem Start des X1 war die Firmware geschlossen, die Kontrolle stark, und das war der Kompromiss, den Käufer dieses Druckers in Kauf genommen haben.
      Mich würde wirklich interessieren, worin hier die Lockvogel-Taktik bestehen soll und was früher offiziell möglich war, jetzt aber nicht mehr.
    • Über die SD-Karte kann man weiterhin ohne zusätzliche Software oder Online-Dienste drucken, genau wie bei Prusa-Druckern. Gesperrt wurden die Server-/Internet-Funktionen, und es wäre zwar schön, wenn auch das offen wäre, aber die lokale Druckfunktion funktioniert nach wie vor völlig ohne Einschränkungen.
    • Bambu hat „hackbar“ oder „offen“ nie beworben oder offiziell unterstützt. Eine Kaufentscheidung auf Basis von Funktionen zu treffen, die weder unterstützt noch beworben wurden, ist unklug; man kann darüber verärgert sein, aber es wirkt schon etwas seltsam.
    • Ich frage mich, woher die Vorstellung kommt, Bambu sei „bis zu einem gewissen Grad hackbar und offen“. Ich bin mit meinen Bambu-Druckern ziemlich zufrieden, habe sie aber nie als hackbar verstanden, geschweige denn als offen angesehen.
      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.

    • BambuConnect ist kein Teil von BambuStudio. Es wurde bewusst getrennt, damit BambuLab es nicht teilen oder als Open Source veröffentlichen muss.
      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.

    • Bambu Lab hat diesen Punkt ziemlich klar kommuniziert. Die Consumer-Drucker hängen von Cloud-Diensten ab, und für Leute, die in einem privaten LAN drucken müssen oder wollen, gibt es den X1E.
      https://store.bambulab.com/products/x1e
    • HP sperrt einem einfach den Drucker, wenn man nicht monatlich zahlt.
    • Wenn man die klar anvisierte nichttechnische Zielgruppe von Bambu bedenkt, ist der Wunsch nach Authentifizierung technisch nachvollziehbar.
      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 hat sich nicht verzettelt. Eher haben sie das Rad erfunden und einen Open-Source-Slicer geschaffen, der zwar als Fork des ursprünglichen Slicers begann, aber stark verbessert wurde, während Bambu ihn übernommen und Drucker in China statt in der EU billiger produziert hat.
      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.

    • Soweit ich es verstehe, muss man sich zum Drucken über LAN bei Bambus Internet-Servern authentifizieren, und genau das will ich auf keinen Fall.
      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.
    • Das ist keine Sicherheit, sondern Vendor Lock-in oder DRM. Wenn es um Sicherheit ginge, würde ein Protokoll auf Basis eines benutzerspezifischen Geheimnisses genügen; es gibt keinen inhärenten Grund, es auf Software exklusiv von Bambu Lab zu beschränken. Man kann an etwas wie Benutzername/Passwort denken.
      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.
    • Der Schlüssel wird für wichtige Vorgänge verwendet, insbesondere für Drucke und das Signieren von G-code-Befehlen: https://git.devminer.xyz/archive/bambu-connect/src/commit/47..., Liste bekannter MQTT-Befehle: https://github.com/Doridian/OpenBambuAPI/blob/main/mqtt.md
      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...

    • Ehrlich gesagt ist die Antwort nicht besonders gut. Gleich zu Beginn werden defensiv falsche Behauptungen wie „es wird ein Abonnement nötig“ aufgelistet, obwohl die Sorge nicht ist, dass Bambu das unbedingt tun wird, sondern dass sie dazu in der Lage sein werden, und dass es an sich schon problematisch ist, Bambu-Infrastruktur als zwingenden Schritt in den Druckpfad einzubauen.
      Im ersten Punkt von truth about the update heiß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.

    • Sie bekommen nicht einmal die Standard-Filamentbestände in den Griff und leisten nicht einmal ordentlichen Basissupport, halten sich aber offenbar für bereit, ein Print-Farm-Abonnement auf den Markt zu bringen. Das ist schon etwas lächerlich. Sie sind zu schnell gewachsen.
    • Ich weiß nicht, was daran nicht reparierbar sein soll. Für alle Probleme, die ich hatte, konnte ich auf YouTube Videos mit Lösungswegen finden.
  • Es ist nicht überraschend, dass 3D-Drucker genauso nutzerfeindlich werden wie 2D-Drucker. Wie so oft dient heute „Sicherheit“ als Vorwand.

    • Im Bereich der FDM-3D-Drucker gibt es so viel Open-Source-Software, -Firmware und -Hardware, dass es wohl kaum so schlimm werden wird wie bei normalen Druckern. Das Ökosystem ist viel stärker makerzentriert als beim 2D-Druck.
    • Zumindest kann man 3D-Drucker zu Hause bauen. Ich habe vor ein paar Jahren selbst einen gebaut (https://lucasoshiro.github.io/hardware-en/2020-06-14-3d_prin...), und heute könnte man sogar noch bessere bauen.
    • Ich verstehe wirklich nicht, dass es trotz der langen Geschichte des 3D-Drucks keine vernünftigen umgebauten 2D-Plotter gibt, in die man mehr als einen Bleistift oder Stift einsetzen kann.
      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.
    • Zugegeben, das Drucksystem von 2D-Druckern ist ein Albtraum. Zum Beispiel deaktivieren Windows Secured Core PCs alle Druckertreiber von Drittanbietern und unterstützen nur treiberlose offene Standards wie Mopria.
      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?