Bug en OpenSSL: Alternative chains certificate forgery
Llevábamos unos días analizando qué podría ser el nuevo bug que había sido anunciado en el proyecto OpenSSL en un parche nuevo. Después de un año y medio movido, con HeartBleed de por medio, todos estábamos listos para ver qué podría ser este fallo. En Eleven Paths habíamos incluso organizado una vigilancia especial por si en había que sacar una Prueba de Concepto rápido para nuestros sistema de pentesting persistente. Pero al final, aunque es de riesgo muy alto, no será tan crítico como lo fue Heartbleed que permitía robar datos masivamente.
El fallo que se ha anunciado en OpenSSL se ha bautizado como Alternative Chains Certificate Forgery y se le ha asignado el CVE-2015-1793. El problema se encuentra en la forma en la que algunas versiones de OpenSSL verifican la cadena de confianza de un certificado digital. Es decir, salvo que se haga una implementación de un proceso de Certificate Pinning, un certificado digital se da por bueno si está firmado por una cadena de certificados que lleva a una raíz de confianza.
Verificación de la cadena de confianza
En un certificado A, si esté está firmado por un certificado B, emitido por una entidad certificadora de primer nivel C de la que se confía, entonces se dará por correcto y no se lanzará ninguna alerta de seguridad. Esta validación de certificados se produce tanto cuando un navegador cliente tiene que verificar el certificado de un servidor web, como cuando un servidor tiene que verificar el certificado de un cliente en un proceso de autenticación de usuarios basado en certificados digitales.
Figura 2: Bug de Alternative Chains Certificate Forgery en OpenSSL |
Sin embargo, el bug de Alternative Chains Certificate Forgery permite que, en determinadas condiciones y en 4 versiones en concreto de OpenSSL, se pueda hacer que esa verificación de cadena de confianza hasta un certificado raíz se de por buena aún no siendo correcta del todo la cadena de certificación.
Entornos de explotación
En otras palabras, alguien podría usurpar la identidad de un servidor si el cliente utiliza el software de OpenSSL en el cliente (no lo usan Apple Safari, Internet Explorer, Chrome o Firefox, pero sí muchas aplicaciones móviles o de escritorio clientes) que combinado con un ataque de phishing o pharming ayudarán a robar datos de cliente, o lo que es más peligroso aún, alguien podría suplantar el certificado de un cliente en un entorno de autenticación de usuarios basado en certificados digitales como si se pudiesen crear todas las credenciales a gusto -
Figura 3: Configuración de autenticación de cliente SSL en servidor NGINX con OpenSSL |
Este último escenario es el realmente peligroso, ya que se podría conseguir acceder a sistemas informáticos creando los certificados adecuados de los usuarios que tienen acceso a la plataforma. Por esto, es necesario que se actualice cuanto antes el software si estás haciendo uso de este tipo de autenticación en tus plataformas.
Saludos Malignos!
7 comentarios:
Al parecer afecta a las versiones
- 1.0.2b: publicada el 11 de Junio de 2015
- 1.0.2c: publicada el 12 de Junio de 2015
- 1.0.1n: publicada el 11 de Junio de 2015
- 1.0.1o: publicada el 12 de Junio de 2015
Las versiones de las ramas 1.0.0 y 0.9.8 no están afectadas.
Salu2
¿lleva tilde? vaya! - y yo que pensaba que dicha palabra se escribia con H, es decir: "Hayudarán" XD.
Nota para la crítica: Notese que puse tilde (en plural) para las pabras Hayudarán y Crítica. No sea que se sofoque usted.
Tony.
Aún así parece bastante grave, pero ya saldrán los activistas del "código superior" a quitarle hierro al asunto. Las cosas "open" tienen ése escudo mágico.
Publicar un comentario