Bombas de código malicioso apuntan a Amazon, Lyft, Slack, Zillow

Investigadores han detectado paquetes maliciosos dirigidos a aplicaciones internas para Amazon, Lyft, Slack y Zillow (entre otros) dentro del repositorio de código público de npm, todos los cuales exfiltran información confidencial.

Los paquetes utilizan un exploit de confusión de dependencia de código de prueba de concepto (PoC) que fue diseñado recientemente por el investigador de seguridad Alex Birsan para inyectar código falso en proyectos de desarrollo.

Los proyectos de desarrolladores internos suelen utilizar dependencias de código estándar y de confianza que se encuentran en repositorios privados. Birsan decidió ver qué pasaría si creaba paquetes «imitadores» para ser alojados en repositorios públicos como npm, con los mismos nombres que las dependencias de código legítimo privado.

«¿Es posible que algunos de los proyectos internos de PayPal comiencen a utilizar de forma predeterminada los nuevos paquetes públicos en lugar de los privados?» preguntó. Y la respuesta fue sí.

En el caso de Birsan, probó esta «confusión de dependencia» utilizando bloques de código PoC benignos. Estos se cargaron en repositorios públicos, y simplemente se sentó y esperó a ver si se importarían. Su corazonada resultó ser correcta, demostrando cómo el código externo se puede importar y propagar a través de las aplicaciones y sistemas internos de una empresa objetivo, con relativa facilidad, incluso en Apple, Microsoft, Netflix, PayPal, Shopify, Tesla y Uber.

La confusión de dependencia se vuelve maliciosa

Desafortunadamente, Sonatype también identificó varios paquetes maliciosos, lo que demuestra que la técnica está siendo utilizada como arma.

“Algunos de los paquetes de imitación de dependencia-confusión llevan lo que puede considerarse ‘investigación ética’ un paso más allá, al participar en actividades directamente maliciosas”, explicó Sharma.

Varios de los paquetes de imitación identificados por Sonatype se filtran, por ejemplo, los archivos .bash_history del usuario y los archivos / etc / shadow.

El archivo .bash_history contiene una lista de comandos ejecutados previamente por un usuario de sistema operativo basado en Unix en la terminal. A menos que se borre periódicamente, este archivo puede contener los nombres de usuario, contraseñas y otros datos confidenciales.

Mientras tanto, el archivo / etc / shadow mantiene los datos hash de las contraseñas de las cuentas de usuario en un sistema. Aunque el archivo normalmente está restringido a cuentas de «superusuario», un actor malintencionado podría obtener el archivo si la máquina infectada ejecuta npm con privilegios elevados.

Paquetes Copycat de Amazon, Lyft, Slack y Zillow

Los investigadores descubrieron paquetes maliciosos dirigidos a una variedad de empresas, pero se destacaron cuatro dirigidos a Amazon, Lyft, Slack y Zillow.

La página web npm para “amzn” ofrece dos versiones idénticas de un paquete malicioso, cada una de las cuales contiene solo dos archivos: un manifiesto llamado package.json y el archivo funcional run.js. El paquete «amzn» que tiene nombres análogos al repositorio GitHub de Amazon y los paquetes de código abierto, según los investigadores.

En cuanto a Zillow, el paquete «zg-rentals» también fue enviado a npm por el mismo autor, y es idéntico en estructura y funcionalidad al paquete «amzn», dijeron los investigadores. Ninguno ofrece ninguna indicación o descargo de responsabilidad de que puedan estar vinculados a un esfuerzo de investigación ética, según el análisis de Sonatype.

El mismo autor publicó un paquete Lyft casi idéntico, llamado lyft-dataset-sdk, que comparte un nombre con un paquete basado en Python utilizado por Lyft.