¿Uso normal vs. denegación de servicio? ¿Cuántas solicitudes se necesitan para hablar sobre una denegación de servicio?

26

Recientemente utilicé una herramienta para descargar un sitio web y, como parte de la herramienta, se podría ajustar el número de conexiones paralelas. Así que ahora me preguntaba: a partir de la cantidad de solicitudes que un proveedor podría calificar como denegación de servicio. Busqué en Google sin embargo, no encontré números específicos o al menos sugerencias sobre las dimensiones de las que estamos hablando. ¿Hay alguna definición, por ejemplo? como 100 peticiones por segundo?

Entonces, mi pregunta es: ¿Cuántas solicitudes se necesitan para indicar que hay una denegación de servicio en curso?

Actualización: los antecedentes técnicos son definitivamente interesantes. Entiendo que un paquete malicioso podría ser suficiente para causar una denegación de servicio o el efecto slashdot es otro. Pero lo que quería saber era más bien una regla de estilo de firewall: algunos servidores / proveedores de servicios bloquean a los usuarios que envían demasiadas solicitudes en un determinado período de tiempo. ¿Sobre qué dimensión estamos hablando aquí? ¿O es eso demasiado específico? Si es así, ¿cómo sería tu regla?

La pregunta también tenía un componente legal. Permítame ilustrar un escenario teórico (!) alto:

Un proveedor de un servicio verifica sus registros y ve que ha habido un alto tráfico desde una sola IP. Ahora el proveedor va a la corte (por cualquier razón) y lo etiqueta como un intento de denegación de servicio. El juez probablemente pediría su definición de un DoS. "Cualquier cosa más allá del uso normal" sería su respuesta. Entonces, ¿dónde está el umbral entre el uso normal y el uso normal "ninguno" (que podría interpretarse como un intento de DoS, incluso si el servidor sigue sin estar totalmente impresionado y este es probablemente un escenario altamente construido ;-)

    
pregunta Lonzak 23.03.2016 - 14:29
fuente

4 respuestas

5

Debatí sobre cómo hacer de esto una respuesta, podría ser mejor como un comentario.

Veamos su pregunta desde ambos ángulos.

Desde el host

Algo se convierte en un DoS cuando el tráfico, o lo que está haciendo ese tráfico, hace que el servidor no esté disponible para otros. Algunos ejemplos;

  • Ejecutar un informe de ejecución larga 500 veces
  • la actualización aplastante realmente rápida en un sitio web que no puede manejarlo
  • usa tu ancho de banda más grande para llenar su canal de carga para que otros usuarios pierdan velocidad.
  • raspar el sitio web de manera que el host no responda a otros.

Todos estos ejemplos son posibles, pero no probables. Cuando hablamos de un ataque DoS estamos hablando de una persona / cliente que hace todo esto, y la mayoría de los servidores web están configurados para manejar cientos o miles de solicitudes al mismo tiempo. Es por eso que DDoS es tan popular. Porque se necesita más de un cliente para sobrecargar un servidor normal (en circunstancias normales).

Para agregar complicaciones, muchos clientes pueden comenzar a usar su sitio por primera vez después de un poco de marketing. A veces ni siquiera es su marketing lo que lo activa. Por ejemplo, un popular lanzamiento de teléfono celular puede causar un aumento en el tráfico en su sitio. Puede ser muy difícil distinguir el tráfico DDoS del tráfico legítimo.

Sin embargo, hay algunas reglas básicas. Lo que básicamente buscas es un uso anormal.

  • ¿Hay usuarios que están descargando mucho más que otros?
  • ¿Hay usuarios que se mantienen conectados por más tiempo que otros?
  • ¿Hay usuarios que se están volviendo a conectar más que otros?

Estas y otras guías pueden ayudarlo a determinar qué tráfico forma parte de un ataque DDoS y aplicar algún tipo de filtro.

Desde el punto de vista del usuario

Al decidir raspar un sitio web, primero debe verificar y ver si tienen una política. Algunos sitios lo hacen, y otros no. Algunos sitios lo considerarán robo, y otros no. Si un sitio no tiene una política, debe realizar su propia llamada.

Su objetivo, si no tienen una política establecida, es indicar claramente su raspado (no enmascarar el agente de usuario o el encabezado que su herramienta podría estar usando), y tratar de tener el menor impacto posible. . Dependiendo de su necesidad de raspar, ¿puede raspar solo unas pocas páginas o realmente necesita todo el sitio? ¿Se puede raspar a una velocidad de "usuario normal", tal vez 1 página cada 5 segundos aproximadamente (incluido el contenido multimedia)? Si desea capturar los datos rápidamente, ¿puede simplemente capturar los archivos de texto y no capturar las imágenes y otros medios? ¿Puede excluir consultas de larga ejecución y archivos multimedia más grandes?

Usted tiene el objetivo principal de ser respetuoso con el costo del hospedaje y de los demás usuarios del sitio. Más lento suele ser mejor en este caso. Si es posible contacte al propietario del sitio web y pregúnteles. Y pase lo que pase, siga las reglas del archivo robots.txt. Puede tener un límite de velocidad y límites de páginas que debe seguir.

    
respondido por el coteyr 23.03.2016 - 18:36
fuente
44

Suficiente para hacer que el servicio sea denegado a alguien. Puede ser 1 solicitud maliciosa inesperada, lo que provoca una carga excesiva en el servidor. Podrían ser varios millones de solicitudes esperadas, de un anuncio de televisión con una respuesta realmente buena.

No hay un valor específico, ya que todos los servidores fallarán en diferentes niveles: el servicio de contenido estático es mucho más fácil en el servidor que generar contenido altamente personalizado para cada usuario, por lo que los servicios autenticados generalmente tendrán un "problema" menor Umbral que los no autenticados. Los servidores que envían el mismo archivo a varios usuarios pueden manejar más tráfico que los servidores que envían archivos distintos a varios usuarios, ya que pueden mantener el archivo en la memoria. Un servidor con una conexión rápida a Internet generalmente podrá manejar más tráfico que uno con una conexión lenta, pero la distinción puede depender menos de eso si el tráfico generado está vinculado a la CPU.

He visto sistemas que fallan a 3 solicitudes por segundo. También he visto sistemas que manejan todo hasta 30,000 solicitudes por segundo sin sudar. Lo que sería un DoS para el primero, sería un período de poco tráfico para el segundo ...

Actualizado para responder a la actualización

¿Cómo determinan los proveedores de firewall cuándo el tráfico está causando una denegación de servicio?

Por lo general, vigilan los tiempos de respuesta del servidor y aceleran el tráfico si superan un límite preestablecido (esto puede decidirse sobre una base técnica o de mercadeo, esperar x segundos hace que las personas se vayan) , o si las respuestas del servidor cambian de exitosa (200) a falla del servidor (50x).

¿Qué es una definición legal de "denegación de servicio"?

Igual que el original que proporcioné: no es una denegación de servicio si no se ha denegado el servicio. Puede ser abusivo, pero eso no sería lo mismo.

    
respondido por el Matthew 23.03.2016 - 14:43
fuente
5

Cuando descarga (o raspa) un sitio web, básicamente está enviando muchas solicitudes GET para cada URL en el sitio web de destino.

Este es un ejemplo de solicitud GET del sitio web de World Wide Web Consortium:

  

GET /pub/WWW/TheProject.html HTTP / 1.1

     

Anfitrión: www.w3.org

Como puede ver, el problema principal no es la solicitud sino la respuesta del servidor web, que le envía todo el recurso identificado por la URL indicada.

Por lo tanto, podemos decir que

  

Número máximo de solicitudes por segundo = (Factor de seguridad * Ancho de banda) / Tamaño máximo de una página web

A juzgar por una búsqueda rápida en Google, el tamaño promedio de una página web es de aproximadamente 2 Mb, y el ancho de banda de un servidor web puede variar desde unos pocos Mbps a unos pocos Tbps.

El factor de seguridad está relacionado con el hecho de que, para provocar un ataque DoS, es posible que no necesite enviar una cantidad de solicitudes correspondientes al 100% del ancho de banda. Por ejemplo, si el servidor web tiene un ancho de banda de 100 Mbps, y el 50% se utiliza en un instante dado para otros usuarios, es suficiente enviar una cantidad de solicitudes correspondientes al 50%, o incluso un porcentaje menor, del ancho de banda .

50% de 100 Mbps = 50 Mbps, que corresponde a 25 solicitudes GET promedio por segundo.

Por otra parte, si nadie más está visitando el sitio web, deberá usar al menos el 80% del ancho de banda para generar un DoS, y el 80% de 100 Mbps = 80 Mbps, que corresponde a 40 GET solicitudes por segundo.

Claramente, para (sin querer) hacer un gran sitio web con un ancho de banda de 1 Tbps, deberá enviar al menos (80% de 1 Tbps) / 2 Mbps = 400,000 solicitudes GET por segundo. Y así sucesivamente.

Para tener una medición más precisa, debe encontrar el tamaño máximo de una página web en el sitio web de destino y su ancho de banda.

Advertencia: ya que podría tener problemas por causar una denegación de servicio, es mejor redondear la cantidad de solicitudes por segundo que obtiene a través de la fórmula anterior.

    
respondido por el A. Darwin 23.03.2016 - 15:18
fuente
4

Para aprovechar la respuesta de Matthew con respecto al comentario de Philip Rowlands:

La regla general para definir el tráfico DoS es contexto .

Si acaba de publicar un anuncio de televisión en la Superbowl, puede suponer que el flujo de tráfico resultante no es malicioso en el contexto (ya sea que la interrupción del servicio sea irrelevante).

Donde, si es solo otro martes por la mañana, y su sitio se inundó con solicitudes sin una razón identificable, sería seguro asumir que el tráfico es malicioso (o al menos sospechoso, por ejemplo, publicación desconocida de reddit en lugar de ataque dirigido).

    
respondido por el WorseDoughnut 23.03.2016 - 15:10
fuente

Lea otras preguntas en las etiquetas