Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
NGWAF — Erste Iteration eines ML-basierten Feedback-WAF | Kitploit
Tools/GitHubGitHub/fa-pengfei/ngwaf
DefensivwerkzeugeIDS/IPS-UmgehungWAF-UmgehungWebsicherheitPenetrationstestsMaschinelles LernenLernen & BildungRed TeamingAnomalieerkennungLabs & Praxis
GitHubfa-pengfei/ngwaf

NGWAF

607vor 3 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Erste Iteration eines ML-basierten Feedback-WAF

Repository anzeigen

N3XT-G3N Web App Firewall (NGWAF)

NGWAF wurde erstellt von @yupengfei, @zhangbosen, @matthewng und @elizabethlim.

Besonderer Dank an @ruinahkoh für ihre Beiträge in den Anfangsphasen von NGWAF.

NGWAF ist ein experimenteller Proof of Concept und in seiner aktuellen Form nicht für den Produktionseinsatz geeignet.

Inhaltsverzeichnis

  1. Die Motivation

    ​ Wie funktioniert NGWAF?

    ​ Wichtige Überlegungen zu NGWAF

  2. Die Komponenten | Die Zahnräder von NGWAF

    ​ Das Gehirn: Maschinelles Lernen basierte WAF

    ​ Der Spiegel: Skalierbare interaktive Quarantäne-Umgebung

    ​ Die Bibliothek: Nachschulungssequenz zur Stärkung des Gehirns

  3. Einrichtung von NGWAF

    ​ Voraussetzungen

    ​ Installation und Nutzung

  4. Haftungsausschlüsse & weitere Überlegungen

  5. Lizenzierung

Die Motivation

Mit dem explosionsartigen Wachstum von Webanwendungen seit den frühen 2000er Jahren sind webbasierte Angriffe zunehmend häufiger geworden. Eine gängige Lösung ist die Web Application Firewall (WAF). Das Anpassen von Regeln aktueller WAFs zur Verbesserung der Erkennungsmechanismen kann jedoch komplex und schwierig sein. NGWAF versucht, diese Nachteile mit einer neuartigen Architektur zu adressieren, die auf maschinellem Lernen und Quarantäne-zu-Honeypot basiert.

Inspiriert von tatsächlichen Schmerzpunkten beim Betrieb von WAFs, beabsichtigt NGWAF, den WAF-Betrieb durch die folgenden Prozesse zu vereinfachen und neu zu denken:

SchwachstelleNGWAF-Funktion
Die Wartung von Erkennungsmechanismen und Regeln kann komplex seinNutzung von maschinellem Lernen zur Automatisierung des Prozesses der Erstellung und Aktualisierung von Erkennungsmechanismen
Das sofortige Blockieren von bösartigem Traffic verringert die Möglichkeiten, aus dem Verhalten von Bedrohungsakteuren zu lernen, um zukünftige WAF-Verbesserungen zu erzielenBedrohungsbeseitigung durch umgeleitete Quarantäne anstelle des herkömmlichen Verwerfens und Blockierens von bösartigem Traffic

Um die Bereitstellung einfach und portabel zu gestalten, haben wir die verschiedenen Komponenten der Architektur mit Docker containerisiert und in einer docker-compose-Datei konfiguriert. Dies ermöglicht einen schnellen und einfachen Betrieb auf einer Neuinstallation, da die Abhängigkeiten automatisch von Docker verwaltet werden. Die Bereitstellung kann erweitert werden, um in einem lokalen oder cloudbasierten Kubernetes-Cluster bereitgestellt zu werden, was sie skalierbar macht, da Benutzer die Anzahl der Knoten/Pods erhöhen können, um große Trafficmengen zu bewältigen.

Die Bereitstellung wurde auf macOS (Docker Desktop) und Linux (Ubuntu) getestet.

Wie funktioniert NGWAF?

NGWAF läuft sofort einsatzbereit mit drei Schlüsselkomponenten; diese Komponenten sind, wie oben erwähnt, alle containerisiert und je nach gewünschter Nutzung skalierbar. Die geschützte Ressource kann durch eine Änderung der Bereitstellung innerhalb des Setups angepasst werden.


Hochrangige Architektur von NGWAF mit erwarteten Trafficflüssen verschiedener Parteien

Hauptvorteile

NGWAF wurde mit den folgenden Hauptvorteilen für Benutzer entwickelt:

1. Reduzierung der Regelkomplexität

NGWAF ersetzt traditionelle Regelsets durch Deep-Learning-Modelle, um die Komplexität der Verwaltung und Aktualisierung von Regeln zu reduzieren. Anstatt Regeln manuell zu bearbeiten, automatisiert das maschinelle Lernen von NGWAF den Prozess des Musterlernens aus bösartigen Daten. Daten, die aus der Quarantäne-Umgebung gesammelt werden, werden automatisch bereinigt und gebündelt, sodass sie bei Bedarf in unser Erkennungsmodell nachtrainiert werden können.

2. Cyber-Täuschung

NGWAF verwendet eine neuartige Architektur, die aus einer interaktiven Quarantäne-Umgebung besteht, die entwickelt wurde, um potenzielle feindliche Angreifer zu isolieren. Im Gegensatz zu herkömmlichen WAFs, die bei Erkennung blockieren, leitet NGWAF Bedrohungsakteure auf emulierte Systeme um, fängt sie ein und mildert die Auswirkungen ihrer bösartigen Aktionen. Die Umgebung fungiert auch als Sinkhole, um aktuelle Angriffsmethoden zu sammeln und ermöglicht die Beobachtung und Sammlung bösartiger Daten. Diese Daten können verwendet werden, um die Erkennungsfähigkeit von NGWAF weiter zu verbessern.


NGWAF in Aktion: Bei Erkennung einer SQL-Injection leitet NGWAF in unsere Quarantäne-Umgebung um, anstatt den Versuch zu verwerfen oder zu blockieren.

3. Einhaltung international anerkannter Standards

Das Leitprinzip hinter der Erstellung von NGWAF ist der Schutz vor den Risiken, die im Standard-Awareness-Dokument des Open Web Application Security Project – The OWASP Top 10 2021 – hervorgehoben werden. Trainingsdaten und Compliance-Prüfungen für NGWAF werden basierend auf dieser Anforderung gesammelt und durchgeführt.

Die Komponenten von NGWAF

1. Das Gehirn: Maschinelles Lernen basierte WAF

Wer braucht manuell, wenn wir neuronal gehen können

Anstelle von traditionellen Regelsets, die von Analysten verlangen, im Laufe der Zeit manuell Regeln zu identifizieren und hinzuzufügen, nutzt NGWAF End-to-End-Machine-Learning-Pipelines für den Erkennungsmechanismus, was die Komplexität der WAF-Regelverwaltung erheblich reduziert, insbesondere bei der Erkennung komplexer Payloads.

Basis-Modell

Dazu mussten wir zunächst ein Basismodell und eine Architektur erstellen, mit denen Benutzer beginnen können, bevor sie später Daten aus ihren eigenen Anwendungen zum Nachtrainieren und Feintuning verwenden:

  1. Wir sammelten bösartige und nicht bösartige Payloads aus verschiedenen öffentlichen Datensätzen (1, 2, 3)
  2. Anstatt Regeln manuell zu identifizieren, nutzen wir maschinelles und tiefes Lernen, um den Prozess des Musterlernens aus früheren bösartigen Daten zu automatisieren. Wir experimentierten mit mehreren Modellarchitekturen, und unser endgültiges Modell verwendete ein rekurrentes neuronales Netz.

Die allgemeine Architektur des Basismodells ist ein einfaches RNN mit einem bidirektionalen LSTM-Modul wie unten dargestellt:


Bild entnommen aus Tensorflow (Link)

Leistung

Durch die Verwendung dieser RNN-Architektur konnten wir Leistungsverbesserungen gegenüber einfacheren Modellen erzielen:

Wartung & Nachschulung

Obwohl wir Logs von verschiedenen Anwendungen einbezogen haben, um die Generalisierbarkeit des Basismodells zu verbessern, werden weitere Wartung und Nachschulung des Modells wichtig sein, um:

  1. Das Modell für eine bessere Leistung auf Traffic aus der spezifischen Anwendung des Benutzers abzustimmen
  2. Die Modellverschlechterung im Laufe der Zeit zu reduzieren, da Bedrohungsakteure neue Methoden und Möglichkeiten entdecken

Um dies zu adressieren, profitieren Benutzer von NGWAF von unserer verpackten End-to-End-Modell-Nachschulungs-Pipeline und können die Modellwartung mit wenigen einfachen Schritten auslösen, ohne unter die Haube schauen zu müssen. (Siehe Abschnitt 3 unten).

2. Der Spiegel: Skalierbare interaktive Quarantäne-Umgebung

Lass sie nicht gehen, HALTET SIE FEST!

Im Gegensatz zu herkömmlichen WAFs, bei denen bösartiger Traffic sofort blockiert oder verworfen wird, verfolgt NGWAF einen flexibleren Ansatz. Dabei werden bösartige Akteure umgeleitet und in einer Quarantäne-Umgebung festgehalten. Diese Umgebung besteht aus verschiedenen interaktiven emulierten Honeypots, um weitere Angriffsmethoden/Daten zu sammeln; diese Daten werden genutzt, um die Erkennungsrate von NGWAF für modernere und komplexere Angriffe potenziell zu verbessern.

Erfassung bösartiger Daten und automatische Bereinigung für Nachschulungszwecke

Derzeit leitet die Quarantäne-Umgebung von NGWAF alle Daten, die vom gefangenen Angreifer übermittelt werden, an unseren ELK-Stack zur Analyse und Visualisierung weiter. Die Daten werden automatisch in verschiedene Komponenten der HTTP-Anfrage bereinigt, dann intern auf dem Backend der Umgebung im JSON-Format verpackt, bevor sie weitergeleitet werden. Dies hilft, die Arbeitskosten zu senken, die für die Bereinigung und Indizierung der Daten beim Start des Nachschulungsprozesses erforderlich sind.

Erstellung Ihrer angepassten Quarantäne-Umgebung

NGWAF ermöglicht Benutzern derzeit, das Erscheinungsbild des Front-End-Aspekts unserer Honeypots innerhalb der Quarantäne-Umgebung zu ändern (basierend auf einer angepassten Version von Drupot). Benutzer müssen lediglich den Assets-Ordner im Docker-Volume durch ihre bevorzugten Front-End-Assets ersetzen.

NGWAF ist auch für Benutzer geeignet, die ihre eigenen Honeypots als Teil der Quarantäne-Umgebung einbinden möchten. Benutzer müssen lediglich die HTTP-Anfragen des Honeypots an den Backend-Server der Umgebung weiterleiten (Backend-Prozesse bereinigen und leiten die Daten automatisch an das Analyse-Dashboard – ELK-Stack weiter).

3. Die Bibliothek: Nachschulungssequenz zur Stärkung des Gehirns

Klug ist nicht wirklich klug, bis man weiterlernen kann

Da neue Payloads und Angriffsvektoren auftauchen, ist es wichtig, die Erkennungsfähigkeiten zu aktualisieren, um die Sicherheit zu gewährleisten. Daher ist eine Nachschulungsfunktion in NGWAF integriert, um sicherzustellen, dass Verteidiger das maschinelle Lernmodell trainieren können, um diese neueren Payloads zu erkennen. Benutzer, die mit Data Science oder neuronalen Netzen nicht vertraut sind, können die Modelle dennoch mit dieser einfachen Oberfläche feinabstimmen, da die komplexen Schritte für sie erledigt werden.

So funktioniert es

Benutzer müssen nur eine kleine Stichprobe gelabelter Daten aus ihrem eigenen Live-System hochladen (z.B. im niedrigen Tausenderbereich), die zum Feintuning des bestehenden Modells im Backend verwendet werden:

  1. Neue Konzepte einführen: Der Wortschatz der Textvektorisierungsschicht des Modells wird erweitert, um neue Begriffe im neuen Datensatz aufzunehmen. Neue Embeddings werden ebenfalls dafür initialisiert.
  2. Bestehendes Wissen bewahren: Um das vorhandene "gelernete Wissen" im vorherigen Modell zu nutzen, werden Embeddings für zuvor bekannte Wörter und das LSTM-Modul aus dem vorherigen Modell geladen. Dies hilft auch, den Trainingsprozess zu beschleunigen.
  3. Diese aktualisierte Architektur wird dann auf dem neuen Datensatz trainiert, und wenn das Training abgeschlossen ist, wird das neue Modell am Live-WAF-Endpunkt bereitgestellt.

Wenn das Training abgeschlossen ist, erhalten Benutzer auch einige kurze Modelldiagnosen (z.B. Leistung auf Testsatz und bei verschiedenen Score-Schwellenwerten), um das neue Modell zu bewerten.

Benutzerablauf

Um den Nachschulungsprozess auszulösen, gehen Sie zum Dashboard und folgen Sie diesen Schritten:

  1. Erstellen Sie einen neuen Datensatz (.csv) zum Hochladen mit den folgenden Spalten:
  • payload [str]: Dies sollte entweder der Payload von Ihrem System oder einige stringbasierte Beispiele sein (z.B. SQLi-Injektionsbeispiele)
  • label [int]: Dies sollte 0 für nicht bösartige Beispiele und 1 für bösartige Beispiele sein
  • is_url [bool]: Dies sollte TRUE sein, wenn der Payload von Ihrem System stammt (d.h. einschließlich anderer Systeminformationen wie Pfad und Gerät), und FALSE, wenn es sich um ein stringbasiertes Beispiel handelt (z.B. "1==1")
  1. Navigieren Sie zu http://localhost:8088, um das NGWAF-Admin-Panel anzuzeigen.
  2. Wählen Sie den Reiter "Import Dataset" und laden Sie den von Ihnen erstellten Trainingsdatensatz hoch.
  1. Bestätigen Sie unter dem Reiter "Manage Datasets", dass der Trainingsdatensatz erfolgreich hochgeladen wurde.
  1. Wählen Sie unter dem Reiter "Manage Model" den/die Datensatz/Datensätze aus, auf dem/denen Sie das Modell nachtrainieren möchten, und klicken Sie auf die Schaltfläche "UPDATE WAF MODEL".
  1. Herzlichen Glückwunsch! Das Modell sollte nach einiger Zeit mit dem Nachtraining fertig sein. Sie sollten einige Modelldiagnosen sehen, die an Sie zurückgemeldet werden.

4. Zusätzliche Funktionen:

NGWAF verwendet den ELK-Stack, um Logs von Netzwerkdaten zu erfassen, die durch NGWAF fließen, sodass Benutzer den Traffic, der durch NGWAF läuft, zur weiteren Analyse überwachen können.

NGWAF verfügt auch über eine Live-Telegram-Benachrichtigung, um Betreiber über live erkannte bösartige Bedrohungen zu informieren, die von NGWAF erkannt werden.

Beispielhafte Nutzungsszenarien

  1. Neuartige normale Anwendung (Verwenden Sie den integrierten Web-Cloner / erstellen Sie eine weitere duplizierte Bereitstellung zur Nutzung als Isolationsumgebung)
  2. Integration in bestehendes Honeypot/Honeynet (Aktualisieren Sie die Konfiguration, um auf Honeypot/Honeynet zu verweisen)

Einrichtung von NGWAF

Voraussetzungen

Getestete Betriebssysteme

  1. macOS (Docker Desktop)
  2. linux

ML-WAF-Komponente

  1. Python
  2. request
  3. fastapi
  4. pandas
  5. scikit-learn
  6. tensorflow
  7. urllib

WAF-Admin-Panel-Komponente

  1. fastapi
  2. scikit-learn
  3. nltk
  4. pandas
  5. Create React App
  6. React Material Admin Template by Flatlogic

Decode-Schicht

  1. Cyberchef Server

Caching-Schicht

  1. Redis

Quarantäne-Umgebung

  1. Drupot
  2. Elastic Search Stack-Komponenten (Elasticsearch, Logstash, Kibana, Filebeats)

Web-App

  1. DVWA
  2. OWASP
  3. VulnLab

Installation und Nutzung

Mit laufendem Docker führen Sie die folgende Datei mit dem folgenden Befehl aus:

./run.sh

Um die Ziele zu ersetzen, setzen Sie die Variablen dest_server und honey_pot_server auf die korrekten Ziele in der Datei /waf/WafApp/waf.py

root@kitploit:~
# Replace me
dest_server = "dvwa"
honey_pot_server = "drupot:5000"

Sobald der Docker-Container läuft, können Sie Ihren Localhost besuchen, auf dem diese Ports die folgenden Dienste bereitstellen:

Richten Sie auch Folgendes in einer waf-secrets.env-Datei ein

root@kitploit:~
# ML MODEL API ENDPOINT
API_ENDPOINT="https://xxxxx.xxx"
API_KEY="******************"

# TELEGRAM CONFIG
TELEGRAM_CHAT_ID="-57893457893457345"
TELEGRAM_TOKEN="******************"

Richten Sie auch Folgendes in einer waf-admin-secrets.env-Datei ein

root@kitploit:~
# ML MODEL API ENDPOINT
API_ENDPOINT="https://xxxxxx.xxx"
API_KEY="******************"
BUCKET_NAME="******************"

ACCESS_KEY_ID="******************"
SECRET_ACCESS_KEY="******************"

SQL_USERNAME="******************"
SQL_PASSWORD="******************"
SQL_SERVER="******************"
SQL_DATABASE_NAME="******************"

Haftungsausschlüsse & weitere Überlegungen

NGWAF ist ein in Arbeit befindliches Open-Source-Projekt; Funktionen und Merkmale können sich von Patch zu Patch ändern. Wenn Sie Interesse haben, einen Beitrag zu leisten, erstellen Sie bitte ein Issue oder einen Pull Request!

Lizenzierung

Lizenz

MIT-Lizenz

Tool herunterladen
ModellarchitekturGenauigkeitF1-Wert
Unser endgültiges Modell0.9950.993
Neuronales Netzwerk ohne LSTM-Modul0.9560.891
Entscheidungsbaum0.8780.840
Logistische Regression0.9460.914
PortDienstAnmerkungenAnmeldedaten (falls zutreffend)
8080DVWAWo die WAF läuftadmin:password
5601ElasticsearchZum Anzeigen von Logselastic:changeme
8088Admin DashboardDashboard zur Verwaltung des WAF-Modells
5001DrupotHoneypot