Google corrige una vulnerabilidad en GCP Composer que podría haber permitido la ejecución remota de código

XPoint
Publicado el 17/09/2024

Google ha corregido una falla crítica de seguridad en Google Cloud Platform (GCP) Composer que podría haber sido explotada para ejecutar código de forma remota en servidores en la nube mediante una técnica de ataque a la cadena de suministro llamada «confusión de dependencias».

La vulnerabilidad ha sido denominada «CloudImposer» por Tenable Research.

«Esta vulnerabilidad podría haber permitido a un atacante secuestrar una dependencia de software interna que Google preinstala en cada herramienta de orquestación de pipelines de Google Cloud Composer», explicó el investigador de seguridad Liv Matan en un informe compartido con The Hacker News.

La confusión de dependencias (también conocida como 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 en la cadena de suministro de software en el que un gestor de paquetes es engañado para descargar un paquete malicioso de un repositorio público en lugar del archivo previsto del mismo nombre desde un repositorio interno.

Ciberseguridad Un actor malicioso podría organizar un ataque a gran escala en la cadena de suministro publicando un paquete falso en un repositorio público con el mismo nombre que un paquete desarrollado internamente por empresas, pero con un número de versión más alto.

Esto hace que el gestor de paquetes descargue sin saberlo el paquete malicioso del repositorio público en lugar del privado, reemplazando efectivamente la dependencia existente con su contraparte maliciosa.

El problema identificado por Tenable es similar, ya que podría ser utilizado para cargar un paquete malicioso en el repositorio de Python Package Index (PyPI) con el nombre «google-cloud-datacatalog-lineage-producer-client», el cual luego podría preinstalarse en todas las instancias de Composer con permisos elevados.

Aunque Cloud Composer requiere que el paquete esté vinculado a una versión específica (es decir, la versión 0.1.0), Tenable descubrió que usar el argumento «–extra-index-url» durante un comando «pip install» prioriza la obtención del paquete del registro público, abriendo así la puerta a la confusión de dependencias.

Con estos privilegios, los atacantes podrían ejecutar código, exfiltrar credenciales de cuentas de servicio y moverse lateralmente dentro del entorno de la víctima hacia otros servicios de GCP.

Después de una divulgación responsable el 18 de enero de 2024, Google solucionó el problema en mayo de 2024 asegurando que el paquete solo se instale desde un repositorio privado. También agregó una precaución adicional de verificar el «checksum» del paquete para confirmar su integridad y asegurarse de que no ha sido manipulado.

La Autoridad de Empaquetado de Python (PyPA) ha sido consciente de los riesgos asociados con el argumento «–extra-index-url» al menos desde marzo de 2018, recomendando a los usuarios evitar usar PyPI en casos donde sea necesario obtener un paquete interno.

Ciberseguridad «Se espera que los paquetes sean únicos en cuanto a nombre y versión, por lo que dos paquetes con el mismo nombre y versión son tratados como indistinguibles por pip», señaló un miembro de PyPA en ese momento. «Esta es una característica deliberada de los metadatos del paquete y no es probable que cambie.»

Como parte de su solución, Google ahora también recomienda a los desarrolladores que utilicen el argumento «–index-url» en lugar de «–extra-index-url» y que los clientes de GCP empleen un repositorio virtual de Artifact Registry cuando necesiten utilizar varios repositorios.

«El argumento ‘–index-url’ reduce el riesgo de ataques por confusión de dependencias al buscar paquetes únicamente en el registro definido en dicho argumento», señaló Matan.


English

Google Fixes GCP Composer Vulnerability That Could Have Led to Remote Code Execution

Google has patched a critical security flaw in Google Cloud Platform (GCP) Composer that could have been exploited to remotely execute code on cloud servers via a supply chain attack technique known as «dependency confusion.»

The vulnerability, dubbed «CloudImposer» by Tenable Research, has now been resolved.

“This flaw could have allowed an attacker to hijack an internal software dependency that Google pre-installs on every Google Cloud Composer pipeline orchestration tool,” explained security researcher Liv Matan in a report shared with The Hacker News.

Dependency confusion (also known as substitution attack), first documented by security researcher Alex Birsan in February 2021, involves tricking a package manager into pulling a malicious package from a public repository instead of fetching the intended file from an internal repository of the same name.

Cybersecurity A threat actor could potentially carry out a large-scale supply chain attack by publishing a counterfeit package to a public repository, using the same name as a package internally developed by a company but with a higher version number.

This misleads the package manager into downloading the malicious package from the public repository, effectively replacing the original package dependency with a rogue one.

The issue identified by Tenable is similar, where an attacker could upload a malicious package to the Python Package Index (PyPI) repository under the name “google-cloud-datacatalog-lineage-producer-client,” which could then be pre-installed on all Composer instances with elevated permissions.

While Cloud Composer enforces version pinning (version 0.1.0 in this case), Tenable found that using the “–extra-index-url” argument during a “pip install” command prioritizes fetching the package from the public registry, thereby exposing the system to dependency confusion.

With these privileges, attackers could execute code, exfiltrate service account credentials, and move laterally within the victim’s GCP environment.

After responsible disclosure on January 18, 2024, Google fixed the issue in May 2024 by ensuring the package is only installed from a private repository. Google also added an additional safeguard by verifying the package’s checksum to ensure its integrity and confirm it hadn’t been tampered with.

The Python Packaging Authority (PyPA) had been aware of the risks posed by the “–extra-index-url” argument since at least March 2018, advising users to avoid using PyPI when internal packages are required.

Cybersecurity “Packages are expected to be unique based on name and version, so two packages with the same name and version are treated as identical by pip,” a PyPA member noted at the time. “This is an intentional feature of package metadata and is unlikely to change.”

As part of its fix, Google now also recommends that developers use the “–index-url” argument instead of “–extra-index-url” and that GCP customers utilize an Artifact Registry virtual repository when using multiple repositories.

“The ‘–index-url’ argument reduces the risk of dependency confusion attacks by ensuring that packages are only fetched from the specified registry,” Matan explained.

Preguntas frecuentes

¿Para que sirve el Pentesting?

+

El pentesting o Test de penetración, en español) es una técnica de ciberseguridad que consistente en atacar entornos informáticos con la intención de descubrir vulnerabilidades en los mismos, con el objetivo de reunir la información necesaria para poder prevenir en el futuro ataques externos hacia esos mismos …

¿Qué es y para qué la Seguridad en el Desarrollo Ágil?

+

El Servicio de Seguridad en Ciclo de Desarrollo es un enfoque integral que garantiza la protección de los proyectos de software desde su fase inicial de diseño hasta su implementación final. Esto implica integrar medidas de seguridad en cada etapa del proceso de desarrollo, desde la planificación hasta la entrega del producto. La importancia de este servicio radica en varios aspectos:

  1. Protección temprana contra amenazas: Al abordar la seguridad desde el principio del ciclo de desarrollo, se pueden identificar y mitigar riesgos de seguridad antes de que se conviertan en problemas costosos o críticos en etapas posteriores del proyecto.
  2. Reducción de costos y tiempo: Corregir problemas de seguridad durante las etapas iniciales del desarrollo es más económico y rápido que hacerlo después de que el producto esté en producción. Esto puede ayudar a evitar retrasos en el lanzamiento del producto y ahorros significativos en costos asociados con la corrección de brechas de seguridad.
  3. Cumplimiento normativo: Muchas regulaciones y estándares de la industria requieren que los productos de software cumplan con ciertos requisitos de seguridad y protección de datos. Integrar la seguridad en el ciclo de desarrollo ayuda a garantizar el cumplimiento de estas regulaciones desde el principio, evitando posibles multas y sanciones legales.
  4. Confianza del cliente: La seguridad de los datos y la protección de la privacidad son preocupaciones importantes para los clientes. Al demostrar un compromiso con la seguridad a lo largo de todo el ciclo de desarrollo, las empresas pueden construir y mantener la confianza del cliente en sus productos y servicios.

En resumen, el Servicio de Seguridad en Ciclo de Desarrollo es esencial para garantizar que los productos de software sean seguros, confiables y cumplan con los estándares de seguridad y privacidad, lo que resulta en beneficios tanto para la empresa como para sus clientes.

¿Qué es el Phishing Ético?

+

El Phishing Ético es una servicio que consiste en realizar actividades de Ingeniería Social con propósitos legítimos y éticos, generalmente como parte de una Campaña de Concientización, Evaluación de Seguridad, Prueba de un Pentesting o Red Team.

Para más información ingresa aquí: https://www.xpoint.cl/phishing-etico/

¿Qué es un Red Team en Ciberseguridad?

+

Un Red Team en ciberseguridad es un grupo de profesionales que simulan ser adversarios externos para evaluar la seguridad de un sistema o red. Utilizan tácticas similares a las de ciberdelincuentes reales, llevan a cabo pruebas de penetración, analizan riesgos y proporcionan recomendaciones para mejorar la seguridad. Su enfoque proactivo ayuda a las organizaciones a identificar y abordar vulnerabilidades, fortaleciendo así sus defensas contra amenazas potenciales.

¿Qué es la Gestión de Vulnerabilidades?

+

La gestión de vulnerabilidades es un proceso integral que se centra en identificar, evaluar y abordar las debilidades en la seguridad de un sistema o red. Este proceso sigue varios pasos clave:

  1. Identificación de Vulnerabilidades
  2. Evaluación de Riesgos
  3. Priorización
  4. Mitigación y Solución
  5. Seguimiento Continuo
  6. Comunicación y Documentación
  7. Formación y Concienciación

La gestión de vulnerabilidades es esencial para mantener la seguridad de la información en un entorno digital en constante cambio, minimizando el riesgo de explotación y fortaleciendo las defensas contra posibles amenazas.

¿Tienes dudas?, contáctanos