Se ha explotado una nueva técnica de ataque a la cadena de suministro dirigida al registro Python Package Index (PyPI) para intentar infiltrarse en organizaciones posteriores.
El nombre en clave de este ataque lo dio la empresa de seguridad de la cadena de suministro de software JFrog, Revival Hijack. Según ella, este método de ataque podría usarse para secuestrar 22.000 paquetes PyPI existentes y provocar la descarga de «cientos de miles» de paquetes maliciosos. Estos paquetes confidenciales se han descargado más de 100.000 veces o han estado activos durante más de seis meses.
«Esta técnica de ataque implica secuestrar paquetes de software PyPI manipulando la opción de volver a registrarlos una vez que el propietario original los elimina del índice PyPI», dijeron los investigadores de seguridad de JFrog Andrey Polkovnychenko y Brian Moussalli en un comunicado de prensa. informe compartido con The Hacker News.
En esencia, el ataque se basa en la eliminación de varios paquetes de Python publicados en el repositorio de PyPI, dejándolos disponibles para que los guarde cualquier otro usuario.
Las estadísticas compartidas por JFrog muestran que, en promedio, se eliminan alrededor de 309 paquetes cada mes. Esto puede suceder por muchas razones: falta de mantenimiento (es decir, abandono del software), volver a publicar el paquete con un nombre diferente o introducir la misma funcionalidad en bibliotecas oficiales o API integradas.
Esto también proporciona una lucrativa superficie de ataque, más eficaz que la typosquatting, y que un atacante, utilizando sus propias cuentas, podría aprovechar para publicar paquetes maliciosos con el mismo nombre y una versión superior para infectar entornos de desarrollo.
«Esta técnica no se basa en un error por parte de la víctima durante la instalación del paquete», explicaron los investigadores, señalando que Revival Hijack puede producir mejores resultados desde la perspectiva del adversario. “Muchos usuarios consideran seguro actualizar un paquete que antes era seguro a su última versión. »
Aunque PyPI tiene salvaguardias contra la suplantación del autor y los intentos de manipulación tipográfica, el análisis de JFrog encontró que ejecutar «lista de pips –obsoletaEl comando » enumera el paquete falsificado como una nueva versión del paquete original, siendo el primero un paquete diferente de un autor completamente diferente.
Aún más preocupante es la ejecución de “instalación de pip – actualizaciónEl comando “reemplaza el paquete real por uno falso sin siquiera advertir que el autor del paquete ha cambiado, exponiendo potencialmente a los desarrolladores desconocidos a un enorme riesgo para la cadena de suministro de software.
JFrog dijo que tomó la decisión de crear una nueva cuenta de usuario de PyPI llamada «detención_seguridad» que utilizó para secuestrar de forma segura paquetes confidenciales y reemplazarlos con marcadores de posición vacíos para evitar que actores maliciosos aprovechen los paquetes eliminados.
Además, a cada uno de estos paquetes se le asignó el número de versión 0.0.0.1 (lo opuesto a un escenario de ataque de confusión de dependencia) para evitar que los desarrolladores los eliminen al ejecutar un comando de actualización de pip.
Lo que es más preocupante es que Revival Hijack ya ha sido explotado en la naturaleza, con un actor de amenazas desconocido llamado Jinnis introduciendo una versión benigna de un paquete llamado «pingdomv3» el 30 de marzo de 2024, el mismo día que el propietario original (cheneyyan) eliminó el paquete PyPI.
El 12 de abril de 2024, el nuevo desarrollador supuestamente lanzó una actualización que contiene una carga útil codificada en Base64 que verifica la presencia de «URL_JENKIN«variable de entorno y, si está presente, ejecuta un módulo de siguiente paso desconocido recuperado de un servidor remoto.
«Esto sugiere que los atacantes retrasaron la propagación del ataque o lo diseñaron para que fuera más específico, posiblemente limitándolo a un rango de direcciones IP específico», dijo JFrog.
Este nuevo ataque es una señal de que los malos actores están considerando ataques a la cadena de suministro a mayor escala, dirigidos a paquetes PyPI eliminados para ampliar el alcance de las campañas. Se recomienda que las organizaciones y los desarrolladores inspeccionen sus canalizaciones de DevOps para asegurarse de que no estén instalando paquetes que ya se hayan eliminado del repositorio.
«El uso de un comportamiento vulnerable en el manejo de paquetes eliminados permitió a los atacantes secuestrar paquetes existentes, permitiéndoles instalarlos en los sistemas de destino sin ningún cambio en el flujo de trabajo del usuario», dijo Moussalli, jefe del equipo de investigación de seguridad de JFrog.
“La superficie de ataque del paquete PyPI sigue creciendo. A pesar de la intervención proactiva, los usuarios deben permanecer alerta y tomar las precauciones necesarias para protegerse a sí mismos y a la comunidad PyPI de esta técnica de piratería. »