15,000 Repositorios de Módulos Go en GitHub Vulnerables a Ataque de Repojacking

XPoint
Publicado el 05/12/2023

NUEVA YORK, 5 de diciembre de 2023: Investigaciones recientes han descubierto que más de 15,000 repositorios de módulos Go en GitHub son vulnerables a un ataque llamado repojacking.

«Más de 9,000 repositorios son vulnerables al repojacking debido a cambios en el nombre de usuario de GitHub», dijo Jacob Baines, director de tecnología de VulnCheck, en un informe compartido con The Hacker News. «Más de 6,000 repositorios eran vulnerables al repojacking debido a la eliminación de cuentas».

En conjunto, estos repositorios representan no menos de 800,000 versiones de módulos Go.

El repojacking, un acrónimo de «repositorio» y «secuestro,» es una técnica de ataque que permite a un actor malicioso aprovechar cambios en el nombre de usuario y eliminaciones de cuentas para crear un repositorio con el mismo nombre y el nombre de usuario preexistente para realizar ataques en la cadena de suministro de software de código abierto.

En junio pasado, la empresa de seguridad en la nube Aqua reveló que millones de repositorios de software en GitHub son susceptibles a esta amenaza, instando a las organizaciones que cambian de nombre a asegurarse de que aún poseen su nombre anterior como marcadores de posición para evitar dicho abuso.

Los módulos escritos en el lenguaje de programación Go son particularmente susceptibles al repojacking, ya que, a diferencia de otras soluciones de gestión de paquetes como npm o PyPI, son descentralizados debido a que se publican en plataformas de control de versiones como GitHub o Bitbucket.

«Cualquiera puede instruir al espejo de módulos Go y a pkg.go.dev para almacenar en caché los detalles del módulo», dijo Baines. «Un atacante puede registrar el nombre de usuario recién no utilizado, duplicar el repositorio del módulo y publicar un nuevo módulo en proxy.golang.org y go.pkg.dev».

Para evitar que los desarrolladores descarguen paquetes potencialmente inseguros, GitHub tiene una contramedida llamada jubilación de espacio de nombres de repositorios populares que bloquea intentos de crear repositorios con nombres de espacios de nombres jubilados que han sido clonados más de 100 veces antes de que se cambien o eliminen las cuentas de los propietarios.

Pero VulnCheck señaló que esta protección no es útil cuando se trata de módulos Go, ya que son almacenados en caché por el espejo de módulos, obviando la necesidad de interactuar o clonar un repositorio. En otras palabras, podría haber módulos basados en Go populares que han sido clonados menos de 100 veces, lo que resulta en un tipo de bypass.

«Cibernética «Desafortunadamente, mitigar todos estos repojacking es algo que Go o GitHub tendrán que abordar», dijo Baines. «Un tercero no puede razonablemente registrar 15,000 cuentas de GitHub. Hasta entonces, es importante que los desarrolladores de Go estén al tanto de los módulos que utilizan y del estado del repositorio del que provienen».

La revelación también se produce cuando Lasso Security informó que descubrió 1,681 tokens de API expuestos en Hugging Face y GitHub, incluidos los asociados con Google, Meta, Microsoft y VMware, que podrían ser potencialmente explotados para llevar a cabo ataques en la cadena de suministro, envenenamiento de datos de entrenamiento y robo de modelos.

Preguntas frecuentes

¿Qué es Github?

+

GitHub es una plataforma de desarrollo colaborativo basada en la web que utiliza el sistema de control de versiones Git. Fue lanzada en 2008 y es una de las plataformas más populares para alojar proyectos de software y facilitar la colaboración entre desarrolladores.

GitHub se ha convertido en una herramienta esencial en el mundo del desarrollo de software, utilizado tanto por desarrolladores individuales como por equipos y organizaciones para colaborar en proyectos, gestionar el código fuente y realizar un seguimiento del progreso del desarrollo.

¿Qué es Repojacking?

+

«Repojacking» es un término que se deriva de la combinación de las palabras «repositorio» (repo) y «secuestro» (jacking). Se refiere a una técnica de ataque en el ámbito de la seguridad informática y del desarrollo de software, específicamente en entornos que utilizan sistemas de control de versiones, como Git.

En un ataque de repojacking, un actor malicioso aprovecha cambios en el nombre de usuario de una cuenta o la eliminación de una cuenta en una plataforma de alojamiento de código fuente, como GitHub, para crear un nuevo repositorio con el mismo nombre y la misma apariencia del repositorio original. Esto se hace con el objetivo de engañar a los usuarios y potencialmente distribuir versiones maliciosas o alteradas del software original.

Las plataformas de desarrollo colaborativo, como GitHub, permiten a los usuarios cambiar sus nombres de usuario o eliminar sus cuentas. Sin embargo, si no se maneja adecuadamente, esto podría abrir la puerta a ataques de repojacking. Un atacante podría registrar el antiguo nombre de usuario que ahora está disponible, crear un nuevo repositorio con el mismo nombre y, a través de este método, intentar distribuir software malicioso a los usuarios que confían en el repositorio original.

Este tipo de ataque es especialmente preocupante en entornos de desarrollo de software de código abierto, donde la confianza en la autenticidad y seguridad del código fuente es crucial. Los desarrolladores y las plataformas de alojamiento de código suelen implementar medidas para mitigar el repojacking y proteger la integridad del software distribuido a través de sus sistemas.

¿Qué es un CyberSOC?

+

CyberSOC es una abreviatura de Centro de Operaciones de Ciberseguridad (en inglés, Cybersecurity Operations Center). Un CyberSOC es un componente clave en la infraestructura de Ciberseguridad de una organización. Su función principal es Monitorear, Detectar, Analizar y Responder a Ciberamenazas en tiempo real. El Equipo de un CyberSOC está compuesto por profesionales con experiencia en análisis de amenazas, forense digital, inteligencia de amenazas y otros campos relacionados.

¿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 el Hacking Ético?

+

El Hacking Ético, Ethical Hacking o Pentesting es una práctica de ciberseguridad en la que profesionales, conocidos como «hackers éticos» o «expertos en seguridad», utilizan sus habilidades para identificar y corregir vulnerabilidades en sistemas, redes y aplicaciones. A diferencia de los hackers maliciosos, los hackers éticos trabajan con el permiso del propietario del sistema para mejorar su seguridad. El proceso de hacking ético generalmente incluye la evaluación de la seguridad, la identificación de posibles vulnerabilidades, la recomendación de soluciones y, a menudo, la realización de pruebas de penetración controladas para fortalecer la ciberseguridad de una organización. Este enfoque ayuda a prevenir ataques maliciosos y a proteger la integridad y privacidad de la información.

¿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