Evaluation of Static Code Analysis Tools

Master-Studiengang Information Security

Dipl.-Ing. Mario Rubak, BSc (Jg. 2014/2016)

Betreuer: FH-Prof. Mag. Dr. Simon Tjoa

Ausgangslage

Software ist im Internet von heute allgegenwärtig. Firmen steuern ihre Produkte, Banken verwalten ihr Geld und Personen jeden Alters fangen mittels der „Pokémon GO“-App virtuelle BegleiterInnen. Alle diese Aspekte unseres Lebens werden von Software beeinflusst.

Wie in den Medien immer öfter berichtet wird, nimmt die Anzahl an Datendiebstählen zu und verursacht Schäden in Millionenhöhe. Viele dieser Einbrüche sind auf Programmierfehler in einer Software zurückzuführen. Unternehmen arbeiten hart, um solche Sicherheitslücken aufzudecken und damit Einbrüche zu verhindern.

Dieses Vorgehen ist vergleichsweise zu einer frühen Bekämpfung der Problemquelle teuer und zeitaufwändig. Mittels der Einbindung einer statischen Code-Analyse-Software in den Entwicklungsprozess von Programmen können Sicherheitsrisiken frühzeitig erkannt und kostensparend behoben werden.

Ziel

Eines der Ziele dieser Arbeit ist es, sowohl einen grundlegenden Überblick über statische Analysen und deren Unterschied zu dynamischen Analysen deutlich zu machen, als auch einen Einblick in das Thema der Usability-Evaluierung zu geben. Dieses Hintergrundwissen wurde außerdem ausgebaut, um eine möglichst leicht umsetzbare Evaluierung von zwei statischen Code-Analyse-Programmen im Hinblick auf Security und Usability durchzuführen.

Ergebnis

Als Ergebnis liegt für die Security- als auch für die Usability-Evaluierung eine Excel-Datei vor, in welcher zwei statische Code-Analyse-Programme verglichen und dabei deren Stärken und Schwächen aufzeigt werden. Um die Security-Evaluierung zu ermöglichen, wurden zusätzlich Testfälle gesammelt, umgestaltet und ausprogrammiert. Zur Durchführung der Usability-Evaluierung wurde ein Fragebogen erstellt, ausgewertet und den Heuristiken von Jakob Nielsen zugeordnet.

Ausblick

Die Genauigkeit der Security-Evaluierung kann noch weiter ausgebaut werden, indem mehr Testsätze entwickelt werden sowie ein größeres Spektrum an Schwachstellen herangezogen wird. Weiters kann versucht werden, mit Hilfe eines automatisierten Weges – ohne Verwendung von Testsätzen, aber mittels Machine Learning – die Security-Evaluierung durchzuführen. Die Usability-Evaluierung könnte anstatt als heuristische Evaluierung mittels Befragungen von Expertinnen und Experten durchgeführt werden. Dies könnte zu einem anderen Ergebnis führen.