TUM Logo

Improving Static Analysis Precision Through Dynamic Analysis

Improving Static Analysis Precision Through Dynamic Analysis

Supervisor(s): Tobias Specht, Hannah Wester
Status: finished
Topic: Others
Author: Kerem Cakirer
Submission: 2023-05-15
Type of Thesis: Masterthesis
Thesis topic in co-operation with the Fraunhofer Institute for Applied and Integrated Security AISEC, Garching

Description

Abstract:


As computer programs continue to grow in their complexity, the number of bugs rises. One reason for
this is that at some point, the complexity of the program reaches a point where a single programmer
cannot realistically keep track of all the program invariants. Automated quality assurance tools
attempt to solve this problem through the use of static or dynamic analysis. However, both
approaches have their advantages and disadvantages. Static analysis, which is approximation-based,
tends to be faster while producing many false positives. On the other hand, dynamic analysis can be
very time-consuming, especially for larger programs, which dissuades from the use of dynamic
analysis, even though it tends to be more precise. This thesis investigates ways of combining these
techniques in an attempt to increase the precision of off-the-shelf static analysis tools.
Additionally, since many projects are libraries, there is a focus on trying to support this kind of
workflow for libraries via automated harness generation. In the evaluation, it was possible to make
some correlations between the static and dynamic analysis results, but identifying false positives
remains challenging.


Zusammenfassung:


Da Computerprogramme immer komplizierter werden, steigt auch die Anzahl an Schwachstellen. Ein Grund
dafür ist, dass das Programm eventuell so komplex sein wird, dass kein einzelner Programmierer mehr
alle Programm-Invarianten nachvollziehen kann. Automatisierte Qualitätssicherungssysteme versuchen
genau dieses Problem durch den Einsatz statischer oder dynamischer Analyse zu lösen. Allerdings
haben diese beide Methoden ihre eigenen Vor- und Nachteile. Die statische Analyse ist schnell, aber
die Approximationen führen zu vielen Falschmeldungen. Im Gegensatz dazu ist die dynamische Analyse
oft sehr zeitaufwändig, insbesondere bei komplexeren Programmen. Deswegen wird die dynamische
Analyse häufig vermieden, obwohl sie genauere Ergebnisse liefern würde. In dieser Masterarbeit wird
die Verbesserung der Genauigkeit der statischen Analyse durch die Kombination dieser Methoden
angestrebt. Da es auch viele Bibliotheken gibt, die von diesem Ansatz profitieren würden, werden sie
durch die automatisierte Erstellung von Harnischen unterstützt. Bei der Bewertung konnten einige
Korrelationen zwischen den Ergebnissen der statischen und dynamischen Analyse festgestellt werden,
aber es ist immer noch schwierig, Falschmeldungen zu erkennen.