Una de las vulnerabilidades más conocidas de mediados de la década de 2010 se llamó «Heartbleed». Heartbleed fue particularmente serio porque fue el software al que afectó «OpenSSL», la principal biblioteca criptográfica para conexiones HTTPS, que se utilizan ampliamente. Para empeorar las cosas, la vulnerabilidad había estado presente en OpenSSL durante más de dos años antes de que fuera descubierta, lanzada y parcheada, lo que significaba que mucha gente estaba usando una versión vulnerable.
Heartbleed era una vulnerabilidad de fuga de datos en la extensión de latido que, cuando se explotaba, filtraba datos de la RAM del servidor al cliente. La extensión Heartbeat se utiliza para mantener una conexión entre el servidor web y el cliente sin realizar una solicitud de página normal.
En el caso de OpenSSL, el cliente envía un mensaje al servidor e informa al servidor de la duración del mensaje, hasta 64 KB. Se supone que el servidor reenvía el mismo mensaje. Lo más importante es que el servidor no verificó que el mensaje fuera tan largo como afirmó el cliente. Esto significaba que un cliente podía enviar un mensaje de 10 KB, afirmar que era de 64 KB y obtener una respuesta de 64 KB, siendo los 54 KB adicionales los siguientes 54 KB de RAM, independientemente de los datos almacenados. Este proceso está bien visualizado por el Dibujos animados XKCD # 1354.
Imagen cortesía de xkcd.com.
Al realizar muchas solicitudes de pequeños latidos y fingir que son importantes, un atacante podría obtener imágenes de la mayor parte de la RAM del servidor reuniendo las respuestas. Los datos almacenados en la RAM que podrían filtrarse incluyen claves de cifrado, certificados HTTPS, así como datos POST no cifrados, como nombres de usuario y contraseñas.
Nota: Es menos conocido, pero el protocolo Heartbeat y el exploit también funcionaron al revés. Se podría haber configurado un servidor malintencionado para leer hasta 64 KB de memoria de usuario por solicitud de latido.
El problema fue descubierto por varios investigadores de seguridad independientes el 1 de abril de 2014 y se ha revelado de forma privada a OpenSSL para que se pueda crear una solución. El error se hizo público cuando se lanzó el parche el 7 de abril de 2014. La mejor solución para resolver el problema era aplicar el parche, pero también era posible resolver el problema deshabilitando la extensión Heartbeat si el parche no lo hacía. opción.
Desafortunadamente, aunque el exploit es público y generalmente bien conocido, muchos sitios web aún no se han actualizado de inmediato, y la vulnerabilidad aún se descubre ocasionalmente, incluso años después. Esto ha llevado al uso de varias instancias del exploit para obtener acceso a cuentas o filtrar datos.