22. Juni 2018

Phasar – ein neues LLVM-basiertes Framework zur statischen Programmanalyse

Am 19. Juni fand auf der PLDI 18 Konferenz in Philadelphia ein Workshop zum Phasar Framework, welches in der Fachgruppe „Softwaretechnik“ von Prof. Bodden entwickelt wird, statt. Aktuelles Ziel des mittlerweile ausgereiften Frameworks ist die Vergrößerung der Nutzerbasis und die stetige Verbesserung.

In einer modernen Welt, die unabdingbar auf Software angewiesen ist, ist deren korrekte und fehlerfreie Funktion von größter Bedeutung. Da Korrektheit von Software im Allgemeinen nicht bewiesen werden kann, müssen Verfahren herangezogen werden, die möglichst viele Fehler und Schwachstellen aufdecken können. Ein solches Verfahren ist die statische Codeanalyse, welche Software automatisiert auf bestimmte Eigenschaften prüfen kann. Neben Eigenschaften zur allgemeinen Funktionsfähigkeit können dabei auch Sicherheitseigenschaften gezeigt werden, wodurch z. B. die vertrauliche Behandlung von Daten sichergestellt werden kann.

Eine Programmeigenschaft korrespondiert in der Regel mit einer konkreten statischen Analyse, welche die nachzuweisende Eigenschaft mithilfe einer Überapproximation des Programmverhaltens zeigt. Einzelne Analysen zu entwickeln ist äußerst komplex und mit einem enormen Aufwand verbunden, da u. a. vor der eigentlichen Analyse viele Programminformationen vorab berechnet werden müssen, um diese überhaupt erst ausführen zu können. Da die Neuentwicklung einzelner Analysen unpraktisch ist, entwickelt die Fachgruppe von Prof. Bodden derzeit ein neuartiges Framework namens Phasar zur vollautomatisierten statischen Codeanalyse. Phasar stellt dabei ein Grundgerüst zur Verfügung, welches alle analyse-unabhängigen Informationen automatisch berechnet, sodass der Entwicklungsaufwand neuer Analysen extrem gesenkt wird. Ein Analysenentwickler stellt Phasar lediglich die Problembeschreibung zur Verfügung und Phasar löst ein gegebenes Problem mithilfe verschiedener Datenfluss-Solver vollautomatisiert auf gegebenen Programmen. Außerdem stellt Phasar bereits einige integrierte Analysen bereit, die direkt verwendet werden können.

Da das Framework mittlerweile so ausgereift ist, dass es auch komplexe Realweltanwendungen analysieren kann, geht es nun darum, die Nutzerbasis auszubauen und Feedback zu sammeln, sodass Phasar stetig weiter verbessert werden kann. Zu diesem Zweck wird Phasar der internationalen Forschungscommunity auf der ACM SIGPLAN International Conference on Programming Languages, Design and Implementation (PLDI) im Juni 2018 im Rahmen eines ganztägigen Tutorials vorgestellt. Darüber hinaus richtete die Fachgruppe „Softwaretechnik“ bereits vom 19.02. bis 23.02.2018 einen Workshop aus. Neben den Mitarbeitern wohnten auch studentische Hilfskräfte und ein Doktorand der Fachgruppe von Prof. Sven Apel, Universität Passau, bei, der selbst sehr nah an diesem Gebiet forscht und sich mit der verwendeten Technologie bestens auskennt. Durch den Workshop konnte wertvolles Feedback gesammelt werden. So konnte unter anderem schnell festgestellt werden, dass der Bedarf für ein Framework wie Phasar extrem groß ist, da momentan kein vergleichbares LLVM-basiertes Tool existiert, welches auch in den Programmiersprachen C und C++ entwickelte Programme untersuchen kann. Aus diesem Grund werden zur Lösung von Datenflussproblemen auf C/C++ Code momentan nur relativ unpräzise ad-hoc entwickelte Teillösungen genutzt. Ein ausgereiftes Framework wie Phasar kann diese Lücke füllen. Die Fachgruppe „Softwaretechnik“ wird Phasar in Kürze Open-Source stellen, sodass andere Forscher es sowohl nutzen als auch eigene Erweiterungen beitragen können. Ein weiterer Kritikpunkt bezüglich der Modularität des Frameworks wurde bereits umgesetzt und die Modularität wurde verbessert, sodass Forscher neben der Benutzung von Phasar als Tool auch selektiv die Teile des Frameworks nutzen können, die sie in ihrem konkreten Problemfall benötigen. Dadurch können auch neue Phasar-basierte Werkzeuge entwickelt werden.

zurück zur Übersicht