XSS Sicherheitslücken und wie man diese durch Statische Codeanalyse aufdecken kann

 
Conference Day - 21. Mai
 
9:30
 
Anwendungssicherheit
Raum Rheinauen
 
Basic

Cross-Site-Scripting (XSS) steht auf Platz 3 der aktuellen "OWASP Top 10 Most Critical Web Application Security Risks" und ist eine der häufigsten und erfolgreichsten Methoden, um Webbrowser und Rechner von Internet-Benutzern anzugreifen. Dieser Vortrag erklärt zunächst XSS mit seinen verschiedenen Varianten. Dazu wird ein XSS Angriff an einem kleinen Beispiel demonstriert und im Code aufgezeigt, wie ein solcher XSS Angriff technisch funktioniert.

Danach wird erläutert, wie mit statischer Codeanalyse und dem Verfahren der "Taint-Analyse" (Datenflussanalyse) der Weg von kompromittierten Daten durch ein Softwaresystem gefunden und verfolgt werden kann.

Bei Webapplikationen muss die statische Codeanalyse einen kompletten Request/Response-Zyklus betrachten und dabei verschiedene Probleme bewältigen: Typischerweise werden die Request-Daten von Webapplikations-Frameworks verarbeitet, die intern Dependency Injection (Inversion of Control) nutzen und bei denen daher eine statische Analyse ohne zusätzliche Kontextinformationen nichts ausrichten kann.
In der Response-Phase findet man Anweisungen zum Encoding von Nutzerdaten häufig erst in Template-Dateien, die einer Renderer-Engine als zusätzlicher Input gegeben werden. Diese Dateien enthalten nicht Java-Code, sondern z.B. Expression Language (EL) oder Freemarker Code.
Im Vortrag werden Lösungsansätze für diese Probleme beschrieben und aufgezeigt, wo die Grenzen einer solchen Codeanalyse liegen.

Thomas Schoen

RIGS IT GmbH
Dipl. Inform. Thomas Schoen ist Geschäftsführer der RIGS IT GmbH. Herr Schoen war Mitentwickler des Architektur- und Qualitätsanalyse-Wekrzeugs Sotograph (später SonarJ und Sonargraph). Sein Tätigkeitsschwerpunkt liegt in der Analyse und Verbesserung von Application-Security und technischer Codequalität. Über diese Themen hat Herr Schoen in Vorträgen auf Konferenzen wie OOP, JAX, Seacon und auch schon auf dem Karlsruher Entwicklertag berichtet. Zur Zeit beschäftigt er sich insbesondere mit innovativen Methoden zur automatischen und werkzeuggestützten Erkennung von Sicherheitslücken in Softwaresystemen.