Vírus que se multiplica sozinho utiliza blockchain para evitar detecções
Pesquisadores de segurança detectaram uma onda de pacotes maliciosos sendo publicados no npm, o maior repositório de bibliotecas JavaScript do mundo. Em menos de uma hora, o grupo criminoso TeamPCP havia comprometido 46 pacotes usados por desenvolvedores ao redor do mundo, 28 deles em menos de 60 segundos.
Os criminosos fizeram isso injetando um malware capaz de instalar uma backdoor persistente em qualquer máquina Linux que executasse a instalação. O ataque, batizado de CanisterWorm, estreou uma técnica inédita. Ele usa um canister na blockchain ICP como servidor de controle, tornando a infraestrutura do malware imune a bloqueios e derrubadas.
A ICP é uma blockchain descentralizada que não pode ser derrubada por autoridades ou bloqueada por provedores de internet.

O que foi comprometido
Os 28 pacotes do escopo @EmilGroup foram os primeiros a ser infectados, seguidos de 16 pacotes do @opengov e outros três pacotes individuais: @teale.io/eslint-config, @airtm/uuid-base32 e @pypestream/floating-ui-dom.
Um escopo funciona como um namespace, um prefixo que agrupa pacotes de uma mesma organização. Comprometer um escopo inteiro significa que qualquer projeto que dependa de qualquer pacote daquele grupo está exposto.
Os 28 pacotes do @EmilGroup foram infectados em menos de 60 segundos.

Como o ataque chega no computador da vítima
Todo pacote npm pode definir um script que roda automaticamente logo depois da instalação. Esse mecanismo se chama postinstall hook, e é legítimo. Geralmente ele é usado por desenvolvedores para tarefas como compilar código ou criar pastas necessárias.
O TeamPCP usou esse gancho para executar um arquivo chamado index.js assim que a vítima roda npm install. O terminal mostra uma instalação normal. Em segundo plano, o malware já está sendo instalado.

O script decodifica um backdoor em Python, uma porta dos fundos que permite acesso remoto não autorizado ao sistema. Ele então, o registra como um serviço persistente no Linux, usando o systemd, o gerenciador de processos do sistema operacional.
O serviço se reinicia automaticamente a cada 5 segundos em caso de falha. Ele ainda sobrevive a reinicializações da máquina. Não é necessário ter senha de administrador para isso.
A blockchain como servidor de controle
O elemento que diferencia o CanisterWorm de ataques anteriores é que o malware não se conecta a um servidor convencional. Na verdade, ele contata um canister na rede ICP, uma blockchain onde o código roda distribuído em centenas de computadores ao redor do mundo.
O canister não entrega o malware diretamente. Ele apenas retorna uma URL em texto simples apontando para onde o payload real, o arquivo malicioso a ser executado, está hospedado. Esse modelo é chamado de dead-drop, uma técnica de espionagem adaptada para malware. Nela, o servidor de controle funciona como um intermediário que apenas aponta o caminho.

A consequência prática é que os atacantes podem trocar o payload a qualquer momento. Todas as máquinas infectadas buscam uma nova instrução a cada 50 minutos e baixam automaticamente o que for encontrado. Não é necessário tocar no malware instalado.
O canister também tem um kill switch embutido, que permite que se a URL retornada contiver “youtube.com”, o malware entra em modo dormente e não faz nada. No momento em que este artigo foi escrito, o endereço apontava para um vídeo do YouTube. Isso pode mudar a qualquer instante.
O worm aprende a se espalhar sozinho
Cerca de uma hora após a primeira onda, o TeamPCP atualizou o pacote @teale.io/eslint-config com uma versão mais perigosa. O worm deixou de ser uma ferramenta manual.
A nova versão adicionou uma função que, durante a instalação, vasculha o computador da vítima em busca de tokens de autenticação do npm. Um token funciona como uma senha que permite publicar pacotes em nome de uma conta. Quem tem esse token pode colocar código novo no repositório como se fosse o dono legítimo.

O malware procura esses tokens em três lugares: o arquivo .npmrc do usuário, o .npmrc do projeto atual e as variáveis de ambiente do sistema. Esse último ponto é especialmente crítico em ambientes corporativos, onde pipelines de CI/CD frequentemente armazenam tokens diretamente nas variáveis de ambiente da máquina.
CI/CD são sistemas automatizados de construção e publicação de software, como GitHub Actions.
Se encontrar qualquer token, o malware dispara o worm como processo independente em segundo plano. O processo continua rodando mesmo que a instalação seja cancelada.
O que acontece em um ambiente corporativo
O cenário mais preocupante é o de equipes de desenvolvimento. Um desenvolvedor instala o pacote infectado. O malware encontra o token da empresa, que tem permissão para publicar em dezenas de pacotes internos. Em menos de 60 segundos, todos esses pacotes viram novos vetores de infecção.
Quando os colegas desse desenvolvedor instalarem qualquer um desses pacotes, em suas máquinas ou em pipelines automatizados, o ciclo se repete. Cada novo token encontrado é um novo ponto de partida para outra rodada de propagação.

O TeamPCP testou esse mecanismo em quatro ondas progressivas antes de ativar a versão final, trocando payloads reais por strings inválidas para validar a cadeia de propagação sem armar o malware de fato. A versão final combina autopropagação com a backdoor ICP ativa.
O que fazer se os pacotes foram instalados
Desenvolvedores que instalaram qualquer pacote dos escopos @EmilGroup ou @opengov entre 20 e 21 de março devem verificar imediatamente se o serviço pgmon está ativo com o comando systemctl –user status pgmon.service.
Os arquivos do malware ficam em ~/.local/share/pgmon/service.py e ~/.config/systemd/user/pgmon.service. Os arquivos temporários do payload ficam em /tmp/pglog e /tmp/.pg_state.

Qualquer token npm acessível na máquina deve ser considerado comprometido e revogado imediatamente no painel do npmjs.com. O malware já pode ter coletado e usado esse token — e os pacotes publicados a partir dele precisam ser auditados.
Acompanhe o TecMundo nas redes sociais. Para mais notícias de segurança e tecnologia, inscreva-se em nossa newsletter e canal do YouTube.
Os textos acima não são de nossa autoria, são de sites de tecnologia que fornecem as matérias para consulta na internet.
Criação de Aplicativos, Sites e Marketing Digital
Mais de 20 anos no mercado
Criação de sites, aplicativos e lojas virtuais, somos uma agência de criação nacional. Temos uma solução web completa para criar o site da sua empresa. Colocamos o seu site no topo do Google. Solicite um orçamento para criação de site, aplicativo, sistema ou loja virtual.
Criação de Sites
Ter um site de qualidade é muito importante para o crescimento do seu negócio.
Saiba maisCriação de Aplicativo
Somos especializados em criação de apps na tecnologia IOS e Android. Temos mais de 100 apps desenvolvidos.
Saiba maisSEO Estratégico
Chegar ao topo dos buscadores e direcionar leads qualificados são cruciais para a construção de seu negócio.
Saiba maisMarketing Digital
Nossa equipe de marketing é especializada em conversões, aumento de tráfego e expanção de visibilidade.
Saiba mais