HTTP Universal DoS OWASP Christian Navarrete Copyright © - The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms.

Download Report

Transcript HTTP Universal DoS OWASP Christian Navarrete Copyright © - The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms.

HTTP Universal DoS
OWASP
Christian Navarrete
Copyright © - The OWASP Foundation
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License.
The OWASP Foundation
http://www.owasp.org
DDoS de Capa 7
 Wong Chee Onn y Tom Brennan realizaron una investigación sobre una
nueva forma de realizar una denegación de servicio (DoS) contra servidores
Web y fue presentada en un evento de OWASP.
 Lo interesante de este ataque es que no hay solución para este problema ya
que el problema central reside en la manera en cómo funciona el protocolo
HTTP, por lo que, básicamente, para proporcionar una solución todo el
protocolo que debe corregirse.
 El ataque consiste básicamente en forma masiva su interés en un archivo no
existente utilizando el método HTTP POST al servidor Web. El siguiente
ejemplo muestra el encabezado de derecho que puede desencadenar la
vulnerabilidad de denegación de servicio.
 Slow Loris: Un ataque similar, descubierto por RSnake.
OWASP
Análisis del ataque (HTTP Post)
POST /aaaaaaaaaaaaaaaaaaa HTTP/1.1
Host: example.com
Connection: keep-alive
Content-Length: 100000000
Content-Type: application/x-www-form-urlencoded
Accept: *.*
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 (KHTML,
like Gecko) Chrome/8.0.552.28 Safari/534.10
 En la primer línea, se envía una solicitud a un archivo no existente
(aaaaaaaaaaaaaaaaaaa) y en la línea 4, un Content-Length con un valor de 100
millones, esto significa que el servidor Web espera 100.000.000 bytes para cada una de
estas conexiones.
 Este ataque se puede hacer no sólo el envío de esta solicitud una sola vez, en
cambio, el ataque debe enviar esta petición de durante un largo período de tiempo (por
ejemplo, un carácter cada 10 a 100 segundos), por lo que el servidor Web, mantendrá
estas conexiones abierta por un tiempo muy largo, hasta que reciba todos los datos,
esto creará una condición en donde cuando otros clientes intentan conectarse al
servidor Web, los que no se podrá conectar porque todas las conexiones disponibles
están ocupadas.
OWASP
Pruebas y Resultados
 Tiempo después de publicarse el artículo de este ataque, un investigador de
seguridad escribió una herramienta que explota dicha vulnerabilidad. La
herramienta se llama: R-U-Dead-Yet, (R.U.D.Y.).
http://chaptersinwebsecurity.blogspot.com/2010/11/universal-http-dos-are-youdead-yet.html
 Después de usar la herramienta en un servidor Web Apache, éste deja de
responder mientras la herramienta se encuentre en ejecución.
Los siguientes registros se generaron:
[Mon Nov 22 15:23:17 2010] [notice] Apache/2.2.9 (Ubuntu) PHP/5.2.6-2ubuntu4.6 with
Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8g configured — resuming normal operations
[Mon Nov 22 15:24:46 2010] [error] server reached MaxClients setting, consider raising the
MaxClients setting|
OWASP
R.U.D.Y. DEMO
OWASP
5
¿Qué responsen los fabricantes?
 Apache – “What you described is a known attribute (read: flaw) of the HTTP
protocol over TCP/IP. The Apache HTTP project declines to treat this expected
use-case as a vulnerability in the software
 Microsoft – “While we recognize this is an issue, this issue does not meet
our bar for the release of a security update. We will continue to track this issue
and the changes I mentioned above for release in a future service pack.”
OWASP
Contramedidas
 ModSecurity (mod_security)
 ModSecurity v2.5.13 (change log) ha sido liberado. Esta versión corrige
varios problemas pequeños e incluye la nueva protección para ataque Slow
DoS con la directiva SecReadStateLimit. Además, esta versión corrige algunos
errores bastante pequeña pero notable e incluye más tardar el conjunto de
reglas “core” (v2.0.10).
[Tue Nov 23 11:52:27 2010] [error] [client 127.0.0.1] ModSecurity: Access denied with
connection close (phase 1). Operator GT matched 5 at IP:slow_dos_counter. [file
"/usr/local/apache/conf/modsec_current/base_rules/modsecurity_crs_15_customrules.conf"]
[line "6"] [msg "Client Connection Dropped due to high # of slow DoS alerts"] [hostname
"localhost"] [uri "/upload.html/cgi-bin/fup.cgi"] [unique_id "TOvxS8CoAWUAAAOcG9oAAAAQ"]
OWASP
¿Preguntas?
OWASP
8