Foram descobertos dois pacotes maliciosos no repositório npm do JavaScript que, sob a aparência de ferramentas úteis, escondiam um propósito destrutivo: apagar indiscriminadamente todos os dados nos diretórios das aplicações onde fossem instalados. Estes pacotes não pretendiam roubar dados ou credenciais, mas sim causar o máximo de dano possível.
Os pacotes, denominados 'express-api-sync' e 'system-health-sync-api', já foram removidos da plataforma, mas não antes de terem sido descarregados centenas de vezes por programadores desavisados.
O disfarce perfeito para a destruição remota
O alerta foi dado pela empresa de segurança de software open-source Socket, que identificou os pacotes publicados em maio de 2025. Estes disfarçavam-se de ferramentas de sincronização de bases de dados e de monitorização do estado do sistema, respetivamente. No entanto, ambos continham backdoors que permitiam a um atacante executar remotamente comandos para limpar todos os ficheiros do anfitrião infetado.
De acordo com as estatísticas da empresa, o 'express-api-sync' foi descarregado 855 vezes, enquanto o 'system-health-sync-api' acumulou 104 descargas antes da sua remoção.
'express-api-sync': uma bomba-relógio com uma chave secreta
O primeiro pacote, 'express-api-sync', operava de forma relativamente simples. Após a instalação, registava um endpoint POST oculto (/api/this/that
) e ficava à escuta de um pedido que contivesse a chave secreta 'DEFAULT_123'.
Assim que o pedido correto era recebido, o pacote executava o infame comando rm -rf *
no diretório de trabalho da aplicação. Como explica o relatório da Socket, "uma vez acionado, o comando rm -rf *
apaga todos os ficheiros, incluindo código-fonte, ficheiros de configuração, recursos carregados e quaisquer bases de dados locais". O atacante recebia ainda uma mensagem de estado a confirmar o sucesso ou a falha da operação.
'system-health-sync-api': o atacante mais sofisticado e comunicativo
O segundo pacote, 'system-health-sync-api', era consideravelmente mais elaborado. Em vez de um, registava múltiplos endpoints para diferentes funcionalidades:
GET /_/system/health
: para devolver o estado do servidor.POST /_/system/health
: o endpoint principal para a destruição.POST /_/sys/maintenance
: um endpoint de reserva para o mesmo fim.
Neste caso, a chave secreta era 'HelloWorld'. Ao ser ativado, o pacote realizava primeiro um reconhecimento do sistema operativo para usar o comando de eliminação correto: rm -rf *
para sistemas Linux ou rd /s /q .
para Windows.
Após a execução, o malware enviava um e-mail para o atacante (para o endereço 'anupm019 [@] gmail.com') com o URL do backend, uma identificação única do sistema e o resultado da limpeza dos ficheiros, garantindo uma confirmação detalhada do ataque.
Sabotagem em vez de lucro: uma nova e preocupante tendência?
O que torna estes pacotes particularmente invulgares no ecossistema npm é a sua motivação. A maioria do malware encontrado em plataformas de distribuição de software visa o ganho financeiro ou o roubo de dados. Estes pacotes, contudo, tinham como único objetivo a sabotagem.
A Socket descreve-os como "uma adição preocupante ao cenário de ameaças do npm", que pode ser um sinal de atividades de sabotagem ou mesmo de intervenção a nível estatal a infiltrar-se no ecossistema de código aberto.
"Estes pacotes não roubam criptomoedas ou credenciais — eles apagam tudo", conclui a Socket. "Isto sugere que os atacantes são motivados por sabotagem, concorrência ou disrupção a nível estatal, em vez de serem motivados apenas financeiramente."
Nenhum comentário
Seja o primeiro!