Las mejores herramientas para revisar seguridad de firewall de aplicaciones web WAF: Descubra qué soluciones de seguridad está utilizando un sitio web. Hacking de WAF

Un firewall de aplicaciones web (WAF) es un programa destinado a analizar las solicitudes entrantes a un servidor web y, según las reglas establecidas por los administradores, filtrar aquellas solicitudes que puedan resultar peligrosas para una plataforma en línea.

Acorde a especialistas en seguridad de aplicaciones web, el uso de soluciones WAF limita el riesgo de explotación de vulnerabilidades conocidas en sitios web, ya que las solicitudes de las cargas útiles no pueden llegar al servidor web o a la aplicación web, siendo rechazadas por esta herramienta de seguridad. Es por ello que estas soluciones son parte fundamental de un adecuado entorno de seguridad web.

Una solución limitada

Implementar un WAF no es tan simple como debería ser, ya que es necesario aplicar las configuraciones correctas. Algunas aplicaciones WAF simplemente no hacen nada después de la instalación debido a que deshabilitan todas las reglas de filtrado. Además, si simplemente se activan todas las reglas WAF, es posible que el servidor web deje de funcionar, ya que casi todas las solicitudes web se considerarán potencialmente peligrosas, por lo que los administradores web deberán decidir sabiamente qué filtros implementar.

Hay cientos de soluciones WAF y todas varían mucho, aunque su configuración de algunos de ellos se reduce a habilitar y deshabilitar categorías de amenazas filtradas en la interfaz web. Para personalizar algunos de ellos, debe editar archivos de texto en los que se describen consultas peligrosas en su propio lenguaje WAF.

Para configurar las reglas WAF de la manera más estricta posible, especialistas en seguridad de aplicaciones web recomiendan activar reglas que denieguen todo excepto los tipos necesarios de solicitudes al servidor web. Para hacer esto, necesita, en primer lugar, tener una buena comprensión del funcionamiento del sitio web protegido, lo que necesita y lo que no; y, en segundo lugar, tener una buena comprensión de los tipos de ataques, cómo se explotan y cómo funciona un WAF personalizado.

En esta ocasión, los especialistas en seguridad de aplicaciones web del Instituto Internacional de Seguridad Cibernética (IICS) le mostrarán algunas herramientas diseñadas para detectar una solución WAF, encontrar al fabricante y descubrir posibles formas de evadir el filtrado de solicitudes maliciosas.

Wafw00f

Empleando Wafw00f, los investigadores podrán determinar de manera muy rápida y precisa el tipo de WAF para un sitio web especificado. Además de esta función, Wafw00f tiene otras características:

  • Rastrear un sitio a través de un proxy
  • Compatibilidad con formatos de entrada y salida csv, json o texto sin formato

Usar el programa es muy simple: solo especifique el dominio del sitio para el que desea averiguar las características del WAF:

wafw00f URL

Por ejemplo:

wafw00f wise.com

La línea “Number of requests” muestra la cantidad de solicitudes realizadas, solo dos fueron suficientes. Como resultado, se identificó una solución WAF de Cloudflare.

Si cree que el análisis pudo ser inexacto, agregue la opción -a, como resultado, WAFW00F no se detendrá después de la primera coincidencia, sino que verificará todos los registros posibles:

wafw00f -a wise.com

Para enviar solicitudes a través de un proxy, use la opción -p, después de lo cual especifique los datos del proxy: se admiten SOCKS y autenticación, ejemplos de parámetros de proxy especificados correctamente:

  • http://hostname:8080
  • socks5://hostname:1080
  • http://user:pass@hostname:8080

Con el siguiente comando podrá usar la red Tor como proxy:

wsudo systemctl start tor
wafw00f -p socks5://127.0.0.1:9050 admitad.com

A pesar de la lentitud de la red Tor, la autenticación de la protección web (que resultó ser Wordfence de Defiant) fue muy rápida y solo requirió dos solicitudes.

Los objetivos para la identificación de seguridad web se pueden compilar en un archivo. Al iniciar el programa, puede especificar un archivo con una lista de destinos, csv, json o formatos de texto compatibles. Para csv y json, se requiere una columna o elemento llamado “url”. Formato de archivo de texto: 1 URL por línea. Ejemplo:

wafw00f -i urls.txt

Con la opción -t puede especificar qué WAF quiere encontrar, esta opción debería ser especialmente útil agregando la opción -i:

wafw00f -i urls.txt -t 'Cloudflare (Cloudflare Inc.)'

Puede mostrar la lista completa de firewalls de aplicaciones web compatibles con el siguiente comando:

wafw00f –l

Los especialistas en seguridad de aplicaciones web recomiendan prestar atención al formato en el que se indica el WAF deseado. Si tiene alguna duda sobre cómo especificar el WAF correctamente, vaya a la página del proyecto en GitHub, busque el archivo que necesita y ábralo. En https://github.com/EnableSecurity/wafw00f/tree/master/wafw00f/plugins, busque una línea que comience con NAME, por ejemplo:

NAME = 'ACE XML Gateway (Cisco)'

El programa es muy rápido y simple, no obstante, debido al hecho de que es imposible cambiar el User-Agent, a veces el programa no puede identificar la protección web porque el servidor rechaza las solicitudes de esta herramienta con el User-Agent predeterminado.

IdentityYwaf

Este es otro programa simple, efectivo y fácil de utilizar. De forma similar a Wafw00f, esta es una herramienta de identificación que puede reconocer el tipo de seguridad de aplicaciones web en función de la respuesta del servidor. Además, esta herramienta realiza consultas adicionales para determinar contra qué tipos de vulnerabilidad está protegida una plataforma web.

Después del escaneo, la herramienta da una estimación de la complejidad para explotar las vulnerabilidades en el objetivo, si es que las hubiera. La más reciente versión de este programa puede detectar más de 80 productos de protección diferentes, desarrollados por firmas como CrawlProtect, WatchGuard, Wordfence y Palo Alto, entre otras.

Acorde a los expertos en seguridad de aplicaciones web, IdentityYwaf realiza la validación de dos maneras:

  • Non-blind: cuando el WAF se identifica en base a mensajes que le son propios. Por ejemplo, en el mensaje “403 (‘<title>¡Atención requerida! | Cloudflare</title>”, se muestra claramente el nombre del firewall de aplicaciones web, pero al mismo tiempo puede ser un intento de confundir al atacante o pentester
  • Blind: Cuando el WAF se identifica en función de los bloqueos de la carga útil que se le envía

La siguiente captura de pantalla muestra un ejemplo de escaneo de firewall de aplicaciones web:

Examinemos la salida del programa.

El tipo de WAF según el escaneo non-blind es Wordfence, de Defiant:

[+] non-blind match: 'Wordfence (Defiant)'

Se realizaron un total de 45 pruebas con varias cargas útiles (solicitudes no amenazantes que son muy similares a las solicitudes para explotar vulnerabilidades):

[i] running payload tests... (45/45)

El resultado se presenta en forma de diagrama, en el que el punto no es una carga útil bloqueada, y la cruz es un bloque de WAF en respuesta a la carga útil enviada:

[=] results: '..............x...x.xx.xxxxx....x.........xx.'  

La complejidad de explotar ataques potenciales se muestra en un formato simple de porcentaje:

[=] hardness: easy (26%)

Categorías de ataques bloqueados:

[=] blocked categories: SQLi, XSS, XXE, PT

La decisión final basada en el método de identificación blind y su probabilidad:

[+] blind match: 'Wordfence (Defiant)' (100%)

Una prueba más

python3 identYwaf.py wise.com

Para conocer más sobre riesgos de seguridad informática, malware, vulnerabilidades y tecnologías de la información, no dude en ingresar al sitio web del Instituto Internacional de Seguridad Cibernética (IICS).