Bibliotecas populares de JavaScript foram sequestradas esta semana e transformadas em distribuidores de malware, em um ataque à cadeia de suprimentos realizado via phishing direcionado e roubo de credenciais.
O pacote npm eslint-config-prettier, baixado mais de 30 milhões de vezes por semana, foi comprometido depois que seu mantenedor foi vítima de um ataque de phishing.
Outro pacote, eslint-plugin-prettier, do mesmo mantenedor, também foi alvo.
O(s) atacante(s) utilizaram credenciais roubadas para publicar várias versões não autorizadas dos pacotes com código malicioso para infectar máquinas Windows.
Em 18 de julho, desenvolvedores começaram a notar comportamento incomum após instalar as versões 8.10.1, 9.1.1, 10.1.6 e 10.1.7 do eslint-config-prettier.
Essas versões foram publicadas no registro npm, mas não havia alterações correspondentes no repositório do GitHub que corroborassem os lançamentos, levantando suspeita imediata dentro da comunidade de código aberto.
Bibliotecas como eslint-config-prettier e eslint-plugin-prettier facilitam o trabalho dos desenvolvedores com Prettier e ESLint, garantindo que as regras de formatação de código sejam estilizadas de maneira consistente em todo o projeto, sem conflitos ou linting redundante.
O desenvolvedor Dasa Paddock inicialmente levantou uma issue no GitHub no repositório do projeto, trazendo luz ao assunto e os membros da comunidade rapidamente se manifestaram.
Pouco depois, o mantenedor do pacote, JounQin, confirmou que havia sido vítima de um ataque de phishing.
Isso permitiu que uma parte não autorizada ganhasse acesso ao seu token npm e publicasse as versões comprometidas.
"É este e-mail de phishing", escreveu JounQin, compartilhando uma captura de tela de um convincente e-mail "Verifique sua conta" que ele recebeu:
O e-mail foi falsificado para parecer originar-se de "[email protected]", mas o link nele leva o usuário para um domínio ilícito npnjs[.]com.
"Eu deletei esse token npm e publicarei uma nova versão o quanto antes", declarou JounQin.
"Obrigado a todos e desculpe pela minha negligência", continuou o mantenedor no mesmo tópico.
Nas versões maliciosas, um script npm postinstall "install.js" é configurado para ser executado assim que o pacote é instalado.
Este "install.js" contém uma função suspeita logDiskSpace(), que, contrariamente ao seu nome, não se preocupa com monitoramento de espaço em disco.
Em vez disso, a função tenta executar o DLL "node-gyp.dll" incluído no pacote, através do processo de sistema Windows rundll32.
No momento da redação, o DLL, um trojan reconhecido, tem uma pontuação de detecção de 19/72 no VirusTotal, o que significa que ainda é ignorado pela maioria dos motores de antivírus.
Não instale as versões 8.10.1, 9.1.1, 10.1.6 e 10.1.7 de eslint-config-prettier.
Para eslint-plugin-prettier, as versões afetadas são 4.2.2 e 4.2.3.
Verifique seus arquivos package-lock.json ou yarn.lock para referências a essas versões.
Se você implantou builds após 18 de julho, verifique os logs de CI e ambientes de execução para sinais de comprometimento, especialmente em máquinas Windows.
Considere rotacionar quaisquer segredos que possam ter sido expostos durante os processos de build afetados.
O mantenedor marcou adicionalmente as versões afetadas como "deprecated" no registro npmjs.
Adicionalmente, um usuário do GitHub alertou que quaisquer outros pacotes publicados pelo mantenedor também devem ser verificados para sinais de adulteração.
O comprometimento segue uma série de ataques de engenharia social semelhantes que têm como alvo desenvolvedores de bibliotecas populares nos últimos tempos.
Em março, mais de dez bibliotecas npm amplamente utilizadas foram comprometidas e transformadas em ladrões de informações.
No mês passado, 17 pacotes Gluestack com mais de um milhão de downloads semanais foram sequestrados para implantar um Remote Access Trojan (RAT).
Como o ecossistema de código aberto opera em grande parte na confiança, incidentes como esses destacam a fragilidade da segurança na cadeia de suprimentos e a importância da segurança do mantenedor.
Um clique errado é suficiente para colocar milhões de usuários em risco.
Publicidade
Tenha acesso aos melhores hackers éticos do mercado através de um serviço personalizado, especializado e adaptado para o seu negócio. Qualidade, confiança e especialidade em segurança ofensiva de quem já protegeu centenas de empresas. Saiba mais...