«El chico que nos hizo el sitio web ya configuró la protección contra DDoS».
«¿Pero tenemos protección contra DDoS, por qué se cayó el sitio?»
«¿Cuántos miles quiere Qrator?»
Para responder adecuadamente a tales preguntas del cliente/jefe, sería bueno saber qué es lo que se oculta tras el término «protección contra DDoS». La elección de los servicios de protección se asemeja más a la elección de un medicamento por un médico que a elegir una mesa en IKEA.
He estado apoyando sitios web durante 11 años, he sobrevivido a cientos de ataques a los servicios que mantengo, y ahora hablaré un poco sobre la cocina interna de la protección.
Ataques regulares. 350k req totales, 52k req legítimas.
Los primeros ataques aparecieron prácticamente al mismo tiempo que Internet. El DDoS se convirtió en un fenómeno masivo a finales de los años 2000 (eche un vistazo a ).
A partir de 2015-2016 casi todos los proveedores de alojamiento implementaron protección contra ataques DDoS, al igual que la mayoría de los sitios notables en sectores competitivos (haga un whois por IP de los sitios eldorado.ru, leroymerlin.ru, tilda.ws, verá las redes de los operadores de protección).
Si hace 10-20 años la mayoría de los ataques podían ser repelidos en el mismo servidor (evalúe las recomendaciones del administrador de sistemas de Lenta.ru, Maxim Moshkov, de los años 90: ), hoy las tareas de protección se han vuelto más complejas.
Tipos de ataques DDoS desde la perspectiva de la elección del operador de protección.
Ataques a nivel L3 / L4 (según el modelo OSI).
— Inundación UDP desde un botnet (se envían muchos requests directamente desde dispositivos infectados al servicio atacado, saturando el canal de los servidores);
— Amplificación DNS/NTP/etc (se envían muchos requests desde dispositivos infectados a DNS/NTP/etc vulnerables, la dirección del remitente es falsificada, una multitud de paquetes con respuestas a los requests saturan el canal del objetivo del ataque; así se llevan a cabo los ataques más masivos en Internet actualmente);
— Inundación SYN/ACK (se envían muchos requests para establecer una conexión a los servidores atacados, lo que provoca el desbordamiento de la cola de conexiones);
— Ataques con fragmentación de paquetes, ping de la muerte, inundación de ping (por favor, búsquelo);
— etc.
Estos ataques tienen como objetivo «abrumar» el canal del servidor o «matar» su capacidad de recibir nuevo tráfico.
Aunque la inundación SYN/ACK y la amplificación son muy diferentes, muchas empresas luchan contra ellas de manera similar. Los problemas surgen con los ataques del siguiente grupo.
Ataques a L7 (nivel de aplicación).
— inundación http (si se ataca un sitio web o algún API http);
— ataque a las vulnerabilidades del sitio web (que no tienen caché, que cargan mucho el sitio, etc.).
El objetivo es hacer que el servidor 'trabaje duro', procesando muchas 'solicitudes que parecen reales' y quedándose sin recursos para las solicitudes legítimas.
Aunque hay otros tipos de ataques, estos son los más comunes.
Los ataques serios a nivel L7 se crean de manera única para cada proyecto atacado.
¿Por qué 2 grupos?
Porque hay muchos que pueden defender bien los ataques a nivel L3/L4, pero o no se ocupan de la protección a nivel de aplicación (L7), o tienen dificultades para manejarlo en comparación con las alternativas.
Quién es quién en el mercado de protección contra DDoS
(mi opinión personal)
Protección a nivel L3/L4
Para defenderse de ataques con amplificación ('colapso' del canal del servidor), se requieren anchos de banda amplios (muchos de los servicios de protección se conectan a la mayoría de los grandes proveedores de troncal en Rusia y tienen canales con capacidad teórica superior a 1 Tbps). No olvidemos que los ataques de amplificación muy raramente duran más de una hora. Si usted es Spamhaus y todo el mundo no lo quiere, sí, pueden intentar tumbar sus canales durante varios días, incluso arriesgando su sobrevivencia a largo plazo con el botnet mundial utilizado. Si solo tiene una tienda en línea, incluso si es mvideo.ru, 1 Tbps por varios días no lo verá muy pronto (espero).
Para defenderse de ataques con inundaciones SYN/ACK, fragmentación de paquetes, etc., se requiere equipo o sistemas de software para la detección y mitigación de esos ataques.
Este tipo de equipo es fabricado por muchos (Arbor, hay soluciones de Cisco, Huawei, implementaciones de software de Wanguard, etc.), muchos operadores troncal ya lo han instalado y venden servicios de protección contra DDoS (sé de instalaciones en Rostelecom, Megafon, TTK, MTS, casi todos los grandes proveedores lo hacen, y también los hosting con su protección tipo OVH.com, Hetzner.de, yo mismo he lidiado con protección en ihor.ru). Algunas empresas desarrollan sus propias soluciones de software (tecnologías como DPDK permiten procesar tráfico en decenas de gigabits en una sola máquina física x86).
Entre los jugadores conocidos, todos son más o menos efectivos para repeler ataques DDoS L3/L4. No puedo decirte quién tiene la mayor capacidad de canal (esa es información confidencial), pero normalmente no es tan importante, y la diferencia radica en qué tan rápido se activa la protección (inmediatamente o después de unos minutos de tiempo de inactividad del proyecto, como en Hetzner).
La cuestión es cuán bien se realiza esto: un ataque de amplificación se puede repeler bloqueando el tráfico de los países con la mayor cantidad de tráfico perjudicial, o se puede filtrar solo el tráfico realmente innecesario.
Pero, según mi experiencia, todos los jugadores serios del mercado manejan esto sin problemas: Qrator, DDoS-Guard, Kaspersky, G-Core Labs (anteriormente SkyParkCDN), ServicePipe, Stormwall, Voxility, etc.
No he tratado con la protección de operadores como Rostelecom, Megafon, TTK, Beeline; según los comentarios de mis colegas, proporcionan estos servicios con bastante calidad, aunque de vez en cuando se nota la falta de experiencia: a veces hay que ajustar algo a través del soporte del operador de protección.
Algunos operadores ofrecen un servicio separado de 'protección contra ataques a nivel L3/L4', o 'protección de canales', que es mucho más barato que la protección a todos los niveles.
¿Cómo un proveedor no troncal repela ataques de cientos de Gbit, si no tiene sus propios canales?Un operador de protección puede conectarse a cualquiera de los grandes proveedores y repeler ataques 'a su costa'. Tendrá que pagar por el canal, pero no siempre se utilizarán esos cientos de Gbit, hay opciones para reducir significativamente el costo de los canales en este caso, por lo que el esquema sigue siendo viable.
Recibía este tipo de informes de la protección L3/L4 superior de manera regular, mientras mantenía los sistemas de un proveedor de hosting.
Protección a nivel L7 (nivel de aplicación)
Las ataques a nivel L7 (nivel de aplicación) son repelidos con calidad y estabilidad solo por unas pocas entidades.
Tengo una experiencia real bastante amplia con
— Qrator.net;
— DDoS-Guard;
— G-Core Labs;
— Kaspersky.
Cobran por cada megabit de tráfico limpio, y un megabit cuesta alrededor de varios miles de rublos. Si tienes al menos 100 megabits de tráfico limpio — oh. La protección será muy cara. Puedo contar en próximos artículos cómo diseñar aplicaciones para ahorrar mucho en la capacidad de los canales de protección.
El verdadero «rey de la montaña» es Qrator.net, los demás están rezagados. Qrator es, por ahora, la única opción en mi experiencia que ofrece un porcentaje cercano a cero de falsas alarmas, aunque son varias veces más caros que otros actores del mercado.
Otros operadores también ofrecen protección de calidad y estable. Muchos servicios en nuestro soporte (incluyendo algunos muy conocidos en el país) están bajo la protección de DDoS-Guard, G-Core Labs y están bastante satisfechos con los resultados obtenidos.
Ataques repelidos por Qrator
También tengo experiencia con operadores de protección más pequeños como cloud-shield.ru, ddosa.net, miles de ellos. Definitivamente no los recomendaría, ya que mi experiencia no es muy amplia, pero puedo hablar sobre los principios de su funcionamiento. A menudo, el costo de su protección es de 1 a 2 órdenes de magnitud más bajo que el de los grandes jugadores. Generalmente, compran un servicio de protección parcial (L3/L4) de algún proveedor más grande y luego crean su propia defensa contra ataques en niveles más altos. Esto puede ser bastante efectivo y puedes obtener un buen servicio a un menor costo, pero son empresas pequeñas con un personal reducido, así que tenlo en cuenta.
¿Cuál es la dificultad de repeler ataques en el nivel L7?
Todas las aplicaciones son únicas, y es necesario permitir el tráfico válido para ellas y bloquear el tráfico dañino. Descartar definitivamente a los bots no siempre es posible, por lo que es necesario utilizar muchos, de verdad MUCHOS niveles de filtrado de tráfico.
En su momento, era suficiente el módulo nginx-testcookie (), y aún ahora es suficiente para repeler un gran número de ataques. Cuando trabajaba en la industria de hosting, construía la protección L7 precisamente sobre nginx-testcookie.
Lamentablemente, los ataques se han vuelto más complicados. testcookie utiliza verificaciones de bots basadas en JS, y muchos bots modernos pueden superarlas con éxito.
Las botnets atacantes también son únicas, y es necesario considerar las características de cada gran botnet.
Amplificación, inundación directa desde la botnet, filtrado de tráfico de diferentes países (filtrado diferente para diferentes países), inundación SYN/ACK, fragmentación de paquetes, ICMP, inundación http, y a nivel de aplicación/http se pueden idear un número ilimitado de ataques diferentes.
En total, a nivel de protección de canales, equipo especializado para la limpieza del tráfico, software especial y configuraciones adicionales de filtrado para cada cliente, puede haber decenas y cientos de niveles de filtrado.
Para gestionar correctamente esto y ajustar adecuadamente la configuración de filtrado para diferentes usuarios, se necesita una gran experiencia y un personal calificado. Incluso un gran operador que decida ofrecer servicios de protección no puede simplemente "llenar el problema con dinero": la experiencia se adquiere en los sitios afectados y en los falsos positivos del tráfico legítimo.
No existe un botón de "repeler DDoS" para el operador de protección; hay una gran cantidad de herramientas que deben saber utilizar.
Y un ejemplo adicional.
Un servidor sin protección fue bloqueado por el proveedor de hosting durante un ataque de 600 Mbit.
(La "pérdida" de tráfico no es notoria, ya que solo un sitio fue atacado, se retiró temporalmente del servidor y el bloqueo fue levantado en menos de una hora).
Este mismo servidor está protegido. Los atacantes se "rindieron" después de un día de ataques repelidos. El ataque resultó no ser el más fuerte.
El ataque y la defensa L3/L4 son más triviales, en gran medida dependen del ancho de banda, los algoritmos de detección y filtrado de ataques.
Los ataques L7 son más complejos y originales, dependen de la aplicación atacada, las capacidades y la creatividad de los atacantes. La defensa contra ellos requiere un gran conocimiento y experiencia, y el resultado puede no ser inmediato ni garantizado. Hasta que Google no desarrolle otra red neuronal para su protección.
Fuente: habr.com
