• Deutsch
    • English
  • Deutsch 
    • Deutsch
    • English
  • Einloggen
Dokumentanzeige 
  •   Startseite
  • Naturwissenschaften, Mathematik und Informatik
  • Fakultät für Mathematik und Informatik (inkl. GAUSS)
  • Dokumentanzeige
  •   Startseite
  • Naturwissenschaften, Mathematik und Informatik
  • Fakultät für Mathematik und Informatik (inkl. GAUSS)
  • Dokumentanzeige
JavaScript is disabled for your browser. Some features of this site may not work without it.

Pattern-Based Vulnerability Discovery

von Fabian Yamaguchi
Dissertation
Datum der mündl. Prüfung:2015-10-30
Erschienen:2015-11-10
Betreuer:Prof. Dr. Konrad Rieck
Gutachter:Prof. Dr. Konrad Rieck
Gutachter:Prof. Dr. Thorsten Holz
Gutachter:Prof. Dr. Jean-Pierre Seifert
crossref-logoZum Verlinken/Zitieren: http://dx.doi.org/10.53846/goediss-5356

 

 

Dateien

Name:mainFastWeb.pdf
Size:1.78Mb
Format:PDF
ViewOpen

Lizenzbestimmungen:


Zusammenfassung

Englisch

With our increasing reliance on the correct functioning of computer systems, identifying and eliminating vulnerabilities in program code is gaining in importance. To date, the vast majority of these flaws are found by tedious manual auditing of code conducted by experienced security analysts. Unfortunately, a single missed flaw can suffice for an attacker to fully compromise a system, and thus, the sheer amount of code plays into the attacker’s cards. On the defender’s side, this creates a persistent demand for methods that assist in the discovery of vulnerabilities at scale. This thesis introduces pattern-based vulnerability discovery, a novel approach for identifying vulnerabilities which combines techniques from static analysis, machine learning, and graph mining to augment the analyst’s abilities rather than trying to replace her. The main idea of this approach is to leverage patterns in the code to narrow in on potential vulnerabilities, where these patterns may be formulated manually, derived from the security history, or inferred from the code directly. We base our approach on a novel architecture for robust analysis of source code that enables large amounts of code to be mined for vulnerabilities via traversals in a code property graph, a joint representation of a program’s syntax, control flow, and data flow. While useful to identify occurrences of manually defined patterns in its own right, we proceed to show that the platform offers a rich data source for automatically discovering and exposing patterns in code. To this end, we develop different vectorial representations of source code based on symbols, trees, and graphs, allowing it to be processed with machine learning algorithms. Ultimately, this enables us to devise three unique pattern-based techniques for vulnerability discovery, each of which address a different task encountered in day-to-day auditing by exploiting a different of the three main capabilities of unsupervised learning methods. In particular, we present a method to identify vulnerabilities similar to a known vulnerability, a method to uncover missing checks linked to security critical objects, and finally, a method that closes the loop by automatically generating traversals for our code analysis platform to explicitly express and store vulnerable programming patterns. We empirically evaluate our methods on the source code of popular and widely-used open source projects, both in controlled settings and in real world code audits. In controlled settings, we find that all methods considerably reduce the amount of code that needs to be inspected. In real world audits, our methods allow us to expose many previously unknown and often critical vulnerabilities, including vulnerabilities in the VLC media player, the instant messenger Pidgin, and the Linux kernel.
Keywords: Vulnerabilities; Machine Learning; Graph Mining; Security
 

Statistik

Hier veröffentlichen

Blättern

Im gesamten BestandFakultäten & ProgrammeErscheinungsdatumAutorBetreuer & GutachterBetreuerGutachterTitelTypIn dieser FakultätErscheinungsdatumAutorBetreuer & GutachterBetreuerGutachterTitelTyp

Hilfe & Info

Publizieren auf eDissPDF erstellenVertragsbedingungenHäufige Fragen

Kontakt | Impressum | Cookie-Einwilligung | Datenschutzerklärung | Barrierefreiheit
eDiss - SUB Göttingen (Zentralbibliothek)
Platz der Göttinger Sieben 1
Mo - Fr 10:00 – 12:00 h


Tel.: +49 (0)551 39-27809 (allg. Fragen)
Tel.: +49 (0)551 39-28655 (Fragen zu open access/Parallelpublikationen)
ediss_AT_sub.uni-goettingen.de
[Bitte ersetzen Sie das "_AT_" durch ein "@", wenn Sie unsere E-Mail-Adressen verwenden.]
Niedersächsische Staats- und Universitätsbibliothek | Georg-August Universität
Bereichsbibliothek Medizin (Nur für Promovierende der Medizinischen Fakultät)
Robert-Koch-Str. 40
Mon – Fri 8:00 – 24:00 h
Sat - Sun 8:00 – 22:00 h
Holidays 10:00 – 20:00 h
Tel.: +49 551 39-8395 (allg. Fragen)
Tel.: +49 (0)551 39-28655 (Fragen zu open access/Parallelpublikationen)
bbmed_AT_sub.uni-goettingen.de
[Bitte ersetzen Sie das "_AT_" durch ein "@", wenn Sie unsere E-Mail-Adressen verwenden.]