Una nueva investigación ha 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. dicho 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 nada menos que 800.000 versiones de módulos Go.
Aprenda a detectar amenazas internas con estrategias de respuesta de aplicaciones
Descubra cómo la detección de aplicaciones, la respuesta y el modelado de comportamiento automatizado pueden revolucionar su defensa contra amenazas internas.
El repojacking, un acrónimo de “repositorio” y “secuestro”, es una técnica de ataque que permite a un mal actor aprovechar los cambios y eliminaciones del nombre de usuario de la cuenta para crear un repositorio con el mismo nombre y el nombre de usuario preexistente para organizar el código abierto. Ataques a la cadena de suministro de software.
A principios de junio, la empresa de seguridad en la nube Aqua reveló que millones de repositorios de software en GitHub probablemente sean vulnerables a la amenaza, instando a las organizaciones que se someten a cambios 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 administración de paquetes como npm o PyPI, están descentralizados debido al hecho de que se publican en plataformas de control de versiones como GitHub o Bitbucket.
“Cualquiera puede entonces indicarle al espejo del módulo Go y a pkg.go.dev que almacenen 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 eliminen paquetes potencialmente inseguros, GitHub ha implementado una contramedida llamada retiro de espacio de nombres de repositorio popular que bloquea los intentos de crear repositorios con los nombres de espacios de nombres retirados que han sido clonados más de 100 veces antes de que se cambiara el nombre o se cambiaran las cuentas de los propietarios. eliminado.
Pero VulnCheck señaló que esta protección no es útil cuando se trata de módulos Go, ya que el sistema los almacena en caché. espejo del móduloobviando así la necesidad de interactuar o clonar un repositorio”. En otras palabras, podría haber módulos populares basados en Go que hayan sido clonados menos de 100 veces, lo que resultaría en una especie de omisión.
“Desafortunadamente, mitigar todos estos repositorios es algo que Go o GitHub tendrán que asumir”, dijo Baines. “Un tercero no puede registrar razonablemente 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 se originaron los módulos”.
La divulgación también se produce como Lasso Security dicho descubrió 1.681 tokens API expuestos en Hugging Face y GitHub, incluidos aquellos asociados con Google, Meta, Microsoft y VMware, que podrían explotarse potencialmente para organizar la cadena de suministro, el envenenamiento de datos de entrenamiento y los ataques de robo de modelos.