Eingabe löschen

Kopfbereich

Schnellnavigation

Hauptnavigation

Sicherheitslücken im Web schneller beheben

Virtual Patches sind ein gute Möglichkeit, Sicherheitsschwachstellen in einer Webapplikation vorübergehend zu «beheben», bis ein echter Patch verfügbar ist. Die Erzeugung von Virtual Patches beansprucht allerdings viele Ressourcen. Im Rahmen dieser Masterarbeit wurde deshalb untersucht, wie dies zumindest teilweise automatisiert werden kann. Der Ansatz basiert dabei auf der Auswertung der Ergebnisse von automatisierten Schwachstellenscannern.

Das Schliessen von Sicherheitslücken durch Virtual Patches

Bei den Cybercriminals stehen Webapplikationen ganz oben auf der Liste der attraktiven Angriffsziele. Das Ausnutzen von Schwachstellen in der Applikation kann dabei z.B. beliebigen Zugriff auf die von der Applikation verwalteten Daten erlauben oder dem Angreifer Zugriff auf Funktionen bieten, die ihm eigentlich nicht zugänglich sein sollten. Wird eine Schwachstelle entdeckt, so muss sie mit einem Patch behoben werden. Oft steht ein solcher aber nicht unmittelbar zur Verfügung, z.B. weil der Hersteller der Webapplikation noch keinen geliefert hat oder weil derzeit keine internen Ressourcen vorhanden sind, das Problem selbst zu beheben. In diesem Fall können sogenannte Virtual Patches im Sinne einer Zwischenlösung temporär Abhilfe bieten. Dabei wird eine Filterregel in einer vorgelagerten Web Application Firewall konfiguriert, mit dem Ziel, dass Angriffe, welche die Schwachstelle ausnutzen möchten, erkannt und blockiert werden. Die Schwachstelle wird also nur «virtuell» gepatcht, dadurch wird aber Zeit geschaffen, den richtigen Patch zu entwickeln, um den Fehler im Programmcode der Applikation zu beheben.

Reports von Schwachstellenscannern als Grundlage

Diese Virtual Patches können grundsätzlich von Hand erzeugt werden, was durchaus sinnvoll ist, um auf eine eben bekannt gewordene Schwachstelle in nützlicher Zeit zu reagieren. Man kann sich aber auch vorstellen, Virtual Patches automatisiert zu generieren. Genau dieser Ansatz wurde im Rahmen der Masterarbeit analysiert, wobei zuerst ein Lösungskonzept aufgestellt wurde, um dieses schliesslich zu implementieren und zu evaluieren.
Der Ansatz basiert dabei auf automatisierten Schwachstellenscannern. Das sind Tools, die durch Interaktion mit einer Webapplikation Schwachstellen finden können. Diese Reports liefern dabei recht umfassende Informationen der Schwachstellen, z.B. in welchem Bereich der Applikation sich diese befinden und wie sie verifiziert bzw. ausgenutzt werden können. Basierend auf dieser Erkenntnis wurde eine Lösung ausgearbeitet und umgesetzt, mit welcher Virtual Patches automatisch aus diesen Reports generiert werden können. Die Evaluation der umgesetzten Lösung hat gezeigt, dass der Ansatz grundsätzlich funktioniert und die Virtual Patches das Ausnutzen von Schwachstellen verhindern können. Allerdings zeigten sich in der Praxis auch Limitierungen. So kommt es z.B. vor, dass der Virtual Patch nicht nur Angriffe verhindern, sondern auch die legitime Benutzung der Applikation negativ beeinträchtigen kann (sog. «False Positives») und dass mit leichten Variationen der Angriffe teilweise ein Weg gefunden werden kann, den Virtual Patch zu umgehen und die Attacke dennoch erfolgreich durchzuführen (sog. «False Negatives»).

Maximale Präzision durch halbautomatischen Ansatz

Diese Untersuchungen zeigten, dass der vollautomatische Ansatz nicht optimal ist. Wird allerdings ein «Human in the loop» genommen, d.h. werden automatisiert Vorschläge für Virtual Patches gemacht, die dann ein Mensch mit den nötigen technischen Kenntnissen überprüft, ggfs. leicht adaptiert und erst dann in der Web Application Firewall installiert, dann lassen sich bessere Ergebnisse erzielen. Das ist dann zwar kein vollautomatisierter Ansatz mehr, allerdings lassen sich damit qualitativ gut Ergebnisse erzielen und das bei gesamthaft deutlich weniger Aufwand, als wenn die Virtual Patch komplett manuell erzeugt werden müssten.