Foi publicado um analisador que identificou 200 pacotes maliciosos em NPM e PyPI

A OpenSSF (Open Source Security Foundation), formada pela Linux Foundation e que visa melhorar a segurança de softwares de código aberto, apresentou o projeto aberto Package Analysis, que desenvolve um sistema para analisar a presença de códigos maliciosos em pacotes. O código do projeto é escrito em Go e distribuído sob a licença Apache 2.0. Uma verificação preliminar dos repositórios NPM e PyPI usando as ferramentas propostas permitiu identificar mais de 200 pacotes maliciosos não detectados anteriormente.

A maior parte dos pacotes problemáticos identificados manipulam a interseção de nomes com dependências internas não públicas de projetos (ataque de confusão de dependências) ou usam métodos typosquatting (atribuindo nomes semelhantes aos nomes de bibliotecas populares) e também chamam scripts que acessam hosts externos durante o processo de instalação. De acordo com os desenvolvedores do Package Analysis, a maioria dos pacotes problemáticos identificados foram provavelmente criados por pesquisadores de segurança participantes de programas de recompensas de bugs, uma vez que os dados enviados são limitados ao nome do usuário e do sistema, e as ações são executadas explicitamente, sem tentativas de esconder seu comportamento.

Pacotes com atividades maliciosas incluem:

  • Pacote PyPI discordcmd, que registra o envio de solicitações atípicas para raw.githubusercontent.com, Discord API e ipinfo.io. O pacote especificado baixou o código backdoor do GitHub e o instalou no diretório do cliente Discord Windows, após o qual iniciou o processo de busca de tokens Discord no sistema de arquivos e envio para um servidor Discord externo controlado pelos invasores.
  • O pacote Colorss NPM também tentou enviar tokens de uma conta Discord para um servidor externo.
  • Pacote NPM @roku-web-core/ajax - durante o processo de instalação enviava dados sobre o sistema e lançava um manipulador (shell reverso) que aceitava conexões externas e lançava comandos.
  • Pacote PyPI secrettrês - lança um shell reverso ao importar um módulo específico.
  • Pacote NPM random-vouchercode-generator - após importar a biblioteca, enviava uma solicitação para um servidor externo, que retornava o comando e o horário em que deveria ser executado.

O trabalho da Análise de Pacotes se resume a analisar pacotes de código no código-fonte para estabelecer conexões de rede, acessar arquivos e executar comandos. Além disso, as alterações no estado dos pacotes são monitoradas para determinar a adição de inserções maliciosas em uma das versões de software inicialmente inofensivo. Para monitorar o aparecimento de novos pacotes nos repositórios e fazer alterações nos pacotes postados anteriormente, é utilizado o kit de ferramentas Package Feeds, que unifica o trabalho com os repositórios NPM, PyPI, Go, RubyGems, Packagist, NuGet e Crate.

A Análise de Pacote inclui três componentes básicos que podem ser usados ​​em conjunto e separadamente:

  • Agendador para iniciar o trabalho de análise de pacotes com base nos dados dos Feeds de Pacotes.
  • Um analisador que examina diretamente um pacote e avalia seu comportamento usando análise estática e técnicas de rastreamento dinâmico. O teste é realizado em ambiente isolado.
  • Um carregador que coloca os resultados do teste no armazenamento do BigQuery.

Fonte: opennet.ru

Adicionar um comentário