Recientemente para ayudar a algunos clientes para hacer frente a los ataques de rastreadores, se encontró que muchas personas pensaban en la CDN de alta defensa en todo está bien, los resultados fueron rastreados a dudar de la vida. Una estación de comercio electrónico fue incluso rastreado a través de la base de datos de precios, los competidores toman directamente los datos para hacer precios dinámicos, el jefe casi puso el equipo técnico sacrificado al cielo.
CDN de alta defensa de hecho puede llevar DDoS, pero para hacer frente a los rastreadores de esta cosa debe ser utilizado inteligentemente. He probado y encontrado que simplemente por la restricción de flujo IP no puede evitar que los rastreadores avanzados - la gente casualmente obtener un grupo de proxy será capaz de romper sus reglas. La verdadera estrategia eficaz, usted tiene que comenzar a partir de la combinación de la identificación de la UA y la limitación de la frecuencia.
El reconocimiento de UA no consiste simplemente en emparejar palabras clave
Muchos equipos configuran sus reglas de UA para que sólo bloqueen las peticiones que digan claramente ”Python” o ”curl”. Hoy en día, los rastreadores más avanzados son capaces de falsificar UA, por ejemplo, haciéndose pasar por un navegador convencional:
¿Puedes decir si es una persona real o un crawler con sólo mirar esto? Hice pruebas en CDN5 el año pasado y el porcentaje de solicitudes de rastreadores que falsificaban la UA llegaba a 83%. así que la clave tiene que estar en el perfil de comportamiento: una persona normal no utilizaría la UA de Chrome y, sin embargo, solicitaría la interfaz API 10 veces por segundo.
Límites de frecuencia para jugar una estrategia dinámica
Establecer una regla rígida de ”5 peticiones por segundo” puede perjudicar a los usuarios normales. Especialmente cuando hay promociones, la frecuencia de los usuarios reales también se disparará. He practicado el algoritmo de frecuencia dinámica en el nodo de 08Host:
Este conjunto de configuraciones ayudó a un sitio de noticias a reducir el número de falsos positivos en 921 TP3T, mientras que la tasa de interceptación del crawler también aumentó en 371 TP3T.
La biblioteca de huellas dactilares de UA en el mundo real debe actualizarse continuamente.
Los marcos de rastreo ahora están aprendiendo a rotar UA, pero cada marco todavía tiene características de huellas dactilares. Por ejemplo, Puppeteer por defecto con la palabra HeadlessChrome, aunque hoy en día los rastreadores avanzados eliminarán deliberadamente esta marca, pero a través de las características de ejecución de JavaScript todavía se puede detectar.
La base de reglas de detección que mantengo en la plataforma CDN07 contiene más de 1700 huellas dactilares, con algunas adiciones recientes que incluyen:
Estas reglas parecen sencillas, pero en realidad hay lecciones de sangre y lágrimas detrás de cada una. Un cliente fue engañado por un crawler que utilizaba un UA de navegador antiguo para saltarse las reglas, y al final sólo gracias a la detección de las características del navegador la interceptación tuvo éxito.
Los límites de frecuencia deben diseñarse por capas
No utilice el mismo conjunto de reglas de frecuencia para todas las interfaces. La interfaz de inicio de sesión tiene un nivel de riesgo completamente distinto al de la página de detalles del producto, y yo suelo hacer tres niveles de límites de frecuencia para mis clientes:
Los recursos estáticos se relajan a 50r/s, la API se controla estrictamente a 10r/s, y la interfaz de inicio de sesión debe limitarse a 3r/s o menos. Es especialmente importante proteger la interfaz CAPTCHA: muchos rastreadores refrescarán violentamente el CAPTCHA, y esto debe limitarse a 1r/10s.
Ejemplo de configuración en CDN5:
Nunca confíe en una lista blanca de UA.
Algunos programas sugieren que sólo se liberen los UA comunes de los navegadores, y no cabe duda de que algo va a ocurrir con este enfoque único. Hoy en día, muchos rastreadores legítimos (motores de búsqueda, sitios de comparación de precios) necesitan un tratamiento especial. He visto cómo un sitio bloqueaba Googlebot y, como resultado, el tráfico natural caía en picado 40%.
Lo correcto es verificar la autenticidad de los rastreadores conocidos. Por ejemplo, Googlebot ofrece un método de verificación:
Otros como Bingbot tienen mecanismos de validación similares, esta parte debe configurarse manualmente y no puede depender de las reglas por defecto del CDN.
La verificación de la firma del navegador es el arma definitiva
Los rastreadores avanzados son ahora perfectamente capaces de falsificar UA e IP, y al final depende del fingerprinting del navegador identificarlos. Las características del entorno del navegador se detectan a través de retos de JavaScript, como comprobar si navigator.plugins está completo, si el renderizador WebGL coincide, etc.
En CDN07 se puede configurar así:
Esta solución ha sido probada para bloquear 99.9% navegadores sin cabeza, pero tenga en cuenta el impacto en SEO, es mejor poner en la lista blanca los rastreadores de motores de búsqueda conocidos.
No olvide controlar e iterar
La tecnología de rastreo evoluciona constantemente y las reglas que funcionaron el mes pasado pueden no funcionar este mes. Hay que disponer de un sistema de supervisión para vigilar estas métricas:
Porcentaje de solicitudes anómalas, tasa de activación de CAPTCHA, distribución de la frecuencia de solicitudes entre interfaces. Suelo hacer Kanban en tiempo real en Grafana y ajustar las reglas inmediatamente cuando encuentro anomalías.
Recientemente se encontró que el nuevo rastreador comenzó a simular la trayectoria del ratón, la próxima vez que hablar de cómo utilizar la biometría de comportamiento para defender. Hoy en día, incluso las CDN tienen que ”prevenir a los compañeros de equipo”: ¡algunos rastreadores incluso se disfrazan de los propios robots de supervisión de las CDN!
Una protección realmente eficaz es siempre una combinación de estrategias en varios niveles: detección de UA para filtrar a los rastreadores de gama baja, restricciones de frecuencia para evitar ataques intermedios y autenticación del navegador para eliminar a los jugadores avanzados. Por último, hay una vía de escape: en caso de que un usuario real sea bloqueado por error, al menos hay que dar a la gente un canal para quejarse.

