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:
  • Carro Liñares, Manuel
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

[img]
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: http://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