¿Cómo puedo evitar un ataque DDOS en Amazon EC2?

46

Uno de los servidores que uso está alojado en la nube Amazon EC2. Cada pocos meses parece que tenemos un ataque DDOS en este servidor. Esto ralentiza el servidor increíblemente. Después de unos 30 minutos, y a veces un reinicio más tarde, todo vuelve a la normalidad.

Amazon tiene grupos de seguridad y firewall, pero ¿qué más debo tener en un servidor EC2 para mitigar o prevenir un ataque?

De preguntas similares que he aprendido:

  • Limite la tasa de solicitudes / minuto (o segundos) de una dirección IP particular a través de algo como tablas IP (¿o quizás UFW?)
  • Tener suficientes recursos para sobrevivir a tal ataque - o -
  • Posiblemente construya la aplicación web para que sea elástica / tenga un equilibrador de carga elástico y pueda escalar rápidamente para satisfacer una demanda tan alta)
  • Si usa mySql, configure las conexiones de mySql para que se ejecuten secuencialmente de modo que las consultas lentas no bloqueen el sistema

¿Qué más me estoy perdiendo? Me encantaría información sobre herramientas específicas y opciones de configuración (nuevamente, usando Linux aquí), y / o cualquier cosa que sea específica de Amazon EC2.

pd: las notas sobre el monitoreo de DDOS también serían bienvenidas, ¿quizás con nagios? ;)

cwd
fuente
Prevenirlo es casi imposible, pero ciertamente podría disminuir su vulnerabilidad.
Belmin Fernández
1
Muy cierto. Y estaría contento con las respuestas que discuten la disminución de la vulnerabilidad :)
cwd
Para saber cómo prevenirlo, uno necesitaría saber más sobre la naturaleza del ataque. ¿Fue una inundación sincronizada? ¿Hubo una página web que es costosa que fue golpeada? ¿fue algún otro servicio?
estofado
Creo que era una página web pero no estoy seguro. También agradecería consejos sobre cómo supervisarlos e investigarlos. Algunos de los registros de acceso ya se han eliminado. ¿Qué más debería estar buscando?
cwd
y, de hecho, si un reinicio soluciona el problema, entonces no sé qué podría ser, excepto que tal vez su servidor tiene una pérdida de recursos en alguna parte. Un reinicio ciertamente no puede detener un DDoS por sí solo. ¿Cómo sabes que esto es un DDoS?
estofado

Respuestas:

36

Un DDOS (o incluso un DOS), en su esencia, es un agotamiento de recursos. Nunca podrá eliminar los cuellos de botella, ya que solo puede alejarlos más.

En AWS, tiene suerte porque el componente de red es muy fuerte; sería muy sorprendente saber que el enlace ascendente estaba saturado. Sin embargo, la CPU, así como los discos de E / S, son mucho más fáciles de inundar.

El mejor curso de acción sería iniciar un monitoreo (local como SAR, remoto con Nagios y / o ScoutApp) y algunas instalaciones de registro remoto (Syslog-ng). Con dicha configuración, podrá identificar qué recursos se saturan (socket de red debido a la inundación de Syn; CPU debido a consultas SQL erróneas o rastreadores; ram debido a ...). No olvide tener su partición de registro (si no tiene habilitado el registro remoto) en un volumen EBS (para luego estudiar los registros).

Si el ataque llega a través de las páginas web, el registro de acceso (o el equivalente) puede ser muy útil.

CloudWeavers
fuente
Es posible que desee consultar la sección "basada en carga" de serverfault.com/a/531942/87017
Pacerier
24

También puede aislar aún más sus instancias EC2 colocándolas detrás de un Elastic Load Balancer y solo aceptando tráfico de la instancia ELB. Esto pone más responsabilidad en Amazon para administrar los ataques DDOS.

Supongo que todavía tendrá SSH abierto para todos, por lo que es probable que todavía vea algún tráfico malicioso allí, a menos que pueda bloquear ese puerto a algunas IP estáticas. Puede cambiar el puerto SSHd a algo más oscuro (es decir, algo diferente a 22) para reducir aún más los accesos DDOS (la mayoría de los bots solo verifican los puertos conocidos).

También mencionaré fail2ban, que puede monitorear registros y modificar temporalmente sus tablas de IP para bloquear IP específicas (por ejemplo, si ha habido 6 intentos fallidos de SSH en su host desde una sola dirección IP, puede bloquear esa IP por 30 minutos más o menos). Tenga en cuenta que (como comentó astutamente Jordan) fail2ban probablemente no sea apropiado para bloquear el tráfico proxy (por ejemplo, el de un ELB) porque bloqueará la IP del proxy, no necesariamente la IP remota original.

No lo he usado, pero también vale la pena investigar mod_evasive de Apache; sin embargo, puede tener la misma debilidad que fail2ban cuando se trata de bloqueo basado en IP.

jstell
fuente
+1 gracias. De hecho, tuve ssh cerrado;)
cwd
1
Tenga en cuenta que si está detrás de un ELB, fail2ban no funcionará, porque generalmente funciona bloqueando una IP en iptables. Pero la IP siempre será la de su ELB. Me di cuenta de eso después de intentar agregar fail2ban a mi configuración. No funciona si el usuario solo accede a través del ELB.
Jordan Reiter
5

Si está utilizando Apache, sugiero usar mod_security . Empaquetado por la mayoría de los proveedores, el conjunto de reglas básicas hace un trabajo fantástico.

Otro paso de endurecimiento es limitar las solicitudes a nivel del servidor web. Nginx ., Apache puede limitar y limitar las solicitudes entrantes.

Shyam Sundar CS
fuente
increíble - esas parecen fantásticas opciones gracias!
cwd
2

La solución que uso para bloquear las IP de actividad incorrecta en tiempo real que salen de AWS y otras es esta ... En mi Firewall CSF en la configuración para LFD Blocklists, uso una lista que se encuentra aquí: http://myip.ms/browse/blacklist/ Blacklist_IP_Blacklist_IP_Addresses_Live_Database_Real-time

Descargar Blacklist para CSF Firewall » http://myip.ms/files/blacklist/csf/latest_blacklist.txt

No más tráfico escandalosamente odioso de AWS.

UlisesGruño
fuente
1
Esto no responde la pregunta.
Kasperd
2

Soy parcial, ya que trabajo para una red de entrega de contenido como ingeniero de preventas de seguridad.

Sin embargo, aprovechar una solución de mitigación de Ddos en una red de entrega de contenido garantiza que nunca se quede sin recursos en el origen. Es similar a colocar un equilibrador de carga F5 frente a su sitio, pero se extiende a miles de ubicaciones en todo el mundo.

Un buen cdn le permitirá ocultar el origen con una lista blanca que instalará en el firewall aws. Entonces, cuando los atacantes realizan su reconocimiento en Amazon, su dirección IP aparecerá vacía ya que todo estará bloqueado.

Por lo tanto, los ataques Ddos se bloquean cuando el tráfico llega a un nodo lo más cerca posible del atacante. Esto asegura que mitigue los ataques Ddos tan lejos del activo que está tratando de proteger.

Un buen cdn también puede realizar comprobaciones de estado y tráfico de conmutación por error a otras ubicaciones, por ejemplo, otro ego en el culo, Azure, espacio en rack, capa suave, un DC físico, etc. También debe tener un WAF para garantizar que pueda bloquear los ataques de agotamiento de la capa de aplicación como RUDY, slowpost, slowloris, así como sqli, xss, rfi, lfi, etc.

Por defecto, el cdn también bloquea los ataques de la capa de red como lágrima, ataques icmp, synfloods, etc. Un cdn puede mitigar los ataques Ddos porque tienen una gran capacidad para aceptar las solicitudes, filtrar el mal tráfico y transmitir el buen tráfico. Por lo tanto, los ataques amplificadores como ntp, DNS, ssdp, chargen y snmp pueden ser bloqueados.

El ataque más grande que he visto hasta la fecha ha sido de 321 gbps en julio de 2014. Durante este ataque también hubo un ataque de protocolo DNS a 20 gbps. Por lo tanto, deberá asegurarse de que su infraestructura de DNS también sea resistente para soportar una gran cantidad de solicitudes.

Según la descripción que proporcionó, parece que estuvo sujeto a un ataque de agotamiento, donde el atacante abrió muchos hilos de manera que todos los hilos se consumieron en el servidor web, el servidor de aplicaciones o el firewall. Es similar a algo como un poste lento, slowloris o RUDY.

Para bloquear contra los ataques de agotamiento de la capa de aplicación, necesitará obtener un firewall de aplicación web (WAF). Un firewall de red típico (incluido el firewall de amazons y los firewalls de próxima generación) no podrá bloquearlo. Los firewalls de trabajo enviados en estos días solo pueden bloquear aproximadamente el 30% de todos los ataques en estos días (noviembre de 2014).

James
fuente
0

El firewall del servidor de configuración es el mejor que he visto para la mitigación de DDoS en máquinas virtuales basadas en software en EC2. Si combina la función syslog, puede proteger contra un entorno de carga equilibrada.

http://configserver.com/cp/csf.html

Jeff
fuente
¡Bienvenido a Server Fault! Si bien esto puede responder teóricamente la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace para referencia.
Scott Pack