martes, 15 de abril de 2014

Heartbleed: el corazón "partío" de OpenSSL

Heartbleed: ¿qué es? Pero para profanos...
Dicho muy rápidamente: una vulnerabilidad en el código de OpenSSL, el mecanismo open source encargado de mantener seguras las comunicaciones entre cliente y servidor (entre máquinas) que permitiría la extracción de información contenida en los servidores web sin dejar rastro alguno.
Y eso de OpenSSL... Es el mecanismo que se encarga de encriptar y mantener cifradas las comunicaciones entre, por ejemplo, nuestro ordenador y alguno de los servicios de correo web o de almacenamiento en línea afectados (y ya solucionado, afortunadamente).
Cuando nos logueamos en nuestra cuenta de correo web habremos visto como en la barra de direcciones nos aparece la "s" tras el archiconocido "http", lo que nos aseguraba unas comunicaciones cifradas por medio del https. Y así es: lo que nosotros enviamos al servidor (usuario y contraseña) se encripta con su clave pública y viaja cifrado e ininteligible. Al llegar el paquete de datos al servidor se desencripta usando la clave privada que sólo conoce el propio servidor. Y al verificarse la correspondencia usuario-contraseña se autoriza el resto de comunicaciones, el servidor te "abre" la puerta del correo en nuestro ejemplo. Y para el resto de comunicaciones se emplea ya una clave simétrica.
Pero, claro, no nos limitamos a entrar y salir de la aplicación de correo web sino que permanecemos un tiempo conectados. Durante este lapso de tiempo el servidor comprueba periódicamente si el cliente (nosotros) aún estamos conectados mediante mensajes de comprobación que asimilan latidos del corazón (heartbeats):

- Oye ¿estás ahí?- pregunta el servidor pasado un tiempo
- Si -responde nuestro ordenador...
Este proceso se repite durante la sesión para asegurarse ambas partes de que la comunicación está "viva". Y aquí es donde se ha descubierto el fallo: estos mensajes que vienen del servidor contienen pequeñas porciones de información que se encuentran almacenadas en la memoria del servidor, que este no tiene intención de compartir y que podrían consistir en retazos de mensajes de correo, claves criptográficas, usuarios y contraseñas... Así, un atacante podría falsificar estos "latidos" y forzar al servidor a responderle sirviendo continuamente mensajes de confirmación de sesión abierta, e ir acumulando información "sensible" en porciones de 64Kb.
Esto es algo que suena muy complicado y un tanto ajeno a nosotros, como tantas otras alertas de seguridad; pero cuando la han catalogado como la segunda mayor amenaza en Internet o una de las diez mayores, dependiendo de las fuentes, debemos pensar que nos afecta en algo. Si este error de programación que afecta/está afectando/ha afectado a las dos terceras partes de los servidores en Internet está "en el aire" desde hace varios años y no se ha hecho público hasta hace unos días... ¿cuánta información podría haber sido extraída sin dejar rastro?
Así que, como siempre que aparece alguna vulnerabilidad de este tipo, el consejo que están dando es... ¡cambia las contraseñas de todos los servicios! de momento y como poco.
Si quieres ampliar info, aquí (en inglés) entre otros muchos sitios.
Un cordial saludo,

No hay comentarios: