Um pacote malicioso no índice do Node Package Manager (NPM) utiliza caracteres Unicode invisíveis para ocultar código malicioso e links do Google Calendar para hospedar a URL do local de comando e controle (C2).
O pacote, chamado os-info-checker-es6, se apresenta como uma utilidade de informação e foi baixado mais de 1.000 vezes desde o início do mês.
Pesquisadores da Veracode, uma empresa de avaliação de segurança de código, descobriram que a primeira versão do pacote foi adicionada ao índice do NPM em 19 de março e era benigna, pois apenas coletava informações do sistema operacional do host.
O autor adicionou modificações alguns dias depois para incluir binários específicos da plataforma e scripts de instalação ofuscados.
Em 7 de maio, uma nova versão do pacote foi publicada, que apresentava código para "um mecanismo C2 (comando e controle) sofisticado" que entrega o payload final.
A versão mais recente do 'os-info-checker-es6' disponível no npm no momento da escrita é a v1.0.8 e é maliciosa, alerta a Veracode.
Além disso, o pacote está listado como uma dependência de outros quatro pacotes NPM: skip-tot, vue-dev-serverr, vue-dummyy e 'vue-bit' - todos se apresentam como ferramentas de acessibilidade e engenharia de plataforma de desenvolvimento.
Não está claro se ou como esses pacotes são promovidos pelo ator de ameaça.
Na versão maliciosa, o atacante embutiu dados no que parecia ser uma string '|'.
No entanto, a barra vertical é seguida por uma longa sequência de caracteres Unicode invisíveis do intervalo dos Seletores de Variação Suplementar (U+E0100 a U+E01EF).
Esses caracteres Unicode são normalmente modificadores, usados tipicamente "para fornecer variações específicas de glifos em scripts complexos".
Neste caso, seu papel é facilitar a esteganografia baseada em texto - escondendo informações em outros dados.
A Veracode decodificou e desofuscou a string para encontrar um payload para um mecanismo C2 sofisticado que contava com um link encurtado do Google Calendar para alcançar a localização que hospeda o payload final.
Os pesquisadores explicam que, após buscar o link do Google Calendar, um conjunto de redirecionamentos é verificado até que se receba uma resposta HTTP 200 OK para a solicitação.
Em seguida, ele raspa um atributo data-base-title da página HTML do evento, que contém uma URL codificada em base64 apontando para o payload final.
Usando uma função chamada ymmogvj, a URL é decodificada para obter um payload de malware.
Os pesquisadores dizem que a solicitação espera um payload de malware de estágio-2 codificado em base64 no corpo da resposta, e provavelmente um vetor de inicialização e uma chave secreta nos cabeçalhos HTTP - uma indicação de possível criptografia do payload final.
A Veracode também descobriu que o payload é executado usando eval().
O script inclui um mecanismo simples de persistência no diretório temporário do sistema, que impede a execução de múltiplas instâncias ao mesmo tempo.
No momento da análise, os pesquisadores não conseguiram recuperar o payload final, sugerindo que a campanha poderia estar em espera ou ainda em um estágio inicial.
Apesar da Veracode relatar suas descobertas ao NPM, os pacotes suspeitos ainda estão presentes na plataforma.
Publicidade
Conheça a Solyd One, e tenha acesso a todos os cursos de segurança ofensiva da Solyd, todas as certificações práticas, incluindo a SYCP, 2 CTFs anuais com prêmios de até 30 mil reais, dezenas de laboratórios realísticos, suporte, comunidade e muito mais. Saiba mais...