Está experimentando un ataque de denegación de servicio. Si ve tráfico proveniente de múltiples redes (diferentes IP en diferentes subredes), tiene una denegación de servicio distribuida (DDoS); si todo proviene del mismo lugar, tiene un DoS simple y antiguo. Puede ser útil verificar, si puede; use netstat para verificar. Sin embargo, esto puede ser difícil de hacer.
La denegación de servicio generalmente se divide en un par de categorías: basadas en el tráfico y en la carga. El último elemento (con el servicio de bloqueo) es DoS basado en exploits y es bastante diferente.
Si está tratando de precisar qué tipo de ataque está ocurriendo, es posible que desee capturar algo de tráfico (usando wireshark, tcpdump o libpcap). Debería, si es posible, pero también tener en cuenta que probablemente capturará una gran cantidad de tráfico.
En la mayoría de los casos, estos provendrán de botnets (redes de hosts comprometidos bajo el control central de algún atacante, cuya oferta harán). Esta es una buena manera para que el atacante adquiera (muy barato) el ancho de banda ascendente de muchos hosts diferentes en diferentes redes para atacarlo, mientras cubre sus pistas. El cañón de iones de órbita baja es un ejemplo de una botnet (a pesar de ser voluntario en lugar de derivado de malware); Zeus es más típico.
Basado en el tráfico
Si está bajo un DoS basado en el tráfico, está descubriendo que hay tanto tráfico en su servidor que su conexión a Internet está completamente saturada. Hay una alta tasa de pérdida de paquetes al hacer ping a su servidor desde otro lugar, y (dependiendo de los métodos de enrutamiento en uso) a veces también se observa una latencia realmente alta (el ping es alto). Este tipo de ataque suele ser un DDoS.
Si bien este es un ataque realmente "fuerte", y es obvio lo que está sucediendo, es difícil de mitigar para un administrador del servidor (y básicamente imposible de mitigar para un usuario de hosting compartido). Necesitará ayuda de su ISP; hágales saber que usted está bajo un DDoS y podrían ayudarlo.
Sin embargo, la mayoría de los ISP y proveedores de tránsito se darán cuenta de manera proactiva de lo que está sucediendo y publicarán una ruta de agujero negro para su servidor. Lo que esto significa es que publican una ruta a su servidor con el menor costo posible, a través de 0.0.0.0
: hacen que el tráfico a su servidor ya no sea enrutable en Internet. Estas rutas son típicamente / 32s y eventualmente se eliminan. Esto no te ayuda en absoluto; El propósito es proteger la red del ISP del diluvio. Mientras dure, su servidor perderá efectivamente el acceso a Internet.
La única forma en que su ISP (o usted, si tiene su propio AS) será capaz de ayudarlo si está utilizando modeladores de tráfico inteligentes que pueden detectar y limitar el tráfico probable de DDoS. No todos tienen esta tecnología. Sin embargo, si el tráfico proviene de una o dos redes, o un host, también podrían bloquear el tráfico que tiene delante.
En resumen, hay muy poco que pueda hacer sobre este problema. La mejor solución a largo plazo es alojar sus servicios en muchas ubicaciones diferentes en Internet, que tendrían que ser DDoS de forma individual y simultánea, haciendo que el DDoS sea mucho más costoso. Las estrategias para esto dependen del servicio que necesita proteger; El DNS se puede proteger con múltiples servidores de nombres autorizados, SMTP con registros MX de respaldo e intercambiadores de correo, y HTTP con DNS de round-robin o multihoming (pero de todos modos puede notarse cierta degradación durante el tiempo que sea necesario).
Los equilibradores de carga rara vez son una solución efectiva para este problema, porque el equilibrador de carga en sí está sujeto al mismo problema y simplemente crea un cuello de botella. Las tablas IP u otras reglas de firewall no ayudarán porque el problema es que su tubería está saturada. Una vez que su firewall ve las conexiones, ya es demasiado tarde ; se ha consumido el ancho de banda en su sitio. No importa lo que hagas con las conexiones; el ataque se mitiga o finaliza cuando la cantidad de tráfico entrante vuelve a la normalidad.
Si puede hacerlo, considere usar una red de distribución de contenido (CDN) como Akamai, Limelight y CDN77, o use un servicio de limpieza DDoS como CloudFlare o Prolexic. Estos servicios toman medidas activas para mitigar estos tipos de ataques, y también tienen tanto ancho de banda disponible en tantos lugares diferentes que generalmente no es posible inundarlos.
Si decide usar CloudFlare (o cualquier otro CDN / proxy) recuerde ocultar la IP de su servidor. Si un atacante descubre la IP, puede nuevamente DDoS su servidor directamente, sin pasar por CloudFlare. Para ocultar la IP, su servidor nunca debe comunicarse directamente con otros servidores / usuarios a menos que estén seguros. Por ejemplo, su servidor no debe enviar correos electrónicos directamente a los usuarios. Esto no se aplica si aloja todo su contenido en el CDN y no tiene un servidor propio.
Además, algunos proveedores de VPS y hosting son mejores para mitigar estos ataques que otros. En general, cuanto más grandes sean, mejor serán en esto; un proveedor que esté muy bien entrenado y tenga mucho ancho de banda será naturalmente más resistente, y uno con un equipo de operaciones de red activo y con personal completo podrá reaccionar más rápidamente.
Basado en la carga
Cuando experimente un DDoS basado en la carga, notará que el promedio de carga es anormalmente alto (o uso de CPU, RAM o disco, dependiendo de su plataforma y los detalles). Aunque el servidor no parece estar haciendo nada útil, está muy ocupado. A menudo, habrá grandes cantidades de entradas en los registros que indican condiciones inusuales. La mayoría de las veces esto proviene de muchos lugares diferentes y es un DDoS, pero ese no es necesariamente el caso. Ni siquiera tiene que haber muchos hosts diferentes .
Este ataque se basa en hacer que su servicio haga muchas cosas costosas. Esto podría ser algo así como abrir una cantidad gigantesca de conexiones TCP y forzarlo a mantener el estado para ellas, o cargar archivos excesivamente grandes o numerosos a su servicio, o tal vez hacer búsquedas realmente costosas, o realmente hacer algo que sea costoso de manejar. El tráfico está dentro de los límites de lo que planeó y puede asumir, pero los tipos de solicitudes que se realizan son demasiado costosos para manejar muchos de ellos .
En primer lugar, que este tipo de ataque es posible es a menudo indicativo de un problema de configuración o errora su servicio Por ejemplo, puede tener activado el registro excesivamente detallado y puede estar almacenando registros en algo en lo que es muy lento escribir. Si alguien se da cuenta de esto y hace muchas cosas que le hacen escribir grandes cantidades de registros en el disco, su servidor se ralentizará. Su software también podría estar haciendo algo extremadamente ineficiente para ciertos casos de entrada; las causas son tan numerosas como hay programas, pero dos ejemplos serían una situación que hace que su servicio no cierre una sesión que de otro modo se haya terminado, y una situación que hace que genere un proceso secundario y lo abandone. Si termina con decenas de miles de conexiones abiertas con estado para realizar un seguimiento o decenas de miles de procesos secundarios, se encontrará con problemas.
Lo primero que puede hacer es utilizar un firewall para eliminar el tráfico . Esto no siempre es posible, pero si hay una característica que puede encontrar en el tráfico entrante (tcpdump puede ser bueno para esto si el tráfico es ligero), puede soltarlo en el firewall y ya no causará problemas. La otra cosa que debe hacer es corregir el error en su servicio (póngase en contacto con el proveedor y prepárese para una larga experiencia de soporte).
Sin embargo, si se trata de un problema de configuración, comience allí . Desactive el inicio de sesión en los sistemas de producción a un nivel razonable (dependiendo del programa, este suele ser el predeterminado, y por lo general implicará asegurarse de que los niveles de inicio de sesión "depuración" y "detallado" estén desactivados; si todo lo que hace un usuario se registra exactamente fino detalle, su registro es demasiado detallado). Además, verifique el proceso secundario y los límites de solicitud , posiblemente acelere las solicitudes entrantes, las conexiones por IP y la cantidad de procesos secundarios permitidos, según corresponda.
No hace falta decir que cuanto mejor configurado y mejor provisto esté su servidor, más difícil será este tipo de ataque. Evite ser tacaño con RAM y CPU en particular. Asegúrese de que sus conexiones a cosas como bases de datos de fondo y almacenamiento en disco sean rápidas y confiables.
Basado en exploits
Si su servicio se cuelga misteriosamente extremadamente rápido después de ser presentado, particularmente si puede establecer un patrón de solicitudes que preceden al bloqueo y la solicitud es atípica o no coincide con los patrones de uso esperados, es posible que esté experimentando un DoS basado en exploits. Esto puede provenir de tan solo un host (con casi cualquier tipo de conexión a Internet), o de muchos hosts.
Esto es similar a un DoS basado en la carga en muchos aspectos, y tiene básicamente las mismas causas y mitigaciones. La diferencia es simplemente que, en este caso, el error no hace que su servidor sea un desperdicio, sino que muera. El atacante generalmente está explotando una vulnerabilidad de bloqueo remota, como una entrada confusa que causa una anulación de referencia o algo en su servicio.
Maneje esto de manera similar a un ataque de acceso remoto no autorizado. Cortafuegos contra los hosts de origen y el tipo de tráfico si se pueden fijar. Utilice la validación de proxies inversos si corresponde. Reúna evidencia forense (intente capturar parte del tráfico), presente una multa por error con el proveedor y considere presentar también una queja de abuso (o queja legal) contra el origen.
Estos ataques son bastante baratos de montar, si se puede encontrar un exploit, y pueden ser muy potentes, pero también relativamente fáciles de rastrear y detener. Sin embargo, las técnicas que son útiles contra los DDoS basados en el tráfico son generalmente inútiles contra los DoS basados en exploits.