Stream de pacotes npm e PyPi maliciosos está roubando chaves SSH

Descoberta pela primeira vez pela Sonatype, um stream de pacotes npm e PyPi maliciosos está roubando chaves SSH.

Um stream de pacotes npm e PyPi maliciosos foi encontrado roubando uma ampla gama de dados confidenciais de desenvolvedores de software nas plataformas.

A 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.

O Phylum relata que após um breve hiato operacional em 16 e 17 de setembro, o ataque foi retomado e expandido para o ecossistema PyPI.

Stream de pacotes npm e PyPi maliciosos está roubando chaves SSH

Stream de pacotes npm e PyPi maliciosos está roubando chaves SSH
Stream de pacotes npm e PyPi maliciosos está roubando chaves SSH

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.

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.

As 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.

Stream de pacotes npm e PyPi maliciosos está roubando chaves SSH
Stream de pacotes npm e PyPi maliciosos está roubando chaves SSH – Recuperando o script bash de uma fonte externa (Phylum)

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.

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.

Stream de pacotes npm e PyPi maliciosos está roubando chaves SSH
Stream de pacotes npm e PyPi maliciosos está roubando chaves SSH – Conteúdo do script bash (Filo)

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.

Se as configurações roubadas do Kubernetes contiverem credenciais para acessar clusters, os invasores poderão modificar implantações, adicionar contêineres maliciosos, acessar dados confidenciais armazenados no cluster, mover-se lateralmente ou lançar um ataque de ransomware.

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, pois há um fluxo constante de malware nesses ecossistemas.

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.

Deixe um comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.