Full text
Preview |
PDF
- Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (283kB) | Preview |
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.
Title: | Web browser-based interactive crawling for security testing |
---|---|
Author/s: |
|
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 |
Preview |
PDF
- Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (283kB) | Preview |
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.
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 |