En nuestro próximo informe Estado de la entrega de aplicação 2018, observamos que el uso de firewalls de aplicação web (WAF) ha aumentado de manera constante durante años. Esto es bueno, porque hoy en día las aplicaciones son la puerta de entrada a los datos corporativos y de los clientes, y los métodos tradicionales de control de acceso a la capa de red no son suficientes. Esto se debe a que cada vez más actores maliciosos apuntan a las identidades y a las aplicações para extraer ese oro digital.
Entonces, ¿cómo exactamente un WAF mitiga todas esas vulnerabilidades que siguen apareciendo como malas hierbas en el jardín? Hay tres métodos principales que utiliza un WAF para detectar y prevenir ataques web: denegar/permitir solicitudes, inspeccionar y rechazar, y firmas.
Vamos a explorar cada uno de ellos, ¿de acuerdo?
Denegar/Permitir solicitudes
El método de denegar/permitir solicitudes es muy parecido al modelo de puerta de enlace tradicional utilizado por los firewalls de red. Las solicitudes se rechazan o se permiten según la información disponible. Esa información puede ser simple, como una dirección IP, o puede ser más compleja y específica de HTTP, como OPCIONES o MÉTODOS.
- Listas de denegación/permiso
Si sabe que un actor malicioso proviene de una dirección IP específica o de un rango de direcciones IP, bloquéelo. Si sabe que una aplicação solo está autorizada a recibir solicitudes de una dirección IP específica o de un rango de direcciones IP, permítalas únicamente. Este es el método de protección más simple y se basa en un conjunto de información bastante estático: las direcciones/rangos IP desde donde deben o no provenir las solicitudes.
Si estás pensando, bueno, ¿por qué no utilizar simplemente un firewall de red para hacer eso? Después de todo, es lo que hacen. En las instalaciones, esto funciona muy bien. Pero si tiene aplicaciones que necesita proteger en la nube pública, esa podría no ser una opción. Y si usted es uno del 59% de los participantes de nuestra encuesta State of Aplicação Delivery 2018 que ya invirtió en entre 2 y 6 proveedores de nube diferentes, no puede contar con que las políticas de firewall de red sean las mismas en todos los proveedores. Si bien es cierto que puedes implementar las mismas reglas en múltiples nubes, aplicar reglas en un WAF significa que puedes usar la misma política en el mismo WAF en múltiples entornos. La consistencia es clave para el éxito y la escalabilidad de la seguridad.
- Opciones de restricción
HTTP se basa en un conjunto de encabezados para indicar a la plataforma de la aplicación (y a la aplicación) lo que el usuario desea hacer. Los MÉTODOS HTTP, por ejemplo, se pueden usar para OBTENER, COLOCAR, PUBLICAR y ELIMINAR recursos. El campo OPCIONES también tiene un conjunto de valores restringidos por RFC que pueden controlarse fácilmente mediante un WAF. Algunas vulnerabilidades, como Optionsbleed, explotan estos campos. Para eliminar la posibilidad de explotar dichas vulnerabilidades, puede utilizar el WAF para restringir los valores posibles únicamente a aquellos que necesita para permitir la correcta ejecución de la aplicação. En algunos casos, el WAF, de forma predeterminada, restringe estos valores. Por ejemplo, BIG-IP ASM (F5 WAF) de manera predeterminada no permite el método HTTP OPTIONS.
Firmas
Las firmas son otro método de protección común a muchas soluciones de seguridad diferentes. Los servicios antivirus y antimalware se basan en firmas que les permiten escanear rápidamente en busca de evidencia de virus y malware y marcarlos. IPS/IDS también dependen en gran medida de este método, al igual que WAF. Hay dos tipos de firmas: definidas por el usuario y administradas por el proveedor.
- Administrado por el proveedor
Las firmas administradas por el proveedor generalmente se guardan en una “base de datos” que el proveedor mantiene automáticamente. Esto incluye la actualización de la base de datos cuando se puedan identificar nuevas vulnerabilidades mediante una firma digital única. Un WAF escaneará una solicitud entrante contra la base de datos y actuará en consecuencia si descubre una coincidencia con una firma en la base de datos. Las firmas pueden ser puramente texto simple, pero con mayor frecuencia son combinaciones complejas de cadenas oscuras que representan código malicioso que activa capacidades de ejecución remota o corrompe la plataforma de la aplicación y proporciona acceso o niega el servicio.
- Definido por el usuario
Las firmas definidas por el usuario permiten a los operadores agregar rápidamente una firma a la base de datos. Esta capacidad es importante para garantizar una respuesta rápida (día cero en muchos casos) a nuevas vulnerabilidades, así como para mitigar vulnerabilidades para las que aún no se ha emitido una firma administrada por el proveedor.
Inspección
Por último, se incluye la inspección para garantizar un control completo sobre las solicitudes (y respuestas). La inspección de solicitudes permite que el WAF compare la información de la solicitud con cadenas y valores conocidos como buenos o malos para determinar si la solicitud es maliciosa o legítima. Para las aplicações HTTP (lo que significa la mayoría de las que hay en Internet hoy en día) esta es la capacidad más importante que debe proporcionar un WAF. Si un WAF no ofrece inspección programable, deberá reconsiderar esa opción. Debido a que HTTP está basado en texto y es extensible, prácticamente no hay forma de proporcionar una lista completa de “casillas de verificación” de opciones y métodos que pueda usar para inspeccionar las solicitudes. Muy pocos encabezados HTTP tienen opciones restringidas, lo que hace que sea muy difícil limitar lo que se puede y no se puede incluir en ellos. Esto significa que a menudo se requiere inspección para detectar código malicioso incrustado en los encabezados o en la carga útil misma. Hay dos formas de utilizar la inspección: encabezados conocidos y carga útil.
- Encabezados conocidos
Hay un conjunto de encabezados bien definidos que cada solicitud HTTP lleva consigo. Host, User-Agent, Content-Type, etc… son casi omnipresentes. Cada uno de ellos es poco más que una cadena de texto, con una variedad tan amplia de combinaciones que es difícil incluir valores en la lista de permitidos, por lo que deben analizarse individualmente para buscar valores de aspecto malicioso. En términos generales, un WAF puede analizar muy rápidamente los encabezados HTTP y habilitar su inspección. Están al principio de cada solicitud y se sabe que se utilizan para cometer una variedad de ataques contra plataformas de aplicaciones: ApacheKiller , Optionsbleed y Apache Struts se encuentran entre las vulnerabilidades más conocidas.
- Inspección de carga útil
La inspección de carga útil es lo que parece: inspecciona toda la carga útil, desde el primer byte hasta el último, en busca de combinaciones conocidas de datos alfanuméricos que indiquen un intento de explotar una vulnerabilidad. La inspección de carga útil permite a los operadores examinar encabezados HTTP personalizados, así como el cuerpo de una solicitud, en busca de indicadores específicos de actividad maliciosa. Esto requiere que el WAF primero conserve todo el contenido de la solicitud. Esto es necesario porque los paquetes solo pueden contener una cierta cantidad de datos y, si los datos maliciosos abarcan dos paquetes, pueden pasar desapercibidos para los servicios que solo los inspeccionan paquete por paquete. Al inspeccionar toda la carga útil, un WAF garantiza que, sin importar dónde se encuentren los datos maliciosos, se los pueda descubrir y evitar que lleguen a su objetivo.
Un WAF puede hacer mucho más que mitigar vulnerabilidades para proteger aplicações. Muchos también incluyen detección de bots, limitación de velocidad, prevención de DDoS y más. Pero el propósito principal de un WAF es proteger las aplicações mitigando las vulnerabilidades. Si bien SQLi, XSS y CSRF se mencionan habitualmente, a estas alturas ya son prácticamente “ya conocidos”. Los actores maliciosos han ido más allá de las vulnerabilidades obvias de las aplicaciones y han comenzado a atacar las plataformas porque ofrecen un grupo mucho más grande de víctimas de las cuales extraer información. Las vulnerabilidades de la plataforma (aquellas en HTTP y sus marcos) son una fuente creciente de infracciones que se benefician de las protecciones proporcionadas por un WAF de clase empresarial.
Al emplear escaneos tradicionales de denegación/permiso y basados en firmas con la capacidad de inspeccionar una solicitud (y respuesta) completa, un WAF brinda la protección que las empresas necesitan hoy para mantenerse a sí mismas y a sus clientes seguros.