Pesquisadores de cibersegurança descobriram um novo pacote suspeito enviado para o registro de pacotes npm que é projetado para deixar um trojan de acesso remoto (RAT) em sistemas comprometidos.
O pacote em questão é o glup-debugger-log, que visa usuários da ferramenta gulp ao se disfarçar como um “logger para gulp e plugins gulp”. Ele foi baixado 175 vezes até o momento.
A empresa de segurança da cadeia de suprimentos de software Phylum, que descobriu o pacote, disse que o pacote vem com dois arquivos ofuscados que funcionam em conjunto para implantar a carga maliciosa.
“Um funcionou como um tipo de gota inicial, preparando o terreno para a campanha de malware, comprometendo a máquina-alvo se ela atendesse a certos requisitos, em seguida, baixando componentes de malware adicionais, e o outro script fornecendo ao atacante um mecanismo de acesso remoto persistente para controlar a máquina comprometida”, disse.
A análise mais detalhada do arquivo package.json da biblioteca da Phylum – que funciona como um arquivo de manifesto que descreve todos os metadados associados a um pacote – encontrou o uso de um script de teste para executar um arquivo JavaScript (“index.js”) que, por sua vez, invoca um arquivo JavaScript ofuscado (“play.js”).
O segundo arquivo JavaScript atua como uma gota para buscar o próximo estágio de malware, mas não antes de executar uma série de verificações para interfaces de rede, tipos específicos de sistemas operacionais Windows (Windows NT) e, de forma incomum, o número de arquivos na pasta Desktop.
“Verificam para garantir que a pasta Desktop do diretório home da máquina contenha sete ou mais itens”, explicou a Phylum.
“À primeira vista, isso pode parecer absurdamente arbitrário, mas é provável que seja uma forma de indicador de atividade do usuário ou uma maneira de evitar a implantação em ambientes controlados ou gerenciados, como VMs ou instalações novas. Parece que o atacante está visando máquinas de desenvolvedores ativos.”
Pressupondo que todas as verificações sejam concluídas com êxito, ele lança outro JavaScript configurado no arquivo package.json (“play-safe.js”) para estabelecer a persistência. O carregador ainda inclui a capacidade de executar comandos arbitrários de uma URL ou de um arquivo local.
O arquivo “play-safe.js”, por sua vez, estabelece um servidor HTTP e ouve na porta 3004 para comandos de entrada, que são então executados. O servidor envia a saída do comando de volta para o cliente na forma de uma resposta em texto simples.
A Phylum descreveu o RAT como ao mesmo tempo bruto e sofisticado, devido à sua funcionalidade mínima, natureza autocontida e sua dependência da ofuscação para resistir à análise.
“Ele continua a destacar o cenário em constante evolução do desenvolvimento de malware nos ecossistemas de código aberto, onde os atacantes estão empregando novas e inteligentes técnicas na tentativa de criar malware compacto, eficiente e furtivo que esperam evitar a detecção, ao mesmo tempo que possuem capacidades poderosas”, disse a empresa.