Análise de engenharia reversa do Bambu Connect
(wiki.rossmanngroup.com)-
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.nodee 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
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...
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
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 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
https://store.bambulab.com/products/x1e
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 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
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
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
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...
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
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
É 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
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