La demanda de bienes y servicios por parte de los clientes durante los últimos dos años ha puesto de relieve lo crucial que es para las organizaciones escalar fácilmente e innovar más rápido, lo que ha llevado a muchas de ellas a acelerar la transición de una arquitectura monolítica a una nativa de la nube. Según el reciente informe de F5, The State of Aplicação Strategy 2021 , el número de organizaciones que modernizaron aplicações aumentó un 133% solo en el último año. Las aplicações habilitadas para la nube están diseñadas para ser modulares, distribuidas, implementadas y administradas de manera automatizada. Si bien es posible simplemente trasladar una aplicação monolítica existente, hacerlo no proporciona ninguna ventaja en términos de costos o flexibilidad. La mejor forma de beneficiarse del modelo distribuido que ofrecen los servicios de computación en la nube es pensar de manera modular: es decir, los microservicios .
Los microservicios son un enfoque arquitectónico que permite a los desarrolladores crear una aplicação como un conjunto de servicios de aplicação livianos que son estructuralmente independientes entre sí y de la plataforma subyacente. Cada microservicio se ejecuta como un proceso único y se comunica con otros servicios a través de API bien definidas y estandarizadas. Cada servicio puede ser desarrollado e implementado por un pequeño equipo independiente. Esta flexibilidad proporciona a las organizaciones mayores beneficios en términos de rendimiento, costo, escalabilidad y capacidad de innovar rápidamente.
Los desarrolladores siempre buscan formas de aumentar la eficiencia y acelerar la implementación de aplicação . Las API permiten la comunicación entre software y proporcionan los componentes básicos para el desarrollo. Para solicitar datos de los servidores mediante HTTP , los desarrolladores web originalmente usaban SOAP , que envía detalles de la solicitud en un documento XML . Sin embargo, los documentos XML tienden a ser grandes, requieren un esfuerzo considerable y su desarrollo lleva mucho tiempo.
Desde entonces, muchos desarrolladores han migrado a REST , un estilo arquitectónico y un conjunto de pautas para crear API web confiables y sin estado. Una API web que obedece estas pautas se llama RESTful. Las API web RESTful generalmente se basan en métodos HTTP para acceder a recursos a través de parámetros codificados en URL y utilizan JSON o XML para transmitir datos. Con el uso de API RESTful, las aplicações se desarrollan más rápidamente y tienen menos gastos generales.
Los avances tecnológicos brindan nuevas oportunidades para avanzar en el diseño de aplicação . En 2015, Google desarrolló Google Remote Procedure Call ( gRPC ) como un marco RPC moderno de código abierto que puede ejecutarse en cualquier entorno. Mientras que REST se basa en el protocolo HTTP 1.1 y utiliza un modelo de comunicación de solicitud-respuesta, gRPC utiliza HTTP/2 para el transporte y un modelo de comunicación de cliente-respuesta, implementado en buffers de protocolo (protobuf) como lenguaje de descripción de interfaz (IDL) utilizado para describir servicios y datos. Protobuf se utiliza para serializar datos estructurados y está diseñado para la simplicidad y el rendimiento. gRPC es aproximadamente 7 veces más rápido que REST al recibir datos y 10 veces más rápido al enviar datos, debido a la eficiencia de protobuf y al uso de HTTP/2. gRPC también permite la comunicación en streaming y atiende múltiples solicitudes simultáneamente.
Los desarrolladores consideran que la creación de microservicios con gRPC es una alternativa atractiva al uso de API RESTful debido a su baja latencia, compatibilidad con múltiples idiomas, representación compacta de datos y transmisión en tiempo real, todo lo cual lo hace especialmente adecuado para la comunicación entre microservicios y en redes de bajo consumo y bajo ancho de banda. gRPC ha aumentado en popularidad porque facilita la creación de nuevos servicios de forma rápida y eficiente, con mayor confiabilidad y escalabilidad, y con independencia del lenguaje tanto para los clientes como para los servidores.
Aunque la naturaleza abierta del protocolo gRPC ofrece varios beneficios positivos, el estándar no proporciona ninguna protección contra el impacto que un ataque DoS puede tener en una aplicação. Una aplicação gRPC aún puede sufrir los mismos tipos de ataques DoS que una aplicação tradicional.
Si bien los microservicios y los contenedores brindan a los desarrolladores más libertad y autonomía para lanzar rápidamente nuevas funciones a los clientes, también introducen nuevas vulnerabilidades y oportunidades de explotación. Un tipo de ciberataque que ha ganado popularidad son los ataques de denegación de servicio (DoS) , que en los últimos años han sido responsables de un número cada vez mayor de vulnerabilidades y exposiciones comunes (CVE), muchas de ellas causadas por el manejo inadecuado de solicitudes gRPC. Los ataques DoS de capa 7 a aplicações y API han aumentado un 20 % en los últimos años, mientras que la escala y la gravedad del impacto han aumentado casi un 200 %.
Un ataque DoS comúnmente envía grandes cantidades de tráfico que parece legítimo para agotar los recursos de la aplicación y hacer que no responda. En un ataque DoS típico, un actor malicioso inunda un sitio web o una aplicação con tanto tráfico que los servidores se ven abrumados por todas las solicitudes, lo que provoca que se detengan o incluso se bloqueen. Los ataques DoS están diseñados para ralentizar o deshabilitar por completo máquinas o redes, volviéndolas inaccesibles para las personas que las necesitan. Hasta que se mitigue el ataque, los servicios que dependen de la máquina o la red (como sitios de comercio electrónico, correo electrónico y cuentas en línea) serán inutilizables.
Cada vez vemos más ataques DoS que utilizan solicitudes HTTP y HTTP/2 o llamadas API para atacar la capa de aplicação (Capa 7), en gran parte porque los ataques de Capa 7 pueden eludir las defensas tradicionales que no están diseñadas para defender las arquitecturas de aplicação modernas. ¿Por qué los atacantes han cambiado de los ataques volumétricos tradicionales en las capas de red (capas 3 y 4) a ataques de capa 7? Están siguiendo el camino de menor resistencia. Los ingenieros de infraestructura han pasado años construyendo mecanismos de defensa efectivos contra ataques de capa 3 y capa 4, haciéndolos más fáciles de bloquear y menos propensos a tener éxito. Esto hace que sea más costoso lanzar este tipo de ataques, tanto en términos de dinero como de tiempo, por lo que los atacantes han seguido adelante.
Detectar ataques DoS en aplicações gRPC es extremadamente difícil, especialmente en entornos modernos donde el escalamiento horizontal se realiza automáticamente. Es posible que un servicio gRPC no esté diseñado para manejar tráfico de alto volumen, lo que lo convierte en un blanco fácil para los atacantes. Los servicios gRPC también son vulnerables a ataques de inundación HTTP/2 con herramientas como h2load
. Además, los servicios gRPC pueden ser fácilmente atacados cuando el atacante explota las definiciones de datos que están declaradas correctamente en una especificación protobuf.
Un uso indebido típico, aunque no intencional, de un servicio gRPC es cuando un error en un script provoca que se produzcan solicitudes excesivas al servicio. Por ejemplo, supongamos que un script de automatización emite una llamada API cuando ocurre una determinada condición, que los diseñadores esperan que ocurra cada dos segundos. Sin embargo, debido a un error en la definición de la condición, el script emite la llamada cada dos milisegundos, lo que crea una carga inesperada en el servicio gRPC de backend.
Otros ejemplos de ataques DoS en una aplicação gRPC incluyen:
POST
lento envía solicitudes parciales en el encabezado gRPC. Anticipando la llegada del resto de la solicitud, la aplicação o el servidor mantienen la conexión abierta. El grupo de conexiones simultáneas podría llenarse, lo que provocaría el rechazo de intentos de conexión adicionales por parte de los clientes.SETTING
vacíos al protocolo gRPC, consume recursos NGINX, lo que le impide atender nuevas solicitudes.Proteger las aplicações de los ataques DoS actuales requiere un enfoque moderno. Para proteger aplicações complejas y adaptables, necesita una solución que proporcione protección altamente precisa y dinámica basada en el comportamiento del usuario y del sitio, y que elimine la carga de los equipos de seguridad al mismo tiempo que respalda el desarrollo rápido de aplicação y la ventaja competitiva.
F5 NGINX App Protect DoS es un módulo de software liviano para NGINX Plus, creado sobre el WAF líder en el mercado de F5 y la protección de comportamiento. Diseñado para defenderse incluso de los ataques DoS de capa 7 más sofisticados, NGINX App Protect DoS utiliza algoritmos únicos para crear un modelo estadístico dinámico que proporciona aprendizaje automático adaptativo y protección automatizada. Mide continuamente la eficacia de la mitigación y se adapta a los cambios en el comportamiento del usuario y del sitio y realiza controles proactivos del estado del servidor. Para obtener más detalles, consulte Cómo NGINX App Protect Denial of Service se adapta al cambiante panorama de ataques en nuestro blog.
Se proporciona análisis de comportamiento tanto para aplicaciones HTTP tradicionales como para encabezados de aplicaciones HTTP/2 modernas. NGINX App Protect DoS mitiga los ataques basados tanto en firmas como en la identificación de actores maliciosos. En la fase inicial de mitigación de firmas, NGINX App Protect DoS perfila los atributos asociados con el comportamiento anómalo para crear firmas dinámicas que luego bloquean las solicitudes que coinciden con este comportamiento en el futuro. Si el ataque persiste, NGINX App Protect DoS pasa a la fase de mitigación de actores maliciosos.
Basándose en la detección de anomalías estadísticas, NGINX App Protect DoS identifica con éxito a los actores maliciosos por dirección IP de origen y huellas digitales TLS, lo que le permite generar e implementar firmas dinámicas que identifican y mitigan automáticamente estos patrones específicos de tráfico de ataque. Este enfoque es diferente a las soluciones DoS tradicionales del mercado que detectan cuándo se supera un umbral volumétrico. NGINX App Protect DoS puede bloquear ataques en los que las solicitudes parecen completamente legítimas y cada atacante podría incluso generar menos tráfico que el usuario legítimo promedio.
Los siguientes paneles de Kibana muestran cómo NGINX App Protect DoS detecta y mitiga de forma rápida y automática un ataque de inundación DoS en una aplicação gRPC.
La figura 1 muestra una aplicação gRPC que sufre un ataque de inundación DoS. En el contexto de gRPC, la métrica crítica son los datagramas por segundo (DPS), que corresponden a la tasa de mensajes por segundo. En esta imagen, la curva amarilla representa el proceso de aprendizaje: cuando la predicción de DPS de referencia converge hacia el valor de DPS entrante (en azul), NGINX App Protect ha aprendido cómo se ve el tráfico “normal” para esta aplicação . El fuerte aumento de DPS a las 12:25:00 indica el inicio de un ataque. La campana de alarma roja indica el punto en el que NGINX App Protect DoS está seguro de que hay un ataque en curso y comienza las fases de mitigación.
La figura 2 muestra NGINX App Protect DoS en el proceso de detección de comportamiento anómalo y frustración de un ataque de inundación DoS gRPC utilizando un enfoque de mitigación por fases. El pico rojo indica la cantidad de redirecciones HTTP/2 enviadas a todos los clientes durante la fase de mitigación de velocidad global. El gráfico morado representa las redirecciones enviadas a clientes específicos cuando sus solicitudes coinciden con una firma que modela el comportamiento anómalo. El gráfico amarillo representa las redirecciones enviadas a actores maliciosos específicos detectados e identificados por dirección IP y huella digital TLS.
La figura 3 muestra una firma dinámica creada por NGINX App Protect DoS que funciona con aprendizaje automático y perfila los atributos asociados con el comportamiento anómalo de este ataque de inundación de gRPC. La firma bloquea las solicitudes que coinciden con ella durante la fase inicial de mitigación de firma.
La figura 4 muestra cómo NGINX App Protect DoS pasa de la mitigación basada en firmas a la mitigación basada en actores maliciosos cuando un ataque persiste. Al analizar el comportamiento del usuario, NGINX App Protect DoS identificó a los actores maliciosos mediante la dirección IP de origen y las huellas digitales TLS que se muestran aquí. En lugar de analizar cada solicitud en busca de firmas específicas que indiquen un comportamiento anómalo, aquí se niega el servicio a atacantes específicos. Esto permite la generación de firmas dinámicas que identifican estos patrones de ataque específicos y los mitigan automáticamente.
Con las API de gRPC, se utiliza la interfaz gRPC para establecer la política de seguridad en el archivo de biblioteca de tipos (IDL) y los archivos de definición de prototipo para protobuf. Esto proporciona una solución de política de seguridad sin intervención: no tiene que depender de la definición de protobuf para proteger el servicio gRPC de ataques. Los archivos de protocolo gRPC se usan con frecuencia como parte de las canalizaciones CI/CD , alineando a los equipos de seguridad y desarrollo al automatizar la protección y habilitar la seguridad como código para la integración completa de la canalización CI/CD. NGINX App Protect DoS garantiza una seguridad consistente al integrar perfectamente la protección en sus aplicações gRPC para que siempre estén protegidas por las políticas de seguridad más recientes y actualizadas .
Si bien gRPC proporciona la velocidad y la flexibilidad que los desarrolladores necesitan para diseñar e implementar aplicações modernas, la naturaleza abierta inherente de su marco lo hace altamente vulnerable a ataques DoS. Para mantenerse a la vanguardia de los graves ataques DoS de capa 7 que pueden provocar degradación del rendimiento, interrupciones de aplicação y sitios web, pérdida de ingresos y daños a la fidelización de clientes y a la marca, necesita una defensa moderna. Es por eso que NGINX App Protect DoS es esencial para sus aplicações gRPC modernas.
Para probar NGINX App Protect DoS con NGINX Plus usted mismo, comience hoy su prueba gratuita de 30 días o contáctenos para analizar sus casos de uso .
Para obtener más información, consulte nuestro informe técnico, Cómo proteger las aplicaciones modernas contra ataques DoS de capa 7 .
"Esta publicación de blog puede hacer referencia a productos que ya no están disponibles o que ya no reciben soporte. Para obtener la información más actualizada sobre los productos y soluciones F5 NGINX disponibles, explore nuestra familia de productos NGINX . NGINX ahora es parte de F5. Todos los enlaces anteriores de NGINX.com redirigirán a contenido similar de NGINX en F5.com.