2 puntos por GN⁺ 2025-01-21 | 1 comentarios | Compartir por WhatsApp
  • Ingeniería inversa de Bambu Connect

  • Resumen de Bambu Connect

    • Bambu Connect es una app de Electron implementada de una forma poco transparente en términos de seguridad, por lo que es inherentemente insegura.
    • Esta guía busca ayudar a que los usuarios tengan más control sobre los productos que compraron.
  • Proceso de extracción de claves de seguridad

    • Se explica un proceso sencillo para extraer la "clave privada" usada en la comunicación con dispositivos Bambu.
    • Es más fácil extraer los archivos de Bambu Connect usando el archivo .dmg de MacOS.
    • La app usa asarmor para impedir una lectura sencilla, y la clave se almacena en una ruta específica.
    • Se puede cargar main.node en Ghidra, ejecutar Auto-Analyze y luego buscar la función GetKey para extraer la clave.
  • Extracción de clave privada y certificado

    • La clave privada y el certificado están adicionalmente ofuscados, y se requieren varias etapas de descifrado para aclararlos.
    • Se proporciona código de ejemplo en Python para extraer la información secreta.
  • Material de referencia

    • Se proporciona un enlace al archivo .dmg de una versión específica de Bambu Connect.

1 comentarios

 
GN⁺ 2025-01-21
Opiniones de Hacker News
  • Estoy enojado por las prácticas de cebo y cambio de Bambu. Compré la impresora durante la oferta de Black Friday porque la veía “hasta cierto punto hackeable y abierta”, y ahora están intentando bloquearla para que no pueda imprimir con mi propia impresora sin software aprobado y una cadena de DRM.
    Más información sobre el hackeo aquí: https://hackaday.com/2025/01/19/bambu-connects-authenticatio...

    • Más que cebo y cambio, para quienes apoyaban las impresoras 3D open source, esto era algo que se veía venir desde lejos. Bambu tenía este plan muy claro desde el principio, e incluso decía que seguía el “modelo Apple”. Lo mostraron con bastante transparencia, y aun así la gente cayó
    • No sé por qué alguien pensaría que era hackeable o abierta. Desde el lanzamiento de la X1, el firmware era cerrado y el control era fuerte; ese era el compromiso que aceptaban quienes compraban estas impresoras.
      De verdad me da curiosidad qué cebo y cambio ven, y qué era oficialmente posible antes que ahora ya no lo sea
    • Con una tarjeta SD se puede imprimir sin software adicional ni servicios en línea, igual que con una impresora Prusa. Lo que está bloqueado son las funciones del lado del servidor/Internet, y estaría bien que eso también estuviera abierto, pero la función de impresión local sigue funcionando sin restricciones
    • Bambu nunca publicitó ni dio soporte oficial a que fuera “hackeable” u “open”. Basar una compra en una función que no tiene soporte ni fue anunciada es una tontería; uno puede enojarse, pero se ve un poco raro
    • Me da curiosidad de dónde salió la percepción de que era “hasta cierto punto hackeable y abierta”. Estoy bastante satisfecho con las impresoras Bambu, pero nunca entendí que fueran hackeables, y mucho menos abiertas.
      Desde el principio me molestó un poco que las bobinas de filamento con RFID no estuvieran lo suficientemente abiertas a otros fabricantes
  • Lo que no entiendo es que BambuSlicer es open source. Además, al ser un fork de PrusaSlicer, Bambu tampoco puede cambiarle la licencia como quiera.
    La licencia es Affero GPL, muy estricta con las obras derivadas, y si Bambu incluye en la distribución binaria todo el código, la lógica, las claves, etc. que agregó, también debe incluir el código fuente. Si no, estaría violando los derechos de autor de Prusa y de muchos contribuidores.
    Al final, Bambu tendría que publicar todo esto como open source, con lo que se arruina el objetivo; y como ya se filtró, es muy probable que de todos modos termine pasando, o tendrán que hacer que incluso su propio slicer pase por un programa separado

    • BambuConnect no forma parte de BambuStudio. Lo separaron intencionalmente para que BambuLab no tenga que compartirlo ni publicarlo como open source.
      El plugin de red de Bambu implementado actualmente tampoco forma parte de BambuStudio; el cliente lo descarga al abrir BambuStudio
  • Al principio estaba muy en contra de Bambu porque no tenía soporte de red de verdad, es decir, soporte LAN en vez de nube. Más tarde agregaron el modo LAN y de hecho consideré comprar una, pero qué bueno que por flojera no lo hice.
    Bambu, ¿qué están haciendo? ¿Seguridad? Ni siquiera HP usa esa excusa

    • Bambu Lab ha sido bastante clara en este punto. Sus impresoras de consumo dependen del servicio en la nube, y para quienes necesitan o quieren imprimir en una LAN privada ofrecen la X1E.
      https://store.bambulab.com/products/x1e
    • HP directamente te bloquea la impresora si no pagas todos los meses
    • Pensando en el público no técnico al que Bambu claramente apunta, técnicamente se entiende por qué querrían considerar la autenticación.
      Pero podrían hacerlo fácilmente sin romper todas las integraciones de terceros. Bastaría con un interruptor en la configuración para funcionar completamente en local
  • Si Prusa no se hubiera distraído, habría comprado la Core One. Me refiero a un modelo hipotético con la misma calidad que BambuLab y un gran volumen de impresión.
    En cambio compré la P1S, y técnicamente es una máquina realmente excelente

    • Prusa no se distrajo. Más bien inventó la rueda, creó un slicer open source que, aunque es un fork del slicer original, lo mejoró mucho, y Bambu básicamente tomó eso y fabricó impresoras más baratas en China en vez de en la UE.
      Prusa opera internamente 600 impresoras. Son de grado comercial, y si las usara para diseño comercial o prototipado, elegiría Prusa. También porque no quiero que una impresora conectada permanentemente a la nube envíe mis diseños al extranjero
  • Explicación relacionada de Louis Rossmann: https://www.youtube.com/watch?v=aIyaDD8onIE

  • Compré una impresora Bambu hace más o menos un mes y desde entonces vengo siguiendo este tema. Apenas la recibí no me gustó su estado de seguridad, y me llevó bastante trabajo poder usarla desde mi computadora principal mientras la mantenía aislada en una VLAN IoT
    Así que, solo por la primera impresión, las mejoras de seguridad son bienvenidas, pero también me preocupa con qué van a salir realmente
    También me da curiosidad para qué se usa la clave. He visto mucho eso de “se obtuvo la clave”, pero no he visto ninguna explicación de para qué sirve esa clave, cómo resulta útil o si siquiera lo es
    Espero que pronto haya noticias más interesantes e información técnica sólida

    • Según entiendo, para imprimir por LAN hay que autenticarse con los servidores de Internet de Bambu, y eso es algo que definitivamente no quiero
      En mi caso de uso ni siquiera funciona. Mis impresoras están bloqueadas a la región de China y, como ahora no estoy en China, no puedo conectarme a ese servidor. Es decir, si actualizo el firmware, parece que ni siquiera podré imprimir por LAN desde mi red local, y eso me deja muy intranquilo
      La impresora en sí es excelente, pero no hay necesidad de hacer esto
    • Esto no es seguridad, sino dependencia del proveedor, o DRM. Si fuera seguridad, bastaría con un protocolo basado en secretos por usuario, y no habría necesidad inherente de bloquearlo al software exclusivo de Bambu Lab. Piensen en algo como usuario/contraseña
      Lo que se ve ahora es una estructura para atar a los usuarios al software de Bambu Lab. Si me dijeran que protegiera mi cuenta bancaria con algo como la “corrección de seguridad” de Bambu Lab, jamás lo aceptaría
    • La clave se usa para firmar operaciones importantes, en especial impresiones y comandos G-code: https://git.devminer.xyz/archive/bambu-connect/src/commit/47..., lista de comandos MQTT conocidos: https://github.com/Doridian/OpenBambuAPI/blob/main/mqtt.md
      El firmware puede verificar estas operaciones y rechazar mensajes MQTT de software de terceros que no tengan firma o tengan una firma incorrecta
      El gran defecto de este enfoque es que, si se extrae la clave, el software de terceros vuelve a obtener acceso completo
      No hay mejora de seguridad. Si la impresora o la nube eran vulnerables, esta capa de ofuscación no bloquea nada
      El método de autenticación es el mismo que antes: https://git.devminer.xyz/archive/bambu-connect/src/commit/47...
  • Respuesta de Bambu: https://blog.bambulab.com/updates-and-third-party-integratio...

    • Sinceramente, la respuesta es bastante mala. Desde el inicio se pone a la defensiva enumerando afirmaciones falsas como “se volverá necesaria una suscripción”, pero la preocupación no es que Bambu necesariamente vaya a hacer eso, sino que pase a poder hacerlo, y que no está bien meter la infraestructura de Bambu como paso obligatorio en la ruta de impresión
      En el primer punto de truth about the update dicen que “no intentan restringir el software de terceros, que crearon Bambu Connect para mantener las integraciones mientras refuerzan la seguridad, y que están colaborando activamente con desarrolladores como los de Orca Slicer”
      Pero el desarrollador de OrcaSlicer ya dijo en [0] que “Bambu les informó de este cambio dos días antes del anuncio”
      La “colaboración” de la que habla Bambu parece consistir en ayudar a Orca a implementar una redirección hacia su propio software, que es el que inicia realmente la impresión, y eso parece una restricción al software de terceros
      También es raro eso de “no es una actualización forzada, es una prueba beta y la elección es de ustedes”. ¿No se supone que el firmware beta existe para convertirse algún día en firmware de lanzamiento? Más bien, la reacción de la comunidad es prueba de que el canal beta funcionó como debía
      Sobre Panda Touch, Bambu también dice que se comunicó con BTT para advertirles sobre el abuso del protocolo MQTT, pero BQ ya lo trató en [1]. En resumen, intentaron colaborar con Bambu, pero casi no recibieron respuesta, y solo les advirtieron que MQTT podría dejar de funcionar en una actualización futura. Técnicamente es cierto que se contactaron, pero en la práctica fue como decirles “no mejoren nuestro producto”, y al final Bambu está complicando más a sus propios clientes que a BQ
      Más abajo también dicen que no hay mucha diferencia en la experiencia de uso con slicers de terceros como Orca Slicer, y muestran que Orca puede abrir fácilmente la nueva app y que esa app puede iniciar la impresión. Pero eso es justamente de lo que se queja la comunidad, y tampoco resuelve problemas como la falta de soporte para Linux
      Por último presentan un nuevo diagrama de flujo, pero omiten qué hace el nuevo software. No se ve cómo, cuándo ni por qué el nuevo software se comunica con la nube
      Para cualquiera que sepa aunque sea un poco de seguridad, este cambio no tiene mucho sentido, y Bambu tampoco explica bien el protocolo de seguridad que pretende implementar. A mi modo de ver, puede que hayan metido un certificado privado en alguna parte de la app Bambu Connect y hayan empezado a firmar solicitudes de la impresora, pero si la clave privada ya se hizo pública, no hay ninguna mejora de seguridad
      [0] https://github.com/SoftFever/OrcaSlicer/issues/8063#issuecom...
      [1] https://old.reddit.com/r/BIGTREETECH/comments/1i5lzzf/latest...
  • La parte que dice “si descomprimes app.asar sin modificarlo primero, se generan un archivo main.js cifrado y un archivo señuelo de 100 GB, así que no lo intentes” quizá no sea exactamente una bomba zip, pero se le parece bastante, y es una forma realmente molesta de hacerlo

  • Bambu debería preocuparse más por asegurar el suministro de consumibles y ampliar la atención al cliente que por cosas como esta. Resolver un solo ticket tardaba semanas, y era normal que la primera respuesta llegara después de 8 días.

    • Es un poco ridículo que crean que están listos para lanzar una suscripción para granjas de impresión cuando ni siquiera pueden mantener stock del filamento básico ni dar soporte básico como corresponde. Crecieron demasiado rápido.
    • No sé qué cosas hay que no se puedan arreglar. Para todos los problemas que tuve, pude encontrar videos en YouTube con la solución.
  • No sorprende que las impresoras 3D se estén volviendo tan hostiles con el usuario como las impresoras 2D. Como siempre últimamente, la excusa es la “seguridad”.

    • En el mundo de las impresoras 3D FDM hay tanto software, firmware y hardware open source que no creo que lleguen a ponerse tan mal como las impresoras comunes. Es un ecosistema mucho más centrado en makers que la impresión 2D.
    • Al menos una impresora 3D se puede construir en casa. Yo armé una hace unos años (https://lucasoshiro.github.io/hardware-en/2020-06-14-3d_prin...), y hoy en día se pueden hacer cosas mejores.
    • De verdad no entiendo que, pese a que la impresión 3D existe desde hace bastante, todavía no haya mods decentes de plotters 2D que puedan montar uno o más lápices o bolígrafos.
      Me sorprende que el monopolio de las tintas caras no haya sido atacado de esta manera, y recuerdo claramente que de chico, en un kiosco de supermercado, una máquina “imprimía” mensajes e imágenes en tarjetas en blanco con lápices de colores. No es algo nuevo en absoluto.
    • Para ser justos, el sistema de impresión de las impresoras 2D es una pesadilla. Por ejemplo, Windows Secured Core PC desactiva todos los drivers de impresora de terceros y solo admite estándares abiertos sin driver como Mopria.
      Según quienes lo han revisado, es poco probable que CUPS en macOS y Linux sea un modelo de seguridad, y hace tres meses también hubo una polémica por ejecución remota de código.
      Si la pila de impresión del sistema operativo es un desastre, quién sabe qué horrores se esconden en el firmware de las impresoras conectadas a la red. Dicen que bloquean los cartuchos de tinta de terceros en nombre de la seguridad, pero ¿qué podría hacer un cartucho de tinta? ¿Provocar un buffer overflow con los datos que le manda a la impresora? O quizá la impresora realmente sea tan tonta, nosotros estemos pensando de más, y la cosa sea todavía menos defendible de lo que parece a primera vista.