Fortaleciendo Nuestra Implementación de SAML en GitHub: Un Enfoque Moderno

GitHub ha sido pionero en la integración de la autenticación empresarial mediante SAML desde el lanzamiento de su GitHub Enterprise Server 2.0.0 en noviembre de 2014. Este enfoque permite que las empresas vinculen sus proveedores de identidad con los productos de GitHub a través del inicio de sesión único (SSO), extendiendo así las políticas de acceso.

El equipo de GitHub desarrolló y mantiene el soporte para SAML 2.0, asegurando confianza entre los proveedores de identidad y sus productos. Este proceso incluye la generación de metadatos SAML, la creación de solicitudes de autenticación y la validación de respuestas SAML. Estas áreas del código son críticas en términos de seguridad debido a los riesgos potenciales de suplantación de usuarios y fallos de autenticación.

Desde su implementación, se han identificado riesgos debido a la complejidad de SAML y las vulnerabilidades inherentes a analizar y cifrar XML. El equipo de GitHub ha trabajado con expertos en seguridad para mitigar estas vulnerabilidades y mejorar su sistema.

El año pasado, el equipo de ingeniería revisó su enfoque, evaluando la biblioteca ruby-saml. Optaron por utilizarla después de considerar su robustez y el soporte continuo que ofrece. Se llevaron a cabo pruebas A/B para validar el uso de esta nueva biblioteca, asegurando la estabilidad.

Además, GitHub se ha centrado en la validación de esquemas y en reducir la superficie de ataque del código SAML mediante restricciones más severas en las validaciones. Este esfuerzo culminó en la decisión de implementar una estrategia de doble análisis que combina su antigua biblioteca con la nueva, buscando mitigar cualquier vulnerabilidad futura.

Actualmente, GitHub gestiona cerca de un millón de respuestas SAML diarias. Su enfoque proporciona la resiliencia necesaria para mantener la seguridad en una tecnología compleja. La experiencia acumulada sirvió como un modelo para otros equipos, enfatizando la importancia de experimentos incrementales y una estrategia basada en datos.

Scroll al inicio