Heartbleed

A principios de abril se publicó el bug de Heartbleed que aprovecha una vulnerabilidad de OpenSSL versión 1.0.1, cuyo software es ampliamente utilizado para cifrar las comunicaciones como HTTPs, FTPs o VPN. Fue un mes intenso y de incertidumbre para muchos administradores de seguridad debido a la gravedad del agujero de seguridad, que permite extraer porciones de memoria del servidor donde se alojan contraseñas, certificados, etc. Sin embargo, desgraciadamente aún existen muchos servicios publicados en Internet que no han corregido el fallo de seguridad.

Ante la urgencia de actualizar el software OpenSSL para corregir el bug y la dificultad de encontrar una ventana de cambios para realizar la actualización, podemos utilizar sistemas de detección y prevención de intrusos que nos alerten cuando un atacante está intentando aprovechar dicha vulnerabilidad. Para realizar una prueba de concepto he utilizado el SIEM de Alienvault que dispone de un analizador de vulnerabilidades para conocer qué servicios tenemos vulnerables, además de incorporar un IDS que nos alerta ante cualquier ataque.

En primer lugar he realizado un escaneo al puerto 443 con Nmap utilizando el script de ssl-heartbleed contra un servidor vulnerable del laboratorio:


Inmediatamente, el SIEM, encargado de “vigilar” el laboratorio, mediante la correlación de eventos del sistema de detección de intrusos (IDS) y el análisis de vulnerabilidades ha detectado tanto el escaneo de puertos como el ataque satisfactorio, generando dos alarmas:


En la primera alarma con riesgo igual a 1 podemos ver que el IDS detecta el escaneo desde mi IP pública 188.87.125.249 hacia el servidor web:

 
Detecta el ataque de heartbleed debido a la respuesta del servidor web a la petición realizada mediante Nmap:

 
Sin embargo, la segunda alarma tiene riesgo igual a 4 ya que el ataque ha sido satisfactorio:

 
Detecta que el ataque de heartbleed ha sido satisfactorio, ya que mediante el análisis del tráfico descubre un paquete de solicitud conformado por el cliente (188.87.125.249), y el servidor vulnerable responde a la petición del atacante.


Como podemos ver, mediante un sistema de correlación de eventos podríamos conocer en tiempo real cuándo, quién y cómo nos atacan. Sin embargo, para bloquear el ataque necesitamos un sistema de prevención de intrusos (IPS) que además impida que el ataque sea satisfactorio. Una buena opción es incorporar el IPS en los sistemas de seguridad perimetral UTM que nos proteja ante los ataques, de esta manera tendremos el “privilegio” de disponer de más tiempo para planificar las actualizaciones de software vulnerable.

Commentaires