Improving the WAF with Machine Learning

Cloudflare verarbeitet 32 Millionen HTTP-Anfragen pro Sekunde und wird von mehr als 22 % aller Websites genutzt, deren Webserver W3Techs bekannt ist. Cloudflare ist in der einzigartigen Lage, den Datenverkehr jeder fünften Internetwebsite zu schützen. Dies ermöglicht es Cloudflare, Bedrohungen zu erkennen, sobald sie auftreten, und zu verfolgen, wie sie sich entwickeln und modifizieren.

Die Web Application Firewall (WAF) ist das Herzstück der Sicherheits-Toolbox von Cloudflare. Managed Rules sind eine wichtige Funktion der WAF. Es handelt sich dabei um eine Sammlung von Regeln, die vom Analystenteam von Cloudflare erstellt wurden und die Anfragen blockieren, wenn sie Muster bekannter Angriffe aufweisen. Diese verwalteten Regeln funktionieren hervorragend bei Mustern bekannter Angriffsvektoren, da sie ausgiebig getestet wurden, um sowohl falsch-negative (Übersehen eines Angriffs) als auch falsch-positive (Ermittlung eines Angriffs, obwohl es keinen gibt) zu minimieren. Der Nachteil ist, dass verwaltete Regeln oft Angriffsvariationen (auch bekannt als Bypässe) übersehen, da statische Regex-basierte Regeln von Natur aus empfindlich auf Signaturvariationen reagieren, die z.B. durch Fuzzing-Techniken eingeführt werden.

Dieses Problem haben wir bei der Veröffentlichung von Schutzmechanismen für log4j erlebt. Einige Tage lang, nachdem die Schwachstelle bekannt wurde, mussten wir die Regeln ständig aktualisieren, um Variationen und Mutationen anzupassen, da Angreifer versuchten, die WAF zu umgehen. Außerdem erfordert die Optimierung der Regeln ein erhebliches menschliches Eingreifen und funktioniert in der Regel erst, nachdem Umgehungen identifiziert oder sogar ausgenutzt wurden. Damit ist der Schutz eher reaktiv als proaktiv.

Heute freuen wir uns, verwaltete Regelsätze (Managed Rulesets; wie OWASP und Cloudflare Managed) durch ein neues Tool zu ergänzen. Dieses Tool soll Umgehungen und bösartige Nutzdaten ohne menschliches Zutun identifizieren, bevor sie ausgenutzt werden. Kunden können jetzt auf Signale eines Machine-Learning-basierten Modells zugreifen. Dieses Modell wurde auf der Grundlage der Klassifizierung von gutem/schädlichem Datenverkehr durch verwaltete Regeln und erweiterte Daten trainiert. Ziel ist es, einen besseren Schutz für ein breiteres Spektrum an alten und neuen Angriffsarten zu bieten.

Freuen Sie sich jetzt auf unsere neue Machine Learning-basierte WAF-Erkennung.

Die neue Erkennung ist im frühen Zugang (Early Access) für Enterprise-, Pro- und Biz-Kunden verfügbar. Bitte tragen Sie sich in die Warteliste ein, wenn Sie sie testen möchten. Langfristig wird sie für die Kunden der höheren Tarifstufen verfügbar sein.

Die erste selbstlernende WAF

Das neue Erkennungssystem ergänzt die bestehenden verwalteten Regelsätze, indem es drei wesentliche Vorteile bietet:

  1. Es läuft über Ihren gesamten Traffic. Jede Anfrage wird nach der Wahrscheinlichkeit bewertet, dass sie z.B. einen SQLi- oder XSS-Angriff enthält. Damit bietet WAF-Analytics ab sofort ein noch besseres Nutzererlebnis. Sie können nun Trends und Muster in Ihrem gesamten Datenverkehr erkunden.
  2. Die Erkennungsrate verbessert sich aufgrund des vergangenen Datenverkehrs und des Feedbacks. Das Modell wird mit gutem und schädlichem Datenverkehr trainiert, der durch verwaltete Regeln für den gesamten Cloudflare-Traffic kategorisiert wird. So können kleine Websites den gleichen Schutz erhalten wie die größten Internetwebsites.
  3. Performance neu definiert. Die Machine Learning-Engine identifiziert Umgehungen und Anomalien, bevor sie von menschlichen Forschern ausgenutzt oder identifiziert werden.

Das Geheimnis ist eine Kombination aus zahlreichen, leistungsstarken Elementen. Dies umfasst innovative Modellierung mittels maschinellem Lernen und einen riesigen Bestand an Trainingsdaten, der auf den Angriffen basiert, die wir täglich abwehren. Weitere Elemente sind Techniken zur Datenerweiterung, das richtige Bewertungs- und Test-Framework, das auf dem Prinzip des Verhaltenstests basiert, und modernster Technik, die es uns ermöglicht, jede Anfrage mit vernachlässigbarer Latenzzeit zu bewerten.

Ein neues WAF-Erlebnis

Die neue Erkennung basiert auf dem Paradigma, das mit Bot Analytics eingeführt wurde. Diesem Ansatz folgend wird jede Anfrage bewertet und eine Punktzahl zugewiesen, unabhängig davon, ob wir Maßnahmen ergreifen. Da wir jede Anfrage bewerten, können die Benutzer sehen, wie sich die Bewertung im Laufe der Zeit für den gesamten an ihren Server gerichteten Datenverkehr entwickelt.

Customers can use the machine learning categorization engine to identify trends in their traffic.
Kunden können die Engine zur Kategorisierung durch maschinelles Lernen nutzen, um Trends in ihrem Datenverkehr zu erkennen.

Darüber hinaus können Benutzer das Histogramm der Bewertung von Anfragen für einen bestimmten Angriffsvektor (z. B. SQLi) visualisieren. So finden Sie heraus, welcher Wert ein guter Wert ist, um guten von schädlichem Datenverkehr zu unterscheiden.

Die eigentliche Abwehr erfolgt über benutzerdefinierte WAF-Regeln, bei denen anhand des Scores entschieden wird, welche Anfragen blockiert werden sollen. Damit können Kunden Regeln erstellen, deren Logik jeden Parameter der HTTP-Anfragen umfasst, einschließlich der dynamischen Felder, die von Cloudflare ausgefüllt werden, wie z.B. Bot-Scores.

Firewall rule built on waf ml score.
Firewall-Regel auf Basis des WAF ML-Score.

Wir prüfen nun, ob wir diesen Ansatz auch für die verwalteten Regeln (OWASP und Cloudflare Managed) anwenden können. Kunden werden in der Lage sein, Trends zu erkennen und Regeln auf der Grundlage von Mustern zu erstellen, die bei der Betrachtung des gesamten Datenverkehrs sichtbar werden. Anstatt Regeln auf der Grundlage von Versuch und Irrtum zu erstellen, protokollieren Sie den Datenverkehr, um sie zu validieren und schließlich den Schutz durchzusetzen.

Wie funktioniert's?

Auf maschinellem Lernen basierende Erkennungen ergänzen die bestehenden verwalteten Regelsätze, wie OWASP und Cloudflare Managed. Das System basiert auf Modellen, die entwickelt wurden, um Variationen von Angriffsmustern und Anomalien zu erkennen, ohne dass die Forscher oder der Endbenutzer dies direkt überwachen müssen.

Ab heute stellen wir Scores für zwei Angriffsvektoren zur Verfügung: SQL-Injection und Cross Site Scripting. Benutzer können benutzerdefinierte WAF/Firewall-Regeln mit drei separaten Scores erstellen: einen Gesamtscore (cf.waf.ml.score), einen für SQLi und einen für XSS (cf.waf.ml.score.sqlibzw. cf.waf.ml.score.xss,). Die Scores können Werte zwischen 1 und 99 annehmen, wobei 1 definitiv bösartig ist und 99 für zulässigen Datenverkehr steht.

Histogram of the score across all traffic hitting an application.
Histogramm des Scores für den gesamten Traffic, der auf eine Anwendung trifft.

Das Modell wird dann auf der Grundlage des von den bestehenden WAF-Regeln klassifizierten Datenverkehrs trainiert und arbeitet mit einer transformierten Version der ursprünglichen Anfrage. Dadurch können die Fingerprints von Angriffen einfacher identifiziert werden.

Für jede Anfrage bewertet das Modell jeden Teil der Anfrage unabhängig voneinander. So lässt sich feststellen, wo bösartige Nutzdaten identifiziert wurden, z. B. im Textkörper der Anfrage, im URI oder in den Kopfzeilen.

The detection engine provides a breakdown of where the threats were found (for example, body, URI, headers).
Die Detection Engine liefert eine Aufschlüsselung, wo die Bedrohungen gefunden wurden (z.B. Body, URI, Header).

In der Theorie hört sich das sehr einfach an. Aber es gibt eine Reihe von Herausforderungen, die die Entwickler von Cloudflare lösen mussten, um dieses Ziel zu erreichen. Dazu gehören der Aufbau eines zuverlässigen Datensatzes, eine skalierbare Datenkennzeichnung, die Auswahl der richtigen Modellarchitektur und die Anforderung, die Kategorisierung bei jeder Anfrage auszuführen, die über das globale Netzwerk von Cloudflare verarbeitet wird (d. h. 32 Millionen Mal pro Sekunde).

In den kommenden Wochen wird das Engineering-Team eine Reihe von Blog-Beiträgen veröffentlichen, die ein besseres Verständnis dafür vermitteln, wie die Lösungim Detailfunktioniert.

Der Blick nach vorn

In den kommenden Monaten werden wir unseren Kunden die neue Detection Engine zugänglich machen und ihr Feedback zur Performance einholen. Langfristig planen wir, die Detection Engine so zu erweitern, dass sie alle Angriffsvektoren abdeckt, die bereits durch verwaltete Regeln identifiziert wurden. Zudem werden wir die durch das maschinelle Lernmodell blockierten Angriffe nutzen, um unsere verwalteten Regelsätze weiter zu verbessern.