¿Una forma de prevenir ataques DoS no distribuidos a nivel de red?

7

Tengo una máquina DigitalOcean Ubuntu 16.04 con Bash como shell principal, Nginx, PHP-FPM y MySQL como entorno de servidor, Certbot para TLS y WordPress para aplicaciones web.

  • Me protejo de MITMs con TLS.
  • Estoy protegido de SSH y la aplicación BFAs con SSHGuard y WordFence.
  • Me protejo de Backdoors e inyecciones de DB (como Inyecciones de SQL ) con varias políticas como uso mínimo de módulos, formularios simples y unificados (y honeypots si es necesario) y actualizaciones automáticas a través de unattended-upgrades y WP-CLI para WordPress.
  • Si no estoy equivocado, WordFence también protege de uno o más tipos de ataques DoS de la capa de aplicación .

Actualmente no veo ninguna razón por la que los sitios web que tengo alojados deban ser atacados en un Distributed DoS (para Por ejemplo, no tengo ninguna organización dirigida por otra organización).

Y, sin embargo, Me temo de DoS en general; especialmente de un DoS de nivel de red de una máquina única .

Mi pregunta

¿Cuál será la mejor manera de monitorear y repeler cualquier ataque simple (por ejemplo, una sola máquina) de un DoS a nivel de red?

Preferiría que no use herramientas externas como CloudFlare ya que sus políticas pueden cambiar y pueden costar dinero de repente o cambiar los precios.

Idealmente, desearía instalar una utilidad de Linux que funcione automáticamente, "tal cual", monitoreando y repeliendo a los atacantes desde iptables (o nftables en el futuro ) pero tengo la impresión de que dicha herramienta no está disponible con la tecnología actual. ACTUALIZACIÓN PARA ESTE PASAJE: parece que dicha herramienta, si existiera, no sería suficiente de todos modos porque necesito una herramienta de nivel de red fuera del sistema operativo (una herramienta que DigitalOcean o cualquier proveedor de hosting similar debería proporcionar En mi opinión, y eso sería controlable desde su interfaz / GUI).

    
pregunta user9303970 30.04.2018 - 17:44
fuente

3 respuestas

4

En primer lugar, el usuario 9600383 tiene razón: el DDoS es barato y fácil de realizar, y se equivoca al descontarlo.

Por ataque de nivel de red, asumo que te refieres a un ataque en la Capa 3 o inferior en lugar de algo que se dirige directamente a tu sitio / aplicación.

Si proviene de una única dirección IP que no satura la ruta de tu red, puedes configurar Fail2Ban y los límites de velocidad. Fail2Ban se encargará del abuso del protocolo (como los intentos de SSL excesivos, que pueden desperdiciar el ancho de banda y la CPU), y los límites de velocidad reducirán el tráfico IP sin formato.

Sin embargo, tiene un problema mucho mayor si el atacante es capaz de saturar su conexión de red. La única forma de proporcionar un servicio confiable es hacer que su proveedor de red bloquee los paquetes en su extremo.

No hay una solución estándar para esto, y tendría que trabajar con su proveedor de red para determinar si una solución automatizada es incluso posible . La respuesta a menudo es "No" según mi experiencia, pero quizás ofrezcan un mejor soporte en estos días. Han pasado algunos años desde que trabajé directamente con ellos.

Para un atacante DoS / DDoS competente, la mayoría de los sitios son objetivos fáciles. La incapacidad de un host web típico para responder significativamente a nivel de red les da un método de ataque muy simple y confiable.

CloudFlare existe porque pueden detectar automáticamente un ataque y ejecutar contramedidas que no están disponibles para el administrador de un solo servidor. Su pan y mantequilla es algo que simplemente no se puede duplicar.

Sugiero Fail2Ban y / o los límites de velocidad como sus mejores soluciones independientes, pero serán inadecuadas contra cualquier atacante medio decente.

    
respondido por el DoubleD 08.05.2018 - 16:25
fuente
5

Un DoS es diferente de las otras preocupaciones que mencionas.

Con MiTM, cero es el único número aceptable de ataques exitosos. Cero es el único número aceptable de inyecciones de SQL exitosas. Cero es el único número aceptable de contraseñas forzadas brutas, y por eso incluso se somete a forzamiento brusco de contraseñas, no se permiten contraseñas ni IP en la lista blanca.

Con DoS ... si es una infraestructura que brinda soporte a clientes comerciales, entonces, la pérdida de solicitudes transitorias cuesta directamente el dinero. Esa es una métrica que uno puede preocuparse.

Si el servicio es el mejor esfuerzo, es probable que haya un nivel de DoS "exitosas" que puede ignorar. Hay una gradación de aceptabilidad para el riesgo.

Para tener algún seguro, puede aplicar límites de velocidad por IP a nivel de red, por ejemplo. enlace , y puede aplicar límites de tasa por IP en el nivel de aplicación en nginx , p.ej enlace o con cualquier complemento de límite de tasa para Wordpress.

Pero como es amorfo, destila la preocupación en una métrica que exprese con precisión la distinción entre cuidar y no cuidar de ti. Esta medida puede ser simplemente un informe de un servicio de ping web que le proporciona un puntaje de disponibilidad.

    
respondido por el Jonah Benton 08.05.2018 - 04:19
fuente
5

No hay razón para creer que DDoS no sucederá & solo DoS lo haría. Un solo atacante, que posea una botnet es suficiente. O los motores de búsqueda como Shodan ayudarán a un solo atacante enfurecido a comprometer a las máquinas remotas para lanzar DDoS.

Si no tienes claro esto, Google "DDoS usa Memcached servidores". Quizás pueda leer sobre los ataques masivos de DDoS ocurridos hace algunas semanas en sitios web como Github.

Llegando a la solución:

  • Como ya se ha sugerido, es obligatorio imponer un límite por IP. Por ejemplo, si realiza numerosas búsquedas de Google en un corto período de tiempo, Google le pedirá que resuelva el desafío ReCaptcha.

  • No estoy seguro de cómo funciona la protección DDoS de Cloudflare. Pero muchas veces lo he visto redirigir al sitio después de 5 segundos. Podría ser posible prevenir los DDoS al terminar las conexiones que envían cantidades de datos arbitrariamente grandes. [como en el caso de los servidores Memcached].

  • Evalúe sus medidas de protección con todas las herramientas disponibles. Al menos con herramientas de código abierto como OWASP ZAP, w3af, etc., a veces un script DoS simple no distribuido como hulk.py (también hay una versión modificada en Sourceforge) puede romper las medidas de seguridad integrales.

Sin embargo, creo que al establecer un límite por IP es inevitable para evitar los niños de secuencias de comandos, etc., por sí solo no puede proporcionar suficiente protección ya que la suplantación de direcciones IP no es un trabajo muy grande, y la probabilidad de DDoS no puede ser descuidado.

    
respondido por el user9600383 08.05.2018 - 12:05
fuente

Lea otras preguntas en las etiquetas