Mejorando la Seguridad: Optimización de SAML en GitHub

Durante más de una década, GitHub ha sido pionero en ofrecer autenticación empresarial mediante SAML (Lenguaje de Marcado de Aserciones de Seguridad), iniciando con su lanzamiento de GitHub Enterprise Server 2.0.0 en noviembre de 2014. El inicio de sesión único (SSO) a través de SAML ha permitido a las empresas integrar sus proveedores de identidad con el vasto ecosistema de productos de GitHub, permitiendo extender políticas de acceso y gestionar organizaciones de manera eficiente.

Implementar esta funcionalidad requirió que GitHub construyera y mantuviera un soporte robusto para la especificación SAML 2.0. Esta herramienta define el proceso de autenticación, cultivando confianza entre un proveedor de identidad y los productos de GitHub. Este vínculo incluye la generación de metadatos SAML, solicitudes de autenticación y, más crucial aún, el procesamiento y la validación de respuestas SAML para autenticar usuarios de manera segura.

Desde una perspectiva de seguridad, estas rutas de código son críticas. Un pequeño error en el proceso de autenticación podría derivar en bypass de autenticaciones o suplantaciones de identidad. Estas tareas involucran análisis de XML y criptografía, dependiendo de complejas especificaciones, lo cual amplía la superficie de ataque del código SAML.

La complejidad del SAML ha representado un desafío para GitHub, que desde su lanzamiento ha invertido significativamente en reforzar estos flujos de autenticación. Han colaborado con investigadores de seguridad, tanto internos como externos, a través de un programa de recompensas por errores para detectar y corregir vulnerabilidades. Sin embargo, la persistente complejidad impartida por las causas raíz de estas vulnerabilidades seguía siendo una preocupación.

El pasado año, el equipo de ingeniería decidió sopesar cómo construir confianza en una tecnología tan compleja y riesgosa como SAML. Revisaron su implementación, evaluaron bibliotecas previas y contemplaron nuevas estrategias. Esta introspección condujo a identificar cambios prometedores, comenzando con un replanteamiento de su biblioteca de soporte.

Consideraron la biblioteca ruby-saml, reconocida por su comunidad activa y soporte extensivo. Después de evaluar varias opciones, optaron finalmente por ella, apreciando sus ventajas en términos de mantenimiento frente a la implementación previa.

Para validar esta nueva incorporación, GitHub desplegó pruebas A/B, permitiendo observar cambios en la lógica de procesamiento de SAML. Este enfoque experimental fue clave para asegurar la estabilidad del código mientras evaluaban ruby-saml.

Además, la validación de esquemas y la reducción de superficie de ataque fueron centrales, permitiendo una complejidad más baja en el procesamiento al implementar validaciones más estrictas.

Finalmente, GitHub adoptó una estrategia de doble análisis, utilizando tanto su antigua biblioteca confiable como la nueva y mantenida activamente. Esto refuerza su implementación, preparando el terreno para manejar posibles vulnerabilidades futuras con resiliencia.

Mientras GitHub procesa casi un millón de respuestas SAML diariamente, este enfoque les otorga una sólida resiliencia. La experiencia acumulada se presenta como un modelo ideal para otros equipos que enfrentan desafíos similares en sus bases de código, enfatizando la importancia de experimentos incrementales y decisiones basadas en datos.

Cayetano Andaluz
Cayetano Andaluz
Periodista y redactor de noticias de actualidad sobre Andalucía y sus provincias. También información en general.

Compartir artículo:

Más popular

Más artículos como este
Relacionados

Revolucionario Modelo Gemma 3 27B Llega a Amazon Bedrock y SageMaker JumpStart

La disponibilidad del modelo Gemma 3 27B Instruct en...

CaixaBank Reflexiona sobre el Impacto Transformador del Deporte en la Sociedad

CaixaBank organizó un encuentro en Palma con el seleccionador...