En nuestro material anterior basado en la nube, hablamos sobre cómo proteger los recursos de TI en una nube pública y por qué los antivirus tradicionales no son muy adecuados para estos fines. En esta publicación continuaremos con el tema de la seguridad en la nube y hablaremos sobre la evolución de WAF y qué es mejor elegir: hardware, software o la nube.
¿Qué es el WAF?
Más del 75% de los ataques de piratas informáticos están dirigidos a vulnerabilidades en aplicaciones y sitios web: tales ataques son generalmente invisibles para la infraestructura de seguridad de la información y los servicios de seguridad de la información. Las vulnerabilidades en las aplicaciones web conllevan, a su vez, los riesgos de compromiso y fraude de cuentas de usuario y datos personales, contraseñas, números de tarjetas de crédito. Además, las vulnerabilidades en el sitio web sirven como punto de entrada para los ciberdelincuentes en la red corporativa.
Web Application Firewall (WAF) es un cortafuegos que bloquea los ataques a las aplicaciones web: inyección SQL, scripting crossite, ejecución remota de código, fuerza bruta y bypass de autenticación. Incluidos los ataques que utilizan vulnerabilidades de día cero. Los firewalls de aplicaciones brindan protección al monitorear el contenido de las páginas web, incluidos HTML, DHTML y CSS, y al filtrar solicitudes potencialmente maliciosas a través de HTTP / HTTPS.
¿Cuáles fueron las primeras decisiones?
Los primeros intentos de crear un firewall de aplicaciones web se realizaron a principios de los 90. Se conocen al menos tres ingenieros que trabajan en esta área. El primero es Gene Spafford, profesor de informática en la Universidad de Purdue. Describió la arquitectura del firewall de la aplicación con un proxy y en 1991 la publicó en el libro
"Seguridad de UNIX en la práctica" .
El segundo y el tercero fueron especialistas en seguridad de la información William Cheswick y Marcus Ranum de Bell Labs. Desarrollaron uno de los primeros prototipos de firewall de aplicaciones. DEC participó en su distribución: el producto se lanzó bajo el nombre SEAL (Enlace de acceso externo seguro).
Pero SEAL no era una solución WAF completa. Era un firewall de red clásico con funcionalidad avanzada: la capacidad de bloquear ataques en FTP y RSH. Por esta razón, la primera solución WAF de hoy se considera el producto de Perfecto Technologies (más tarde Sanctum). En 1999,
introdujo el sistema AppShield. En ese momento, Perfecto Technologies estaba desarrollando soluciones de seguridad de la información para el comercio electrónico, y las tiendas en línea se convirtieron en el público objetivo de su nuevo producto. AppShield pudo analizar solicitudes HTTP y ataques bloqueados basados en políticas dinámicas de seguridad de la información.
Casi al mismo tiempo que AppShield (en 2002), apareció el primer WAF de código abierto. Se convirtieron en
ModSecurity . Fue creado para popularizar las tecnologías WAF y todavía es compatible con la comunidad de TI (aquí está su
repositorio en GitHub ). ModSecurity bloquea los ataques a aplicaciones basadas en un conjunto estándar de expresiones regulares (firmas) - herramientas para verificar consultas contra un patrón -
OWASP Core Rule Set .
Como resultado, los desarrolladores lograron alcanzar su objetivo: nuevas soluciones WAF comenzaron a aparecer en el mercado, incluidas las creadas sobre la base de ModSecurity.
Tres generaciones es historia
Es costumbre distinguir tres generaciones de sistemas WAF que han evolucionado a medida que la tecnología se desarrolla.
Primera generación Funciona con expresiones regulares (o gramáticas). Esto incluye ModSecurity. El proveedor del sistema examina los tipos de ataques a las aplicaciones y genera patrones que describen solicitudes legítimas y potencialmente maliciosas. WAF revisa estas listas y decide qué hacer en una situación particular: bloquear el tráfico o no.
Un ejemplo de descubrimiento de expresiones regulares es el proyecto de
conjunto de reglas básicas de código abierto ya mencionado. Otro ejemplo es
Naxsi , que también es de código abierto. Los sistemas con expresiones regulares tienen varios inconvenientes, en particular, cuando se descubre una nueva vulnerabilidad, el administrador tiene que crear reglas adicionales manualmente. En el caso de una infraestructura de TI a gran escala, puede haber varios miles de reglas. Administrar tantas expresiones regulares es bastante difícil, sin mencionar que verificarlas puede reducir el rendimiento de la red.
Las expresiones regulares también tienen un nivel bastante alto de falsos positivos. El famoso lingüista Noam Chomsky propuso una clasificación de gramáticas, en la que las dividió en cuatro niveles de dificultad condicional. De acuerdo con esta clasificación, las expresiones regulares solo pueden describir las reglas de firewall que no implican desviaciones del patrón. Esto significa que los atacantes pueden "engañar" fácilmente a la primera generación de WAF. Uno de los métodos para combatir esto es agregar caracteres especiales a las solicitudes de aplicaciones que no afectan la lógica de los datos maliciosos, pero violan la regla de firma.
Segunda generación . Para evitar problemas de rendimiento y precisión con WAF, se han desarrollado firewalls de aplicaciones de segunda generación. Aparecieron analizadores en ellos que son responsables de identificar tipos de ataques estrictamente definidos (HTML, JS, etc.). Estos analizadores funcionan con tokens especiales que describen solicitudes (por ejemplo, variable, cadena, desconocido, número). Las secuencias de tokens potencialmente maliciosas se colocan en una lista separada con la que se verifica regularmente el sistema WAF. Este enfoque se mostró por primera vez en la conferencia Black Hat 2012 en forma de
biblioteca de libinjection C / C ++, que permite detectar inyecciones SQL.
En comparación con los WAF de primera generación, los analizadores especializados pueden trabajar más rápido. Sin embargo, no resolvieron las dificultades asociadas con la configuración manual del sistema cuando aparecieron nuevos ataques maliciosos.
Tercera generación La evolución en la lógica de detección de tercera generación consiste en la aplicación de métodos de aprendizaje automático que permiten acercar la gramática de detección a la gramática de SQL / HTML / JS real de los sistemas protegidos. Esta lógica de detección puede adaptar la máquina de Turing para cubrir gramáticas enumeradas recursivamente. Además, antes la tarea de crear una máquina de Turing adaptable era insoluble hasta que se publicaron los primeros estudios de máquinas de Turing neurales.
El aprendizaje automático ofrece una oportunidad única para adaptar cualquier gramática para cubrir cualquier tipo de ataque sin crear listas de firmas manualmente, según sea necesario al detectar la primera generación, y sin desarrollar nuevos tokenizadores / analizadores para nuevos tipos de ataques, como despliegues de Memcached, Redis, Cassandra, SSRF, como lo requiere la metodología de segunda generación.
Combinando las tres generaciones de lógica de detección, podemos dibujar un nuevo diagrama en el que la tercera generación de detección está representada por un contorno rojo (Fig. 3). Esta generación incluye una de las soluciones que implementamos en la nube junto con Onsek, el desarrollador de la plataforma de protección adaptativa para aplicaciones web y la API de Valarm.
Ahora, la lógica de detección utiliza comentarios de la aplicación de autoajuste. En el aprendizaje automático, este ciclo de retroalimentación se llama refuerzo. Por lo general, hay uno o más tipos de dichos refuerzos:
- Análisis del comportamiento de respuesta de la aplicación (pasivo)
- Escaneo / Fuzzer (activo)
- Archivos de informes / interceptor / procedimientos de captura (post factum)
- Manual (determinado por el supervisor)
Como resultado, la lógica de detección de tercera generación también resuelve el importante problema de precisión. Ahora es posible no solo evitar falsos positivos y falsos negativos, sino también detectar resultados negativos verdaderos válidos, como detectar el uso del elemento de comando SQL en el panel de control, cargar plantillas de páginas web, solicitudes AJAX relacionadas con errores de JavaScript y otros.



A continuación, consideramos las capacidades tecnológicas de varias opciones de implementación de WAF.
Hierro, software o nube: ¿qué elegir?
Una de las opciones para implementar firewalls de aplicaciones es una solución de hardware. Dichos sistemas son dispositivos informáticos especializados que la empresa instala localmente en su centro de datos. Pero en este caso, debe comprar su propio equipo y pagar dinero a los integradores para su configuración y depuración (si la empresa no tiene su propio departamento de TI). Al mismo tiempo, cualquier equipo se vuelve obsoleto y se deteriora, por lo que los clientes se ven obligados a establecer un presupuesto para actualizar el hardware.
Otra opción de implementación de WAF es una implementación de software. La solución se instala como un complemento para cualquier software (por ejemplo, ModSecurity está configurado encima de Apache) y se ejecuta en el mismo servidor con él. Por lo general, estas soluciones se pueden implementar tanto en un servidor físico como en la nube. Su desventaja es la escalabilidad limitada y el soporte del proveedor.
La tercera opción es configurar WAF desde la nube. Dichas soluciones son proporcionadas por proveedores de la nube como un servicio de suscripción. La empresa no necesita comprar y configurar hardware especializado; estas tareas recaen sobre los hombros del proveedor de servicios. Un punto importante es que el WAF moderno basado en la nube no implica la migración de recursos a la plataforma del proveedor. Un sitio se puede implementar en cualquier lugar, incluso en las instalaciones.
¿Por qué ahora cada vez más a menudo miramos hacia WAF nublado?
¿Qué puede WAF en la nube?
En términos de capacidades tecnológicas:
- El proveedor es responsable de las actualizaciones . WAF se proporciona por suscripción, por lo que el proveedor de servicios supervisa la relevancia de las actualizaciones y las licencias. Las actualizaciones se refieren no solo al software, sino también al hardware. El proveedor actualiza la flota de servidores y se dedica a su mantenimiento. También es responsable del equilibrio de carga y la redundancia. Si el servidor WAF falla, el tráfico se redirige inmediatamente a otra máquina. La distribución racional del tráfico le permite evitar situaciones en las que el cortafuegos ingresa al modo de falla de apertura, no hace frente a la carga y deja de filtrar las solicitudes.
- Parche virtual Los parches virtuales restringen el acceso a partes comprometidas de la aplicación hasta que el desarrollador cierre la vulnerabilidad. Como resultado, el cliente del proveedor de la nube tiene la oportunidad de esperar con calma hasta que el proveedor de uno u otro software publique "parches" oficiales. Hacer esto lo más rápido posible es una prioridad para el proveedor de software. Por ejemplo, en la plataforma Valarm, un módulo de software separado es responsable del parcheo virtual. Un administrador puede agregar expresiones regulares personalizadas para bloquear solicitudes maliciosas. El sistema permite marcar algunas consultas con la marca de Datos confidenciales. Luego, se enmascaran sus parámetros y, bajo ninguna circunstancia, se transfieren fuera del área de trabajo del firewall.
- Perímetro incorporado y escáner de vulnerabilidades . Esto le permite determinar de forma independiente los límites de red de la infraestructura de TI utilizando los datos de las consultas DNS y el protocolo WHOIS. Después de que WAF analiza automáticamente los servicios que se ejecutan dentro del perímetro (realiza el escaneo de puertos). El firewall puede detectar todos los tipos comunes de vulnerabilidades (SQLi, XSS, XXE, etc.) y detectar errores en la configuración del software, por ejemplo, acceso no autorizado a los repositorios Git y BitBucket y llamadas anónimas a Elasticsearch, Redis, MongoDB.
- Los ataques son monitoreados por recursos en la nube . Como regla general, los proveedores de la nube tienen grandes cantidades de potencia informática. Esto le permite analizar amenazas con alta precisión y velocidad. En la nube, se despliega un grupo de nodos de filtrado a través del cual pasa todo el tráfico. Estos sitios bloquean los ataques a las aplicaciones web y envían estadísticas al Centro de análisis. Utiliza algoritmos de aprendizaje automático para actualizar las reglas de bloqueo para todas las aplicaciones protegidas. La implementación de dicho esquema se muestra en la Fig. 4. Dichas reglas de seguridad adaptadas minimizan la cantidad de falsos positivos para el firewall.

Ahora, un poco sobre las características de nublado WAF en términos de problemas de organización y gestión:
- Transición a OpEx . En el caso de WAF basado en la nube, el costo de implementación será cero, ya que todo el hardware y las licencias ya han sido pagados por el proveedor, el pago del servicio se realiza por suscripción.
- Diferentes planes tarifarios . Un usuario de un servicio en la nube puede habilitar o deshabilitar rápidamente opciones adicionales. La gestión de funciones se implementa desde un único panel de control, que también está protegido. El acceso a él es a través de HTTPS, además hay un mecanismo de autenticación de dos factores basado en el protocolo TOTP (Algoritmo de contraseña de un solo uso basado en el tiempo).
- Conexión DNS Puede cambiar el DNS usted mismo y configurar el enrutamiento en la red. Para resolver estos problemas, no es necesario reclutar y capacitar especialistas individuales. Como regla general, el soporte técnico del proveedor puede ayudar con la configuración.
Las tecnologías WAF han evolucionado desde simples firewalls con reglas empíricas hasta complejos sistemas de seguridad con algoritmos de aprendizaje automático. Ahora los firewalls de aplicaciones tienen una amplia gama de funciones que fueron difíciles de implementar en los años 90. En muchos sentidos, la aparición de nuevas funcionalidades fue posible gracias a la tecnología en la nube. Las soluciones WAF y sus componentes continúan evolucionando. Así como otras áreas de seguridad de la información.
El texto fue preparado por Alexander Karpuzikov, Gerente de Desarrollo de Producto del proveedor de nube IS #CloudMTS.