Menú

OptionsBleed es el actual HeartBleed

OptionsBleed es el actual HeartBleed

Hanno Böck es el investigador que descubrió esta vulnerabilidad en servidores web Apache y permite la exposicion parcial de fragmentos de memoria arbitrarias del sistema con lo que tenga en ese momento. Este manera de exponer toda clase de informacion es muy parecida al comportamiento cuando usamos a HeartBleed herramienta que cobro notoriedad por ea vulnerabilidad en OpenSSL de 2014.

Es por el parecido que esta vulnerabilidad ha sido llamada OptionsBleed, y por el OPTIONS de HTTP, utilizado por un cliente web para recibir información de los métodos soportados por un servidor (víctima).

La consulta OPTIONS de forma normal te responde así:

Una investigación de mayor posicionamiento de los sitios de Alexa, Böck descubrió respuestas de OPTIONS muy particulares ya que repetían los métodos, algunos vacíos, y otros con cabeceras parecidas a fugas de memoria:

                                                      Respuesta OPTIONS ante un servidor vulnerable

Böck vió esa imagen, comparó ese comportamiento y el hombre sospechó a pesar que no conocía el software especifico que le devolvería estas respuestas y continuó es así que encontró fugas de información con fragmentos de configuraciones correspondientes a servidores Apache, así que se puso en contacto con el equipo de desarrollo, que finalmente confirmaron la vulnerabilidad.

El error fue identificado con CVE-2017-9798  ya existen parches para todas de las versiones de Apache Web Server en Linux.

Teoría y práctica

Explotar OptionsBleed:  Hacer una petición OPTIONS al servidor. La vulnerabilidad no responde los mismos resultados ante los mismos datos de entrada. Por eso la reproducción es difícil.

La vulnerabilidad se inicia por un fallo en la implementación de la directiva Limit. Los métodos Options en respuesta a la comunicacion en el servidor se  establecen a nivel global en la configuración.

Si usas la directiva Limit, puedes limitar su uso por recurso, usando un fichero .htaccess.


Sintaxis de una directiva Limit

El problema inicia con la directiva Limit sobre un método registrado en la configuración global.

Cualquier método no válido que se define esta directiva en un fichero .htaccess provoca la fuga de información.

Si has encontrado el problema, se deben dar ciertas condiciones para su explotación que no son del todo claras. Según Böck en el FAQ de la vulnerabilidad:

El fallo solo se da en servidores ocupados. A veces aparece tras varias peticiones.

OptionsBleed no es HeartBleed

Más allá del parecido en el comportamiento, hay varias diferencias que hacen a OptionsBleed bastante menos peligrosas que HeartBleed, la famosa vulnerabilidad en OpenSSL aparecida en 2014 con la que se le está comparando.

La superficie de exposición es menor. OptionsBleed solo afecta a servidores Apache Web Server.  HeartBleed afectaba a todo servidor con versiones de OpenSSL vulnerables, sin distinción entre web, email, o VPN.

Es necesario tener una configuración y que el servidor este en condiciones específicas para la explotación.

En el estudio se explotaron solo 466 servidores de1 millón de Alexa. OptionsBleed devuelve un fragmento de menor longitud que HeartBleed.

Tiene un riesgo:  En servidores Apache compartidos, un usuario puede incluir un fichero .htaccess manipulado para  la explotación y descubrir secretos del resto de usuarios.