Thumbnail Image

Software defect localization using explainable deep learning

Ganz, Tom

The rapid proliferation of software has led to an increase in security threats, causing data breaches that have severe privacy implications and substantial financial consequences. As a result, software developers are under pressure to efficiently identify and mitigate vulnerabilities. One category of tools that has gained prominence in supporting developers in this regard is the field of machine learning-based software vulnerability detection, where models are trained to classify code as either vulnerable or clean. These models offer advantages over traditional static application testing tools, including adaptability to project-specific code and tunable decision boundaries. They have shown promising performance in vulnerability discovery, outperforming traditional static analysis techniques. Despite their potential, machine learning-based vulnerability detectors face challenges. They exhibit low transferability and generalizability, meaning that models trained on one project may not perform well on another. The scarcity of high-quality training data, along with issues related to model interpretability, poses additional hurdles. Many deep learning models are used as black boxes, making it difficult for security practitioners to understand their reasoning. Explainable AI (XAI) methods have been proposed to address the interpretability issue, allowing practitioners to gain insights into the model's decision process. However, these explanations can be noisy, and small changes in the input can lead to different results. Additionally, the choice of the right explanation method remains a challenge. The context-sensitivity of discovery models, or their ability to detect defects that span multiple modules or analyze code interprocedurally, also influences their detection capabilities. In the scope of this thesis, we explore and tackle the challenges associated with machine learning-based vulnerability discovery methods. Our focus encompasses four crucial dimensions: data quality, model interpretability, robustness, and context sensitivity. To address the scarcity of data, we employ novel augmentation techniques specifically tailored to code, which helps to increase model accuracy. Furthermore, we integrate explanation methods with dynamic program analysis to enable more effective comparisons. In terms of enhancing detection robustness, we employ causal learning techniques to effectively reduce confounding effects by up to $50\%$. Finally, we bolster defect detection by leveraging taint analysis, thereby expanding the context without encountering the issue of exponentially increasing feature spaces and, most prominently, increasing the detection rate. In this thesis, we propose solutions for learning-based vulnerability discovery to be more effectively applied in real-world scenarios. Finally, this work also provides a comprehensive overview of the challenges and advancements in the field, offering insights into the future of machine learning-based vulnerability discovery models.
Mit den wachsenden Anwendungsbereichen für Computerprogramme steigt auch die Sicherheitsbedrohung durch Cyber-Angriffe, welche schwerwiegende Auswirkungen und erhebliche finanzielle Schäden für Nutzer und Betreiber zur Folge haben können. Um die Risiken einzudämmen, stehen Softwareentwickler heute vor der Herausforderung, Schwachstellen in der Programmierung schnellstmöglich identifizieren und entschärfen zu können. Die automatisierte Fehlererkennung auf Basis von maschinellen Lernen hat sich hierbei als vielversprechendes Tool zur Unterstützung abgezeichnet. Dabei werden Modelle trainiert, die in der Lage sind, Schwachstellen im Programmcode, welche für einen Angriff potentiell anfällig sind, zu erkennen. Gegenüber herkömmlichen, regelbasierten statischen Anwendungstests, bieten maschinell trainierte Modelle den Vorteil, dass sie auf projektspezifische Codes angepasst werden und individuelle Entscheidungsgrenzen festgelegt werden können. Sie zeigen eine vielversprechende Leistung und übertreffen teilweise sogar traditionelle Analysetechniken. Trotzdem weisen auf maschinellem Lernen basierende Fehlerdetektoren noch Defizite auf. Sie sind nur begrenzt auf andere Projekte übertragbar und somit wenig verallgemeinerbar, d. h. für jedes Projekt muss eigens ein Modell trainiert werden. Der Mangel an hochwertigen Trainingsdaten sowie Probleme im Zusammenhang mit der Interpretierbarkeit von Modellen stellen zusätzliche Hürden dar. Viele Deep-Learning-Modelle werden als Blackboxen benutzt, wodurch die Entscheidungsfindung nur schwer nachzuvollziehen ist. Im Rahmen dieser Arbeit untersuchen wir die Herausforderungen, die mit auf maschinellem Lernen basierenden Methoden zur Entdeckung von Schwachstellen verbunden sind, und gehen diese an. Unser Fokus zielt auf vier entscheidende Dimensionen ab: Datenqualität, Modell- Interpretierbarkeit, Robustheit und Kontextsensitivität. Um dem Mangel an Daten zu begegnen, stellen wir neue, auf Code zugeschnittene Augmentationstechniken vor und steigern dadurch die Modellgenauigkeit. Außerdem kombinieren wir Erklärungsmethoden mit dynamischer Programmanalyse, um effektivere Vergleiche zu ermöglichen. Um die Robustheit der Erkennung zu erhöhen, setzen wir kausale Lerntechniken ein und senken somit die Modellbeeinträchtigung durch Störfaktoren bis zu 50%. Letztlich unterstützen wir die Fehlererkennung durch den Einsatz von Taint-Analysen und erweitern so den Kontext, ohne auf das Problem exponentiell wachsender Merkmalsräume zu stoßen und verbessern damit Erkennungsraten gegenüber traditionellen Schwachstellendetektoren. Diese Thesis präsentiert Lösungen, um die Anwendbarkeit der lernbasierten Schwachstellenerkennung im produktiven Einsatz zu gewährleisten. Desweiteren liefert diese Arbeit einen umfassenden Überblick über die Herausforderungen auf diesem Gebiet und bietet Einblicke in die Zukunft der auf maschinellem Lernen basierenden Modelle zur Schwachstellenerkennung.