Das Open Web Application Security Project (OWASP) ist eine weltweite Community, die sich mit der Entwicklung sicherer Webapplikationen befasst. Sie haben dazu umfängliche Materialien (in englisch) sowie selbstentwickelte Open-Source-Software ins Netz gestellt, mit der man sich autodidaktisch die nötigen Kenntnisse über sichere Webanwendungen erarbeiten kann.
Eines dieser Werkzeuge ist WebGoat. Dabei handelt es sich um eine J2EE-Webanwendung, die man sich runterladen und lokal installieren kann. In ihr wurden bewusst zahlreiche Sicherheitslücken eingebaut. WebGoat ist als Lernprogramm in Kapitel gegliedert, die sich mit gängigen Sicherheitslücken befassen. In jedem Kapitel gibt es praktische Übungen, in denen man versuchen kann, eine Sicherheitslücke auszunutzen und so eine bestimmte Angriffsart selber praktisch nachzuvollziehen. Auch der Quellcode von WebGoat ist verfügbar, so dass Entwickler die Applikation selbst zur Analyse auseinandernehmen können.
Der Name Goat („Bock“) wurde der Anwendung angeblich deshalb gegeben, da auch Entwickler gerne dazu neigen, bei Schwierigkeiten einen Sündenbock zu suchen. Hier ist einer.
Zu den mit WebGoat praktisch nachvollziehbaren Angriffsmethoden und Schwachstellen in Webanwendungen zählen:
• Cross Site Scripting
• Access Control
• Thread Safety
• Hidden Form Field Manipulation
• Parameter Manipulation
• Weak Session Cookies
• Blind SQL Injection
• Numeric SQL Injection
• String SQL Injection
• Web Services
• Fail Open Authentication
• Dangers of HTML Comments
Etliche der seit einiger Zeit von Bildungsträgern vermehrt und für vierstellige Beträge angebotenen „Hackerkurse“ benutzen u.a. WebGoat als Trainingsumgebung für Angriffe auf Webanwendungen. Auch ich habe das Tool auf diese Weise entdeckt. OWASP stellt es kostenfrei für die interessierte Fachwelt zur Verfügung, so dass man auch zuhause und ohne teures Seminar damit experimentieren kann.