Enhancing web application attack detection using machine learning

Martínez, Rodrigo

Supervisor(es): Betarte, Gustavo - Pardo, Alvaro

Resumen:

Despite all effort of the security community, for example initiatives as the OWASP Top 10, it is a known fact that web applications are permanently being exposed to attacks that exploit their vulnerabilities. Some web applications vulnerabilities can only be discovered as a result of a process of trial and error performed by an attacker. The identification and determination of a user’s behavior using attack detection techniques become crucial, these techniques assist in aspects such as preventing attackers to identify/verify successfully the existence of vulnerabilities in applications and to minimize the number of false positives (non-malicious activity identified as such). A technological alternative for performing real-time attack analysis is the use of a Web Application Firewall (WAF), systems that intercepts and inspects all traffic between the web server and its clients, searching for attacks in the communication’s content. Most WAF works by using a set of statics rules defined to identify attacks. In this thesis, we analyze the use of machine learning techniques to enhance web applications attack detection in MODSECURITY, an open source WAF that has became a de facto standard implementation. We first propose a characterization of the problem by defining different scenarios depending on whether we have application’ specific or generic data, as well as, valid and/or attack traffic available for training. We also analyze existing dataset to use in this context and we have created our own dataset by capturing real traffic to a real life application. We finally present two supervised machine learning solutions. The first is a classic discrimination approach between two classes (valid traffic and attacks). The second is a one-class classification solution for a more realistic scenario when only valid data is available. In the one-class classification approach it is assumed that one of the classes can be properly modeled using data from the training set (in our case the valid traffic) while the other class (in our problem attacks) can not be modeled by total or partial lack of training samples. We present results using both approaches and compare them with MODSECURITY configured with the OWASP Core Rule Set out of the box, which is the most widely deployed set of rules.


A pesar de todos los esfuerzos de la comunidad de seguridad, por ejemplo, iniciativas como el OWASP Top 10, es un hecho conocido que las aplicaciones web están permanentemente expuestas a ataques que explotan sus vulnerabilidades. Algunas de estas vulnerabilidades solo se pueden descubrir como resultado de un proceso de ensayo y error realizado por un atacante. La identificación y determinación del comportamiento de un usuario utilizando técnicas de detección de ataques se vuelven cruciales. Estas técnicas ayudan en aspectos tales como evitar que los atacantes identifiquen/verifiquen con éxito la existencia de vulnerabilidades en las aplicaciones, así como minimizar el número de falsos positivos (actividad no maliciosa identificada como tal). Una alternativa tecnológica para realizar análisis de ataques en tiempo real es el uso de un firewall de aplicaciones web (WAF por su siglas en inglés). Estos sistemas interceptan e inspeccionan el tráfico entre el servidor web y sus clientes, buscando ataques en el contenido de la comunicación. La mayoría de los WAF funcionan mediante el uso de un conjunto de reglas estáticas definidas para identificar ataques. En esta tesis, analizamos el uso de técnicas de aprendizaje automático para mejorar la detección de ataques de aplicaciones web en MODSECURITY, un WAF de código abierto que se ha convertido en un estándar de facto. Primero, proponemos una caracterización del problema definiendo diferentes escenarios dependiendo de si contamos para el entrenamiento con datos específicos o genéricos de la aplicación, así como también tráfico válido o ataques. También analizamos los conjuntos de datos públicos existentes para usar en este contexto y hemos creado nuestro propio conjunto de datos capturando tráfico real sobre una aplicación en producción. Finalmente, presentamos dos soluciones de aprendizaje automático supervisado. La primera es un enfoque clásico de discriminación entre dos clases (tráfico válido y ataques). La segunda es una solución de clasificación de una clase (one-class) para un escenario más factible cuando solo hay datos válidos disponibles. En la clasificación de una clase se asume que una de las clases puede ser correctamente modelada a partir de datos del conjunto de entrenamiento (en nuestro caso el tráfico válido) mientras que la otra clase (en nuestro problema los ataques) no puede ser modelada por falta total o parcial de muestras de entrenamiento. Presentamos los resultados utilizando ambos enfoques y los comparamos con MODSECURITY configurado con el OWASP Core Rule Set por defecto, que es el conjunto de reglas más ampliamente utilizado.


Detalles Bibliográficos
2019
Inglés
Universidad de la República
COLIBRI
https://hdl.handle.net/20.500.12008/29278
Acceso abierto
Licencia Creative Commons Atribución - No Comercial - Sin Derivadas (CC - By-NC-ND 4.0)