Publicada uma análise que identificou 200 pacotes maliciosos no NPM e no PyPI

A OpenSSF (Open Source Security Foundation), formada pela Linux Foundation e focada em aumentar a segurança do software de código aberto, apresentou o projeto aberto Package Analysis, que desenvolve um sistema de análise da presença de código malicioso em pacotes. O código do projeto é escrito na linguagem Go e é distribuído sob a licença Apache 2.0. A varredura preliminar dos repositórios NPM e PyPI com a ferramenta proposta permitiu identificar mais de 200 pacotes maliciosos que anteriormente não haviam sido detectados.

A maior parte dos pacotes problemáticos identificados manipula a sobreposição de nomes com dependências internas não públicas dos projetos (ataque de confusão de dependência) ou utiliza métodos de type-squatting (designação de nomes semelhantes aos de bibliotecas populares), além de invocar scripts durante a instalação que se conectam a hosts externos. Segundo os desenvolvedores do Package Analysis, a maioria dos pacotes problemáticos identificados foi provavelmente criada por pesquisadores de segurança envolvidos em programas de recompensas por descoberta de vulnerabilidades (bug bounty), pois os dados enviados são limitados ao nome do usuário e do sistema, e as ações são executadas de forma explícita, sem tentativas de ocultar seu comportamento.

Os pacotes com atividade maliciosa incluem:

  • O pacote PyPI discordcmd, que registrou o envio de solicitações atípicas ao raw.githubusercontent.com, à API do Discord e ao ipinfo.io. Este pacote carregava o código de um backdoor do GitHub e o instalava no diretório do cliente Windows do Discord, após o qual iniciava um processo de busca por tokens do Discord no sistema de arquivos e os enviava para um servidor externo do Discord controlado pelos atacantes.
  • O pacote NPM colorsss, que também tentou enviar a um servidor externo servidor tokens da conta do Discord.
  • O pacote NPM @roku-web-core/ajax – durante a instalação, enviava dados sobre o sistema e iniciava um handler (reverse shell) que aceitava conexões externas e executava comandos.
  • O pacote PyPI secrevthree – iniciava um reverse shell ao importar um determinado módulo.
  • O pacote NPM random-vouchercode-generator – após a importação da biblioteca, enviava uma solicitação a um servidor externo, que retornava um comando e o horário em que este deveria ser executado.

O trabalho da Análise de Pacotes se concentra na análise dos textos de origem dos pacotes de código para estabelecer conexões de rede, acessar arquivos e executar comandos. Além disso, monitora-se a alteração do estado dos pacotes para identificar a adição de inserções maliciosas em uma das versões originalmente inofensivas do software. Para monitorar a aparição de novos pacotes nos repositórios e fazer alterações em pacotes previamente publicados, utiliza-se a ferramenta Package Feeds, que unifica a operação com repositórios NPM, PyPI, Go, RubyGems, Packagist, NuGet e Crate.

A Análise de Pacotes inclui três componentes básicos, que podem ser utilizados juntos ou separadamente:

  • Um agendador que inicia trabalhos de análise de pacotes com base em dados da Package Feeds.
  • Um analisador que verifica diretamente o pacote e avalia seu comportamento usando métodos de análise estática e rastreamento dinâmico. A verificação é realizada em um ambiente isolado.
  • Um carregador que armazena os resultados da verificação no BigQuery.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster