Web Application Security

Den Lücken auf der Spur

30.06.2009
Von Max Ziegler

Tücken bei der Anmeldung

Am weitesten verbreitet ist die HTML-Form-basierende Anmeldung mit einem Benutzernamen und Passwort. Damit sich der Scanner selbständig bei der Applikation anmelden kann, wird in der Regel ein so genanntes Login-Makro aufgenommen: Der Auditor nimmt manuell im Browser eine Anmeldung an der Applikation vor, während der Scanner diesen Vorgang und sämtliche Eingabewerte des Auditors, also auch Benutzername und Passwort, im Hintergrund mitschneidet.

Dieses Login-Makro wird vom Scanner jedes Mal ausgeführt, wenn er eine Abmeldung beziehungsweise die Ungültigkeit seiner Session erkennt. Hier liegen die Tücken im Detail, da die Erkennung des Logouts von Applikation zu Applikation sehr unterschiedlich ausfallen kann. Am einfachsten sind Meldungen wie "Sie wurden abgemeldet" oder "Ihre Session ist abgelaufen" als Logout-Signatur zu verwenden. In schwierigeren Fällen kann es erforderlich sein, weitere Parameter wie HTTP-Statuscode, URL, Header-Variablen oder Cookie-Status hinzuzunehmen, um einen Logout zu erkennen.

Die meisten Applikationen halten den Session-Status in Cookies, die vom Anwender beziehungsweise Scanner bei jeder Anfrage mitgeschickt werden. Seltener trifft man noch Session-IDs in der URL, also als GET-Parameter, an. Beide Fälle stellen für den Scanner üblicherweise kein Problem dar. Schwieriger wird es, wenn - wie häufig etwa bei SAP-basierenden Anwendungen - die Session-ID in den URL-Pfad selbst als eine Art "virtuelles Verzeichnis" eingebettet ist. Hier müssen die meisten Scanner passen und gehen bei jeder neuen Session-ID davon aus, dass ein neues Verzeichnis vorliegt.

Tipps und Links

- Die OWASP-Liste der zehn gefährlichsten Schwachstellen in Web-Applikationen.

- Web-Applikationen mit Schwachstellen zum eigenen Testen und Evaluieren von Scannern:

  • "Webgoat" mit über 30 Aufgaben,

  • "Hacme"-Suite (etwa "Hacme Bank") von Foundstone in unterschiedlichen Programmiersprachen und Plattformen.

- Die wichtigsten Web-Applikations-Scanner:

  • HP: WebInspect,

  • IBM: Rational AppScan,

  • NT Objectives: NTO Spider,

  • Cenzic: Hailstorm,

  • Acunetix: Web Vulnerability Scanner.

Solche Grenzfälle zeigen, dass sich nicht jede Applikation mit jedem Scanner erfolgreich überprüfen lässt und grundsätzliche manuelle Tests und entsprechendes Know-how hilfreich sind.