Detection of Software Vulnerabilities using Machine Learning
Final Report Abstract
Die Sicherheit von IT-Systemen wird stetig durch Schwachstellen in Software gefährdet. Die systematische Entdeckung und Eliminierung dieser Fehler ist daher ein zentrales Anliegen der angewandten IT-Sicherheitsforschung. Bemühungen die Schwachstellenentdeckung weitgehend zu automatisieren scheitern sowohl an praktischen Problemen sowie an den theoretischen Grenzen der Informatik. Schwachstellen werden daher heute von Experten in langwierigen manuellen Analysen aufgedeckt. Trotzdem lassen sich im Analyseprozess viele Teilaufgaben erkennen, bei denen der Analyst von einer Automatisierung profitieren könnte, insbesondere bei der Aufdeckung von Programmiermustern in großen Software-Projekten. Das von der DFG geförderte Forschungsprojekt DEVIL verfolgte das Ziel das Potenzial maschineller Lernalgorithmen zur automatischen Mustererkennung im Kontext der Schwachstellenentdeckung zu erforschen. Zu diesem Zweck wurden Methoden entwickelt, die Analysten mit unüberwachten Lernalgorithmen bei ihrer Arbeit unterstützen, ohne dabei eine umfangreiche initiale Datenerhebung zu erfordern. Im Verlauf des Projekts ergab sich dabei, dass alle drei Hauptfähigkeiten des unüberwachten Lernens im Kontext der Schwachstellenentdeckung nützliche Werkzeuge darstellen. Als nennenswertes Nebenprodukt der Forschung wurde zur technischen Realisierung der entwickelten Methoden eine neuartige Programmdarstellung entworfen, die eine musterbasierte Verarbeitung von großen Softwareprojekten mit modernen Graphdatenbanksystem erlaubt. Auf Basis dieser konnte ein System, ähnlich einer Suchmaschine, zur systematischen Aufdeckung von Schwachstellen erstellt werden, das Codemuster effizient in Software suchen kann. Das System wurde im Rahmen des Deutschen IT-Sicherheitspreises 2016 der Horst-Görtz-Stiftung mit dem zweiten Platz gewürdigt. Eine zusammenfassende Darstellung der zentralen Ergebnisse ist in Form einer Dissertation erschienen, die mit dem CAST/GI Promotionspreis ausgezeichnet wurde.
Publications
-
Chucky: Exposing Missing Checks in Source Code for Vulnerability Discovery, Proc. of the 20th ACM Conference on Computer and Communications Security (CCS), Oktober 2013
F. Yamaguchi, C. Wressnegger, H. Gascon und K. Rieck
-
Modeling and Discovering Vulnerabilities with Code Property Graphs, Proc. of the 35th IEEE Symposium on Security and Privacy (S&P), Mai 2014
F. Yamaguchi, N. Golde, D. Arp und K. Rieck
-
Automatic Inference of Search Patterns for Taint-Style Vulnerabilities, Proc. of the 36th IEEE Symposium on Security and Privacy (S&P), Mai 2015
F. Yamaguchi, A. Maier, H. Gascon und K. Rieck
-
Pattern-Based Vulnerability Discovery, Dissertation, Georg-August-Universität Göttingen, November 2015
F. Yamaguchi
-
Twice the Bits, Twice the Trouble: Vulnerabilities Induced by Migrating to 64-bit Platforms, Proc. of the 23rd ACM Conference on Computer and Communications Security (CCS), Oktober 2016
C. Wressnegger, F. Yamaguchi, A. Maier und K. Rieck