Ataque supply chain no npm: o que fazer agora
Pacotes populares sequestrados. Instalar no piloto automático virou risco operacional.
Resposta direta
Quando mantenedores são phishados e pacotes npm com bilhões de downloads semanais são sequestrados, a ordem prática é: pause installs não essenciais, audite lockfiles, revise e-mails de ‘npm’ com ceticismo e só então atualize com fontes verificadas. Supply chain é risco de produção, não footnote.
O que aconteceu (em termos operacionais)
No material original, o ponto de partida não é teoria abstrata: é uma sequência concreta ligada a «Ataque supply chain npm: pause o install: guia prático». Não rode NPM Install de maneira alguma durante os próximos dias, porque acabou de acontecer o que está sendo descrito como o maior ataque de supply chain da história e eu queria até a sua ajuda para verificar se não foi um brasileiro responsável. Hackers sequestraram pacotes do NPM, dessa vez vários pacotes, que juntos eles somam mais de 2 bilhões de downloads semanais, feitos por pessoas normais, como eu e você.
Esses pacotes maliciosos entraram no registro, Esse ataque ele respinga você se você usa NPM, se usa YARN, se usa PNPM ou qualquer outro gerenciador de pacotes que dê como registro o NPM. O problema toma uma gravidade absurda porque você não precisa ter instalado um desses pacotes diretamente para você ser hackeado, porque basta um pacote, de um pacote, de um pacote ter usado uma versão afetada para sua máquina ou seu sistema inteiro ser hackeado.
Checklist imediato
O contexto importa porque a mesma ideia muda de preço conforme visto, renda, ferramenta ou fase do produto. Em resumo, ele caiu num golpe clássico de phishing, clicou num e-mail que ele não deveria ter clicado. Porque ele veio através de um endereço, de um domínio que parece o domínio oficial do NPM.
O endereço falsificado é npmjs.help e o endereço oficial é npmjs.com. O curioso é que o Guilherme Rauch, CEO da Vercel e criador do Next.js, reportou que tentaram fazer um ataque direcionado, o mesmo, exato mesmo ataque, contra os funcionários da Vercel, mas sem sucesso. E a estratégia do ataque é um e-mail oficial do NPM falando que A sua credencial do 2Factor authentication já está velha, já passou 12 meses e tem que criar uma nova.
Higiene de médio prazo
Em vez de colecionar slogans, trate o conteúdo como checklist operacional: o que fazer nesta semana, o que medir, o que descartar. Bom, a falha foi revelada ontem por uma empresa chamada Aikido, uma empresa de segurança, e eles notaram que ontem, por volta das 10 horas da manhã aqui do Brasil, 18 módulos começaram a ser atualizados com código malicioso, somando tudo isso aqui dá quase 2.7 bilhões de downloads por semana, e isso é muita coisa. Só para comparação, o Next.js, um dos frameworks mais populares da atualidade, tem 13 milhões de downloads por semana. Imagina a gente colocar um malware desse dentro do Next.js, espalhar para todos esses downloads a loucura que ia acontecer.
Bom, o volume total dos módulos hackeados, que foram aqueles 2.7 bilhões, isso dá 207 vezes mais downloads do que os downloads totais semanais do Next.js. Outra comparação, React também, outro framework super popular, 44 milhões de downloads por semana, O REC, então, ele dá mais de 61 vezes do que a quantidade total de downloads do React. Bom, esses módulos foram infectados com um código que era executado do lado de quem instalou, que pesquisava se a pessoa fazia movimentações de criptomoedas no navegador.
Information gain
Ganho específico deste material (não genérico): E quando a pessoa usava uma carteira dela para mandar cripto para algum endereço, para uma outra pessoa, esse endereço de pagamento do destino mudava para uma carteira que era controlada pelo hacker. Então era como se você, pelo app do banco, estivesse fazendo um pix para o Joãozinho, Só que de forma transparente, sem ninguém perceber, esse Pix acabava caindo na minha conta.
Erros comuns e trade-offs
Os erros mais caros aparecem quando você copia a estética do caso e ignora as restrições que tornaram o caso possível. E se você quiser verificar se você ou algum submódulo instalou alguma dessas versões que foram sequestradas, entra nessa publicação aqui do TabNews, navega aqui pra baixo localiza um comentário que eu fiz aqui ó, que eu criei um comando que roda NPMLS contra todos os módulos e todas as versões que foram sequestradas é só vir aqui no final e copiar esse comando aqui ó copia e roda no seu terminal porque se ele listar alguma coisa quer dizer que você está com uma versão infectada no sistema Se não lhe está nada, está safe. Em paralelo, alunos do curso.dev, revisitem essa aula, resolvendo conflitos e peer dependencies, caso vocês sofram alguma incompatibilidade na hora de instalar as novas versões desses módulos.
E enquanto tudo isso estava acontecendo, eu peguei o código malicioso, que era injetado no módulo, e eu pedi para o chat APT me dizer se esse código era malicioso ou não. Eu escrevi aqui, instalei um pacote do NPM e ele trouxe esse código abaixo.
Próximo passo acionável
Feche com uma ação única nas próximas 48 horas — pequena o bastante para executar, grande o bastante para gerar sinal. E como isso afetou o registro do NPM, ? Você vai fazer porque não somente eu vou listar os pacotes comprometidos, como eu vou passar um comando.
Na prática, isso vira rotina: E para começar a contextualizar o que aconteceu, o Josh Junon, que é mantenedor desses módulos, confirmou o hack no Blue Sky. Aí você clica aqui para atualizar a credencial e pimba, você é hackeado. Bom, o Josh falou que ele estava no celular, ele estava fazendo esse procedimento de atualizar a credencial do 2Factor pelo celular e foi descuido mesmo.