Eles encontraram mais de 15.000 pacotes de phishing e spam no NPM

ataque NPM

ataque NPM

Recentemente foi divulgada a notícia de que foi registrado um ataque aos usuários do diretório NPM, produto do qual, em 20 de fevereiro, mais de 15 mil embalagens foram colocadas no repositório NPM, em cujos arquivos README havia links para sites de phishing ou links de referência pelos quais foram pagos royalties.

Analisando os pacotes revelou 190 links promocionais ou de phishing apenas os que cobrem 31 domínios.

Na segunda-feira, 20 de fevereiro, o Checkmarx Labs descobriu uma anomalia no ecossistema NPM quando cruzamos novas informações com nossos bancos de dados. Grupos de pacotes foram publicados em grande número no gerenciador de pacotes NPM. Uma investigação mais aprofundada revelou que os pacotes faziam parte de um novo vetor de ataque de tendências, no qual os invasores estavam enviando spam ao ecossistema de código aberto com pacotes contendo links para campanhas de phishing. Relatamos um ataque semelhante em dezembro passado.

Nesse cenário, parece que processos automatizados foram usados ​​para criar mais de 15 pacotes no NPM e contas de usuário relacionadas. As descrições desses pacotes continham links para campanhas de phishing. Nossa equipe alertou a equipe de segurança do NPM.

Os nomes dos pacotes foram escolhidos para atrair o interesse, por exemplo, “free-tiktok-seguidores”, “free-xbox-codes”, “instagram-followers-free”, etc.

O cálculo foi feito para preencher a lista de atualizações recentes na página inicial do NPM com pacotes de spam. As descrições dos pacotes incluíam links que prometiam brindes, truques de jogos e serviços gratuitos para obter seguidores e curtidas em mídias sociais como TikTok e Instagram. Este não é o primeiro ataque deste tipo, 144 pacotes de spam foram postados nos diretórios NuGet, NPM e PyPi em dezembro.

O conteúdo dos pacotes foi gerado automaticamente por um script python que aparentemente foi deixado nos pacotes por engano e incluía as credenciais de trabalho usadas no ataque. Os pacotes foram publicados em muitas contas diferentes usando métodos que tornam difícil desvendar a trilha e identificar rapidamente pacotes problemáticos.

Além de atividades fraudulentas, também várias tentativas de publicar pacotes maliciosos foram identificadas nos repositórios NPM e PyPi:

  • Pacotes maliciosos foram encontrados no repositório PyPI451 que personificavam algumas bibliotecas populares usando typequatting (atribuindo nomes semelhantes que diferem por caracteres individuais, por exemplo, vper em vez de vyper, bitcoinnlib em vez de bitcoinlib, ccryptofeed em vez de cryptofeed , ccxtt em vez de ccxt, cryptocommpare em vez de cryptocompare, seleium em vez de selenium, pinstaller em vez de pyinstaller, etc.).
  • Os pacotes incluíam um código ofuscado para roubar criptomoeda, que determinava a presença de identificadores de carteira criptográfica na área de transferência e os transferia para a carteira do invasor (presume-se que, ao efetuar um pagamento, a vítima não perceberá que o número da carteira foi transferido via área de transferência) é diferente).
  • A substituição foi realizada por um plug-in de navegador integrado, que foi realizado no contexto de cada página da web visitada.
  • Várias bibliotecas HTTP maliciosas foram identificadas no repositório PyPI.
  • Atividade maliciosa foi encontrada em 41 pacotes cujos nomes foram escolhidos usando métodos do tipo quatting e se assemelhavam a bibliotecas populares (aio5, requestst, ulrlib, urllb, libhttps, piphttps, httpxv2, etc.).
  • O padding foi projetado para se parecer com bibliotecas HTTP funcionais ou código copiado de bibliotecas existentes, e a descrição reivindicava benefícios e comparações com bibliotecas HTTP legítimas. A atividade maliciosa limitava-se a baixar malware no sistema ou coletar e enviar dados confidenciais.
  • O NPM identificou 16 pacotes JavaScript (speedte*, trova*, lagra), que, além da funcionalidade declarada (teste de desempenho), também continham código para mineração de criptomoedas sem o conhecimento do usuário.
  • O NPM identificou 691 pacotes maliciosos. A maioria dos pacotes problemáticos fingiam ser projetos Yandex (yandex-logger-sentry, yandex-logger-qloud, yandex-sendsms, etc.) e incluíam código para enviar informações confidenciais para servidores externos. Supõe-se que aqueles que colocaram os pacotes tentaram obter sua própria substituição de dependência ao criar projetos no Yandex (método de substituição de dependência interna).

No repositório PyPI, os mesmos pesquisadores encontraram 49 pacotes (reqsystem, httpxfaster, aio6, gorilla2, httpsos, pohttp, etc.) com código malicioso ofuscado que baixa e executa um arquivo executável de um servidor externo.

Finalmente Se você estiver interessado em saber mais sobre isso, você pode verificar os detalhes em o seguinte link.