Los sistemas operativos modernos utilizan espacios de memoria virtual para cada proceso que lleva al aislamiento del proceso . Por lo tanto, es imposible que un servidor web que utiliza la biblioteca OpenSSL defectuosa lea la memoria asignada a otros procesos (que no se comparte de forma explícita con el proceso), en el mejor de los casos, un fallo de segmentación podría dar lugar.
La verdad es que el corazón está en una simple sobreimpresión de un búfer confiando en el tamaño de la carga útil que se envía en un encabezado controlado por el atacante y nunca verificando que la carga útil fuera realmente de ese tamaño y se escribiera en la memoria /security.stackexchange.com/a/55117/2568">[1] , [2] , [3] ). El atacante envía un paquete de latido al servidor con un encabezado que indica la longitud de su carga útil que se envía (el tamaño en el encabezado es de dos bytes, por lo tanto hasta ff ff = 65535 bytes), escribe la carga útil enviada a la memoria y luego vuelve a leer los datos de ese tamaño se devuelven al cliente, lo que permite leer lo que esté en la memoria en el proceso del servidor web siguiendo la carga útil escrita. Esto es muy importante ya que puede repetir el ataque muchas veces y, finalmente, puede tener suerte y poder obtener claves privadas para el servidor HTTPS, y en ese punto puede mitigar el servidor HTTPS. (Y trata cosas como la ficción erótica o el correo electrónico del usuario). Sí, mientras tanto puede encontrar datos aleatorios que el servidor web ya estaba entregando, pero en realidad las claves privadas (y menos las cookies de sesión) son la parte importante.
Además, la parte aterradora es que el ataque hace esto de una manera que no se registrará a menos que esté en un modo de depuración / escuche cada paquete en el cable y registre el inicio de cada solicitud de protocolo de enlace TLS.