¿Cómo realizar una prueba DDoS adecuada de manera segura y controlada?

13

¿Cuál es la forma correcta y segura de realizar una prueba DDoS sin fallar toda la infraestructura?

¿Qué tipos diferentes de ataques DDoS hay y qué cosas deberían considerarse al realizar una prueba de este tipo?

Además, ¿dónde puede alquilar una "red de bots" o un servicio similar (en la nube) para realizar una prueba realista?

    
pregunta Bob Ortiz 12.07.2016 - 20:08
fuente

4 respuestas

12

Si está realizando pruebas de carga a altas tasas de paquetes, la forma más segura es aislarlo completamente del resto de la red. Por ejemplo, puede conectar dos servidores mediante un enlace directo de 10GBps sin conmutador y usar otra conexión LAN en el servidor de evaluación comparativa para ssh a un servidor para ejecutar la prueba.

Otra forma es aprovisionar servidores en Public Cloud como AWS durante un corto período de tiempo y ejecutarlos allí. No te arriesgas a impactar tu infraestructura. Está bien hacerlo, las infraestructuras en la nube son resistentes, por lo que si inunda su servidor con paquetes es solo un poco más en mucho más tráfico. Por supuesto, sería bueno aprovisionar una máquina grande, rápida o incluso una dedicada para que puedas ver realmente la carga que consume tu software.

Con respecto al software, puede usar ab genérico que es "Apache Bench" y es parte de los paquetes de Apache. Puede probar la resistencia de su servidor web (archivos estáticos de httpd) y del servidor de aplicaciones (archivos dinámicos de PHP, Ruby, Java). Puede buscar otro software de prueba de carga profesional para protocolos específicos que pueden incluir pruebas de transmisión de video y API. Hay muchos de ellos según el protocolo que esté utilizando (como REST, etc.).

Luego continúe con el ajuste habitual de la pila de red y el ajuste de la aplicación para obtener más rendimiento (igual en el lado del cliente como ulimit ). Mantenga un registro de sus resultados. Y también, trate de analizar los registros correctamente con software libre como AWStats o Sawmill comercial. Evite usar grep ;-) Analytics es lo que le mostrará resultados reales. También tenga en cuenta que ab es bueno para httpd pero a veces tiene problemas con otros servidores web. Y en AWS puede usar Load Balancer, que también muestra estadísticas en tiempo real. Registre las estadísticas de la red con Nagios, Zabbix, etc. para ver cómo se realizó la pila de la red (por ejemplo, conexiones perdidas, tasa de paquetes, uso de la CPU, etc.).

Nunca contrate ataques DDoS , ya que se trata de bandas criminales y corre mucho riesgo, no solo legalmente para usted sino también para su ISP, su empresa y sus clientes.

    
respondido por el Aria 12.07.2016 - 21:59
fuente
5

El mejor plan único es no hacer esto. Rara vez tiene algún propósito, ya que DDoS trabajará en su contra. Eso es un hecho. Es tan fácil crear un ataque de gran volumen ahora que ni siquiera vale la pena intentar hacer más que las pruebas de carga habituales.

Está mucho mejor atendido implementando la mitigación DDoS.

Sin embargo, si debe realizar una prueba, intente lo siguiente:

  • probar una copia de no producción
  • cree un multiplicador en las pruebas de carga cuando ejecute OAT / UAT antes de su puesta en funcionamiento
respondido por el Rory Alsop 12.07.2016 - 20:29
fuente
2

Fundamentalmente, la forma en que funciona una Denegación de Servicio Distribuida es inundando el ancho de banda de una empresa con mucho tráfico. Los ataques reales pueden diferir en la fuente y el estilo, pero comparten el mismo objetivo. No tiene sentido probar un ataque DDoS, ya que no importa la cantidad de ancho de banda que tenga, siempre es posible que sea superado. Depende completamente de las capacidades físicas del hardware.

Ahora, eso no quiere decir que no hay manera de mitigar una DDoS. Puede comprar servicios de varias compañías que son capaces de detectar un DDoS y enviar su tráfico a un centro de limpieza para que solo permita el tráfico legítimo. Sin embargo, estos servicios todavía están limitados por la cantidad de ancho de banda que fluye hacia su equipo. A diferencia de otros ataques de denegación de servicio, no hay una solución de software para un DDoS.

No intente contratar servicios para DDoS su red. Estos servicios son, en el mejor de los casos, legalmente cuestionables y, en el peor, son el crimen organizado. Si insiste en probar su red, otras respuestas proporcionan formas perfectamente razonables para hacerlo.

    
respondido por el TheGiantPossum 12.07.2016 - 22:07
fuente
1

Además de preguntar cómo debería considerar preguntar por qué .

Caso 1: desea comprobar cómo su servicio se verá afectado por una DDoS : posiblemente sea una cosa razonable. Yo diría que estas son pruebas de carga llevadas al extremo.

En ese caso, necesita probar un clon de todo su servicio, incluida la infraestructura. No sabe qué fallará entre su interfaz de servicio en una DMZ y la base de datos de back-end en una LAN. Puede ser la aplicación, un firewall en el camino, la base de datos, ... Como puede imaginar, no será una tarea sencilla y el resultado puede o no ser interesante.

No necesitas una DoS D para eso: una DoS múltiple será suficiente (solo te interesa la carga)

Caso 2: desea evaluar sus capacidades para volver a realizar una DDoS : en ese caso, la prueba es inútil.

Si el ataque se basa en el volumen (a diferencia de algo como SLOWLORIS ), en el momento en que detectas una paquete entrante, es demasiado tarde. Hay empresas que venderán algunos aparatos de vapor que solucionarán el problema de forma mágica, pero no funcionan * .

Debes bloquear este ataque en sentido ascendente, por lo que

  • debe hablar con su proveedor de servicios de Internet (ISP) para evitar el tráfico de tráfico ascendente (es muy útil, tal vez para evitar un bloqueo en su aplicación)
  • o busque algunas soluciones basadas en la nube que puedan funcionar o no; en términos prácticos, son su única solución (su ISP también puede proporcionar dicha solución).

* la idea es que serán lo suficientemente rápidos (= mucho más rápido que las capacidades de procesamiento del servicio) para decidir si un paquete es "lo suficientemente bueno" o no para ser aceptado. Además de la capacidad para decidir correctamente, la premisa se rompe cuando su canal de red está lleno.

    
respondido por el WoJ 15.07.2016 - 13:32
fuente

Lea otras preguntas en las etiquetas