Machine Learning kann auch Web Application Firewalls bei der Gefahrenabwehr helfen. - Quelle: monsitj - 123RF

Machine Learning in Web Application Firewalls

Das Potenzial von Machine-Learning-Modellen in Sicherheitsprodukten wie Web Application Firewalls ist groß. Statistische Lösungsansätze bringen aber neue Gefahren mit sich. Die Kunst ist, zu erkennen, in welchen Bereichen die Systeme einen tatsächlichen Mehrwert liefern und wie diese gestaltet werden müssen, um Anforderungen an Sicherheit und laufenden Betrieb zu erfüllen. Fundiertes Fachwissen im Bereich Applikationssicherheit und Machine Learning ist dabei zentral für den Erfolg eines solchen Projekts.

Wieso soll man eine unsichere Webapplikation mit einem zusätzlichen Sicherheitsprodukt wie einer Web Application Firewall (WAF) schützen? Wäre es nicht sinnvoller, diese Ressourcen in die sichere Entwicklung der Anwendung oder in die Identifizierung und Behebung der Sicherheitslücken zu investieren? Das Problem: Wegen der Art und Weise, wie heute Webapplikationen entwickelt, konfiguriert und ausgerollt werden, ist es unglücklicherweise kaum möglich, alle Sicherheitslücken zu stopfen. Sogar wenn der selbstgeschriebene Programmcode entsprechende Qualitätsanforderungen erfüllt, so hängt er möglicherweise von Komponenten ab, die dies nicht tun.

Wie lässt sich nun trotzdem die Sicherheit einer Webapplikation gewährleisten? Die Lösung kannten bereits die Erbauer von Burgen im Mittelalter: Defense in depth. Der Ansatz kombiniert mehrere unabhängige IT-Sicherheitssysteme und reduziert somit das Risiko eines erfolgreichen Cyberangriffs. In einem solchen System spielt eine Web Application Firewall bezüglich des Schutzes der Webanwendung eine zentrale Rolle.

Web Application Firewalls und Machine Learning

Mit dem allgemeinen Boom von Machine Learning (ML) in den letzten Jahren hält der Einsatz entsprechender Techniken vermehrt Einzug in den Bereich der IT-Security. Ein Team von Machine-Learning- und Web-Security-Spezialisten der Ergon Informatik AG untersucht aktuell den Einsatz von ML-Methoden im Bereich der Web Application Firewall Airlock. Dabei erhielten Sie einen Überblick zu den Chancen und Risiken ML-basierter Methoden im Bereich WAF.

Die Kernaufgabe einer Web Application Firewall besteht darin, die nachgelagerten Webapplikationen vor technischen Angriffen zu schützen. Dabei lässt sich Machine Learning nicht nur für die Erkennung von Webattacken einsetzen. Denkbar ist auch die Nutzung im Bereich Loganalyse oder die Unterstützung eines Administrators beim Erstellen oder Optimieren komplexer WAF-Konfigurationen.

Klassische Methoden und Machine Learning – eine Ergänzung

Die meisten Sicherheitsrisiken in Webapplikationen lassen sich durch eine spezifische WAF-Funktion verhindern oder stark reduzieren. Dabei kommen meist regelbasierte Systeme zum Einsatz. Bei älteren Webanwendungen liegt der Großteil der Applikationslogik auf dem Server und der Client folgt dem vorgegebenen Ablauf, beispielsweise indem er ein präsentiertes Formular vom Benutzer ausfüllen lässt. Solche Systeme können sehr effektiv durch dynamische Regeln wie dem Verschlüsseln von URLs, Signieren von HTML Formularelementen oder dem Einsatz von CSRF-Tokens geschützt werden. Moderne Webanwendungen dagegen, bei denen ein Großteil der Applikationslogik im Client läuft, lassen sich teilweise nur sehr schwer mit dynamischen Funktionen absichern.

Ein Nachteil regelbasierter Systeme ist, dass sie meist nur gegen einen sehr spezifischen Angriffsvektor schützen oder aber mit hohem Integrationsaufwand verbunden sind. ML-basierte Methoden versprechen hier einen Mehrwert, da sie auch bei einer gewissen Unklarheit des Angriffsvektors Verwendung finden können. Die nachfolgende Grafik beurteilt einige typische WAF-Sicherheitsfunktionen bezüglich deren Integrationsaufwand sowie der Fähigkeit, unbekannte Angriffe zu erkennen.

Kein einzelnes Sicherheitsfeature kann dabei die ganze horizontale Achse, das heißt alle möglichen Angriffsvektoren, abdecken. Spezifische Angriffe wie Cross-Site Request Forgery oder bekannte Code-Injection-Attacken werden weiterhin am effektivsten durch sehr spezifische, auf diesen Angriffsvektor zugeschnittene, Sicherheitsfunktionen verhindert.

Die richtige Aggregationsstufe

WAFs treffen typischerweise Entscheidungen basierend auf einzelnen Requests oder einer Gruppe solcher Anfragen, beispielsweise alle Requests innerhalb einer HTTP-Session oder von derselben Source-IP-Adresse. Bei der Betrachtung einer Gruppe von Anfragen innerhalb einer HTTP-Session lassen sich interessante Eigenschaften definieren und statistisch untersuchen. Zum Beispiel ist die Wahrscheinlichkeit einer bestimmten Folge von HTTP-Requests innerhalb einer Session auslesbar.

Die typischen Folgen werden meist vom gewünschten Benutzerverhalten dominiert. Untypische Folgen deuten auf unerwünschte Aktivitäten wie einen Web-Crawler hin, der die Links in einer unüblichen Reihenfolge aufruft. Eine Schwierigkeit beim Session-Scope besteht darin, während eines Angriffs früh Gegenmaßnahmen wie das Blockieren der Session auszulösen. Ein weiteres Problem ist, dass Angreifer ihre Attacken auf mehrere Sessions verteilen können. Dies ist insbesondere bei öffentlich zugänglichen Webapplikationen einfach möglich.

Machine Learning braucht Engineering

Um eine unerwünschte HTTP-Session mittels ML-basierten Methoden zu erkennen, gilt es zunächst, entsprechende Features zu definieren (Feature Engineering). Dabei werden aus den zugrundeliegenden Daten wichtige Attribute abstrahiert, aufgrund derer das Modell später Vorhersagen trifft. Dieser Schritt ist zentral für den Erfolg. Beispiele für solche Features in Webverkehr sind Verteilungen der Zeitabstände von Requests, HTTP-Objekt-Größen oder die Verteilung von HTTP-Status-Codes. Aus einzelnen Basisattributen in den Rohdaten wie zum Beispiel Timestamps lassen sich über mehrere Schritte komplexere Features konstruieren. Anschließend werden, basierend auf diesen Features, geeignete ML-Modelle ausgewählt, konfiguriert und trainiert.

Durch geeignete Kombination verschiedener Modelle entsteht nun ein System, das in der Lage ist, bestimmte Auffälligkeiten einer Websession zu identifizieren. Dieses System kann Fragen beantworten, wie: Wurden einzelne Requests innerhalb der Session durch eine Person ausgeführt oder war ausschließlich eine Software beteiligt? Handelt es sich um einen gewöhnlichen Benutzer oder deutete sein Verhalten auf einen Hacker hin? Falls die Requests von einer Software ausgelöst wurden: Handelt es sich um eine legitime Suchmaschine, ein Monitoringtool oder möglicherweise um einen unerwünschten Site-Crawler, Bot – oder sogar ein Attack-Tool?

Jede Webapplikation lässt sich dabei mit einem eigenen Modell trainieren und schützen. Somit kann eine bestimmte Anomalie in einer Applikation ein gewöhnliches Verhalten in einer anderen Applikation sein. Dies ist ein weiterer Vorteil einer Web Application Firewall mit Machine Learning an Bord, gegenüber statischen Sicherheitsfunktionen, die nur mit viel Aufwand für jede Webanwendung unterschiedlich konfigurierbar und optimierbar ist. Beim Trainieren der Modelle ist zudem darauf zu achten, dass der Angreifer keinen Einfluss auf die Trainingsphase nehmen kann oder dass die Modelle mit solchen unerwünschten Daten umgehen können.

Kein Schwarz-Weiß-Denken

Im Gegensatz zu klassischen, regelbasierten Systemen liefern Machine-Learning-Modelle keine Schwarz-Weiß-Antworten sondern Wahrscheinlichkeitsverteilungen. Aktionen sind nun in Abhängigkeit dieser Verteilung auslösbar. Eine Session-Terminierung oder das zeitliche Blockieren einer Source-IP soll in der Regel nur dann geschehen, wenn ein Angriff eine hohe Wahrscheinlichkeit hat. Andere Aktionen wie das Einblenden eines CAPTCHAs sollen dagegen nur erfolgen, wenn Requests mit hoher Wahrscheinlichkeit automatisiert ausgelöst wurden, zum Beispiel von einem Bot. Ist die Unsicherheit zu hoch, so lassen sich Session-Details lediglich loggen oder an ein Zusatzsystem etwa für Fraud Detection für zusätzliche Analysen und Entscheidungen weiterleiten.

Sicherheit von ML-basierten Systemen

Da ML-Modelle heute in sehr kritischen Systemen wie selbstfahrenden Autos zum Einsatz kommen, in welchen falsche Entscheidungen fatale Folgen haben können, erfolgt seit einigen Jahren vermehrt Forschung zum Thema der Robustheit dieser Modelle. Obwohl sich Straßenschilder ohne Probleme während einer sehr hohen Genauigkeit erkennen lassen, wurde gezeigt, dass bei weniger robusten Modellen ein Angreifer durch kaum sichtbare Veränderungen eines Stopp-Straßenschildes, das System dazu bringen kann, dieses Schild als "Höchstgeschwindigkeit 80 km/h" zu klassifizieren.

Diese Frage nach der Robustheit eines ML-Modells wird in vielen Projekten außer Acht gelassen. Es ist offensichtlich, dass im Sicherheitsumfeld diese Modelleigenschaft relevant ist. Eine relativ einfache Möglichkeit die Modelle robuster gegen solche Angriffe zu machen, lautet, diese zusätzlich mit entsprechenden Angriffsbeispielen (Perturbed Train Data) zu trainieren.

Fazit

Das Potenzial von ML-Modellen in Sicherheitsprodukten wie WAFs ist groß. Auf Statistik basierende Lösungsansätze bringen aber neue Risiken mit sich. Die Kunst dabei ist, zu erkennen, in welchen Bereichen die Systeme einen tatsächlichen Mehrwert liefern und wie diese dafür im Detail gestaltet werden müssen, um Anforderungen an Sicherheit und insbesondere Betriebsamkeit zu erfüllen. Fundiertes Fachwissen im Bereich der Applikationssicherheit sowie des Machine Learning ist dabei zentral für den Erfolg eines solchen Projekts.

Autor: Reto Ischi, Head of Research and Development bei Airlock WAF

IT-Administrator schreibt über Praxiswissen für Admins.

IT-Administrator ist das Praxismagazin für System- und Netzwerkadministratoren und liefert jeden Monat passgenaues, sofort umsetzbares Fachwissen. Auf zahlreichen Intensivseminaren und Trainings vor Ort sowie online können sich Admins zudem umfassend fortbilden. Auf Xing informiert die Redaktion über aktuelle Trends und Themen aus der IT.

Artikelsammlung ansehen