Puede que en el mundo real sólo trasciendan los fallos de seguridad producidos por errores de codificación de los programadores de Apple. Ese odio malsano que se tiene a la Manzana no evita que estos fallos sean comunes, más de lo que quisiéramos, y mucho más graves en otras plataformas como Linux. Ahora nos llega otro que se estima afecta a las dos terceras partes de los servidores web que hay conectados a Internet.

Con el nombre de Heartbleed, se trata de un fallo en otro producto clave de la seguridad en Internet: OpenSSL. Es un paquete de protocolos y herramientas que permiten securizar las conexiones que establecemos con servidores remotos, por ejemplo al conectarnos a nuestra cuenta de usuario de Yahoo, que es una de las afectadas por el fallo de seguridad.

Este fallo permite que un hacker se haga con las contraseñas, los contenidos de correos electrónicos y cualquier otra información de los usuarios de servicios que confíen en OpenSSL para establecer la conexión segura entre equipos (por ejemplo con HTTPS). "Afortunadamente", sólo afecta a las versiones 1.01 y 1.02 de OpenSSL liberadas en los últimos dos años, y especificamente a una extensión denominada Heartbeat que permite mantener activas conexiones seguras incluso si el usuario no tiene intención de enviar información al servidor.

¿Por qué lo he comparado con los fallos de Apple y Linux? Pues por que es un fallo del programador o programadores encargados de asegurarse que una solicitud Heartbeat es correcta. Una de esas solicitudes incluye una carga útil (con información del usuario, la conexión, etc), y el tamaño de la carga útil que se está enviando. Algo muy común en todos los protocolos de Internet, incluidos los de enrutamiento, como mero trámite o paso previo para comprobar que una conexión/paquete/loquesea es correcta.

Pues ahora viene lo grave, y es que en OpenSSL no se comprueba que el tamaño de la carga útil y el tamaño de la misma indicado en la solicitud heart beat sean iguales. Con esto un hacker puede crear una solicitud malintencionada con un tamaño de carga útil de 1 byte e indicando que la carga útil tiene un tamaño de 65.536 bytes. Puesto que la carga útil se copia en la respuesta heart beat, se copian ese byte de carga útil que realmente se ha enviado al servidor más los 65.535 bytes siguientes que estén ubicados en memoria y asignados a OpenSSL.

yahoo-mail-heartbleed1-640x434
yahoo-mail-heartbleed2-640x251

Grave. Terrible. Catastrófico que en los tiempos que corren este tipo de fallos de seguridad se puedan colar. Esos 65.535 bytes pueden contener datos de usuarios, contraseñas y demás que se hayan recibido recientemente y que están ya desencriptados. Pero también puede estar en memoria las claves para encriptar y desencriptar usadas por el servidor web. Además, estas solicitudes heart beat malintencionadas pueden no dejar rastro, por lo que es más terrible todavía puesto que los hackers pueden realizar infinitas solicitudes malintencionadas para guardar y analizar posteriormente los resultados y extraer todo lo que necesiten para asaltar los servidores web.

Un nuevo fallo que es solamente achacable a los programadores que mantienen la librería OpenSSL y que los administradores de servidores deberían de comprobar si están afectados por ella. La versión que se ha liberado para corregir este problema es la 1.0.1g, pero no parece que vaya a ser rápido el proceso de actualización de los dos tercios de servidores web de Internet. Nada rápido.

En una escala de 1 a 10, este fallo de seguridad recibe una nota de 20. No se sabe quiénes o durante cuánto se ha podido estar abusando de este fallo, por lo que nos encontramos que puede haber servidores que, tras capturar las claves de certificados SSL se estén haciendo pasar por servicios legítimos y en realidad estar siendo usados con oscuros fines. Puede que se necesite volver a emitir los certificados de seguridad de más de la mitad de los servidores de Internet, y eso no es ninguna tontería.

El fallo de seguridad fue descubierto por un programador de Google, y afortunadamente los servicios de Microsoft, Facebook, Apple, Amazon y Google no han sido afectados, así como buena parte de los servicios bancarios que confían en otras librerías de SSL/TLS o han solventado el problema antes de que se pudiera saber si estaban siendo afectados. Otros, como Twitter y Yahoo, han caído presas del fallo de seguridad, por lo que se recomienda cambiar las contraseñas de esos servicios.

Vía: Ars Technica.