GitHub se ha consolidado como la plataforma principal para el almacenamiento y gestión de código fuente a nivel mundial. Millones de desarrolladores y empresas confían en sus funciones para colaborar, mantener proyectos y mostrar su trabajo. Sin embargo, mientras esta plataforma ofrece muchas ventajas, su seguridad presenta ciertas brechas que pueden ser explotadas por actores maliciosos, especialmente aquellos con intereses sofisticados, como los APTs (Amenazas Persistentes Avanzadas). Estas vulnerabilidades, aunque no siempre son ampliamente divulgadas, merecen atención por la forma en que impactan la confianza y la integridad dentro del ecosistema tecnológico. Una de las características más interesantes, y a la vez preocupantes, de GitHub es la posibilidad de suplantar a otros usuarios en las confirmaciones de cambios o commits.
Para hacerlo, es suficiente contar con el nombre de usuario y el correo electrónico asociado a la cuenta que se desea mimetizar. Esta práctica no requiere de acceso avanzado ni privilegios especiales, y aunque puede parecer inofensiva, su potencial para generar confusión o engaños es significativo. El proceso para suplantar a un usuario comienza con la identificación de un “objetivo”. Por ejemplo, el CEO de GitHub mismo puede servir como un ejemplo ilustrativo. Accediendo a su perfil público, cualquier persona puede encontrar un commit verdadero, inspeccionar los detalles e incluso extraer el nombre y email usados durante la confirmación original.
Esto expone precisamente la información necesaria para falsificar un commit con esos datos visibles. Al crear un nuevo repositorio y configurar el cliente Git con el nombre y correo de la víctima, uno puede hacer commits falsos que aparentan legítimos. Estos commits, al ser enviados a GitHub, muestran al supuesto autor, crean enlaces al perfil real y aparecen en las estadísticas del repositorio como contribuciones reales, incluso cuando no lo son. Esto puede influir en la percepción de actividad, aportes y confianza dentro de la comunidad, lo que podría ser explotado para desinformar o manipular. Por supuesto, no todo queda impune.
GitHub indica el estatus de verificación del commit, y cuando el usuario real ha activado funciones como el modo vigilante, la plataforma advierte con un sello de “no verificado” que denuncia la posible suplantación. Sin embargo, esta advertencia suele ser poco visible y no detiene el daño a nivel extrínseco. Para mejorar la apariencia, la función “Co-authored-by” permite agregar un segundo autor al commit, lo que puede dar lugar a un estado parcialmente verificado y otorgar mayor credibilidad a la falsificación. A pesar de estas debilidades, GitHub ha implementado algunas soluciones para frenar ataques relacionados con la suplantación. No obstante, el hecho de que sea técnicamente posible y relativamente sencillo realizar estas tareas implica que la prevención recae en gran medida en el conocimiento y buenas prácticas de los usuarios, así como en una vigilancia continua de sus repositorios.
Otra problemática que afectó durante largo tiempo a GitHub fue la posibilidad de hospedar archivos maliciosos dentro de los repositorios o incluso en las secciones de issues (tickets). Hasta 2024, existían métodos para subir archivos ocultos que podían ser distribuidos desde la plataforma, facilitando campañas de malware o phishing. GitHub ha remitido esta brecha migrando los archivos temporales a carpetas de usuario específicas y aplicando procesos de eliminación automática para archivos no referenciados. Sin embargo, la forma en que estos archivos son almacenados con identificadores incrementados puede abrir la puerta a ataques de fuerza bruta, permitiendo a un atacante potencialmente acceder a archivos subidos públicamente por otros. Aunque GitHub ha implementado ciertas medidas de protección, la seguridad absoluta es difícil de garantizar en tales escenarios.
Adicionalmente, se puede utilizar la plataforma de soporte de GitHub para subir archivos mediante tickets abiertos, que son alojados en URLs externas a GitHub, como Zendesk. Este método, aunque menos efectivo para hospedar código malicioso por tiempo indefinido, ofrece una opción más para quienes deseen distribuir archivos a través de servicios asociados, aunque con limitaciones temporales. Otro vector interesante de ataque, y a la vez uno de los más utilizados para ingeniería social, es el uso de los issues para phishing. GitHub envía notificaciones por correo cuando un issue es creado en un repositorio, lo que puede ser aprovechado para enviar mensajes que aparentan ser legítimos y que incluyen enlaces maliciosos o engañosos. La clave en este tipo de ataques es la personalización del remitente, que puede ser una cuenta con un nombre y foto que inspiren confianza.
Además, la estructura de los mensajes al utilizar ciertos elementos de formato como encabezados e incluso colores mediante macros LaTeX, admitidos en la versión web aunque limitados en el correo, permiten crear comunicaciones que engañan a los destinatarios y los inducen a hacer clic en enlaces maliciosos o brindar información sensible. Incluso se han documentado campañas que simulan alertas de seguridad muy creíbles, con detalles ficticios de lugares, dispositivos e IPs para alarmar a los usuarios y llevarlos a una acción precipitada. Tras editar el issue y eliminar rastros, el atacante puede mantener una fachada limpia mientras ha logrado comprometer la confianza del objetivo. Estas formas de ataque resaltan que la seguridad en GitHub no se limita a la protección técnica, sino que también debe involucrar la educación de los usuarios para identificar correos y mensajes sospechosos, así como para aplicar controles adicionales como la verificación en dos pasos y el uso de commit firmados. El uso de funciones como la verificación de commits mediante firmas criptográficas es un paso fundamental para asegurar la autenticidad de las contribuciones y dificultar la suplantación.
Sin embargo, dado que su adopción no es generalizada, muchas cuentas, incluso de altos cargos dentro de GitHub, no utilizan estas opciones con la rigurosidad necesaria, dejando un espacio para el abuso. GitHub, consciente de estos desafíos, ha continuado evolucionando sus herramientas y políticas para mejorar la seguridad, cerrar vectores de ataques conocidos y promover mejores prácticas. La comunidad también ha jugado un papel importante detectando, reportando y ayudando a corregir las vulnerabilidades, demostrando cómo la colaboración y vigilancia colectiva refuerzan la resiliencia de la plataforma. Para los desarrolladores y administradores de proyectos, es esencial permanecer informados sobre estas posibles fallas y adoptar medidas preventivas. Esto incluye revisar los commits y colaboradores de los repositorios regularmente, habilitar firmas de commits, gestionar cuidadosamente los permisos, usar herramientas de análisis de seguridad y fomentar una cultura de transparencia y seguridad entre todos los miembros del equipo.
En un mundo donde el software es la base de gran parte de la infraestructura digital, la confiabilidad de las plataformas como GitHub es crucial. La diversión de explorar y aprovechar las funcionalidades de GitHub debe ir acompañada de una responsabilidad constante para proteger los proyectos y a sus usuarios. El doble filo de una plataforma abierta es que su accesibilidad facilita la colaboración pero también puede abrir puertas a actores maliciosos. El caso de la suplantación en commits, la posibilidad de alojar archivos maliciosos y el phishing a través de issues muestran la importancia de evaluar cada aspecto de la interacción dentro de GitHub. La gestión de identidad y autenticidad no puede ser un aspecto secundario, sino un pilar fundamental para garantizar la integridad de los proyectos.
Así, mientras GitHub continúa siendo una herramienta revolucionaria para el desarrollo colaborativo, el aprendizaje sobre sus vulnerabilidades y la adopción de prácticas seguras serán determinantes para maximizar sus beneficios y minimizar riesgos. La combinación de tecnología robusta y usuarios informados forma la mejor defensa contra las amenazas que acechan en cualquier plataforma digital hoy en día.