11 abr 2014

BUG EN OPENSSL, EL CORAZÓN DESANGRADO HEARTBLEED

Aunque la noticia se dió a conocer a principios de ésta semana, por problemas técnicos ajenos a mí, no he podido publicar la entrada cuando me hubiera gustado. Cómo se suele decir "Más vale tarde, que nunca", y cómo la noticia sigue dando que hablar y tiene una importancía muy alta, ahora la publico. Ya se ha hablado mucho sobre ésta noticia y puede que no aporte nada nuevo al tema, pero mere una mención en el blog.

Éste lunes 7 se dió a conocer la vulnerabilidad, conocida como CVE-2014-0160, considerada una de las más importantes de los últimos tiempos, algunas fuentes afirman que afecta a los 2/3 de todo internet, en mi modesta opinión creo que más... Y si sonsideramos en una escala de importancia/gravedad de 1-10, yo le pondría un 9 y algo.



La vulnerabilidad se da en la versión OpenSSL 1.0.1, (VER) y ha sido descubierta por Neel Metha del equipo de Google Security. Heartbleed es una grave vulnerabilidad que se encuentra en la  biblioteca de software criptográfico. Esta debilidad permite robar la información protegida, bajo condiciones normales, por el cifrado SSL / TLS que se utiliza para asegurar Internet. SSL / TLS proporciona seguridad de las comunicaciones y la privacidad a través de Internet para aplicaciones como web, correo electrónico, mensajería instantánea (IM) y algunas redes privadas virtuales (VPN).


El error Heartbleed permite a cualquier persona en Internet leer 64kb de memoria de los sistemas protegidos por las versiones vulnerables del software OpenSSL. Ésto compromete las claves secretas que se utilizan para identificar a los proveedores de servicios y para cifrar el tráfico, los nombres y las contraseñas de los usuarios y el contenido real. Esto permite a los atacantes espiar las comunicaciones, y robar los datos directamente de los servicios y de los usuarios y poder suplantar a los servicios y a los usuarios.

Mientras la versión vulnerable de OpenSSL está en uso, puede ser objeto de abuso. El parche ha sido liberado y es imprescindible su aplicación. También podemos cambiarnos de versión a cualquiera a partir de la 1.0.1g. Es importante además volver a generar toda aquella información susceptible de poder haber sido afectada. claves privadas, claves de usuarios...

En algunos casos va ha ser mejor deshabilitar el soporte "Heartbeat" en OpenSSL, volviendolo a compilar con la opción, -DOPENSSL_NO_HEARTBEATS. (sin el punto final).

Según Hispasec,

El problema reside en la función, dtls1_process_heartbeat, de ssl/di_both.c, al no validar correctamente la longitud de la estructura ssl3_record_st. Ésta longitud puede ser manipulada a un valor 65535 bytes y la parte de datos mucho menor o 0. Cuando se reserva memoria para construir la respuesta, se hace teniendo en cuenta la longitud indicada por la petición. Posteriormente cuando los datos (que recordemos pueden estar a 0) sean copiados a la respuesta, mediante la función 'memcpy', lo que se van a copiar son datos de la memoria cercana a dicha estructura pero no relacionados con la misma.

Esto es así porque se le está indicando que nuestros datos son de 65535 cuando en realidad hemos enviado una cantidad muchísimo menor o 0. Obviamente, el receptor de la respuesta recibirá los datos en bruto de ese trozo de memoria.

Solo pueden ser leídos 64k como máximo, pero tal y como advierten en la web dedicada al fallo (http://heartbleed.com/) es posible renegociar la conexión una y otra vez y volver a obtener otros 64k reiterativamente aunque de manera no controlada, es decir, no sabemos que parte de la memoria "tocará". Según los descubridores esto les permitió efectuando pruebas de concepto extraer las claves privadas del servidor y diversa información sensible.

-- Fuente:  Hispasec, VER --

Yo aconsejo, cambiar todas las contraseñas que tengáis en todos los servicios web, aunque la tarea puede ser ardua dependiento de la cantidad y complejidad de ellas, os lo aconsejo encarecidamente. Sobre todo si desde el sitio web donde estáis registrados no han hecho publico su correción. Empresas como Google, Facebook, Youtube, Twitter, Blogspot, Amazon, Worldpress y Pinterest ya han anunciado la corrección del fallo, otras como Cisto están en ello.

El cifrado se utiliza para proteger los secretos que pueden dañar su privacidad o la seguridad si se filtran. Con el fin de coordinar la recuperación de este error han clasificado los secretos comprometidos en cuatro categorías:
  1. Material de clave principal.
  2. Materiales clave secundaria.
  3. De contenido protegido.
  4. Colateral.
Si queremos comprobar si nuestro servicio web es vulnerable entonces podemos visitar el siguiente servicio online, IR. Y también AQUÍ.


Pódemos comprobar que webs han sido afectadas, gracias a ALEXA (ver entrada anterior :) ), dónde se nos muestra el TOP1000. VER.

Además también podemos ver aquí una lista con los fabricantes afectados por esta grave vulnerabilidad, entre los que parece mentira se encuentran: Amazon, Cisco Systems, Debian, Fedora, FreeBSD, Google, Juniper networks, Red Hat, etc.

Muchos especuladores afirman que éste agujero habría sido creado intencionadamente para la NSA, agencia que ha desmentido esta afirmación. Con las filtraciones de E.Snowden, la NSA ha perdido bastante credibilidad en estos temas, por eso ésta idea esta en aumento.



No hay comentarios:

Publicar un comentario