Web browser-based interactive crawling for security testing

Castañón Remy, José Luis (2018). Web browser-based interactive crawling for security testing. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S. de Ingenieros Informáticos (UPM), Madrid, España.

Description

Title: Web browser-based interactive crawling for security testing
Author/s:
  • Castañón Remy, José Luis
Contributor/s:
Item Type: Final Project
Degree: Grado en Ingeniería Informática
Date: July 2018
Subjects:
Faculty: E.T.S. de Ingenieros Informáticos (UPM)
Department: Lenguajes y Sistemas Informáticos e Ingeniería del Software
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[thumbnail of TFG_JOSE_LUIS_CASTANON_REMY.pdf]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (283kB) | Preview

Abstract

Desde el inicio de la web, las nuevas tecnologías web han estado emergiendo,
como JavaScript, la tercera revisión de HTML, el primer lanzamiento de Java y
Flash, etc. Era necesario establecer unas bases de seguridad y como resultado
nace la figura del auditor. Su principal cometido ha sido llevar a cabo el testing
de tecnologías en búsqueda de vulnerabilidades. Con el fin de facilitar las tareas
realizadas, nacen los escáneres de seguridad en aplicaciones web. A pesar de la
gran variedad de herramientas existentes, todas ellas utilizan crawlers. Esta tesis
se centra en los crawlers, en particular, en aquellos utilizados en escáneres de
seguridad en aplicaciones web. Los crawlers permiten a los escáneres explorar el
contenido de las aplicaciones web.
Los crawlers contienen una gran cantidad de problemas. El principal problema
es la lógica que utilizan con el fin de explorar las aplicaciones web. La interacción
actual se basa en lanzar peticiones HTTP, paesear la respuesta obtenida, con el fin
de encontrar el mayor número de referencias (URLs) para acceder al contenido de
la aplicación web. Las referencias encontradas serán tratadas de la misma manera
con el fin de encontrar más referencias. Esta lógica no es suficiente para descubrir
todo el contenido almacenado en las aplicaciones web. Como nos vamos a centrar
en resolver este problema, hemos encontrado un enfoque diferente utilizado por
los crawlers con el fin de explorar el contenido de aplicaciones web de manera
más eficiente.
Hemos desarrollado un crawler capaz de interactuar con una aplicación web
imitando el comportamiento humano. Por ello, el crawler rellena los campos
’input’ y ’text area’, hace click en los botones visibles, envía información a la
aplicación, etc. Además, ofrecemos una implementación sobre el enfoque llamado
Incrawler, el cuál se basa en la librería de Python Selenium WebDriver.
Para medir el rendimiento de nuestro crawler, lo evaluamos en 4 aplicaciones web deliberadamente vulnerables (por ejemplo, OWASP WebGoat) y comparamos su rendimiento con el crawler clásico dentro de la herramienta de tests de
penetración OWASP ZAP. Los resultados que logramos parecen prometedores.
Por ejemplo, nuestro crawler puede explorar el 80% del contenido almacenado en
WebGoat, mientras que el crawler de OWASP ZAP logra solo una cobertura del
14%.---ABSTRACT---Since the inception of the web, new web technologies have been emerging. The
introduction of JavaScript, third revision of HTML, the release of Java and Flash
technologies, to name a few. Web security bases were needed to be established and
as a result, the figure of the security auditor was born. His/her main task has been
to carry out all the testing tasks in search of vulnerabilities in web technologies. In
order to facilitate this type of tasks, web application security scanners were born.
Despite the great variety of web application security scanners, majority of them
use crawlers. This thesis focuses on crawlers, in particular the crawlers within web
application security scanners (scanners in short). Crawlers let scanners explore
the content of a web application.
Crawlers contain many problems. The biggest problem is the underlying logic
used by them to explore web applications. Current interaction is based on sending
HTTP requests, parsing the response to find as many references (URLs) to access
the contents of the web application and sending further HTTP requests to the
identified URLs to explore more content. This logic is not enough to find all
content stored in web applications. As we focus on solving this, we have found
a new approach that can be used by crawlers to explore better the contents of a
web application.
We have developed a crawler capable of interacting with a web application,
mirroring human behavior. Meaning the crawler fills input fields and text areas,
clicks buttons, submits filled forms, etc. We also provide an implementation of our
approach, namely
Incrawler, which is based on the Python Selenium WebDriver
library.
In order to measure the performance of our crawler, we evaluate it against 4
different deliberately-vulnerable web applications (e.g., OWASP WebGoat) and
compared its performance with the classic crawler within the OWASP ZAP pen-etration testing tool. The results we achieved looks promising. For instance, our
crawler is able to explore 80% of the content stored in WebGoat whereas the
crawler withing OWASP ZAP achieves only 14% coverage.

More information

Item ID: 52722
DC Identifier: https://oa.upm.es/52722/
OAI Identifier: oai:oa.upm.es:52722
Deposited by: Biblioteca Facultad de Informatica
Deposited on: 22 Oct 2018 10:35
Last Modified: 22 Oct 2018 10:35
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM