Introducción a los Web Application Firewalls (WAF)

Iniciado por madpitbull_99, 27 Junio 2011, 21:51 PM

0 Miembros y 1 Visitante están viendo este tema.

madpitbull_99

Introducción a los Web Application Firewalls (WAF)

Se pretende dar una introducción sobre qué es y como funcionan los firewalls para aplicaciones web o WAF.

¿Que es un Web Application Firewall o WAF?

La idea principal al desarrollar una aplicación web, es que, sea disponible desde cualquier lugar y que todo el mundo pueda acceder a ella. Este es el gran factor diferenciador respecto a las aplicaciones de escritorio.
Al ser empleadas por más usuarios, son más dispuestas a sufrir ataques, aunque la idea es construir aplicaciones tolerantes a fallos y sin vulnerabilidades, por diferentes razones (en las que no entraremos) no siempre pasa eso.

El WAF solo es una herramienta complementaria y no pretende sustituir las medidas de protección que el desarrollador tiene que llevar a cabo al programar una aplicación.

Se trata de un dispositivo físico que analiza el tráfico web (entre el servidor web y la WAN), los datos recibidos por parte del usuario y protege de diferentes ataques web como: SQL Injection, Cross Site Scripting, Remote and Local File Inclusion, , Buffer Overflows, Cookie Poisoning, etc. Este dispositivo, trata de proteger de los ataques dirigidos al servidor web que los IDS/IPS no nos pueden defender.


Los Pros y Contras de los Modelos de Seguridad

Dentro de los WAF respecto al Modelo de Seguridad se distinguen:

A) Modelo de Seguridad Positiva

Los WAF que siguen el modelo de seguridad positiva deniegan por defecto todas las transacciones y solamente acepta las que identifica como seguras o válidas. Para determinar si una transacción es segura, consulta una una serie de reglas que se definen previamente, ya sea, por el auto-aprendizaje de la aplicación o configuradas manualmente.

A simple vista, parece ser la solución idónea, pero si nuestra aplicación está sujeta a cambios en el diseño o funcionamiento este modelo de seguridad puede volverse difícil de mantener. Otras ventajas de este modelo es que no dependen de ningún tipo de actualizaciones y nos protegen de ataques desconocidos, como desventaja, son más propensos a detectar falsos positivos y necesitan un proceso de aprendizaje, para saber como funciona la aplicación.

B) Modelo de Seguridad Negativa

En este modelo de seguridad, el WAF acepta todas las transacciones y solamente deniega las que detecta como una posible amenaza o un ataque. Contrastando con el anterior, no es muy preciso y depende de actualizaciones y bases de firmas de posibles ataques.

A pesar de las desventajas arriba citadas, los WAF que siguen este modelo no precisan de muchos ajustes y suelen ser fáciles de administrar.


¿Que tipo de ataques puede bloquear?

Este aspecto puede variar dependiendo del fabricante del equipo, aunque, la mayoría detectan los ataques más comunes.

Puede detectar un posible buffer overflow analizando las variables que lleguen por GET o POST. Por ejemplo, si el valor de una variable es superior a 150 caracteres, el WAF podría detectar la transacción como maliciosa y denegarla.

Para los ataques de Cross Site Scripting y SQL Injection, el WAF vigila que los valores pasados tanto por GET como por POST, no contengan valores como "SELECT FROM, UNION, CONCAT, <script >, %, etc.

El factor negativo, es que, si nuestra aplicación utiliza caracteres que el WAF tenga en su "lista negra", denegará las peticiones de los usuarios, en este caso hay dos soluciones: rediseñar el funcionamiento de la aplicación o configurar el WAF para que ignore dichos caracteres.

Algunos WAF también monitorizan las respuestas del servidor, por ejemplo, si en una respuesta, que el servidor web envía al usuario se detectan cadenas que pueden ser identificadas como cuentas bancarias, el WAF lo puede detectar como un posible ataque y denegar la respuesta.

Proceso de Aprendizaje

Supongamos que tenemos una aplicación que muestra los productos de un catálogo y para mostrar un producto, se realiza la siguiente petición:

GET http://sitepath.com/show_article.php?id=15

La aplicación de por si sola, creará una regla que especifique que el valor de esa variable es numérica. Si se realiza la siguiente petición:

GET http://sitepath.com/show_article.php?id=15' or 1=1 --

El WAF detectará una anomalía y tomará las medidas necesarias, que suelen ser, la denegación de la petición o el redireccionamiento a una página previamente configurada, como un error 404.


¿Que riesgos implica emplear un WAF?

Si no está configurados correctamente, pueden detectar muchos falsos positivos, por tanto, muchas transacciones denegadas y pérdida de capital por parte de la empresa.

La mayoría necesitan adaptación y configuración ante nuevos cambios en el funcionamiento de la aplicación.

Pueden introducir un cierto retardo en las transferencias, por tanto, clientes insatisfechos y jefes molestos. Para atenuar este factor negativo, se pueden implementar aceleradores SSL (es un dispositivo hardware que se encarga de la capa de protección SSL, quita carga al servidor web), usar webchache, comprimir los datos HTML, CSS y JS al enviarlos al navegador.


Modos de Funcionamiento

Pueden funcionar en modo bridge, router, proxy o plugin. Disponibles tanto como Hardware como Software.

Un ejemplo bastante conocido de WAF a nivel software es mod_security, un plugin de Apache que se encarga de la seguridad en las transferencias. La mayoría, por no decir todos, disponen de funciones de registro o logs, donde almacena los sucesos ocurridos.

Una característica bastante interesante es la denegación de peticiones provenientes de diferentes lugares geográficos, por ejemplo, es probable que a nuestro personal de marketing no le interese recibir visitas a la web de ventas de la compañía provenientes de Asia Oriental y deciden denegar toda petición proveniente de ese continente.


Bibliografía y Enlaces externos:
_WAFEC - The Web Application Security Consortium.
_Web Application Firewall - OWASP.
_Web Application Firewall (WAF) Products.



«Si quieres la paz prepárate para la guerra» Flavius Vegetius


[Taller]Instalación/Configuración y Teoría de Servicios en Red

int_0x40

Muy chingona esta información madpitbull_99. Entonces las reglas de las WAF incluyen filtrado input y output ¿no es así? ¿Esas reglas las acomoda el desarrollador de acuerdo al contexto en que funciona la webapp y sus necesidades específicas de escalamiento o vienen con unas reglas predefinidas? Ya leí que no protegen contra nuevas técnicas, sólo las más comunes. ¿Sabes si alguna WAF admita reglas de filtrado a medida, configuradas por el personal de desarrollo? Eso estaría pocamadre.

Saludos.
"The girl i love...she got long black wavy hair "

madpitbull_99

 
CitarEntonces las reglas de las WAF incluyen filtrado input y output ¿no es así?
Sí, pero no todos los WAF filtran el output. El input es filtrado por defecto.


Citar¿Esas reglas las acomoda el desarrollador de acuerdo al contexto en que funciona la webapp y sus necesidades específicas de escalamiento o vienen con unas reglas predefinidas?
Lo normal, es que, las reglas sean ajustadas por un auditor de seguridad que trabajará junto con los desarrolladores. Casi todos vienen con reglas predefinidas, pero hay que ajustarlas a tu entorno, aunque, algunas empresas describen sus productos como plug and run (enchufar y listo).


CitarYa leí que no protegen contra nuevas técnicas, sólo las más comunes. ¿Sabes si alguna WAF admita reglas de filtrado a medida, configuradas por el personal de desarrollo?
Al final del artículo he dejado un enlace con una lista de WAF: Web Application Firewall (WAF) Products. Todos deberían permitir reglas de filtrado a medida, si no lo permiten, es un dispositivo poco flexible.
Puedes echar un vistazo al SmartWAF y ver también las capturas de la aplicación que gestiona el producto.



«Si quieres la paz prepárate para la guerra» Flavius Vegetius


[Taller]Instalación/Configuración y Teoría de Servicios en Red

int_0x40

Va que va. Gracias, hilo interesante. Pienso que los WAF que no hacen filtrado de output están abiertos entonces a ataques de reflejo de error.
"The girl i love...she got long black wavy hair "

Dr [F]

me gusto mucho la informacion, no sabia de la existencia de estas herramientas, se agradece
"Una vulnerabilidad es tan limitada como tu quieres que lo sea"

[H] Risk T --> Dr [F]