Fluxo de pacotes maliciosos PyPI e npm roubam chaves SSH

fluxo-de-pacotes-maliciosos-pypi-e-npm-roubam-chaves-ssh

Um fluxo de pacotes npm e PyPi maliciosos foi encontrado roubando uma ampla gama de dados confidenciais de desenvolvedores de software nas plataformas. Essa campanha começou em 12 de setembro de 2023 e foi descoberta pela primeira vez pela Sonatype , cujos analistas descobriram 14 pacotes maliciosos no npm.

Pacotes maliciosos PyPI e npm roubando chaves SSH

De acordo com o Phylum, após um breve hiato operacional em 16 e 17 de setembro, o ataque foi retomado e expandido para o ecossistema PyPI. Desde o início da campanha, os invasores fizeram upload de 45 pacotes em npm (40) e PyPI (5), com variantes no código indicando uma rápida evolução no ataque.

Pacotes maliciosos

A lista completa dos pacotes maliciosos distribuídos nesta campanha pode ser encontrada na seção inferior do relatório do Phylum. No entanto, é importante notar que os seguintes pacotes utilizaram typosquatting para se parecerem com pacotes populares legítimos, o que pode induzir os desenvolvedores a instalá-los:

  • Shineouts e @dynamic-form-components/shineout – imitando a popular biblioteca React “Shineout”;
  • apm-web-vitals – poderia passar como “APM” (monitoramento de desempenho de aplicativos) para a biblioteca “web-vitals” do Google que mede o desempenho da web;
  • eslint-plugin-shein-soc-raw e @spgy/eslint-plugin-spgy-fe – fingindo ser plugins ESLint;
  • ssc-concurrent-log-handler & sc-concurrent-log-handler – fingindo ser utilitários de registro legítimos;
  • De acordo com Phylum, pelo menos sete ondas de ataque distintas e várias fases apresentavam modificações de código para aumentar a furtividade e adicionar alvos mais específicos.

As primeiras ondas de ataques ocorreram entre 12 e 15 de setembro, com os agentes da ameaça carregando novos conjuntos de pacotes diariamente, atingindo um total de 33 pacotes. Essas ondas de ataque posteriores ocorreram em 18 de setembro (três pacotes), 20 de setembro (cinco pacotes) e 24 de setembro (4 pacotes).

Nas ondas iniciais, os pacotes possuíam rotinas de coleta e exfiltração de dados codificadas, contendo internamente o código de coleta de dados em formato de texto simples, o que os tornava suscetíveis à detecção.

As iterações intermediárias introduziram mecanismos mais complexos, como recuperação e execução do script bash de coleta de dados de um domínio externo. Além disso, os autores adicionaram um gancho de “pré-instalação” para executar JavaScript malicioso automaticamente após a instalação.

Os pacotes mais recentes utilizavam codificação base64 para evitar a análise, que mais tarde foi atualizada para codificação base64 dupla. Em geral, os invasores se envolveram em um processo contínuo de teste e refinamento de código e até entregaram pacotes especializados em alguns aspectos da coleta de dados mais do que em outros.

Ameaça de roubo de informações

Os dados roubados pelos pacotes incluem informações confidenciais da máquina e do usuário. Os detalhes coletados da máquina e do usuário incluem nome do host, nome de usuário, caminho atual, versão do sistema operacional, endereços IP externos e internos e versão Python para pacotes PyPI.

Esses detalhes e as configurações do Kubernetes armazenadas em arquivos kubeconfig e chaves privadas SSH em ~/.ssh/id_rsa são escritos em um arquivo de texto (ConceptualTest.txt) e enviados aos servidores dos invasores.

Imagem: Reprodução | Bleeping Computer

As informações roubadas podem ser usadas para expor as identidades reais dos desenvolvedores e dar aos invasores acesso não autorizado a sistemas, servidores ou infraestrutura acessíveis por meio das chaves privadas SSH roubadas.

Os usuários de plataformas de distribuição de código como PyPI e npm são aconselhados a serem cautelosos com os pacotes que baixam e lançam em seus sistemas.

Via: Bleeping Computer
Acesse a versão completa
Sair da versão mobile