Está floreciendo un nuevo tipo de ataque a la cadena de suministro con graves consecuencias

Una pantalla de computadora está llena de código.

Un nuevo tipo de ataque a la cadena de suministro presentado el mes pasado está dirigido a más y más empresas, con nuevas rondas esta semana dirigidas a Microsoft, Amazon, Slack, Lyft, Zillow y un número desconocido de otras. En las últimas semanas, Apple, Microsoft, Tesla y otras 32 empresas fueron blanco de un ataque similar que permitió a un investigador de seguridad ejecutar código no autorizado dentro de sus redes.

El último ataque contra Microsoft también se llevó a cabo como prueba de concepto por parte de un investigador. Los ataques dirigidos a Amazon, Slack, Lyft y Zillow, por el contrario, fueron maliciosos, pero no está claro si lograron ejecutar el malware dentro de sus redes. Mientras tanto, los repositorios de código fuente abierto npm y PyPi se han inundado con más de 5.000 paquetes de prueba de concepto, según Sonatype, una empresa que ayuda a los clientes a proteger las aplicaciones que desarrollan.

“Dado el volumen diario de paquetes npm sospechosos que son recogidos por los sistemas automatizados de detección de malware de Sonatype, solo esperamos que esta tendencia aumente, con adversarios que abusan de la confusión de dependencia para llevar a cabo actividades aún más siniestras”, dijo el investigador de Sonatype, Ax Sharma. escribió

a principios de esta semana.

Un ataque resbaladizo

El objetivo de estos ataques es ejecutar código no autorizado dentro del sistema de compilación de software interno de un objetivo. La técnica funciona cargando paquetes maliciosos en repositorios de código público y dándoles un nombre que es idéntico a un paquete almacenado en el repositorio interno del desarrollador de destino.

Las aplicaciones de administración de software de los desarrolladores a menudo prefieren las bibliotecas de código externas sobre las internas, por lo que descargan y usan el paquete malicioso en lugar del confiable. Alex Birsan, el investigador que engañó a Apple y las otras 34 empresas para que ejecutaran los paquetes de prueba de concepto que cargó en npm y PyPi, denominó el nuevo tipo de confusión de dependencia de ataque de cadena de suministro o confusión de espacio de nombres porque se basa en dependencias de software con engaños nombres.

Las dependencias de software son bibliotecas de código que una aplicación debe incorporar para que funcione. Normalmente, los desarrolladores guardan de cerca los nombres de las dependencias dentro de sus sistemas de compilación de software. Pero Birsan descubrió que los nombres a menudo se filtran cuando los archivos package.json, que contienen varios metadatos relevantes para un proyecto de desarrollo, se incrustan en archivos de secuencia de comandos públicos. Las rutas internas y los scripts públicos que contienen la llamada de programación require () también pueden filtrar nombres de dependencia.

En caso de que el archivo con el mismo nombre no esté disponible en un repositorio público, los piratas informáticos pueden cargar un paquete malicioso y darle el mismo nombre de archivo y un número de versión superior al archivo auténtico almacenado internamente. En muchos casos, los desarrolladores usan accidentalmente la biblioteca maliciosa o su aplicación de compilación lo hace automáticamente.

“Es un ataque hábil”, HD Moore, cofundador y director ejecutivo de la plataforma de descubrimiento de redes Retumbar, dicho. “Supongo que afecta a un montón de personas”. Añadió que las organizaciones que corren mayor riesgo son las que utilizan una gran cantidad de paquetes internos y no toman medidas especiales para evitar que los paquetes públicos reemplacen a los internos.

Lloviendo confusión

En las semanas transcurridas desde que Birsan publicó sus hallazgos, los ataques de confusión por dependencia han florecido. Ya afectado por un ataque de prueba de concepto que ejecutó el paquete no autorizado de Birsan en su red, Microsoft recientemente cayó a un segundo ataque, que fue realizado por investigadores de la firma Contrast Security.

Matt Austin, director de investigación de seguridad de Contrast, dijo que comenzó buscando las dependencias utilizadas en la aplicación de escritorio Teams de Microsoft. Después de encontrar un paquete de JavaScript llamado “Dependencias opcionales”, aprovechó una forma de conseguir que una máquina de desarrollo de Teams descargara y ejecutara un paquete que puso en npm. El paquete usó el mismo nombre que un módulo listado como una dependencia opcional.

Poco después de hacerlo, un script que Austin puso en el módulo comenzó a contactarlo desde varias direcciones IP internas de Microsoft. Austin escribió:

Ya sea que las respuestas que vi fueran automáticas o manuales, el hecho de que pude generar esta reacción representa un riesgo significativo. Aprovechando el script posterior a la instalación, pude ejecutar código en cualquier entorno en el que se estuviera instalando. Si los atacantes ejecutaran código de la forma en que lo hice en un servidor de compilación para una actualización de la aplicación de escritorio que estaba a punto de distribuirse, podrían in sertar lo que quisieran en esa actualización, y ese código se distribuiría en todos los escritorios con Teams, más de 115 millones de máquinas. Un ataque de este tipo podría tener repercusiones monumentales, afectando potencialmente a tantas organizaciones como la masiva ataque a la fábrica de software SolarWinds

que se reveló en diciembre.

Proporcionó la siguiente figura que ilustra cómo podría funcionar un ataque malicioso en este escenario teórico:

Seguridad de contraste

Una portavoz de Microsoft escribió: “Como parte de nuestros mayores esfuerzos para mitigar los ataques de sustitución de paquetes, identificamos rápidamente el problema mencionado y lo abordamos, y en ningún momento representó un riesgo de seguridad grave para nuestros clientes”. La portavoz agregó que el sistema que ejecutaba el código de Austin era parte de la infraestructura de pruebas de seguridad de la compañía. Microsoft tiene más información sobre los riesgos y las formas de mitigarlos aquí.

Los ataques se vuelven maliciosos

Al igual que los paquetes cargados por Birsan y Austin, los miles de archivos que inundaron npm y PyPi han contenido en su mayoría scripts benignos que envían a los investigadores la dirección IP y otros detalles genéricos de la computadora que los ejecuta.

Pero no todas las subidas han observado tal moderación. El lunes, los investigadores de Sonatype informaron archivos subidos a npm que intentaron robar hash de contraseñas e historiales de scripts de bash de compañías como Amazon, Slack, Lyft y Zillow.

Un archivo .bash_history al que accede el paquete cargado en npm.
Agrandar / Un archivo .bash_history al que accede el paquete cargado en npm.

Sonatype

“Estas actividades se llevarían a cabo tan pronto como un ataque de confusión de dependencia tenga éxito y no necesitarían ninguna acción por parte de la víctima, dada la naturaleza del problema de la dependencia / secuestro del espacio de nombres”, Sharma, investigadora de Sonatype, escribió.

Los historiales de bash, que almacenan comandos y otras entradas que los administradores escriben en sus computadoras, a menudo contienen contraseñas de texto sin formato y otros datos confidenciales. Archivos almacenados en el / etc / shadow La ruta de acceso de las máquinas Linux almacena los hashes criptográficos de las contraseñas necesarias para acceder a las cuentas de usuario en la computadora. (Para que los hash se vean comprometidos, la aplicación npm tendría que ejecutarse en modo superusuario, un conjunto de privilegios extremadamente elevado que casi nunca se otorgan a las aplicaciones de administración de software).

Sonatype dijo que no tenía forma de saber si los archivos fueron ejecutados por alguna de las compañías apuntadas por los scripts.

Los objetivos responden

En un comunicado, los funcionarios de Slack escribieron:

La biblioteca imitada en cuestión no es parte del producto de Slack, ni es mantenida ni respaldada por Slack. No tenemos ninguna razón para creer que el software malicioso se ejecutó en producción. Nuestro equipo de seguridad escanea periódicamente las dependencias utilizadas en nuestro producto con herramientas internas y externas para prevenir ataques de esta naturaleza. Además, las prácticas de desarrollo seguro de Slack, como el uso de un ámbito privado cuando se usan dependencias privadas, hacen que sea poco probable que un ataque relacionado con la dependencia tenga éxito contra nuestro producto.

Una declaración de Lyft decía: “Lyft no resultó perjudicado en este intento. No hay indicios de que este software malicioso se haya ejecutado en la red de Lyft. Lyft tiene un programa de seguridad de la información dedicado para defenderse de tales ataques a la cadena de suministro y ejecuta un programa activo de recompensas por errores para probar continuamente sus controles de seguridad “.

Los funcionarios de Zillow escribieron:

Somos conscientes del reciente informe de seguridad que involucra un posible ataque con paquetes de software falsificados. Después de una investigación por parte de nuestro equipo de seguridad, no encontramos evidencia de que nuestros sistemas fueran comprometidos o explotados por la técnica divulgada. Nuestro equipo también está tomando una serie de acciones para monitorear y defenderse contra posibles intentos futuros de obtener acceso no autorizado a nuestros sistemas.

Mientras tanto, representantes de npm escribieron: “Hemos proporcionado orientación sobre cómo protegerse mejor contra este tipo de ataques de sustitución en esta publicación de blog. Estamos comprometidos a mantener npm seguro y continuar mejorando la seguridad del ecosistema “.

Los representantes de Amazon no respondieron a un correo electrónico en busca de comentarios. Un representante de PyPi no hizo comentarios de inmediato.

El ataque reciente contra el proveedor de herramientas de red Solar Winds, que comprometió el sistema de construcción de software de la compañía de Texas y lo utilizó para distribuir actualizaciones maliciosas a 18.000 clientes, fue un claro recordatorio del daño que pueden resultar de los ataques del lado del suministro. Los ataques de confusión de dependencias tienen el potencial de infligir aún más daño a menos que los desarrolladores tomen medidas de precaución.

Leave a Reply

Your email address will not be published. Required fields are marked *