Compartir:
Desde su lanzamiento en 2014, GitHub ha ofrecido autenticación empresarial a través de SAML, estableciendo un sistema de inicio de sesión único (SSO) que permite a las empresas integrar sus proveedores de identidad con los productos de GitHub. Este mecanismo ha sido fundamental para gestionar el acceso y reforzar la seguridad en las organizaciones empresariales.
El equipo de GitHub ha trabajado arduamente en implementar y mantener el soporte para SAML 2.0, lo que implicaba establecer la confianza entre los proveedores de identidad y GitHub, generar metadatos SAML y manejar el flujo de autenticación. Sin embargo, estas rutas de código son críticas desde el punto de vista de la seguridad. La complejidad y la amplia superficie de ataque del código SAML han supuesto un reto, ya que cualquier error podría llevar a premios serios en la autenticación.
GitHub ha invertido continuamente en mejorar estos procesos, colaborando con expertos en seguridad e implementando programas de recompensas para identificar vulnerabilidades. A pesar de estos esfuerzos, las preocupaciones persistentes sobre la complejidad y las posibles fallas llevaron al equipo de ingeniería a replantear su estrategia.
El año pasado, se embarcaron en un proceso de revisión de su implementación de SAML, evaluando bibliotecas externas para mejorar su enfoque. Optaron por la biblioteca ruby-saml, reconocida por su comunidad activa y el sólido soporte, tras comparar sus ventajas respecto a las soluciones internas previas.
Para validar esta nueva dirección, implementaron pruebas A/B, analizando cuidadosamente la estabilidad durante el cambio. Asimismo, mejoraron la validación del esquema y minimizaron la superficie de ataque, reduciendo la complejidad del procesamiento de datos de entrada mediante restricciones más estrictas.
Finalmente, GitHub decidió adoptar una estrategia de doble análisis, utilizando tanto su biblioteca antigua y confiable como la nueva, para reforzar su implementación y mitigar posibles vulnerabilidades futuras.
Este enfoque, que permite a GitHub manejar casi un millón de respuestas SAML diarias, ofrece una mayor resiliencia y sirve como modelo para otros equipos que enfrentan desafíos complejos en sus sistemas, destacando la eficiencia de los experimentos basados en datos y la importancia de adaptarse continuamente a las cambiantes amenazas de seguridad.






