2 pontos por GN⁺ 2025-01-21 | 1 comentários | Compartilhar no WhatsApp
  • Engenharia reversa do Bambu Connect

  • Visão geral do Bambu Connect

    • O Bambu Connect é um aplicativo Electron implementado de uma forma com segurança pouco transparente, sendo essencialmente inseguro.
    • Este guia tem como objetivo ajudar os usuários a terem mais direitos sobre os produtos que compraram.
  • Processo de extração da chave de segurança

    • Explica um processo simples para extrair a "chave privada" usada na comunicação com dispositivos Bambu.
    • É mais fácil extrair os arquivos do Bambu Connect usando o arquivo .dmg do macOS.
    • O aplicativo usa asarmor para se proteger contra leitura fácil, e a chave fica armazenada em um caminho específico.
    • Usando o Ghidra para carregar main.node e executar o Auto-Analyze, é possível extrair a chave procurando pela função GetKey.
  • Extração da chave privada e do certificado

    • A chave privada e o certificado são ofuscados adicionalmente, e são necessárias várias etapas de descriptografia para torná-los claros.
    • É fornecido um código de exemplo em Python para extrair as informações secretas.
  • Materiais de referência

    • É fornecido um link para o arquivo .dmg de uma versão específica do Bambu Connect.

1 comentários

 
GN⁺ 2025-01-21
Opiniões no Hacker News
  • Estou irritado com a tática de isca e troca da Bambu. Comprei a impressora na promoção da Black Friday por ela parecer “até certo ponto hackeável e aberta”, e agora eles querem bloqueá-la para que eu não consiga imprimir na minha própria impressora sem software aprovado e uma cadeia de DRM
    Mais informações sobre o hack aqui: https://hackaday.com/2025/01/19/bambu-connects-authenticatio...

    • Para chamar de isca e troca, do ponto de vista de quem apoia impressoras 3D open source, isso era previsível de longe. Desde o começo a Bambu deixou esse plano muito claro, e eles mesmos disseram que seguiriam o “modelo Apple”. Foi tudo mostrado de forma bem transparente, e mesmo assim as pessoas caíram
    • Não sei por que você achou que ela era hackeável ou aberta. Desde o lançamento da X1, o firmware era fechado e o controle era forte; esse era o compromisso que as pessoas que compravam essa impressora aceitavam
      Tenho curiosidade real sobre qual isca e troca você acha que houve, e o que antes era oficialmente possível e agora não é mais
    • Pelo cartão SD, dá para imprimir sem software separado nem serviço online, igual às impressoras da Prusa. O que foi bloqueado são os recursos de servidor/Internet, e seria bom se essa parte também fosse aberta, mas a funcionalidade de impressão local ainda funciona totalmente sem restrições
    • A Bambu nunca anunciou nem deu suporte oficial a algo como “hackeável” ou “aberta”. Basear uma compra em um recurso que não tem suporte nem foi anunciado é tolice; dá para ficar irritado, mas parece meio estranho
    • Fico curioso para saber de onde veio essa percepção de que ela era “até certo ponto hackeável e aberta”. Estou bastante satisfeito com as impressoras da Bambu, mas nunca entendi que fossem hackeáveis, muito menos abertas
      Desde o começo, fiquei um pouco incomodado com o fato de os carretéis de filamento com RFID não serem suficientemente abertos a outros fornecedores
  • O que não entendo é que o BambuSlicer é open source. Além disso, por ser um fork do PrusaSlicer, a Bambu não pode simplesmente relicenciá-lo como quiser
    A licença é a Affero GPL, muito rígida com obras derivadas, e se a Bambu incluir no binário qualquer código, lógica, chaves etc. que adicionou, também precisa incluir o código-fonte. Caso contrário, estaria violando os direitos autorais da Prusa e de muitos contribuidores
    No fim, a Bambu teria de tornar tudo isso open source, o que derrubaria o objetivo; e como já vazou, é provável que isso aconteça de qualquer forma, ou então eles terão de fazer até o próprio slicer passar por um programa separado

    • O BambuConnect não faz parte do BambuStudio. Ele foi separado de propósito para que a BambuLab não precise compartilhá-lo nem publicá-lo como open source
      O plugin de rede da Bambu implementado atualmente também não faz parte do BambuStudio; o cliente o baixa ao abrir o BambuStudio
  • No começo, eu era muito contra a Bambu porque ela não tinha uma rede de verdade, ou seja, suporte a LAN em vez de nuvem. Depois adicionaram o modo LAN e cheguei a pensar em comprar uma, mas ainda bem que fui preguiçoso e não comprei
    Bambu, o que vocês estão fazendo? Segurança? Nem a HP usa uma desculpa dessas

    • A Bambu Lab tem sido bem clara sobre isso. As impressoras de consumo dependem de serviços em nuvem, e para quem precisa ou quer imprimir em uma LAN privada, eles oferecem a X1E
      https://store.bambulab.com/products/x1e
    • A HP simplesmente bloqueia sua impressora se você não pagar todo mês
    • Considerando o público não técnico que a Bambu claramente mira, o motivo para querer pensar em autenticação faz sentido tecnicamente
      Mas dá para fazer isso facilmente sem quebrar todas as integrações de terceiros. Bastaria um botão nas configurações para operar de modo totalmente local
  • Eu teria comprado a Core One se a Prusa não tivesse se distraído. Aqui estou falando de um modelo hipotético com a mesma qualidade da BambuLab e grande volume de impressão
    Em vez disso, comprei a P1S, e tecnicamente é uma máquina realmente excelente

    • A Prusa não se distraiu. Pelo contrário: inventou a roda e criou um slicer open source que, embora seja um fork do slicer original, foi muito melhorado; a Bambu está mais para quem pegou isso e fabricou impressoras mais baratas na China, em vez de na UE
      A Prusa opera 600 impressoras internamente. É de nível comercial e, se eu fosse usar para design comercial ou prototipagem, escolheria a Prusa. Também porque eu não gostaria que uma impressora sempre conectada à nuvem enviasse meus projetos para o exterior
  • Comentário relacionado de Louis Rossmann: https://www.youtube.com/watch?v=aIyaDD8onIE

  • Comprei uma impressora Bambu cerca de um mês atrás e venho acompanhando essa questão desde então. Assim que a recebi, não gostei do estado da segurança, e deu bastante trabalho isolá-la em uma VLAN de IoT e ainda assim conseguir usá-la a partir do computador principal
    Então, olhando só pela primeira impressão, melhorias de segurança são bem-vindas, mas também fico apreensivo sobre o que de fato vão apresentar
    Também tenho curiosidade sobre para que a chave é usada. Vi muita gente dizendo que “obteve a chave”, mas não vi explicação sobre para que essa chave serve, como ela é útil, ou se sequer é útil
    Espero que em breve apareçam notícias mais interessantes e informações técnicas sólidas

    • Pelo que entendi, para imprimir pela LAN é preciso autenticar nos servidores de internet da Bambu, e isso é algo que eu definitivamente não quero
      No meu caso de uso, isso nem funciona. Minhas impressoras estão bloqueadas para a região da China, e como não estou na China agora, não consigo acessar esse servidor. Ou seja, se eu atualizar o firmware, provavelmente nem vou conseguir imprimir pela LAN na minha rede local, o que é muito desconfortável
      A impressora em si é excelente, mas não há necessidade de fazer isso
    • Isso não é segurança; é lock-in de fornecedor, ou DRM. Se fosse segurança, bastaria um protocolo baseado em segredos por usuário, sem necessidade intrínseca de travar tudo ao software exclusivo da Bambu Lab. Pense em algo como nome de usuário/senha
      O que aparece agora é uma estrutura que prende os usuários ao software da Bambu Lab. Se me pedissem para proteger minha conta bancária do mesmo jeito que a “correção de segurança” da Bambu Lab, eu jamais aceitaria
    • A chave é usada para assinar operações importantes, especialmente impressão e comandos G-code: https://git.devminer.xyz/archive/bambu-connect/src/commit/47..., lista de comandos MQTT conhecidos: https://github.com/Doridian/OpenBambuAPI/blob/main/mqtt.md
      O firmware pode verificar essas operações e rejeitar mensagens MQTT de software de terceiros sem assinatura ou com assinatura inválida
      A grande falha dessa abordagem é que, ao extrair a chave, softwares de terceiros recuperam acesso total
      Não há melhoria de segurança. Se a impressora ou a nuvem eram vulneráveis, essa camada de ofuscação não bloqueia nada
      O método de autenticação continua o mesmo de antes: https://git.devminer.xyz/archive/bambu-connect/src/commit/47...
  • Resposta da Bambu: https://blog.bambulab.com/updates-and-third-party-integratio...

    • Sinceramente, a resposta é ruim. Já começa na defensiva, listando alegações falsas como “será necessária uma assinatura”, mas a preocupação não é que a Bambu necessariamente vá fazer isso, e sim que ela passará a poder fazer isso, e que inserir a infraestrutura da Bambu como uma etapa obrigatória no caminho de impressão é ruim por si só
      No primeiro item de truth about the update, eles dizem que “não estão tentando restringir software de terceiros; criaram o Bambu Connect para manter integrações enquanto reforçam a segurança e estão colaborando ativamente com desenvolvedores como os do Orca Slicer”
      Mas o desenvolvedor do OrcaSlicer já afirmou em [0] que “a Bambu avisou sobre essa mudança dois dias antes do anúncio”
      A “colaboração” de que a Bambu fala parece ser ajudar a implementar no Orca um redirecionamento para o próprio software deles iniciar a impressão de fato, e isso parece uma restrição a software de terceiros
      A frase “não é uma atualização forçada, é um teste beta, e a escolha é de vocês” também é estranha. Firmware beta não existe para um dia virar firmware de lançamento? Pelo contrário, a reação da comunidade é prova de que o canal beta funcionou como deveria
      Sobre o Panda Touch, a Bambu também diz que entrou em contato com a BTT para alertar sobre o abuso do protocolo MQTT, mas a BQ já tratou disso em [1]. Em resumo: eles tentaram colaborar com a Bambu, mas quase não obtiveram resposta, e só receberam um aviso de que o MQTT poderia parar em atualizações futuras. Tecnicamente, é verdade que houve contato, mas na prática foi como dizer “não melhorem nosso produto”; no fim, a Bambu está dificultando mais a vida dos próprios clientes do que a da BQ
      Mais abaixo, eles também dizem que a experiência de uso de slicers de terceiros como o Orca Slicer não muda muito, e mostram que o Orca consegue abrir facilmente o novo app e que esse app pode iniciar a impressão. Mas essa é exatamente a parte da qual a comunidade reclamou, e problemas como a ausência de suporte a Linux continuam sem solução
      Por fim, apresentam um novo diagrama de fluxo, mas ele omite o que o novo software faz. Não mostra como, quando nem por que o novo software se comunica com a nuvem
      Para qualquer pessoa que saiba um pouco de segurança, essa mudança não faz muito sentido, e a Bambu também não explica bem o protocolo de segurança que pretende implementar. A meu ver, pode ser que tenham embutido um certificado privado em algum lugar do app Bambu Connect e começado a assinar solicitações para a impressora, mas, se a chave privada já foi divulgada, não há melhoria de segurança alguma
      [0] https://github.com/SoftFever/OrcaSlicer/issues/8063#issuecom...
      [1] https://old.reddit.com/r/BIGTREETECH/comments/1i5lzzf/latest...
  • O trecho que diz “se você descompactar sem antes modificar o app.asar, serão gerados um arquivo main.js criptografado e um arquivo-isca de 100 GB, então não tente” talvez não seja exatamente uma zip bomb, mas parece bem próximo disso, e é um método realmente irritante

  • A Bambu deveria se preocupar mais com o fornecimento de consumíveis e a ampliação do suporte ao cliente do que com esse tipo de coisa. Leva semanas para resolver um ticket, e era comum a primeira resposta demorar 8 dias

    • É meio ridículo achar que está pronta para lançar uma assinatura de print farm quando nem consegue manter estoque de filamento básico nem oferecer suporte básico direito. Cresceu rápido demais
    • Não sei o que existe que não dê para consertar. Todos os problemas que tive tinham vídeos no YouTube mostrando como resolver
  • Não surpreende que impressoras 3D estejam ficando tão hostis ao usuário quanto impressoras 2D. Como sempre hoje em dia, “segurança” é a desculpa

    • No lado das impressoras 3D FDM há tanto software, firmware e hardware open source que acho que não vai ficar tão ruim quanto impressoras comuns. É um ecossistema muito mais centrado em makers do que a impressão 2D
    • Pelo menos dá para construir uma impressora 3D em casa. Eu construí uma alguns anos atrás (https://lucasoshiro.github.io/hardware-en/2020-06-14-3d_prin...), e hoje em dia dá para fazer algo ainda melhor
    • A impressão 3D já existe há bastante tempo, mas eu realmente não entendo por que ainda não há mods de plotter 2D decentes que possam receber uma ou mais lapiseiras ou canetas
      É surpreendente que o monopólio de tintas caras não tenha sido atacado dessa forma, e eu me lembro claramente, quando criança, de quiosques em supermercados que “imprimiam” mensagens e imagens em cartões em branco usando lápis de cor. Não é nada novo
    • Dito isso, o sistema de impressão de impressoras 2D é um pesadelo. Por exemplo, o Windows Secured Core PC desativa todos os drivers de impressoras de terceiros e só oferece suporte a padrões abertos sem driver, como Mopria
      Pelo que dizem as pessoas que analisaram, é pouco provável que o CUPS do macOS e do Linux também seja um exemplo de segurança, e houve até uma polêmica de execução remota de código há 3 meses
      Se a pilha de impressão do sistema operacional é uma bagunça, sabe-se lá que horrores podem estar escondidos no firmware de impressoras conectadas à rede. Dizem que bloquear cartuchos de tinta de terceiros é feito em nome da segurança, mas o que um cartucho de tinta poderia fazer? Causar um estouro de buffer com os dados que envia para a impressora? Ou talvez a impressora seja mesmo tão burra a esse ponto, nós é que pensamos demais, e ela seja ainda menos defensável do que parecia à primeira vista