08 abril 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.

Ayer 7 de Abril 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.

12 comments :

Linuxito dijo...

Un día negro para el software libre :(

ANTRAX dijo...

Excelente trabajo chicos. Uno de los mejores blogs de seguridad informatica de hoy en dia!
Saludos!
ANTRAX

Iván García Gonzalo dijo...

Es lo que tiene tener las últimas versiones en entornos productivos..

Iván G. G. dijo...

es lo que tiene tener las últimas versiones en entornos de producción..

A dijo...

Hola, al intentar acceder a https://www.twitter.com me aparece esto:

"www.twitter.com utiliza normalmente la encriptación (SSL) para proteger la información. Cuando Chrome ha intentado establecer conexión con www.twitter.com, www.twitter.com ha devuelto inusuales e incorrectas. Por tanto, es posible que un atacante esté intentando suplantar la identidad de www.twitter.com o que una pantalla de inicio de sesión Wi-Fi haya interrumpido la conexión. Tu información sigue estando protegida ya que Chrome detuvo la conexión antes de que se llevara a cabo cualquier intercambio de datos.
Los ataques y errores de red suelen ser temporales, así que es probable que esta página funcione más adelante. También puedes probar a utilizar otra red.
Información técnica: Chrome no puede utilizar el certificado que ha recibido durante este intento de conexión para proteger tu información porque el formato del certificado no es correcto.
Tipo de error: Malformed certificate
Destinatario: twitter.com
Emisor: VeriSign Class 3 Extended Validation SSL CA
Hashes de clave pública: sha1/FXnwvO30nbpcJgjDK6bH+rGSqEo=
sha256/qaKZwjzvNNGAc/ryUbwfqL2oArYbz4OPU22TnZ8MxNc=
sha1/rkrX+bOA4RKTMrtS3loJDFlbM9a=
sha256/OTV6OSADZrQuFMltaBc+5XvltK1Ljeify/yvlthNjvM=
sha1/sYEIGhmkwJQf+uiVKMEkyZs0rMc=
shae256/JbQbUG5JMJUol6brnx0x3vZF6jilxsapbXGVfjhN8Fg="

¿Está esto relacionado con el heartbleed? ¿Qué debería hacer?

code dijo...

exelente , siempre es lo que se espera de ustedes

code dijo...

64kb de valiosa información exelente descubrimiento

Ricardo Montaner dijo...

Gracias por informarnos. Me permito una pequeña corrección: es "biblioteca", no "librería". Saludos cordiales.

Madrikeka dijo...

Juraría, que la primera versión vulnerable, es vulnerable desde Marzo de 2012, por lo que tener esa versión en pro e incluso las siguientes, sería lo normal.

Juan José Pavlik dijo...

Aquí hay una pequeña prueba de concepto que escribí http://viviendolared.blogspot.com.ar/2014/04/heartbleed-cve-2014-0160-una-prueba-de.html . De este lado del charco me sorprendió lo rápido que actualizaron los entes gubernamentales y las universidades. De todas formas creo que encontraremos versiones vulnerables por un tiempo mas.

Muy buen artículo!

reiko dijo...

Nunca en mi vida he visto una pelicula donde realmente muestren tecnicas reales de hacking, por lo que a mi no me sorprende que salgan con tonterias que no existen...es decir, es comun, recuerda que es solo una pelicula, el objetivo final de la pelicula es entretener, no ser un videotutorial.

erm3nda dijo...

Pero si sale un Timer.exe en un IPhone esta peli no es de hackers, es de ciencia ficción :D