jueves, 26 de diciembre de 2013

OWASP ZAP: Así funciona su búsqueda automática de vulnerabilidades

En este artículo vamos a explicar como funciona la búsqueda automática de vulnerabilidades en OWASP ZAP, la alternativa a Burpsuite. Aunque mucha gente ya sabrá como funciona, habrá otra que no sepa que hace realmente OWASP ZAP cuando se buscan vulnerabilidades.

OWASP ZAP, es uno de los productos de OWASP, sus siglas ZAP corresponden a Zed Attack Proxy. Y nada mejor que la propia herramienta para explicarnos qué puede hacer. Aquí tenemos el mensaje de bienvenida cuando se abre:

<<Bienvenidos al OWASP Zed Attack Proxy (ZAP).
ZAP es una herramienta para pruebas de penetración, de fácil uso y con múltiples componentes, para encontrar vulnerabilidades en aplicaciones web. Ten en cuenta que sólo debes atacar aplicaciones para las cuales se ha sido previamente autorizado.>>


Poco más hace falta saber de cual es su cometido. Posiblemente su facilidad de uso sea el que le ha convertido en uno de los buscadores de vulnerabilidades en aplicaciones web más famosos. Ya que para empezar a usarlo, para encontrar vulnerabilidades rápidamente, tan sólo hace falta introducir la URL, y atacar.
Imagen 1: Mensaje de bienvenida de OWASP ZAP para empezar a atacar.
A partir de ese momento OWASP ZAP empezará a a buscar vulnerabilidades indiscriminadamente.
Lo primero que hará será recorrer todas las URL del sitio a través del Spider. De esta forma podremos tener un mapa de la web.
Imagen 2: recorrido de URL a través del Spider
Cuando se hace este recorrido por todas las URLs a través del Spider, se vana analizando cada una de las URL encontradas en busca de información sensible, y en caso de encontrar alguna URL que esté catalogada como sospechosa, se mostrará un alerta indicando su grado de riesgo, es decir, si la vulnerabilidad es grabe, media, o casi sin importancia.

Para entenderlo mejor; hay que saber que el Spider por su parte recorre todas las URLs de la página web dibujando un mapa del sitio, posteriormente las URLs se analizan en función de una serie de evaluaciones y criterios que viene preestablecidos por defectos en OWASP ZAP, los cuales determinar si la URL puede considerarse un riesgo, o no. Algunos de estos ejemplos de URL son URL del tipo:
Podemos imaginarnos que el listado de urls que pueden ser altamente peligrosas es muy grande.

Gracias a esto podemos tener una imagen global de como está formada la web y del tipo de programación web que tiene. Cuando el Spider finaliza su recorrido, automáticamente pasa a realizar un Escaneo Activo del sitio, de todas las URL que se encontraron anteriormente.

Es aquí donde OWASP ZAP hace mayor ruido en su ataque, ya que al tratarse de un Escáner Activo, lo que hará será probar todo tipo de ataques en las direcciones entradas. Esto implica desde una búsqueda de configuración en un simple parámetro de alguno de los archivos que compone la web, hasta ataques de SQL injection, XDD, LFI, RFL, etc.
Imagen 3: Escáner Activo de búsqueda de vulnerabilidades
Este escáner permitirá determinar si existe una vulnerabilidad o no, pero nunca atacará directamente sobre el servidor. El escáner, de la misma manera que el Spider, irá recorriendo todas las URL e irá probando “ataques” sin llegar a ejecutarlos.
Al finalizar este proceso, habrá terminado la búsqueda automática de vulnerabilidades.

Es en la parte de de Alertas donde podremos ver el resultado de todas las vulnerabilidades encontradas en función de su riesgo. Este panel donde se muestra las posibles vulnerabilidades y el riesgo que conlleva, muestra además, información sobre cómo se puede vulnerar, y qué medidas se pueden tomar para evitar que dicho fallo de seguridad sea vulnerable.
Imagen 4: Alerta de vulnerabilidades


En resumen, el ataque por parte de OWASP ZAP que permite la búsqueda de vulnerabilidades automáticas, funciona de la siguiente forma:

  1. Se hace un recorrido de URL con el Spider
  2. Se realiza un escaneo activo de todas las URLs obtenidas en el spider
  3. Se analiza el contenido de cada URL y se muestran las alertas en función de la criticidad de la vulnerabilidad