Bibliographic Metadata

Title
Automated XSS vulnerability detection through context aware fuzzing and dynamic analysis / von Tobias Fink
AuthorFink, Tobias
CensorWeippl, Edgar ; Merzdovnik, Georg
PublishedWien, 2018
Descriptionxi, 100 Seiten : Illustrationen, Diagramme
Institutional NoteTechnische Universität Wien, Diplomarbeit, 2018
Annotation
Zusammenfassung in deutscher Sprache
LanguageEnglish
Document typeThesis (Diplom)
Keywords (EN)XSS vulnerability detection / cross site scripting / automated detection / dynamic analysis / web application entry points / web app control flow analysis / XSS payloads / data flow analysis / black-box testing
URNurn:nbn:at:at-ubtuw:1-115741 Persistent Identifier (URN)
Restriction-Information
 The work is publicly available
Files
Automated XSS vulnerability detection through context aware fuzzing and dynamic analysis [1.11 mb]
Links
Reference
Classification
Abstract (German)

Cross Site Scripting (XSS) Angriffe sind bereits seit langem bekannt und obwohl eine breite Palette an Gegenmaßnahmen vorgestellt wurde, ging das Auftreten von neuen XSS Schwachstellen nur marginal zurück. Auf der anderen Seite erhöht sich die Zahl an Angriffen sowie deren Raffinesse, da immer mehr Anwendungen Code vom Server auf den Client auslagern. Existierende Programme zur Schwachstellenanalyse in diesem Sektor weisen oft nur eine ungenügende Genauigkeit beim Aufspüren solcher Fehler auf. Deshalb beschäftigt sich diese Arbeit mit der Lösung der folgenden Probleme: (i) Unzureichende Testumgebungen zur Auswertung bestehender Tools, (ii) Fehlende Vergleiche bereits existierender Black-Box Analysetools, (iii) Entwicklung und Implementierung von Methoden zur effektiven Erkennung von XSS Schwachstellen. Die automatisierte Auswertung von Analyseprogrammen bedarf einer Testumgebung, welche eine möglichst hohe Abdeckung an diversen XSS Schwachstellen bietet. Da existierende Frameworks hier große Mängel aufweisen, wurde eine eigene Anwendung entwickelt um möglichst viele Kombinationen unterschiedlicher Dateneingangs und - ausgangspunkte, sowie Filtermechanismen in Webanwendungen abzubilden, welche zuvor in keinem Testset enthalten waren. Basierend auf dieser Testumgebung wurde eine großangelegte Studie zu frei verfügbaren XSS Scannern durchgeführt. Die Auswertung zeigt, dass existierende Tools nur unzureichende Ergebnisse liefern. Speziell bei den Varianten der DOM-basierten und persistenten Schwachstellen konnten die meisten überhaupt keine Testfälle erkennen. Um den Stand von offenen und frei verfügbaren Werkzeugen zu verbessern stellen wir daher eine eigene Black-Box Methodik zum effizienten Erkennen von XSS Schwachstellen in Webanwendungen vor, welche aus zwei wesentlichen Teilen besteht. Zuerst wird eine Analyse der Datenflüsse innerhalb der Anwendung durchgeführt um Informationen zu deren Eingangsund Ausgangskontext sowie eventuell vorhandene Filterund Sicherheitsmaßnahmen zu erhalten. Anschließend werden diese zuvor identifizierten Datenkanäle durch Fuzzing mit speziell adaptierten Angriffen getestet und dynamisch in einem integrierten Browser ausgewertet. Diese dynamische Verifizierung erlaubt es falsch positive Ergebnisse zu vermeiden. Die Evaluierung des entwickelten Prototypen zeigt auf, dass die neu entwickelte Methodik im Vergleich zu existierenden frei verfügbaren Tools in der Lage ist in annähernd der selben Zeit eine signifikant höhere Anzahl an ausnutzbaren Schwachstellen zu identifizieren.

Abstract (English)

Cross Site Scripting (XSS) attacks have been around for a long time and while a multitude of countermeasures and mitigation techniques have been researched, XSS vulnerabilities did not decline much. The number of attacks and their sophistication increases as more and more code is shifted into the client side of web applications. Therefore this thesis deals with the following challenges: (i) Creating and implementing a method for efficient XSS detection, (ii) the lack of coverage of current testbeds regarding types and possibilities of XSS, (iii) the missing comparisons and analysis of existing black-box scanners. A testing environment was created covering a large number of diverse XSS vulnerabilities in 1808 distinct test cases so that black-box scanning tools can be evaluated and compared with regard to their performance. The focus was to maximize combinations of different input and output contexts together with filtering mechanisms and also to minimize the complexity of the web application and test case structure in order to make them easily accessible for automated scanners. The test cases of already existing testbeds, which often only feature a handful of simple XSS test cases, were integrated and many more new and advanced ones implemented. Based on the previous findings an approach to efficiently detect XSS vulnerabilities is presented and implemented in a fully automated scanner prototype. The approach is based on data flow detection together with input and output context analysis. This allows the construction of specialized and environment sensitive attack payloads. The scanner additionally collects information about potential input filters and sanitization mechanisms and evaluates these against several evasion methods. The gathered data flows are then fuzz tested with specifically tailored payloads. Finally, detected vulnerabilities and attack vectors are verified dynamically to ensure a zero false positive rate. Several automated vulnerability scanners that try to detect XSS flaws exist, but no large scale comparison of their performance regarding detection rate is available. Therefore existing free and open source analysis tools were evaluated against the created testbed, uncovering that most of them lack proper detection capabilities especially in the sectors of DOM-based and stored cross site scripting. Many could not even detect a single vulnerability in the test cases of these two categories. The evaluation of the prototype implementation of the new approach shows, that it is able to detect significantly more vulnerabilities than other open source scanners. This is achieved while the time required for the scanning process stays in the range of the best performing open source tools.

Stats
The PDF-Document has been downloaded 16 times.