04 de septiembre de 2024Ravie Lakshmanan Una nueva técnica de ataque a la cadena de suministro que tiene como objetivo el registro Python Package Index (PyPI) ha sido explotada en la naturaleza en un intento de infiltrarse en organizaciones posteriores. La firma de seguridad de la cadena de suministro de software JFrog la ha denominado Revival Hijack, y dijo que el método de ataque podría usarse para secuestrar 22.000 paquetes PyPI existentes y dar como resultado «cientos de miles» de descargas de paquetes maliciosos. Estos paquetes susceptibles tienen más de 100.000 descargas 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 de PyPI», dijeron los investigadores de seguridad de JFrog Andrey Polkovnychenko y Brian Moussalli en un informe compartido con The Hacker News. En esencia, el ataque se basa en el hecho de que varios paquetes de Python publicados en el repositorio PyPI se eliminan, lo que los hace disponibles para que cualquier otro usuario los registre. Las estadísticas compartidas por JFrog muestran que, en promedio, se eliminan unos 309 paquetes cada mes. Esto puede suceder por varias razones: falta de mantenimiento (es decir, abandonware), la reedición de un paquete con un nombre diferente o la introducción de la misma funcionalidad en bibliotecas oficiales o API integradas. Esto también plantea una lucrativa superficie de ataque que es más efectiva que el typosquatting y que un atacante, utilizando sus propias cuentas, podría explotar para publicar paquetes maliciosos con el mismo nombre y una versión superior para infectar los entornos de los desarrolladores. «La técnica no depende de que la víctima cometa un error al instalar el paquete», dijeron los investigadores, señalando cómo Revival Hijack puede producir mejores resultados desde el punto de vista de un adversario. «Actualizar un paquete ‘antes seguro’ a su última versión es visto como una operación segura por muchos usuarios». Aunque PyPI cuenta con medidas de seguridad contra la suplantación de autor y los intentos de typosquatting, el análisis de JFrog descubrió que ejecutar el comando «pip list –outdated» enumera el paquete falsificado como una nueva versión del paquete original, donde el primero corresponde a un paquete diferente de un autor completamente diferente. Aún más preocupante, ejecutar el comando «pip install –upgrade» reemplaza el paquete real con el falso sin una gran advertencia de que el autor del paquete ha cambiado, lo que potencialmente expone a los desarrolladores involuntarios a un gran riesgo en la cadena de suministro de software. JFrog dijo que tomó la medida de crear una nueva cuenta de usuario de PyPI llamada «security_holding» que utilizó para secuestrar de forma segura los paquetes susceptibles y reemplazarlos con marcadores de posición vacíos para evitar que los actores maliciosos se aprovechen de los paquetes eliminados. Además, a cada uno de estos paquetes se le ha asignado 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 cuando ejecutan un comando pip upgrade. Lo que es más inquietante 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 en que el propietario original (cheneyyan) eliminó el paquete de PyPI. El 12 de abril de 2024, se dice que el nuevo desarrollador lanzó una actualización que contiene una carga útil codificada en Base64 que verifica la presencia de la variable de entorno «JENKINS_URL» y, si está presente, ejecuta un módulo desconocido de siguiente etapa recuperado de un servidor remoto. «Esto sugiere que los atacantes retrasaron la entrega del ataque o lo diseñaron para que fuera más específico, posiblemente limitándolo a un rango de IP específico», dijo JFrog. El nuevo ataque es una señal de que los actores de amenazas están considerando ataques a la cadena de suministro a una escala más amplia al apuntar a paquetes PyPI eliminados para expandir el alcance de las campañas. Se recomienda a las organizaciones y desarrolladores que inspeccionen sus canales 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 los paquetes eliminados permitió a los atacantes secuestrar paquetes existentes, lo que hizo posible instalarlos en los sistemas de destino sin realizar cambios en el flujo de trabajo del usuario», dijo Moussalli, líder del equipo de investigación de seguridad de JFrog. «La superficie de ataque de los paquetes PyPI crece continuamente. A pesar de la intervención proactiva en este caso, los usuarios siempre deben permanecer alerta y tomar las precauciones necesarias para protegerse a sí mismos y a la comunidad PyPI de esta técnica de secuestro». ¿Le resultó interesante este artículo? Síganos en Twitter  y LinkedIn para leer más contenido exclusivo que publicamos.