Zur Seitenansicht

Titelaufnahme

Links
Zusammenfassung

Statische Taint-Analyse ist eine Programmanalysetechnik, mit der bösartige Software und eine Vielzahl von Sicherheitslücken aufgespürt werden können. Obwohl sowohl in der Industrie als auch im akademischen Bereich viele statische Taint-Analyse-Werkzeuge entwickelt wurden, werden nur sehr wenige davon in der Industrie eingesetzt, und dies ungeachtet der Bedeutung der Probleme, die diese Werkzeuge erkennen können. Diese Dissertation untersucht die Gründe dafür und konzentriert sich darauf, die Praxistauglichkeit der statischen Taint-Analyse zu verbessern. Sie befasst sich mit drei bestehenden Problemen, die den Einsatz der statischen Taint-Analyse in der Praxis behindern. Das erste Problem ist das Fehlen von realistischen Benchmarks. Dies führt zu Analysewerkzeugen, die zwar in Mikro-Benchmarks gut funktionieren, aber weniger effektiv in Praxis sind, da reale Anwendungen mehr Sonderfälle enthalten. Aus Gründen der Skalierbarkeit ignorieren statische Taint-Analyse-Werkzeuge oft Pfadbedingungen. Dies führt zum zweiten Problem: Werkzeuge können Warnungen ausgeben, die entweder nicht realisierbar sind oder die ein bestimmter Benutzer nicht beachten wird. Ein weiterer Grund dafür, dass statische Taint-Analyse-Werkzeuge, die dem neuesten Stand der Technik entsprechen, von Softwareentwicklern nicht in großem Umfang eingesetzt werden ist, dass sie nicht in IDEs integriert sind, die von Entwicklern üblicherweise verwendet werden, was ihre Verwendung umständlich macht. Diese Dissertation präsentiert mehrere Ansätze, von der Konstruktion realistischer Benchmarks, neuartige Werkzeuge bis hin zu Nutzerstudien, die diese drei Probleme angehen, um die Praxistauglichkeit der statischen Taint-Analyse zu verbessern.

Abstract

Static taint analysis is a program analysis technique that can be used to detect malicious software and a wide range of security vulnerabilities. Although there have been many static taint analysis tools created in both industry and academia, very few are widely used in industry, despite the importance of the problems these tools can detect. This dissertation investigates why and focuses on improving the real-world applicability of static taint analysis. It addresses three existing problems that hinder the real-world adoption of static taint analysis. The first problem is the lack of realistic benchmarks. This leads to analysis tools that work well on micro benchmarks, but are less effective in finding real-world issues, since real-world applications contain more corner cases. For the sake of scalability, static taint analysis tools often ignore path conditions. This leads to the second problem: tools can produce warnings that are either unrealizable or a given user will not care about. Another reason that state-of-the-art static taint analysis tools are not widely adopted by software developers, is that they are not integrated into IDEs commonly used by developers, making them cumbersome to use. This dissertation presents several contributions, from the construction of realistic benchmarks, novel tools, to user studies, that address these three problems to improve the applicability of static taint analysis.

Statistik