Cuando consultamos una página Web o participamos en una conversación los datos asociados viajan por Internet. No es una conexión punto a punto sino que para llegar a su destino pasan por diferentes servidores y equipos. Estos datos pueden ir en texto claro, es decir, cualquiera los puede leer o cifrados con lo que únicamente el equipo de destino los podrá leer. Para realizar el cifrado se usan varias librerías siendo uno de las más usadas OpenSSL. Es en esta librería donde se ha detectado un fallo de seguridad muy grave la semana pasada. Las librerías incluyen diferentes funciones que son útiles para los programadores. Una de las funciones que hay dentro de OpenSSL permite saber si el servidor Web está funcionando. El bug básicamente consiste en llamar a esta función del servidor y hacer que devuelva una cadena de texto. Al pedir la cadena de respuesta se indica también su dimensión. Si el atacante pide una dimensión superior a la que tiene realmente la respuesta el servidor da más información de la que debe.

Funcionamiento de HeartBleed

Una imagen vale más que mil palabras. Podéis ver el proceso en el siguiente cómic de xkcd

 

Comic de xkcdComic de xkcd
 

Solución del bug

El fallo es importante por dos razones: afecta a las conexiones seguras que utilizamos a diario y no deja rastro en los servidores. La mayoría de los servidores ya han instalado las actualizaciones de seguridad correspondientes y no son vulnerables al fallo. No estamos hablando sólo de servidores pequeños sino que afecta a los grandes como Google o Facebook. Por esta razón es obligatorio cambiar todas las contraseñas que usemos de forma inmediata: correo, redes sociales, etc.

El bug en Android

Android también usa OpenSSL para usar las comunicaciones cifradas por lo que también es candidato a tener el bug. Se tienen que dar dos casos al mismo tiempo para que se pueda explotar la vulnerabilidad. El primero es, como es lógico, tener una versión vulnerable de OpenSSL mientras que el segundo consiste en tener activada la función que tiene el bug. La siguiente información corresponde a un bq Aquaris 5.7. El análisis lo he realizado con la aplicación Bluebox Heartbleed Scanner. Esta aplicación analiza por una parte si el sistema es vulnerable al fallo y por otra parte si hay aplicaciones vulnerables.

Nota: la prueba la he realizado con una versión concreta de un dispositivo. Es posible que otros dispositivos sean vulnerables. En cualquier caso, para los dispositivos de bq ya han indicado que están trabajando en corregir el problema. En el ejemplo vemos que una de las aplicaciones es vulnerable en el momento de escribir el artículo (do. 13/04/2014). Si queremos evitar el problema mientras los programadores sacan una actualización tenemos que desinstalar la aplicación.

HeartBleed ScannerAnálisis con HeartBleed Scanner

Get it on Google Play

También podemos hacer la misma prueba con otra aplicación diferente.

HeartBleed DetectorAnálisis con HeartBleed Detector

Get it on Google Play

Conclusiones

El fallo de seguridad es grave y obliga a actualizar los servidores y a cambiar todas las contraseñas que tengamos. De la primera tarea se encargan las empresas mientras que de la segunda se encargan los usuarios. Si gestionamos algún servidor particular tendremos que hacer la actualización nosotros mismos. Como tenemos que cambiar las contraseñas es recomendable usar una aplicación que genere contraseñas fuertes y que nos permita almacenarlas mientras las aprendemos. Tenéis varios tutoriales de KeePass en los siguientes artículos.

0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.