Logo des Repositoriums
  • English
  • Deutsch
Anmelden
Keine TU-ID? Klicken Sie hier für mehr Informationen.
  1. Startseite
  2. Publikationen
  3. Publikationen der Technischen Universität Darmstadt
  4. Erstveröffentlichungen
  5. Improving Static and Dynamic Vulnerability Analysis using Values and Dataflows
 
  • Details
2025
Erstveröffentlichung
Dissertation
Verlagsversion

Improving Static and Dynamic Vulnerability Analysis using Values and Dataflows

File(s)
Download
Hauptpublikation
Final-Thesis-Miltenberger.pdf
Urheberrechtlich geschützt
Format: Adobe PDF
Size: 3.93 MB
TUDa URI
tuda/12654
URN
urn:nbn:de:tuda-tuprints-285981
DOI
10.26083/tuprints-00028598
Autor:innen
Miltenberger, Marc ORCID 0000-0002-3806-0522
Kurzbeschreibung (Abstract)

An increasing amount of sensitive information is processed and stored in computer systems, particularly on mobile phones and cloud-based web services. While modern mobile operating systems such as Android employ techniques to protect the user data on the system level, millions of Android applications have access to this sensitive information, such as photos, chats, e-mails, and calendars. Vulnerabilities in these applications can lead to a data breach or impact the integrity of the data. Due to the massive amount of applications available in modern application stores, performing manual security tests on all of them is impractical. While fully automatic vulnerability scanners exist, they are usually prone to false positives, which affects their usability. Furthermore, existing scanners often miss vulnerabilities, particularly when more advanced techniques such as reflective calls and intercomponent communication are involved. In this dissertation, we propose a static and dynamic framework to improve the precision and recall of our vulnerability scanner VUSC, which supports scanning Android and Java web applications. VUSC uses value analyses to resolve reflective and intercomponent communication calls to obtain a more complete call graph. Furthermore, VUSC requires value analyses to find concrete vulnerabilities such as insecure URL protocols (e.g. HTTP), insecure cryptographic algorithms (e.g., MD5) as well as hardcoded cryptographic keys. Therefore, we propose a novel approach called ValDroid to extract precise values statically. In order to compute values, ValDroid performs static program slicing to obtain paths and simulates the statements of this path using library models. Unlike existing static approaches, it handles loops as separate block entities, ensuring that the semantics of the original loop are preserved. This technique ensures that sliced paths are semantically equivalent to paths in the original program, which leads to more precise results. We demonstrate that ValDroid performs better than comparable approaches on the JSA value benchmark suite. However, the JSA value benchmark suite lacks some challenges regarding loops and arrays. As such, we propose a value benchmark suite called ValBench. Then, we show that ValDroid performs better on ValBench than its competitors. Furthermore, we demonstrate that ValDroid achieves higher precision and recall than other approaches on our dataset of real-world applications. Finally, we show how ValDroid improves VUSC’s scanning ability on popular Java-based vulnerability benchmark suites and real-world applications.

Freie Schlagworte

value analysis

static code analysis

dynamic code analysis...

Sprache
Englisch
Alternativtitel
Verbesserung statischer und dynamischer Schwachstellenanalyse mittels Werten und Datenflüssen
Alternatives Abstract

Eine stetig wachsende Menge sensitiver Daten wird in Computersystemen verarbeitet und gespeichert, insbesondere in mobilen Endgeräten und cloudbasierten Webdiensten. Obwohl moderne mobile Betriebssysteme wie Android Techniken einsetzen, die zum Schutz der Nutzerdaten auf dem Systemlevel dienen, haben Millionen von Androidapplikationen dennoch Zugriff zu sensitiven Daten wie Fotos, Chats, E-Mails und Kalender. Aufgrund der großen Anzahl von Applikationen, die Nutzern in Application Stores zugänglich gemacht werden, ist eine manuelle Überprüfung aller Applikationen unpraktibel. Es existieren zwar vollautomatische Schwachstellenscanner, allerdings liefern diese derzeit viele falsch-positive Meldungen. Dies schränkt die Nutzbarkeit solcher Werkzeuge ein. Darüberhinaus werden oft Schwachstellen übersehen, die eine Unterstützung für komplexe Programmiermechanismen wie reflektive Methodenaufrufe oder komponentenübergreifende Kommunikation erfordern. In dieser Dissertation präsentieren wir ein statisches und dynamisches Grundgerüst, um die Präzision und Menge an automatisch gefundenen Findings zu verbessern. Wir demonstrieren dies anhand unseres Schwachstellenscanners VUSC, welcher Android und Javaanwendungen auf technische Sicherheitslücken überprüft. VUSC verwendet Werteanalysen, um reflektive Methodenaufrufe und komponentenübergreifende Kommunikation aufzulösen, um einen präziseren Call Graph zu berechnen. Weiterhin werden Werteanalysen von VUSC eingesetzt, um konkrete Schwachstellen zu finden, wie beispielsweise unverschlüsselte HTTP-Verbindungen, unsichere kryptographische Algorithmen (u.a. MD5) sowie hardkodierte kryptographische Schlüssel. Daher stellen wir einen neuartigen Ansatz namens ValDroid vor, um Werte präzise auf statischem Wege zu extrahieren. Um die Werte zu bestimmen, wendet eine ValDroid statische Rückwärtsanalyse an, um Ausschnitte aus dem Programm in Form von Pfaden zu bestimmen, welche diese Werte berechnen. Anschließend simuliert ValDroid die Berechnung dieser Pfade unter Zuhilfename von eigens entwickelten Modellen für Drittbibliotheken. Anders als existierende statische Ansätze behandelt ValDroid Schleifen als separate Blockentitäten und erhält so die Originalsemantik von Schleifen. Dies stellt sicher, dass die ausgeschnittenen Pfade bezüglich der Werte semantisch äquivalent zu Pfaden im Originalprogramm sind, was zu präziseren Resultaten führt. Wir zeigen, dass ValDroid auf der JSA Wertetestreihe mehr korrekte Ergebnisse liefert als vergleichbare Ansätze. Da die JSA Wertetestreihe nicht genügend Testfälle für Loops und Arrays enthält, stellen wir eine eigene Wertetestreihe namens ValBench vor. Anschließend demonstrieren wir, dass ValDroid besser als vergleichbare Ansätze auf ValBench funktioniert. Weiterhin zeigen wir, dass ValDroid auch auf Applikationen vom Google PlayStore eine höhere Präzision und Sensitivität liefert. Schließlich evaluieren wir, inwieweit ValDroid die Genauigkeit von VUSC auf Javabasierten Schwachstellentestreihen sowie auf echten Anwendungen erhöht.

Fachbereich/-gebiet
20 Fachbereich Informatik > EC SPRIDE > Secure Software Engineering
DDC
000 Allgemeines, Informatik, Informationswissenschaft > 004 Informatik
Institution
Technische Universität Darmstadt
Ort
Darmstadt
Datum der mündlichen Prüfung
26.02.2025
Gutachter:innen
Waidner, Michael
Klein, Jacques
Handelt es sich um eine kumulative Dissertation?
Nein
Name der Gradverleihenden Institution
Technische Universität Darmstadt
Ort der Gradverleihenden Institution
Darmstadt
PPN
527977136

  • TUprints Leitlinien
  • Cookie-Einstellungen
  • Impressum
  • Datenschutzbestimmungen
  • Webseitenanalyse
Diese Webseite wird von der Universitäts- und Landesbibliothek Darmstadt (ULB) betrieben.