Una falla de seguridad crítica ahora parcheada que afecta a Google Cloud Platform (GCP) Composer podría haberse aprovechado para lograr la ejecución remota de código en servidores en la nube utilizando una técnica de ataque a la cadena de suministro llamada confusión de dependencia.
La vulnerabilidad ha sido denominada “nombre en clave” NubeImponer por Tenable Research.
«La vulnerabilidad podría haber permitido a un atacante secuestrar una dependencia de software interna que Google preinstala en cada herramienta de orquestación de canalización de Google Cloud Composer», dijo la investigadora de seguridad Liv Matan en un comunicado. informe compartido con The Hacker News.
La confusión de dependencia (también llamada ataque de sustitución), documentada por primera vez por el investigador de seguridad Alex Birsan en febrero de 2021, se refiere a un tipo de compromiso de la cadena de suministro de software en el que se engaña a un administrador de paquetes para que extraiga un paquete malicioso de un repositorio público en lugar del previsto. archivo del mismo nombre de un repositorio interno.
Así, un actor malicioso podría lanzar un ataque a gran escala contra la cadena de suministro. edición un paquete falsificado a un repositorio público de paquetes con el mismo nombre que un paquete desarrollado internamente por empresas y con un número de versión superior.
Esto, a su vez, hace que el administrador de paquetes descargar sin saberlo el paquete malicioso del repositorio público en lugar del privado, reemplazando efectivamente la dependencia del paquete existente con su contraparte maliciosa.
el problema identificado Tenable es similar en el sentido de que se podría abusar de él para cargar un paquete malicioso en el repositorio de Python Package Index (PyPI) con el nombre «google-cloud-datacatalog-lineage-producer-client», que luego podría preinstalarse en todos los Composer. instancias con permisos elevados.
Aunque Cloud Composer requiere que el paquete en cuestión esté fijado por versión (es decir, versión 0.1.0), Tenable ha descubierto que el uso del argumento «–extra-index-url» cuando se ejecuta un comando «pip install» da prioridad a la recuperación del paquete desde el registro público, abriendo la puerta a la confusión de dependencia.
Armados con este privilegio, los atacantes podrían ejecutar código, exfiltrar las credenciales de la cuenta de servicio y moverse lateralmente dentro del entorno de la víctima a otros servicios de GCP.
Tras una divulgación responsable el 18 de enero de 2024, Google solucionó el problema en mayo de 2024 asegurándose de que el paquete solo se instalara desde un repositorio privado. Google también agregó la precaución adicional de verificar la suma de verificación del paquete para confirmar su integridad y validar que no haya sido manipulado.
Según se informa, la Python Packaging Authority (PyPA) ha sido consciente de los riesgos que plantea el argumento «–extra-index-url» desde al menos marzo de 2018, instando a los usuarios a evitar el uso de PyPI en los casos en los que se deba extraer el paquete interno.
«Los paquetes deben ser únicos hasta el nombre y la versión, por lo que dos ruedas con el mismo nombre y versión del paquete se tratan como indistinguibles por pip», dijo un miembro de PyPA. nota En el momento. “Esta es una característica deliberada de los metadatos del paquete y es poco probable que cambie. »
Google, como parte de su solución, ahora también recomienda que los desarrolladores utilicen el argumento «–index-url» en lugar del argumento «–extra-index-url» y que los clientes de GCP utilicen un repositorio virtual de Artifact Registry cuando necesiten varios repositorios.
«El argumento ‘–index-url’ reduce el riesgo de ataques de confusión de dependencia al buscar únicamente paquetes en el registro que se hayan establecido en un valor determinado para este argumento», dijo Matan.