RepoJacking: Bug Que Permitía Tomar Control De Repositorios En Github
El servicio de alojamiento de repositorios basado en la nube GitHub ha abordado una falla de seguridad de alta gravedad que podría haberse aprovechado para crear repositorios maliciosos y montar ataques a la cadena de suministro.
Checkmarx ha repotado la vulnerabilidad el 13 de junio de 2022 y GitHub la solucionó el pasado19 de septiembre. En mayo de 2022, este ataque se encontró activo contra un aplicaciones de código abierto.
La técnica RepoJacking, divulgada por Checkmarx, implica eludir un mecanismo de protección llamado retiro de espacio de nombres populares, que tiene como objetivo evitar que los desarrolladores extraigan repositorios inseguros con el mismo nombre.
RepoJacking ocurre cuando el creador de un repositorio opta por cambiar el nombre de usuario, lo que podría permitir que un actor de amenazas reclame el nombre de usuario anterior y publique un repositorio falso con el mismo nombre en un intento de engañar a los usuarios para que los descarguen.
Si bien la contramedida de Microsoft retira el espacio de nombres de cualquier proyecto de código abierto que tuvo más de 100 clones en la semana previa al cambio de nombre o la eliminación de la cuenta del propietario. Este bypass abusa de la función "Transferencia de repositorio" para lograr su objetivo de la siguiente manera:
- Un actor de amenazas crea un repositorio con el mismo nombre que el repositorio retirado (por ejemplo, "repo") propiedad de un usuario llamado "víctima" pero con un nombre de usuario diferente (por ejemplo, "ayudante").
- "ayudante" transfiere la propiedad de "repo" a una segunda cuenta con el nombre de usuario "atacante"
- "atacante" cambia el nombre de usuario de la cuenta a "víctima"
- El espacio de nombres "víctima/repo" ahora está bajo el control del adversario.
En otras palabras, el ataque depende de la peculiaridad de que GitHub solo considera como retirado el espacio de nombres, es decir, la combinación de nombre de usuario y nombre de repositorio, lo que permite que un atacante reutilice el nombre del repositorio junto con un nombre de usuario arbitrario.
Una explotación exitosa podría haber permitido efectivamente a los atacantes generar repositorios envenenados, poniendo los nombres de usuario renombrados en riesgo de ser víctimas de ataques en la cadena de suministro.
"Todos los nombres de usuario renombrados en GitHub eran vulnerables a esta falla, incluidos más de 10.000 paquetes en los administradores de paquetes Go, Swift y Packagist", dijo Aviad Gershon, investigador de Checkmarx. Además, para identificar paquetes susceptibles de ser víctimas de repojacking, Checkmarx ha publicado la herramienta Chainjacking.
Fuente: THN
Via: blog.segu-info.com.ar