Statische Codeanalyse für Web Application Security, Eric Barmeyer

Eric Barmeyer

Kurzfassung

Angriffe auf Anwendungen sind sehr häufig auf Fehler in den Programmen zurückzuführen. Viele dieser Fehler können durch den Einsatz von statischen Analysewerkzeugen (Static Analysis Tools (SATs)) bereits sehr früh in der Entwicklungsphase erkannt und vermieden werden. SATs können Programmcode analysieren und potentielle Fehler aufdecken, ohne auf konkrete Nutzereingaben angewiesen zu sein oder das Programm auszuführen. Das Sortiment an Werkzeugen, welche einem Entwickler zur Verfügung stehen, um statische Analysen durchzuführen, hat in den letzten Jahren immer weiter zugenommen.
In dieser Arbeit werden verschiedene SATs vorgestellt und gezeigt, ob deren Verwendung bei der Detektion von Sicherheitslücken, die im spezifischen Webanwendungen betreffen, helfen kann. Darüber hinaus wird beschrieben, welche Sicherheitslücken überhaupt von SATs detektiert werden können. Abschließend wird gezeigt, wie SATs erweitert werden können, um Fehler, welche sie vorher nicht detektieren konnten, erkennbar zu machen.

Schlagwörter: Softwareentwicklung, Statische Codeanalyse, Webanwendungssicherheit, Softwaresicherheit, Sicherheitsschwachstellen
 

Abstract

Attacks on applications are very often due to bugs in the programs. Many of these errors can be detected and avoided very early in the development process through the use of static analysis tools (SATs). SATs can analyze program code and uncover potential bugs without relying on concrete user input or running the program. The amount of tools available to a developer to perform static analysis, has continuously increased in recent years.
This thesis will present different SATs and shows if their use can help in detecting security vulnerabilities, specifically in Web applications. In addition, it describes which kind of security vulnerabilities can be detected by SATs. Finally it will be shown how SATs can be extended to detect errors that they were previously unable to detect.

Keywords: software development, static software security testing, web application security, software security, security vulnerabilities