La otra noche, estaba depurando una API para una plataforma de redes sociales cuando, de repente, saltó la alarma de monitorización: hombre, decenas de miles de peticiones por segundo estaban llegando a raudales, y estaban secando el servidor. ¿Y adivina qué? No se trata de un ataque complejo, sino de un simple script que llama frenéticamente a la interfaz de inicio de sesión e intenta descifrar por fuerza bruta la contraseña del usuario. En estos días, la API se ha convertido en la carne y las patatas de los hackers, especialmente las aplicaciones sociales, los datos de usuario, la interacción frecuente, un poco de falta de atención será apuñalado.
Una CDN de alta defensa social no es sólo para aparentar, tiene que vigilar tu pasarela API como un perro guardián. Me he dado cuenta de que muchos equipos pensaban que podían estar tranquilos con una CDN, pero les faltaba la capa de protección de la API y se la han colado hasta las madres. No creas en esas tonterías de “protección con un solo clic”, la verdadera seguridad debe empezar por la autenticación y el límite de frecuencia, o la CDN no podrá evitar el abuso de la API por parte de los insiders.
Empecemos insistiendo en la crueldad de los ataques a las API. Entre los más comunes se encuentran la inundación DDoS, la inyección SQL, el relleno de credenciales e incluso la enumeración de puntos finales de API: los hackers escanean sus interfaces como si fueran un supermercado, en busca de objetivos fáciles de pellizcar. Las aplicaciones sociales son especialmente vulnerables: la interfaz de contenido generado por el usuario (UGC), la API de la lista de amigos, el envío de mensajes, todos son objetivos. El año pasado, uno de mis clientes utilizó CDN07, era bastante estable, pero la API no puso límites, el rastreador se apoderó de cientos de miles de información de los usuarios, perdió el fondo del cielo.
¿Por qué no pueden hacerlo las CDN normales? Porque se centran en el almacenamiento en caché y la distribución del tráfico, pero las solicitudes de API suelen ser dinámicas y deben procesarse en tiempo real, por lo que no pueden almacenarse en caché. Las CDN de alta defensa deben ser como una navaja suiza, con protección multidimensional. Por ejemplo, el programa de CDN5, he desmantelado su arquitectura, además de la limpieza DDoS regular, pero también integrado API fingerprinting, puede distinguir entre usuarios normales y bot, que la lista negra de IP pura diez veces más inteligente.
En cuanto a las soluciones, sólo hay dos en el núcleo: la autenticación de la API y la limitación de la frecuencia. La autenticación es para ver quién tiene permiso de entrada, y la limitación de frecuencia es para evitar que ande por ahí. Primero rocío forense - un montón de equipos con Basic Auth se atreven a ir en línea, contraseñas en texto plano, esto no es una invitación a los hackers a cenar? Por lo menos tienen que estar en OAuth 2.0 o JWT, con la firma y el límite de tiempo.
JWT juego el más, ligero y flexible. Por ejemplo, las plataformas sociales lo utilizan para gestionar las sesiones de usuario, incrustado en el token el ID de usuario y los permisos, los nodos de borde CDN comprueban directamente las firmas, reduciendo la presión sobre el back end. Pero ten cuidado de no meter datos sensibles en el payload, he visto a un amigo escribir su contraseña de correo electrónico en él, y luego el token fue interceptado, y la comunidad murió directamente. La postura correcta es firmar con HS256 o RS256, y la rotación de claves se realiza regularmente.
Publicar un fragmento de mi middleware forense habitual Node.js y ponerlo en la lógica de borde CDN para ejecutar:
Este código se pone en la función de borde de la CDN5 ha sido probado, 100.000 solicitudes por segundo sin jadear. Pero la luz forense no es suficiente, el límite de frecuencia es el anti-abuso de la matanza. Muchas API han explotado porque no hay límite de velocidad, los hackers pueden tomar un grupo de IP proxy para hacer salir.
La limitación de frecuencia tiene que desplegarse en múltiples capas: una capa en el borde de la CDN, una capa en la pasarela API y otra capa para la lógica de negocio. Recomiendo el algoritmo token bucket, la limitación de flujo suave también puede reventar para hacer frente a los picos. Por ejemplo, la CDN social de 08Host tiene incorporada una limitación de caudal dinámica, un control multidimensional basado en IP, ID de usuario y puntos finales de API, que es mucho más inteligente que los umbrales fijos.
Ejemplo de configuración: jugar con los límites de frecuencia en Nginx, poner nodos de borde CDN:
Esto establece un máximo de 10 solicitudes por IP por segundo, con ráfagas que permiten 20 para ir directamente a través, y el exceso de procesamiento diferido. Ayudé a una aplicación social para ajustar este parámetro, los ataques de la API se redujo en 90%, el usuario no ha percibido. Pero no copiar ah, de acuerdo con el ajuste de negocios - interfaz de registro límite estricto punto, carga de imágenes se puede relajar.
Ahora rociar el mercado de proveedores de servicios CDN. CDN07 en el toro de aceleración de caché, pero la protección de la API tiene que añadir dinero para comprar la versión avanzada, lamentable. punto fuerte de CDN5 es la integración de WAF y gestión de API, he probado su cadena de autenticación de apoyo OAuth y JWT out-of-the-box, preocupación. 08Host tazón barato, frecuencia límite de flexibilidad de configuración, adecuado para el inicio de aplicaciones sociales. No estoy seguro de si va a ser capaz de hacerlo.
Por último: la seguridad de la API no es una cuestión de una vez por todas, tiene que ser monitoreado continuamente. Enterré puntos en los registros CDN, análisis en tiempo real de los patrones de solicitud, anormalidades inmediatamente alertas. Las aplicaciones sociales, en particular, para evitar que los rastreadores “amistosos” - que pretenden ser usuarios normales, datos de rastreo lento, restricciones de frecuencia tienen que utilizar el algoritmo de ventana deslizante para hacer frente.
En resumen, la protección de las API es como una relación: hay que confiar y verificar. Una CDN de alta defensa es tu primera línea de defensa, pero la autenticación y los límites de velocidad son el núcleo. Si te andas con chiquitas, hasta la CDN más cara es un tigre de papel. Recuerda, los hackers no duermen la siesta, y tus APIs tienen que estar más despiertas que un café.

