Analyse de rétro-ingénierie de Bambu Connect
(wiki.rossmanngroup.com)-
Rétro-ingénierie de Bambu Connect
-
Aperçu de Bambu Connect
- Bambu Connect est une application Electron, implémentée d’une manière opaque du point de vue de la sécurité, et donc intrinsèquement peu sûre.
- Ce guide vise à aider les utilisateurs à avoir davantage de contrôle sur les produits qu’ils ont achetés.
-
Processus d’extraction de la clé de sécurité
- Il décrit une procédure simple pour extraire la « clé privée » utilisée pour communiquer avec les appareils Bambu.
- Il est plus facile d’extraire les fichiers de Bambu Connect à partir du fichier .dmg sur macOS.
- L’application utilise asarmor pour empêcher une lecture directe, et la clé est stockée dans un chemin spécifique.
- En chargeant
main.nodedans Ghidra puis en exécutant Auto-Analyze, il est possible de rechercher la fonction GetKey pour extraire la clé.
-
Extraction de la clé privée et du certificat
- La clé privée et le certificat sont en outre obfusqués, et plusieurs étapes de déchiffrement sont nécessaires pour les rendre lisibles.
- Un exemple de code Python est fourni pour extraire ces informations secrètes.
-
Références
- Un lien est fourni vers le fichier .dmg d’une version spécifique de Bambu Connect.
1 commentaires
Avis sur Hacker News
Je suis furieux contre les pratiques d’appât et de substitution de Bambu. Pendant les soldes du Black Friday, j’ai acheté l’imprimante parce qu’elle me semblait « plus ou moins bidouillable et ouverte », et maintenant ils essaient de la verrouiller pour m’empêcher d’imprimer avec ma propre imprimante sans logiciels approuvés ni chaîne DRM
Plus d’informations sur le hack ici : https://hackaday.com/2025/01/19/bambu-connects-authenticatio...
Je suis vraiment curieux de savoir où serait l’appât et la substitution, et ce qui était officiellement possible avant mais ne l’est plus maintenant
Dès le début, j’étais un peu mécontent du fait que les bobines de filament RFID ne soient pas suffisamment ouvertes aux autres fournisseurs
Ce que je ne comprends pas, c’est que BambuSlicer est open source. En plus, comme c’est un fork de PrusaSlicer, Bambu ne peut pas le relicencier comme bon lui semble
La licence est l’Affero GPL, très stricte pour les œuvres dérivées, et si Bambu inclut dans la distribution binaire tout le code, la logique, les clés, etc. qu’il a ajoutés, il doit aussi fournir le code source. Sinon, cela revient à enfreindre les droits d’auteur de Prusa et de nombreux contributeurs
Au final, soit Bambu doit tout publier en open source, ce qui ruine l’objectif — et comme c’est déjà divulgué, il y a de fortes chances que cela arrive de toute façon —, soit il doit faire passer même son propre slicer par un programme séparé
Le plugin réseau Bambu actuellement implémenté ne fait pas non plus partie de BambuStudio ; le client le télécharge à l’ouverture de BambuStudio
Au début, j’étais très opposé à Bambu parce qu’il n’y avait pas de vrai support réseau, c’est-à-dire LAN plutôt que cloud. Plus tard, ils ont ajouté un mode LAN, et j’ai vraiment envisagé d’en acheter une ; heureusement, j’ai été trop paresseux pour le faire
Bambu, qu’est-ce que vous fabriquez ? La sécurité ? Même HP n’utilise pas cette excuse
https://store.bambulab.com/products/x1e
Mais il est facile de le faire sans casser toutes les intégrations tierces. Un simple interrupteur dans les réglages pour fonctionner entièrement en local suffirait
Si Prusa ne s’était pas dispersé, j’aurais acheté la Core One. Je parle ici d’un modèle hypothétique avec la qualité de BambuLab et un grand volume d’impression
À la place, j’ai acheté une P1S, et techniquement c’est vraiment une excellente machine
Prusa exploite 600 imprimantes en interne. C’est de niveau commercial, et si je faisais de la conception commerciale ou du prototypage, je choisirais Prusa. Aussi parce que je veux éviter qu’une imprimante connectée en permanence au cloud envoie mes conceptions à l’étranger
Explication connexe de Louis Rossmann : https://www.youtube.com/watch?v=aIyaDD8onIE
J’ai acheté une imprimante Bambu il y a environ un mois, et je suis ce sujet depuis. Dès la réception, son état de sécurité ne m’a pas plu, et il m’a fallu pas mal de travail pour l’isoler dans un VLAN IoT tout en la rendant utilisable depuis mon ordinateur principal
Donc, à s’en tenir à la première impression, j’accueille volontiers des améliorations de sécurité, mais je suis aussi inquiet de voir ce qu’ils vont réellement proposer
Je me demande aussi à quoi servent les clés. J’ai vu beaucoup de gens dire qu’ils avaient « obtenu la clé », mais je n’ai pas vu d’explication sur ce à quoi elle sert, en quoi elle est utile, ni même si elle l’est vraiment
J’espère qu’on aura bientôt des nouvelles plus intéressantes et des informations techniques solides
Dans mon cas d’usage, ça ne fonctionne tout simplement pas. Mes imprimantes sont verrouillées sur la région Chine, mais comme je ne suis pas en Chine actuellement, je ne peux pas accéder à ces serveurs. Autrement dit, si je mets à jour le firmware, je risque de ne même plus pouvoir imprimer en LAN sur mon réseau local, et ça me met très mal à l’aise
L’imprimante elle-même est excellente, mais il n’y a aucune raison d’en arriver là
Ce qu’on voit aujourd’hui, c’est une architecture qui enferme les utilisateurs dans les logiciels de Bambu Lab. Si on me demandait de protéger mon compte bancaire avec une « correction de sécurité » façon Bambu Lab, je ne l’accepterais jamais
Le firmware peut vérifier ces opérations et rejeter les messages MQTT de logiciels tiers dépourvus de signature, ou avec une signature incorrecte
Le gros défaut de cette approche, c’est qu’une fois la clé extraite, les logiciels tiers retrouvent un accès complet
Il n’y a aucune amélioration de sécurité. Si l’imprimante ou le cloud étaient vulnérables, cette couche d’obfuscation ne bloquerait rien
Le mécanisme d’authentification reste le même qu’avant : https://git.devminer.xyz/archive/bambu-connect/src/commit/47...
Réponse de Bambu : https://blog.bambulab.com/updates-and-third-party-integratio...
Dans le premier point de
truth about the update, ils disent qu’ils « ne cherchent pas à limiter les logiciels tiers, qu’ils ont créé Bambu Connect pour renforcer la sécurité tout en préservant les intégrations, et qu’ils collaborent activement avec des développeurs comme ceux d’Orca Slicer »Mais le développeur d’OrcaSlicer a déjà indiqué en [0] que « Bambu l’avait informé de ce changement deux jours avant l’annonce »
La « collaboration » dont parle Bambu semble consister à aider Orca à implémenter une redirection vers leur propre logiciel, qui lance réellement l’impression, et ça ressemble bien à une limitation des logiciels tiers
La phrase « ce n’est pas une mise à jour forcée, c’est un bêta-test et le choix vous appartient » est également étrange. Un firmware bêta n’est-il pas censé devenir un jour un firmware de release ? Au contraire, la réaction de la communauté montre que le canal bêta a fonctionné comme prévu
À propos de Panda Touch, Bambu dit aussi avoir contacté BTT pour les avertir d’un abus du protocole MQTT, mais BQ en a déjà parlé en [1]. En résumé, ils ont essayé de coopérer avec Bambu, mais n’ont quasiment pas obtenu de réponse, seulement un avertissement disant que MQTT pourrait cesser de fonctionner dans une future mise à jour. Techniquement, ils les ont bien contactés, mais dans les faits cela revenait à dire « n’améliorez pas notre produit », et au bout du compte Bambu complique davantage la vie de ses propres clients que celle de BQ
Plus bas, ils affirment aussi que l’expérience avec des slicers tiers comme Orca Slicer ne change pas beaucoup, en montrant qu’Orca peut facilement ouvrir la nouvelle app et que celle-ci peut lancer l’impression. Mais c’est précisément ce dont la communauté se plaint, et cela ne résout pas non plus des problèmes comme l’absence de prise en charge de Linux
Enfin, ils présentent un nouveau diagramme de flux, mais sans expliquer ce que fait le nouveau logiciel. On ne voit pas comment, quand ni pourquoi ce nouveau logiciel communique avec le cloud
Pour quiconque connaît un tant soit peu la sécurité, ce changement n’a pas beaucoup de sens, et Bambu n’explique pas non plus suffisamment le protocole de sécurité qu’ils veulent mettre en œuvre. À mon avis, il est possible qu’ils aient intégré un certificat privé quelque part dans l’app Bambu Connect et commencé à signer les requêtes vers l’imprimante, mais si la clé privée est déjà publique, cela n’améliore absolument pas la sécurité
[0] https://github.com/SoftFever/OrcaSlicer/issues/8063#issuecom...
[1] https://old.reddit.com/r/BIGTREETECH/comments/1i5lzzf/latest...
Le passage disant que « si vous décompressez app.asar sans le modifier d’abord, cela générera un fichier main.js chiffré et un fichier leurre de 100 Go, donc n’essayez pas » ne décrit peut-être pas exactement une zip bomb, mais ça s’en rapproche pas mal, et c’est une méthode vraiment pénible
Bambu devrait se préoccuper de l’approvisionnement en consommables et de l’extension du support client plutôt que de ce genre de choses. Résoudre un seul ticket prend des semaines, et il était courant d’attendre 8 jours pour recevoir une première réponse
Il n’est pas surprenant que les imprimantes 3D deviennent aussi hostiles aux utilisateurs que les imprimantes 2D. Comme toujours ces temps-ci, la « sécurité » sert de prétexte
Je suis surpris que le monopole des encres coûteuses n’ait pas été attaqué de cette manière, et je me souviens très clairement, enfant, de kiosques dans des épiceries qui « imprimaient » des messages et des images sur des cartes vierges avec des crayons de couleur. Ce n’est pas du tout nouveau
D’après ceux qui s’y sont penchés, CUPS sur macOS et Linux n’est probablement pas non plus un modèle de sécurité, et il y a eu une controverse liée à l’exécution de code à distance il y a 3 mois
Si la pile d’impression du système d’exploitation est un bazar, qui sait quelles horreurs se cachent dans le firmware des imprimantes connectées au réseau. On dit que c’est au nom de la sécurité qu’ils bloquent les cartouches d’encre tierces, mais que pourrait bien faire une cartouche d’encre ? Provoquer un dépassement de tampon avec les données envoyées à l’imprimante ? Ou peut-être l’imprimante est-elle vraiment stupide à ce point, et c’est nous qui réfléchissons trop, ce qui rendrait la situation encore moins excusable qu’elle n’en avait l’air au premier abord