Heartbleed: El Gran Bug de Seguridad

Se ha destacado como uno de los mayores peligros para la seguridad de Internet que ha afectado, según unos a dos tercios de todos los servidores de la red, y según otros solamente al 17%. Lo que sí es seguro es que este error ha afectado no solo a sitios pequeños y desarrollos aislados, sino a todos los usuarios y a todos los desarrollos. ¿En qué consiste el corazón sangrante?

Se ha denominado Corazón Sangrante (Heartbleed en inglés) a este error de implementación (bug) de la librería OpenSSL. El error descubierto por varias compañías grandes como Google y la empresa de seguridad Codenomicon.

¿En qué consiste la vulnerabilidad?

El error es lo que en programación se denomina una fuga de memoria (o leak). Estas fugas de memoria han servido históricamente a muchos virus para insertar sus códigos maliciosos en sistemas vulnerables o realizar actividades poco deseables para el usuario como la eliminación de información el reinicio del sistema.

En este caso, el problema es mucho más grave puesto que esa fuga de memoria permite al que la lanza obtener información de la memoria del servidor en varios niveles:

  • Material de Clave Primaria: la clave de los certificados SSL se almacena en memoria y esta vulnerabilidad permite al atacante obtener estos ficheros de claves para poder descifrar la informacióne enviada de forma cifrada a los servidores. Si nos conectamos a través de WiFi, el atacante puede almacenar la información enviada en forma cifrada al servidor y descifrarla con esta clave.
  • Material de Clave Secundaria: el atacante puede hacerse con usuarios y claves almacenados en memoria por los servidores que emplean la librería SSL. El atacante puede obtener el usuario y clave de usuarios conectados en ese momento al servidor.
  • Contenido protegido: se obtiene acceso a toda la información que el servidor vulnerable pueda tener almacenada en su memoria. El atacante puede obtener información sensible del usuario.
  • Fugas colaterales: en la información del servidor puede haber información como cookies de sesión, por lo que el atacante puede obtener el mismo acceso que estamos empleando con los mismos permisos.

¿Qué sistemas estás afectados?

El error se introdujo en la librería OpenSSL desde la versión 1.0.1 hasta la 1.0.1f. Las versiones anteriores no estaban afectadas y las posteriores han sido corregidas. Estas versiones estaban presentes en:

  • Debian Wheezy, OpenSSL 1.0.1e–2+deb7u4
  • Ubuntu 12.04.4 LTS, OpenSSL 1.0.1–4ubuntu5.11
  • CentOS 6.5, OpenSSL 1.0.1e–15
  • Fedora 18, OpenSSL 1.0.1e–4
  • OpenBSD 5.3 (OpenSSL 1.0.1c 10 May 2012) y 5.4 (OpenSSL 1.0.1c 10 May 2012)
  • FreeBSD 10.0 - OpenSSL 1.0.1e 11 Feb 2013
  • NetBSD 5.0.2 (OpenSSL 1.0.1e)
  • OpenSUSE 12.2 (OpenSSL 1.0.1c)

Todas las distribuciones han distribuido a través de sus canales las actualizaciones que permiten subsanar este error. Pero para asegurarnos completamente es mejor utilizar esta herramienta y comprobar que nuestro sistema esté libre de amenza:

http://filippo.io/Heartbleed/

¿Cómo procedo para eliminar esta vulnerabilidad?

Si eres usuario de sistemas de correo abiertos (como Gmail, Yahoo u otros) y accedes a través de webmail, te aconsejo que revises si el sitio por el que accedes está comprometido y en caso afirmativo cierra sesión, notifica al administrador y una vez esté todo libre de peligro, entra y cambia tu clave.

Como administradores de sistemas debemos realizar la actualización de seguridad proporcionada por nuestra distribución de GNU/Linux. Si la versión de OpenSSL que empleamos ha sido compilada por nosotros mismos, entonces habrá que descargar una versión libre del fallo y recompilar.

El sistema habrá estado comprometido durante bastante tiempo, por lo que conviene seguir estos pasos:

  • Actualizar a una versión segura de OpenSSL y reiniciar los servidores afectados.
  • Revocar todas las claves SSL y crear nuevas.
  • Cambiar las claves (e incluso usuarios) de acceso al sistema, correo, sistemas con acceso web, …
  • Eliminar todas las sesiones abiertas de los programas de acceso web (revocar las cookies).

Estos pasos asegurarán un sistema libre de incidentes de cara al futuro.

Conclusiones

Esta no es la primera ni la última vez que oiremos hablar de una vulnerabilidad en sistemas de Internet que pueda afectar de forma tan abierta tanto a sistemas grandes como pequeños y en general a todos los usuarios.

Pero también hay otros ataques a menor escala que se realizan diariamente y que pueden hacerse a través de fuerza bruta con el acceso con privilegio de superusuario de estos sistemas, ¿tienes preparada una estrategia de seguridad en tus servidores?, ¿cómo afrontas crisis como esta?, ¿monitorizas la seguridad de tus sistemas?