Publicouse un analizador que identificou 200 paquetes maliciosos en NPM e PyPI

A OpenSSF (Open Source Security Foundation), formada pola Fundación Linux e destinada a mellorar a seguridade do software de código aberto, presentou o proxecto aberto Package Analysis, que desenvolve un sistema para analizar a presenza de código malicioso nos paquetes. O código do proxecto está escrito en Go e distribúese baixo a licenza Apache 2.0. Unha exploración preliminar dos repositorios de NPM e PyPI utilizando as ferramentas propostas permitiunos identificar máis de 200 paquetes maliciosos non detectados previamente.

A maior parte dos paquetes problemáticos identificados manipulan a intersección de nomes con dependencias internas non públicas dos proxectos (ataque de confusión de dependencias) ou usan métodos de typosquatting (asignación de nomes similares aos nomes das bibliotecas populares), e tamén chaman scripts que acceden a hosts externos durante o proceso de instalación. Segundo os desenvolvedores de Package Analysis, a maioría dos paquetes problemáticos identificados probablemente foron creados por investigadores de seguridade que participaban en programas de recompensa de erros, xa que os datos enviados limítanse ao nome do usuario e do sistema e as accións realízanse de forma explícita, sen intentos de ocultar o seu comportamento.

Os paquetes con actividade maliciosa inclúen:

  • Paquete PyPI discordcmd, que rexistra o envío de solicitudes atípicas a raw.githubusercontent.com, Discord API e ipinfo.io. O paquete especificado descargou o código de porta traseira de GitHub e instalouno no directorio do cliente de Discord Windows, despois de que iniciou o proceso de busca de tokens de Discord no sistema de ficheiros e envialos a un servidor Discord externo controlado polos atacantes.
  • O paquete colorsss NPM tamén intentou enviar tokens desde unha conta de Discord a un servidor externo.
  • Paquete NPM @roku-web-core/ajax: durante o proceso de instalación enviou datos sobre o sistema e lanzou un controlador (shell inverso) que aceptaba conexións externas e lanzou comandos.
  • Paquete PyPI secrevthree: lanzou un shell inverso ao importar un módulo específico.
  • Paquete NPM random-vouchercode-generator: despois de importar a biblioteca, enviou unha solicitude a un servidor externo, que devolveu o comando e a hora na que debería executarse.

O traballo da Análise de paquetes consiste en analizar paquetes de código no código fonte para establecer conexións de rede, acceder a ficheiros e executar comandos. Ademais, monitorízanse os cambios no estado dos paquetes para determinar a adición de insercións maliciosas nunha das versións de software inicialmente inofensivo. Para supervisar a aparición de novos paquetes nos repositorios e facer cambios nos paquetes publicados anteriormente, utilízase o conxunto de ferramentas Paquete Feeds, que unifica o traballo cos repositorios NPM, PyPI, Go, RubyGems, Packagist, NuGet e Crate.

A análise de paquetes inclúe tres compoñentes básicos que se poden usar tanto en conxunto como por separado:

  • Programador para iniciar o traballo de análise de paquetes baseado nos datos dos feeds de paquetes.
  • Un analizador que examina directamente un paquete e avalía o seu comportamento mediante técnicas de análise estática e de rastrexo dinámico. A proba realízase nun ambiente illado.
  • Un cargador que coloca os resultados da proba no almacenamento de BigQuery.

Fonte: opennet.ru

Engadir un comentario