Tu foto, código ajeno: por qué ya no se puede confiar en la interfaz de GitHub

Tu foto, código ajeno: por qué ya no se puede confiar en la interfaz de GitHub

Plataforma se niega a corregir una vulnerabilidad por una comodidad ilusoria

image

A veces un ataque peligroso no se basa únicamente en contraseñas robadas, sino también en pequeños detalles de la interfaz en los que los desarrolladores suelen confiar. GitHub rechazó dos informes de Deep Specter Research sobre mecanismos que, según los especialistas, ayudan a variantes del gusano Shai-Hulud a infectar paquetes y cuentas de desarrolladores en todo el mundo.

Shai-Hulud se originó a partir de la herramienta de agrupación TeamPCP, y tras la publicación del código a principios de mayo aparecieron imitadores con versiones ligeramente modificadas. Deep Specter Research afirmó que, según datos abiertos, encontró 516 paquetes maliciosos en cinco ecosistemas, incluidos npm, PyPI y RubyGems, más de 3000 repositorios de GitHub afectados y más de 200 cuentas de desarrolladores comprometidas.

El primer mecanismo controvertido está relacionado con las fechas de los commits. GitHub acepta la hora del commit como datos del cliente, por lo que un atacante puede añadir código malicioso hoy, pero mostrar la modificación como un cambio de hace años. Esta técnica dificulta a los sistemas de defensa que buscan cambios recientes sospechosos en la historia del proyecto.

El segundo mecanismo se refiere a la autoría. En la página del commit, GitHub muestra el nombre, la foto y el nombre de usuario del autor, aunque esos campos se pueden establecer libremente en git. El gusano aprovecha esa característica para que los cambios maliciosos parezcan trabajo de ingenieros de confianza que no tocaron el código.

GitHub no consideró ambos informes como vulnerabilidades. La compañía señaló que las fechas y los autores arbitrarios de los commits son inherentes a git, y que el problema real está relacionado con credenciales robadas. A los desarrolladores se les recomendó usar la firma de commits mediante GPG o SSH y el modo Vigilant Mode, pero los desarrolladores cuyas identidades fueron suplantadas en la campaña Shai-Hulud no tenían activadas esas medidas.

GitHub sí conserva un registro separado de qué cuenta envió realmente el commit. Esos datos no se pueden falsificar, pero están disponibles a través del Events API, no se muestran directamente en la página del commit y desaparecen del acceso público aproximadamente a los 90 días. Deep Specter Research propuso hacer esos registros más visibles para quienes revisan, sin embargo GitHub consideró la idea como una solicitud de nueva función, no como una corrección de seguridad.

A fecha de 16 de junio, los especialistas encontraron en GitHub 1729 repositorios desechables de Shai-Hulud para almacenar credenciales robadas y 151 repositorios que todavía distribuían cargas maliciosas activas. Para reducir el riesgo, los desarrolladores deberían activar la firma de commits y el modo Vigilant Mode, verificar el remitente real a través del Events API, no confiar solo en el nombre del autor y en la fecha del commit, y revocar rápidamente los tokens y claves comprometidos.