Segurança · 12 de novembro de 2026

Também publicado em ไทย, Italiano, Türkçe, Русский

Invasores comprometem ferramentas da Ethersphere para entregar malware que rouba carteiras

a long hallway with glass walls and a white floor
Iggy Love / Unsplash

Atacantes usaram a automação de lançamento própria do projeto Ethersphere para publicar versões maliciosas de duas de suas ferramentas para a rede de armazenamento descentralizado Swarm: bee-js 13.3.0 e Swarm Desktop 0.56.2.

Ambos os lançamentos baixam e executam código construído para roubar a chave de carteira que o Swarm Desktop mantém para seu nó, juntamente com a senha armazenada que a desbloqueia. O código também foi construído para instalar uma porta dos fundos em máquinas Windows, macOS e Linux.

O pacote bee-js é a biblioteca JavaScript por trás do Swarm Desktop e da ferramenta de linha de comando swarm-cli. O Swarm Desktop executa um nó Swarm no computador próprio de um usuário e salva as chaves privadas do nó ali.

Ambos os lançamentos maliciosos foram removidos, e os mantenedores do projeto lançaram uma atualização limpa do Swarm Desktop hoje. Nenhuma das duas ações remove uma porta dos fundos já instalada nem protege uma chave já enviada. Nenhum roubo de fundos havia sido relatado no momento da redação.

O Swarm Desktop 0.56.2 apareceu no GitHub por volta das 00:36 UTC hoje e foi retirado cerca de 8,5 horas depois. O atualizador integrado do aplicativo poderia oferecê-lo a computadores Windows x64 e Macs com Apple Silicon dentro de cerca de 10 minutos, de acordo com uma análise de incidente pela Socket, uma empresa de segurança da cadeia de suprimentos. Macs Intel nunca receberam a oferta, e instalações Linux não são atualizadas automaticamente.

O lançamento bee-js, versão 13.3.0, foi a versão mais recente no npm por cerca de 75 minutos, das 00:09 às 01:25 UTC hoje. Seu código é executado como um script pós-instalação, que o npm executa automaticamente durante a instalação, a menos que scripts de instalação estejam desabilitados. Um projeto não precisava importar a biblioteca para o código ser executado.

Os pacotes swarm-cli e bee-dashboard próprios do projeto, e o código-fonte do Swarm Desktop, aceitavam intervalos de versão que incluíam 13.3.0. Uma instalação nova dentro dessa janela poderia ter puxado a versão maliciosa.

Nenhum dos relatórios forneceu uma contagem de máquinas infectadas. A estimativa aproximada da empresa é que bee-js 13.3.0 foi baixado cerca de 10 vezes, incluindo por scanners de segurança e espelhos. A contagem de downloads do Swarm Desktop 0.56.2 atingiu 65 até as 08:27 UTC, incluindo pesquisadores.

Os mantenedores da Ethersphere retiraram 0.56.2 e o substituíram hoje por um lançamento limpo, versão 0.56.3. Na mudança que preparou o novo lançamento, um deles escreveu que 0.56.2 "foi publicado por um atacante usando credenciais de integração contínua roubadas e foi retirado."

A versão 0.56.3 é o mesmo código da versão anterior, 0.56.1, assinado com um certificado de identificação de desenvolvedor recém-emitido, de acordo com a nota de incidente desse mantenedor. A nota diz que o atualizador automático do aplicativo moverá instalações de 0.56.2 para ele, embora pacotes Linux ainda precisem ser substituídos manualmente. Uma comparação do código-fonte das duas versões encontrou nenhuma mudança além do número da versão e notas de lançamento.

Quando verificado hoje, 13.2.0 era novamente a versão mais recente do bee-js, e 13.3.0 não podia mais ser baixado do registro.

O aviso do GitHub para bee-js 13.3.0 diz: "Qualquer computador que tenha este pacote instalado ou em execução deve ser considerado totalmente comprometido." A SafeDep, uma empresa de segurança da cadeia de suprimentos de software, oferece o mesmo conselho para qualquer computador no qual o Swarm Desktop 0.56.2 foi instalado.

Ambos os lançamentos carregam o mesmo carregador, conforme encontrado pela SafeDep em sua análise técnica. É algumas linhas de código que baixam mais código de api.frameworkmetrics[.]xyz e o executam com as permissões do usuário. No bee-js, o carregador é o script pós-instalação, e no Swarm Desktop ele é executado cada vez que o aplicativo inicia.

O código baixado procura por dois arquivos na pasta de dados do Swarm Desktop: config.yaml e data-dir/keys/swarm.key. Se ambos estiverem lá, ele os envia para o servidor dos atacantes.

O arquivo de chave é um armazenamento de chaves Ethereum criptografado, mas o Swarm Desktop mantém sua senha em texto simples em config.yaml. Com ambos os arquivos, os atacantes podem levar os tokens xDAI e xBZZ da carteira do nó, seus fundos de livro de cheques e sua participação.

O código baixado também instala uma porta dos fundos. No Linux e macOS, é um shell remoto Go chamado evjawbreaker, salvo em uma pasta ~/.solidity oculta. Ele é executado em segundo plano como um serviço de usuário no Linux e como um LaunchAgent no macOS.

O shell lê o endereço de seu servidor de controle de um contrato inteligente Ethereum, para que os atacantes possam alterar esse endereço a qualquer momento. Eles o haviam atualizado 29 minutos antes do código bee-js malicioso ser adicionado.

No Windows, o código baixado instala um cliente ScreenConnect genuíno de acesso remoto, assinado por seu fabricante, ConnectWise. O cliente é executado como um serviço do sistema e se conecta ao relé dos atacantes.

Se o usuário for um administrador, o código obtém direitos de administrador através de uma maneira conhecida de contornar o prompt de Controle de Conta de Usuário. Se não, ele mostra o prompt novamente sempre que o usuário cancela. Com esses direitos, ele adiciona uma exclusão do Microsoft Defender e instala o cliente silenciosamente.

Ambos os lançamentos vieram de bee-worker, a conta que a Ethersphere usa para automatizar seus lançamentos. Nenhuma mudança foi assinada nem submetida como uma solicitação de pull.

Para bee-js, os atacantes publicaram um lançamento do GitHub para a nova versão, que iniciou o fluxo de trabalho de publicação npm do projeto. Esse fluxo de trabalho não precisava de aprovação e publicou o pacote no npm em 73 segundos, de acordo com a Socket.

Porque o fluxo de trabalho real do projeto o construiu, o pacote carregava proveniência válida, o registro que vincula um pacote npm ao repositório e fluxo de trabalho que o construiu. A proveniência mostra onde um pacote foi construído, não se alguém revisou o código dentro dele.

Para o Swarm Desktop, os atacantes iniciaram manualmente um fluxo de trabalho de construção que tinha os certificados de assinatura Apple e Windows do projeto e não precisava de aprovação. O aplicativo macOS foi assinado com a identificação de desenvolvedor do projeto e notarizado pela Apple, portanto macOS exibiu apenas seu prompt normal de primeiro lançamento.