Recientemente, varios hermanos de aplicaciones sociales vinieron a mí para escupir sus quejas, diciendo que su interfaz API se cepilla todos los días, y la carga de imágenes es tan lento que el usuario maldice directamente. En estos días, no es fácil participar en los productos sociales, los competidores maliciosamente rastreando datos, bandas de chantaje cepillado interfaces, el servidor no se mueve en el tiempo de inactividad, la experiencia del usuario tocó fondo. Eché un vistazo a su arquitectura, buen tipo, servidor API desnuda expuesta directamente a la red pública, ni siquiera una protección decente, esto no está a la espera de ser martillado?
Para ser honesto, los ataques que enfrentan las aplicaciones sociales son mucho más complejas de lo imaginado. interfaces API son vulnerables a los ataques de CC, registro malicioso, SMS bombardeo, rastreo de contenido, y los recursos estáticos, tales como imágenes y videos se enfrentan al riesgo de robo de la cadena, los ataques lentos, y el agotamiento de ancho de banda. Simplemente confiar en la resistencia dura del servidor es simplemente poco realista - más el costo de la máquina en el cielo, no añadir la experiencia de la máquina accidente. He visto demasiados equipos pisando la selección técnica de la fosa, compró una IP de alta defensa, pero encontró que la velocidad de carga de imágenes es conmovedora, con un CDN ordinaria y no puede evitar que la capa API de ataques de precisión.
Una solución realmente eficaz debe tener una gobernanza por capas: la protección de la API debe ser lo suficientemente dura como para identificar a los usuarios normales y el tráfico malicioso; la carga de recursos debe ser lo suficientemente rápida como para garantizar una experiencia de acceso global. Esto debe combinarse con la capacidad de limpieza distribuida y la estrategia de programación inteligente de la CDN de alta defensa, en lugar de limitarse a comprar un gran ancho de banda para terminar el trabajo. A continuación, combinado con la experiencia de las pruebas, hablo de cómo aterrizar.
Empecemos por la lógica central de la protección de API. No te creas esa propaganda de “protección con un solo clic”, los ataques a las API han evolucionado mucho para simular el comportamiento de personas reales. He comprobado que es fácil confiar únicamente en la restricción de la frecuencia IP, especialmente en el caso de las redes de campus y empresariales que comparten salidas NAT. La clave está en construir una imagen a partir de múltiples dimensiones: características temporales de las solicitudes, huellas dactilares de los dispositivos, integridad de la cadena de llamadas a la API e incluso la razonabilidad de la lógica empresarial.
Por ejemplo, la protección de la interfaz de inicio de sesión, además del límite de velocidad regular de la IP, tiene que añadir una verificación secundaria de verificación humana. Cuando la misma IP inicia múltiples solicitudes de inicio de sesión en un corto período de tiempo, la verificación deslizante se activa en primer lugar, si sigue siendo anormal, se solicita el código de verificación SMS. Este conjunto de combinaciones hacia abajo, 90% crash ataque puede ser noqueado. A continuación se muestra la configuración dinámica de limitación de flujo que implementamos en la capa Nginx:
Pero el nivel de Nginx sólo puede hacer la protección básica, las reglas más detalladas tienen que depender de la WAF. mercado de la corriente principal de alta defensa CDN proporcionar la función de reglas personalizadas, he comparado CDN5 y CDN07 dos, la brecha de flexibilidad estrategia es muy grande. motor de reglas CDN5 apoyo extensión de script Lua, puede acoplar datos de control de viento en tiempo real, tales como esta configuración:
La configuración de reglas de CDN07 es bastante débil, aunque la interfaz es elegante, pero la capa inferior todavía se basa en el conjunto de reglas WAF tradicional, que es básicamente ineficaz para atacar la lógica de negocio. La reciente nueva función de borde de 08Host es un punto brillante, que puede ejecutar directamente la lógica de JavaScript en el nodo CDN para lograr el control de riesgo de negocio de, por ejemplo, “si el mismo usuario presta atención a más de 100 personas en 5 minutos, se dispara automáticamente la verificación”. El mismo usuario sigue a más de 100 personas en cinco minutos, a continuación, desencadena automáticamente la verificación de este tipo de control de riesgo empresarial.
La protección de los recursos de imagen es otra historia. La velocidad de carga de imágenes de las APP sociales afecta directamente a la tasa de retención, pero es fácil que se vea arrastrada por el robo de cadenas y los ataques DDoS cuando hay mucho tráfico. Mi sugerencia es separar completamente el tráfico dinámico del estático: las API van en líneas de alta defensa, y las imágenes y vídeos van en líneas aceleradas. Mucha gente intenta ahorrarse problemas acelerando todo el sitio y, como resultado, las solicitudes de API se almacenan en caché, lo que provoca una desalineación de los datos.
La mejor solución es utilizar diferentes nombres de dominio para dividir el negocio: api.yourapp.com apunta a una CDN de alta defensa, img.yourapp.com apunta a una CDN acelerada pura. De esta forma, el tráfico de ataque no saturará el ancho de banda de la imagen, y puede optimizar la configuración para diferentes escenarios. Recuerde habilitar la cadena antirrobo y la autenticación de token para los dominios de imagen, para que la gente no tome fácilmente su cama de imágenes como almuerzo gratis:
La estrategia de almacenamiento en caché también debe diseñarse cuidadosamente. El tiempo de almacenamiento en caché de archivos pequeños, como avatares y emoticonos, puede establecerse más largo (más de 30 días), y se recomienda almacenar en caché las imágenes de flujo de alimentación según la jerarquía de nivel de calor: el contenido caliente se almacena en caché en el nodo de borde, y el contenido frío se recupera en la fuente. He probado la función de precalentamiento de caché inteligente en CDN5, empujando el contenido que se espera que explote a los nodos de borde por adelantado, y el retraso de carga de la imagen se redujo en 40% durante las horas punta de la tarde.
El entorno de red móvil es complejo, pero también hay que tener en cuenta la optimización del protocolo. protocolo HTTP/3 en el entorno de red débil rendimiento es significativamente mejor que HTTP / 2, especialmente en la alta tasa de pérdida de paquetes de la red 4G. Sin embargo, en esta etapa el costo QUIC abierto completo es alto, se recomienda que el primer nombre de dominio de imagen para abrir HTTP/3 piloto, nombre de dominio API para mantener el protocolo TCP para garantizar la fiabilidad. 08Host HTTP/3 implementación es más estable, y soporta la recuperación de la conexión 0-RTT, escenarios de conmutación de red frecuente móvil es muy amigable.
Nunca hay que saltarse las alarmas de monitorización. Una vez me llamaron en mitad de la noche para hacer frente a un ataque porque no había configurado una alarma de aumento del ancho de banda. Ahora configuraré tres capas de alertas en el fondo de la CDN: enviar un recordatorio cuando el ancho de banda supere los 80%, activar automáticamente la expansión elástica cuando el QPS sea anormal y llamar directamente cuando la tasa de errores 5xx supere los 1%. Un proveedor de servicios CDN verdaderamente fiable debería proporcionar informes de ataques en tiempo real; por ejemplo, la función de análisis de ataques de CDN07 hace un buen trabajo al mostrar claramente el tipo de ataque, la región de origen y la IP TOP del ataque.
Por último, unas palabras sobre el control de costes. El precio de la alta defensa CDN tiene un montón de agua, no comprar directamente de acuerdo a la oferta del sitio web oficial. Grandes cantidades pueden ir al precio del contrato, por lo general reducir el precio de 5-7% de descuento. Si el tráfico es pequeño, es más rentable utilizar la facturación por volumen, pero preste atención a la explosión de la factura causada por el tráfico repentino. Hay una manera difícil: el tráfico de la API para el paquete de alta defensa, imágenes y vídeos para ir paquete de tráfico barato (como el paquete de tráfico de tiempo de inactividad de 08Host), el costo total se puede reducir 60% o más.
Por perfecto que sea el programa técnico, es inútil sin procesos de apoyo. Se recomienda establecer un sistema regular de pruebas de penetración, al menos una vez al mes para hacer un escaneo completo de vulnerabilidades. Las nuevas funciones deben estar en línea antes de la revisión de seguridad, centrándose en comprobar la potencia de la interfaz y el control de autoridad. El entorno en línea está estrictamente aislado, y está prohibido llevar la configuración de la base de datos de prueba al entorno de producción - he visto este tipo de error de bajo nivel no menos de diez veces.
Al final, la esencia de la protección es encontrar un equilibrio entre experiencia y seguridad. Sellar demasiado fuerte para matar al usuario real, poner demasiado flojo y chantajear explotando las lagunas. La mejor manera es establecer una defensa multicapa: los nodos de borde para hacer el filtrado de grano grueso, el clúster central para hacer el control de viento de grano fino, y luego se combina con los datos del cliente informó para formar un bucle cerrado. No espere una solución única, la seguridad es un proceso continuo de confrontación.
Después de muchas batallas de verificación, ahora uso una combinación de programas: protección de API con CDN5 + puerta de enlace de control de viento de auto-investigación, aceleración de imagen con 08Host red de programación inteligente, datos importantes y luego establecer una capa de transmisión cifrada privada. Este conjunto de arquitectura para llevar la vida cotidiana de diez millones de presión de las aplicaciones sociales, la tasa de interceptación de ataques API de 98% o más, la carga de imágenes P90 control de tiempo dentro de 800ms. La clave es el costo controlable, no porque la protección necesita para hacer la arquitectura demasiado compleja.
Hablar sobre el papel siempre es superficial, realmente queremos prevenir los ataques pero también necesitamos seguir iterando. Se recomienda hacer un simulacro trimestral de ataque y defensa para simular escenarios reales de ataque para probar el sistema de protección. Encuentre nuevas técnicas de ataque y actualice a tiempo las reglas, no espere a tener problemas para poner remedio. Recuerde: no existe un sistema de seguridad absoluto, sólo la evolución continua de la estrategia de defensa.

