Recuerdo que el año pasado hubo una plataforma social, debido a que el ataque CC directamente al sistema de comentarios se seque, yo era como miembro de la respuesta de emergencia, fue llamado a altas horas de la noche, vio los gráficos de seguimiento como una montaña rusa se disparó, la carga del servidor al instante estalló la mesa, esa escena es realmente ácido.
¿Cuál es el problema con este ataque CC? Es sólo un montón de peticiones, ¿no? Pero realmente encontrado para saber, que recoge el golpe bajo suave - como la interfaz de comentarios de mensajes, este lugar la interacción del usuario es frecuente, la base de datos lee y escribe mucho, una vez que la avalancha de solicitudes falsas inundado, la respuesta es lenta, o todo el servicio está abajo, el usuario maldice la pequeña materia, la credibilidad de la marca de la aplastado es el verdadero final de la línea.
He encontrado que muchos equipos pensaron que el CDN en una almohada alta, los resultados del ataque CC vino, el CDN primero arrodillarse - porque la configuración no lo hizo bien, el tráfico no se filtra limpio, pero se convirtió en un cómplice. En estos días, incluso el CDN tiene que ‘anti-teammate‘, no creo que los de "protección de una sola tecla" de las palabras fantasmas, defensa precisa tiene que hacerlo usted mismo.
La raíz del problema radica en el hecho de que los ataques CC simulan el comportamiento real de los usuarios, como el envío de comentarios con alta frecuencia y la actualización de páginas, donde los cortafuegos tradicionales pueden matar por error el tráfico normal, y las estrategias ordinarias de almacenamiento en caché CDN no pueden bloquear las solicitudes dinámicas. Las interfaces de comentarios de mensajes suelen ser puntos finales de API, como/api/comentarios/postEl atacante utiliza botnet para enviar solicitudes POST locos, cada uno con un poco de basura de datos, el servidor sólo para procesar estos en la CPU se disparó lleno, la piscina de conexión de base de datos se toma, el usuario normal, naturalmente, atascado.
Por ejemplo, una vez ayudé a una aplicación social para hacer una auditoría, su interfaz de comentarios no limitó la velocidad, un minuto la misma IP puede enviar cientos de comentarios, los resultados fueron hackeados con un proxy IP piscina cepillo salvaje, el pico QPS (consultas por segundo) se precipitó a 100.000 +, el servidor directamente 503. Mirando los registros después, la mayoría de las solicitudes User-Agent son falsificados, la IP de origen en todo el mundo, pero Pattern es muy consistente - intervalos cortos, pequeños paquetes, propósito claro.
Así que la solución tiene que ser en capas: en primer lugar confiar en la CDN para llevar la mayor parte del tráfico, y luego el back-end para hacer las reglas finas.selección de CDN es la clave, he comparado unos pocos - CDN5 en el almacenamiento en caché inteligente y la elasticidad de la expansión del toro, especialmente adecuado para el tráfico repentino; CDN07 WAF (Web Application Firewall) base de reglas se actualiza rápidamente, puede identificar automáticamente las características de CC; 08Host reglas personalizadas rentables y flexibles, adecuados para equipos con presupuestos ajustados. identificar automáticamente características CC; 08Host reglas personalizadas rentables y flexibles, adecuadas para equipos con presupuestos ajustados. Pero elija el que elija, la configuración tiene que ajustarse a mano.
El primer paso es establecer la limitación de velocidad en la consola de gestión de la CDN. Por ejemplo, para/api/comentarios/**El camino, establecer una sola IP hasta 5 solicitudes por segundo, más allá del código de estado de retorno 429. CDN5 interfaz de configuración es intuitiva, a menudo tan establecido:
Nunca establecer demasiado estricto, de lo contrario los usuarios reales serán erróneamente perjudicados si publican comentarios más rápido - He pisado este pozo, una vez que el umbral se fijó en 3, y como resultado, cuando el evento se llevó a cabo, los usuarios eran salvajemente gusto, y las solicitudes normales fueron bloqueados, y el número de teléfono de quejas fue reventado. Más tarde, aprendí la lección y lo ajusté dinámicamente junto con el repositorio de reputación IP.
El segundo paso es habilitar el desafío CAPTCHA. Para el tráfico sospechoso, como un gran número de solicitudes de la misma IP durante un corto período de tiempo, el primer CAPTCHA emergente para frenar el ritmo del ataque. CDN07 apoya esta característica, la configuración de la atención para no afectar a la experiencia del usuario: sólo las solicitudes POST surtan efecto, la solicitud GET (como la lectura de comentarios) de liberación. Ejemplo de código:
Lo he probado y he descubierto que puede eliminar el ataque CC fácil de 90%, pero los ataques avanzados utilizarán OCR para descifrar el captcha, así que hay que combinarlo con otros medios.
El tercer paso es la lista negra de IP y el geobloqueo. Los ataques CC suelen utilizar hosts en la nube o IP proxy, y la lista negra se actualiza en tiempo real a través de fuentes de inteligencia de amenazas como AbuseIPDB. 08Host permite cargar listas de IP personalizadas, y yo escribí un script para sincronizarlas regularmente:
El bloqueo geográfico también es bastante útil: si la empresa sólo presta servicios nacionales, basta con bloquear las IP extranjeras. pero cuidado con matar accidentalmente a los usuarios de VPN, lo mejor es dejar un canal en la lista blanca.
El cuarto paso, la optimización de la estrategia de caché. Los recursos estáticos (como avatares, CSS) caché más largo, interfaces dinámicas (como el envío de comentarios) establecer un caché corto o desactivar la caché, forzando el tráfico para ir WAF detección. cdn5 reglas de caché pueden ser tan emparejados:
De esta manera cada solicitud de comentario vuelve a la fuente para la detección, lo que aumenta la latencia, pero la seguridad en primer lugar. Sugiero el uso de procesamiento asíncrono - los usuarios envían comentarios y luego devolver el éxito primero, el procesamiento de la cola de fondo, para reducir la presión en tiempo real.
El quinto paso es endurecer el back-end; las CDN no son balas de plata, y en última instancia la defensa tiene que volver a los servidores; añada un módulo de limitación de flujo a la capa Nginx, por ejemplo, conlimit_req_zone:
Esta regla significa que el número máximo de solicitudes por IP es de 5 por segundo, la ráfaga se le permite ser 10, más allá de la directa 503. parámetro de ráfaga no debe establecerse de forma indiscriminada - una vez lo puse demasiado grande, el ataque llegó a la cola de retraso, la memoria explotó. Combinado con la supervisión de registro, ajuste en tiempo real.
Por último, supervisión y respuesta. Establezca reglas de alerta: notificación por SMS cuando se produzca un aumento de QPS o se supere la tasa de errores 5xx. Herramientas como Prometheus+Grafana, ejemplo de configuración Kanban:
No esperes a que las cosas vayan mal para comprobarlo: haz un simulacro semanal de ataque y defensa para simular un ataque CC y comprobar la eficacia de la defensa. Mi equipo solía hacer esto todo el tiempo, encontrar un punto en el tiempo para fregar la interfaz y ver si se activaban las reglas.
En resumen, la configuración de CDN de alta defensa social no es un trabajo de una sola vez, hay que seguir iterando. CDN5, CDN07, 08Host tienen su propio otoño, pero la idea central es la misma: defensa por capas, reglas finas, supervisión en tiempo real. Recuerde, la seguridad es un proceso, no un producto. Los comentarios de los usuarios son pequeños, detrás del sistema de confianza, destrozado y luego la reparación puede ser difícil.
Actúe ahora: compruebe la configuración de su CDN, ¿está configurado el límite de velocidad, está actualizada la lista negra de IP? Si no lo has hecho, los hackers pueden venir a ‘saludarte" esta noche. No dudes en dejar un comentario si tienes alguna pregunta: no dejes que la interfaz de comentarios se convierta en una zona catastrófica.

