domingo, 19 de abril de 2015

MS15-034, aplícate el parche

Uno de los parches publicados por Microsoft el pasado martes, el MS15-034, está generando bastante expectación, sobre todo por las consecuencias que podría acarrear su explotación en caso de que se encuentre la forma de llegar hasta ella. Si esto último se confirma, podríamos estar frente a un serio problema, veremos porqué.

El fallo se encuentra en "HTTP.sys". Este componente implementa el conocido protocolo de capa de aplicación HTTP para cualquier componente del sistema o aplicación que consuma u ofrezca recursos web. El error se produce, según el propio boletín de Microsoft, al procesar una cabecera HTTP especialmente manipulada.

Respecto a la cabecera, las pruebas de concepto y exploits que han ido apareciendo se basan en la cabecera "Range". Esta cabecera permite a un cliente generar una petición sobre un recurso especificando un rango de bytes concreto. Esto optimiza el tráfico al permitir que un cliente disponga de un "trozo" de un recurso cuya transmisión ha sido infructuosa o simplemente disponer de recursos de gran tamaño en porciones adaptadas al criterio o capacidad del cliente.

Una vulnerabilidad similar (CVE-2011-3192) afectó al servidor web Apache cuando se especificaban varios rangos solapados en la misma petición. La explotación, al igual que en esta ocasión, era trivial, y a diferencia de esta, fue usada para tirar bastantes servidores antes de que se publicará un parche.

Volviendo al componente, HTTP.sys no es una biblioteca de funciones al uso. Estamos hablando de un dispositivo del kernel de Windows, corre en su espacio y sus permisos están asociados a System. Antes de que las peticiones HTTP sean procesadas por un servidor son recibidas y tratadas por HTTP.sys, algo que permite elevar el rendimiento al efectuar el cacheo de peticiones directamente en espacio del kernel. Precisamente una contramedida oficial pasa por la desactivación del cacheo de peticiones en IIS7, aunque Microsoft ya avisa que esto podría causar un deterioro perceptible del rendimiento del servidor.

Algo que venimos observando es que se le está atribuyendo la vulnerabilidad a Microsoft IIS en exclusiva, el servidor dominante en sistemas Windows. Por supuesto es el servidor web en el que todos estamos pensando cuando hablamos de explotación, pero no podemos descartar otros servidores o servicios que se apoyen en HTTP.sys.

Con todo esto podemos deducir que el impacto que podría tener una ejecución remota de código arbitrario, a través de un servidor web publicado en Internet con una simple petición HTTP, podría ser desastrosa. HTTP.sys ya tuvo en 2013 (MS13-039) un fallo que causaba una denegación de servicio, se calificó entonces de importante. Recordemos que Microsoft cataloga esta vulnerabilidad de crítica.

Los sistemas operativos afectados son Windows 7, 2008 R2, Windows 8 y 8.1, 2012 y 2012 R2. Es posible que esta vulnerabilidad afecte a sistemas que ya no tienen soporte oficial, Microsoft no se ha pronunciado al respecto. La vulnerabilidad tiene el CVE-2015-1635.
La prueba de concepto para evaluar la afectación de un sistema puede lograrse a través de cualquier script o programa que genere una petición HTTP con una cabecera Range en particular:

Range: bytes=0-18446744073709551615

Con la herramienta de línea de comandos 'curl' por ejemplo:

curl -v  dirección-ip-a-probar/ -H "Host: cualquiervalor" -H "Range: bytes=0-18446744073709551615"

Los próximos días, quizás semanas, nos dirán si todo se queda en una denegación de servicio o estamos frente a una amenaza bastante seria.

Más información:

Microsoft Security Bulletin MS15-034 - Critical
Vulnerability in HTTP.sys Could Allow Remote Code Execution (3042553)

una-al-dia (15/04/2015) Microsoft publica 11 boletines de seguridad

una-al-dia (25/08/2011) Denegación de servicio en Apache a través de Range header

una-al-dia (14/05/2013) Boletines de seguridad de Microsoft en mayo

Boletín de seguridad de Microsoft MS13-039 - Importante
Una vulnerabilidad en HTTP.sys podría permitir la denegación de servicio (2829254)



David García
Twitter: @dgn1729

1 comentario:

  1. Se supone que ya existe un exploit para la ejecución remota de código a 12200$....

    http://1337day.com/exploit/description/23531

    ResponderEliminar