lunes, 14 de abril de 2014

Desangrando el corazón de OpenSSL (CVE-2014-0160)

Estamos ante una de las vulnerabilidades más graves (opinión personal) de los últimos años. Y no sólo vulnerabilidad, la explotación tiene efectos que sinceramente, tras verlos, asustan.
 se publicó una vulnerabilidad en OpenSSL 1.0.1 que permitiría a un atacante obtener 64Kb de memoria. Pueden parecer pocos, pero os aseguro que en dicha sección de memoria se pueden encontrar credenciales, cookies de sesión, claves privadas, etc, de los clientes y servidores conectados al servidor vulnerable. El aluvión de tweets referentes a este tema fue masivo, han sido unas navidades anticipadas con un regalo en forma de vulnerabilidad que permite ser explotada en cualquier servicio vulnerable expuesto sin apenas ser detectado.
Esta vulnerabilidad ha sido descubierta por Neel Mehta del equipo de Google Security, y el CVE reservado (CVE-2014-0160) fue creado el 3 de Diciembre de 2013:

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0160

Impacto tras explotación

La información que se podría obtener sería la siguiente:

  1. Claves privadas
  2. Usuarios y contraseñas utilizadas en servicios vulnerables
  3. Información sensible utilizada por servicios vulnerables
  4. Direcciones de memoria y su contenido que podría permitir evadir mecanismos de mitigación ante exploits.

¿Mi servidor es vulnerable?

Rápidamente, comenzaron a publicarse herramientas que permitían tanto comprobar si un servidor es vulnerable como obtener la información tras su explotación.

Servicio online en http://filippo.io/Heartbleed para comprobar si un servicio web es vulnerable
El caso más sonado fue el de Yahoo.com, cuya página de autenticación de usuarios login.yahoo.com ha sido vulnerable durante un día entero, corriendo imágenes de su explotación como la pólvora en redes sociales, mostrándose usuarios y contraseñas (en caso de encontrarse conectados en el momento del análisis).

Cómo corregir esta vulnerabilidad

Lo primero y más importante, actualizar la librería OpenSSL a una versión no vulnerable, a partir de la 1.0.1g. También se recomienda encarecidamente regenerar toda aquella información afectada, claves de usuarios, claves privadas... Esta tarea puede ser ardua y suponer un esfuerzo considerable, pero nadie nos asegura si, durante el período hasta la actualización de nuestros servicios vulnerables, pudiera haberse explotado este fallo para obtener de manera masiva información sensible.
Otro método para su corrección consiste en deshabilitar el soporte de Heartbeat en OpenSSL, recompilándolo con la opción -DOPENSSL_NO_HEARTBEATS

En este enlace del GIT de openssl se pueden ver las modificaciones realizadas sobre los ficheros d1_both.c y t1_lib.c que solventarían esta grave vulnerabilidad.

¿Qué páginas se encuentran afectadas?

Unas cuantas...

Se ha puesto a disposición de todos un listado del TOP 1000 portales web según el ranking de ALEXA, mostrando si son vulnerables o no. El listado corresponde con el estado de dichas webs durante el 8 de abril siendo confeccionada tras la ejecución de la herramienta de comprobación de manera masiva.

Muchas páginas de proyectos importantes, como Cloudflare que lo indica en un post dentro de su blog, tuvieron constancia de la vulnerabilidad una semana antes de su publicación, teniendo tiempo para corregir la vulnerabilidad en sus servidores. Otros muchos, parece que han hecho caso omiso aún habiendo tenido el privilegio de haber sido informados (ya que todo ha seguido las normas del responsible disclosure).
Existe una página considerada "oficial" de Heartbleed dedicada a intentar responder todas las preguntas referentes a esta vulnerabilidad: http://heartbleed.com

En el siguiente listado disponible dentro del advisory en kb.cert.org se encuentran todos los fabricantes afectados hasta el momento.
 

0 comentarios:

Publicar un comentario

Buscar este blog

mrgansomer. Con tecnología de Blogger.