Web Application Security

Den Lücken auf der Spur

30.06.2009
Von Max Ziegler

Die Grenzen der Scanner

Einige Schwachstellen sind ausschließlich durch eine manuelle Überprüfung aufzuspüren. So können Scanner beispielsweise keine Logikfehler erkennen, da sie nicht fähig sind, die Bedeutung von Parametern und URLs zu interpretieren: Ein Scanner weiß nicht, dass normale Benutzer Administrationsseiten nicht aufrufen dürfen. Daher wird er keine Schwachstelle feststellen, wenn er - im Kontext eines normalen Benutzers - unberechtigt Zugriff auf administrative Bereiche erhält. Ein weiteres simples Beispiel wäre eine Überweisung, bei der die Zielkontonummer als URL-Parameter übermittelt wird. Ein Scanner kann nicht wissen, dass die Applikation eigentlich verhindern sollte, dass dieser Parameter etwa von "zielkonto=12345" in "zielkonto=67890" geändert wird.

Neben Logikfehlern stehen Scanner auch Plausibilitätsprüfungen einer Applikation hilflos gegenüber. Wenn eine Anwendung an einer bestimmten Stelle erst die Eingabe einer gültigen Kundennummer oder die Einhaltung einer vorgegebenen Abfolge von Eingabemasken erfordert, damit der nächste Schritt erfolgen kann ("Wizards"), gibt es derzeit keine Möglichkeit zur automatisierten Überprüfung.

Fazit

Unterm Strich tragen automatisierte Tools trotz ihrer Grenzen wesentlich dazu bei, die Effizienz von Sicherheitsüberprüfungen zu erhöhen und ohne viel Aufwand im Rahmen der 80/20-Regel einen großen Teil der Risiken zu identifizieren. Unter diesem Aspekt können Unternehmen Scanner auch in Eigenregie als hilfreiches Werkzeug nutzen. Automatisierte Scanner empfehlen sich auch, wenn eine Vielzahl von Applikationen in möglichst kurzer Zeit auf die gröbsten Schnitzer hin untersucht werden soll.

Direkt vor dem Rollout einer Applikation, nach größeren Änderungen und vor allem bei geschäftskritischen Anwendungen sollte ein professionelles Audit mit einer manuellen Komponente jedoch nicht fehlen. Denn selbst gute Scanner haben ihre Grenzen und können mit der Erfahrung und dem Detailwissen eines Auditors nicht mithalten. (kf)