Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
NGWAF — Première itération du WAF de rétroaction basé sur ML | Kitploit
Outils/GitHubGitHub/fa-pengfei/ngwaf
Outils DéfensifsÉvasion IDS/IPSContournement de WAFSécurité WebTests d'IntrusionApprentissage AutomatiqueApprentissage et ÉducationRed TeamingDétection d'AnomaliesLabs et Pratique
GitHubfa-pengfei/ngwaf

NGWAF

607il y a 3 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Première itération du WAF de rétroaction basé sur ML

Voir le dépôt

Pare-feu d'Application Web de N3XT-G3N (NGWAF)

NGWAF est créé par @yupengfei, @zhangbosen, @matthewng et @elizabethlim.

Un merci spécial à @ruinahkoh pour ses contributions aux premières étapes de NGWAF.

NGWAF est une preuve de concept expérimentale et n'est pas prête pour une utilisation en production dans sa forme actuelle.

Sommaire

  1. La Motivation

    ​ Comment fonctionne NGWAF ?

    ​ Principaux avantages de NGWAF

  2. Les Composants | Les Engrenages de NGWAF

    ​ Le Cerveau : WAF basé sur l'apprentissage automatique

    ​ Le Miroir : Environnement de Quarantaine Interactif et Évolutif

    ​ La Bibliothèque : Séquence de Réentraînement pour Renforcer le Cerveau

  3. Mise en place de NGWAF

    ​ Prérequis

    ​ Installation et Utilisation

  4. Avertissements et Autres Considérations

  5. Licence

La Motivation

Avec la croissance explosive des applications web depuis le début des années 2000, les attaques basées sur le web sont devenues progressivement plus courantes. Une solution courante est le Pare-feu d'Application Web (WAF). Cependant, ajuster les règles des WAF actuels pour améliorer les mécanismes de détection peut être complexe et difficile. NGWAF cherche à résoudre ces inconvénients avec une architecture novatrice basée sur l'apprentissage automatique et une mise en quarantaine vers un système leurre.

Inspiré par les problèmes réels rencontrés lors de l'exploitation de WAF, NGWAF vise à simplifier et réinventer les opérations des WAF grâce aux processus suivants :

ProblèmeFonctionnalité NGWAF
La maintenance des mécanismes de détection et des règles peut être complexeUtiliser l'apprentissage automatique pour automatiser le processus de création et de mise à jour des mécanismes de détection
Le blocage immédiat du trafic malveillant réduit les chances d'apprendre du comportement des acteurs malveillants pour de futures améliorations du WAFÉlimination des menaces via une quarantaine redirigée, contrairement au rejet et au blocage conventionnels du trafic malveillant

Pour rendre le déploiement simple et portable, nous avons conteneurisé les différents composants de l'architecture à l'aide de Docker et les avons configurés dans un fichier docker-compose. Cela permet de le faire fonctionner sur une installation fraîche rapidement et facilement, car les dépendances sont gérées automatiquement par Docker. Le déploiement peut être étendu à un cluster Kubernetes local ou dans le cloud, ce qui le rend évolutif car les utilisateurs peuvent augmenter le nombre de nœuds/pods pour gérer de grandes quantités de trafic.

Le déploiement a été testé sur macOS (Docker Desktop) et Linux (Ubuntu).

Comment fonctionne NGWAF ?

NGWAF fonctionne prêt à l'emploi avec trois composants clés, ces composants comme mentionné ci-dessus sont tous conteneurisés et évolutifs selon l'utilisation souhaitée. La ressource protégée peut être personnalisée en modifiant le déploiement dans la configuration.


Architecture de haut niveau de NGWAF avec les flux de trafic attendus des différentes parties

Principaux avantages

NGWAF a été conçu avec les avantages utilisateur clés suivants à l'esprit :

1. Réduction de la complexité des règles

NGWAF remplace les ensembles de règles traditionnels par des modèles d'apprentissage profond pour réduire la complexité de la gestion et de la mise à jour des règles. Au lieu de modifier manuellement les règles, l'apprentissage automatique de NGWAF automatise le processus d'apprentissage des schémas à partir de données malveillantes. Les données collectées dans l'environnement de quarantaine sont automatiquement nettoyées et regroupées par lots, ce qui permet de les réentraîner dans notre modèle de détection si souhaité.

2. Cyber-déception

NGWAF adopte une architecture novatrice comprenant un environnement interactif et de quarantaine conçu pour isoler les attaquants potentiels hostiles. Contrairement aux WAF conventionnels qui bloquent dès la détection, NGWAF redirige les acteurs malveillants vers des systèmes émulés, les piégeant pour atténuer l'impact de leurs actions malveillantes. L'environnement agit également comme un puits pour recueillir les méthodes d'attaque actuelles, permettant l'observation et la collecte de données malveillantes. Ces données peuvent être utilisées pour améliorer davantage la capacité de détection de NGWAF.


NGWAF en action : Lors de la détection d'une injection SQL, NGWAF redirige vers notre environnement de quarantaine, au lieu de rejeter ou bloquer la tentative.

3. Conformité aux normes internationalement reconnues

Le principe directeur derrière la création de NGWAF est de se prémunir contre les risques mis en évidence dans le document de sensibilisation standard du Open Web Application Security Project - Le OWASP Top 10 2021.

Les données d'entraînement et les vérifications de conformité pour NGWAF sont collectées et effectuées sur la base de cette exigence.

Les Composants de NGWAF

1. Le Cerveau : WAF basé sur l'apprentissage automatique

Qui a besoin de manuel quand on peut passer au NEURONAL

Au lieu d'ensembles de règles traditionnels qui nécessitent que les analystes identifient et ajoutent manuellement des règles au fil du temps, NGWAF exploite des pipelines d'apprentissage automatique de bout en bout pour le mécanisme de détection, réduisant considérablement la complexité de la gestion des règles WAF, en particulier pour la détection de charges utiles complexes.

Modèle de base

Pour ce faire, nous devions d'abord créer un modèle de base et une architecture que les utilisateurs peuvent utiliser comme point de départ, avant de pouvoir utiliser ultérieurement les données collectées à partir de leurs propres applications pour un réentraînement et un réglage fin :

  1. Nous avons collecté des charges utiles malveillantes et non malveillantes à partir de divers ensembles de données publics (1, 2, 3)
  2. Au lieu d'identifier manuellement les règles, nous exploitons l'apprentissage automatique et profond pour automatiser le processus d'apprentissage des schémas à partir de données malveillantes antérieures. Nous avons expérimenté plusieurs architectures de modèles, et notre modèle final a utilisé un réseau de neurones récurrents.

L'architecture générale du modèle de base est un simple RNN avec un module LSTM bidirectionnel comme ci-dessous :


Image tirée de Tensorflow (lien)

Performance

En utilisant cette architecture RNN, nous avons pu obtenir des améliorations de performance par rapport à des modèles plus simples :

Maintenance et Réentraînement

Bien que nous ayons inclus des journaux provenant de diverses applications afin d'améliorer la généralisabilité du modèle de base, une maintenance supplémentaire et un réentraînement du modèle seront importants pour :

  1. Ajuster le modèle pour de meilleures performances sur le trafic de l'application spécifique de l'utilisateur
  2. Réduire la dégradation du modèle au fil du temps, à mesure que les acteurs malveillants découvrent de nouvelles méthodes et opportunités

Pour répondre à cela, les utilisateurs de NGWAF bénéficient de notre pipeline de réentraînement de modèle de bout en bout intégré, et peuvent facilement déclencher une maintenance du modèle en quelques étapes simples sans avoir à creuser sous le capot. (Voir Section 3 ci-dessous).

2. Le Miroir : Environnement de Quarantaine Interactif et Évolutif

Ne les laissez pas partir, DÉTENEZ-LES !

Contrairement aux WAF traditionnels où le trafic malveillant est bloqué ou rejeté immédiatement, NGWAF adopte une approche plus flexible. Il redirige et détient les acteurs malveillants dans un environnement de quarantaine. Cet environnement se compose de divers pots de miel émulés interactifs pour tenter de recueillir davantage de méthodes/données d'attaque, ces données seront utilisées pour potentiellement améliorer le taux de détection de NGWAF des attaques plus modernes et complexes.

Capture des données malveillantes et auto-nettoyage à des fins de réentraînement

Actuellement, l'environnement de quarantaine de NGWAF transmet toutes les données soumises par l'attaquant piégé à notre pile ELK pour analyse et visualisation. Les données sont automatiquement nettoyées en différents composants de la requête HTTP, puis conditionnées en interne sur le backend de l'environnement au format JSON avant d'être transmises. Cela contribue à réduire le coût de main-d'œuvre nécessaire pour nettoyer et indexer les données lorsque nous lançons le processus de réentraînement.

Création de votre environnement de quarantaine personnalisé

NGWAF permet actuellement aux utilisateurs d'apporter des modifications à l'aspect et à la convivialité front-end de nos pots de miel dans l'environnement de quarantaine (basé sur une version personnalisée de drupot). Les utilisateurs doivent simplement remplacer le dossier d'actifs dans le volume Docker par leurs actifs front-end de choix.

NGWAF s'adapte également aux utilisateurs qui souhaitent lier leurs propres pots de miel dans le cadre de l'environnement de quarantaine. Les utilisateurs doivent simplement transmettre les requêtes HTTP du pot de miel au serveur backend de l'environnement (les processus backend nettoieront automatiquement et transmettront les données au tableau de bord d'analyse - pile ELK).

3. La Bibliothèque : Séquence de Réentraînement pour Renforcer le Cerveau

Intelligent n'est vraiment intelligent que si vous pouvez continuer d'apprendre

À mesure que de nouvelles charges utiles et vecteurs d'attaque émergent, il est important d'améliorer les capacités de détection pour garantir la sécurité. Par conséquent, une fonction de réentraînement est intégrée dans NGWAF pour garantir que les défenseurs puissent entraîner le modèle d'apprentissage automatique à détecter ces charges utiles plus récentes. Les utilisateurs qui ne sont pas familiers avec la science des données ou les réseaux de neurones pourront toujours affiner les modèles avec cette interface simple, car les étapes complexes sont gérées pour eux.

Comment ça fonctionne

Les utilisateurs doivent uniquement télécharger un petit échantillon de données étiquetées provenant de leur propre système en direct (par exemple, quelques milliers), qui sera utilisé pour affiner le modèle existant sur le backend :

  1. Introduire de nouveaux concepts : Le vocabulaire de la couche de vectorisation de texte du modèle sera élargi pour inclure de nouveaux termes dans le nouvel ensemble de données. De nouvelles plongements seront également initialisés pour cela.
  2. Conserver les connaissances existantes : Pour tirer parti des "connaissances apprises" existantes dans le modèle précédent, les plongements pour les mots précédemment connus et le module LSTM seront chargés à partir du modèle précédent. Cela accélère également le processus d'entraînement.
  3. Cette architecture mise à jour sera ensuite entraînée sur le nouvel ensemble de données, et une fois l'entraînement terminé, le nouveau modèle sera déployé sur le point de terminaison WAF en direct.

Lorsque l'entraînement est terminé, les utilisateurs recevront également quelques diagnostics de modèle succincts (par exemple, performance sur l'ensemble de test et à différents seuils de score) pour évaluer le nouveau modèle.

Flux utilisateur

Pour déclencher le processus de réentraînement, rendez-vous sur le tableau de bord et suivez ces étapes :

  1. Créez un nouvel ensemble de données (.csv) à télécharger avec les colonnes suivantes :
  • payload [str] : cela doit être soit la charge utile de votre système, soit quelques exemples basés sur des chaînes (par exemple, des exemples d'injection SQL)
  • label [int] : cela doit être 0 pour les exemples non malveillants et 1 pour les exemples malveillants
  • is_url [bool] : cela doit être TRUE si la charge utile provient de votre système (c'est-à-dire incluant d'autres informations système telles que le chemin et le périphérique), et FALSE s'il s'agit d'un exemple basé sur une chaîne (par exemple "1==1")
  1. Naviguez vers http://localhost:8088 pour voir le panneau d'administration NGWAF.
  2. Sélectionnez l'onglet "Importer l'ensemble de données" et téléchargez l'ensemble d'entraînement que vous avez créé.
  1. Confirmez que l'ensemble d'entraînement a été téléchargé avec succès sous l'onglet "Gérer les ensembles de données".
  1. Sous l'onglet "Gérer le modèle", sélectionnez le(s) ensemble(s) de données sur lequel vous souhaitez réentraîner le modèle et cliquez sur le bouton "METTRE À JOUR LE MODÈLE WAF".
  1. Félicitations ! Le modèle devrait terminer le réentraînement après un certain temps. Vous devriez voir quelques diagnostics de modèle vous être renvoyés.

4. Fonctionnalités supplémentaires :

NGWAF utilise la pile ELK pour capturer les journaux des données réseau qui transitent par NGWAF, permettant aux utilisateurs de surveiller le trafic passant par NGWAF pour une analyse plus approfondie.

NGWAF est également livré avec des notifications Telegram en direct, pour informer les propriétaires des menaces malveillantes en direct détectées par NGWAF.

Exemples de scénarios d'utilisation

  1. Application nouvellement normale (utilisez le cloneur web intégré / créez un autre déploiement en double à utiliser comme environnement d'isolation)
  2. Intégration dans un pot de miel / réseau de pots de miel existant (mettez à jour la configuration pour pointer vers le pot de miel / réseau de pots de miel)

Mise en place de NGWAF

Prérequis

Systèmes d'exploitation testés

  1. macOS (Docker Desktop)
  2. Linux

Composant ML WAF

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

Composant Panneau d'administration WAF

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

Couche de décodage

  1. Serveur Cyberchef

Couche de cache

  1. Redis

Environnement de Quarantaine

  1. Drupot
  2. Composants de la pile Elastic Search (Elasticsearch, Logstash, Kibana, Filebeats)

Application Web

  1. DVWA
  2. OWASP
  3. VulnLab

Installation et Utilisation

Avec Docker en cours d'exécution, exécutez le fichier suivant en utilisant la commande ci-dessous :

./run.sh

Pour remplacer les cibles, pointez les variables dest_server et honey_pot_server vers les cibles correctes dans le fichier /waf/WafApp/waf.py

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

Une fois le conteneur Docker opérationnel, vous pouvez visiter votre localhost, où ces ports exécutent ces services :

Configurez également ce qui suit dans un fichier waf-secrets.env

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

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

Configurez également ce qui suit dans un fichier waf-admin-secrets.env

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="******************"

Avertissements et Autres Considérations

NGWAF est un projet open source en cours de développement, les fonctions et fonctionnalités peuvent changer d'une mise à jour à l'autre. Si vous souhaitez contribuer, n'hésitez pas à créer un problème ou une demande de fusion !

Licence

Licence

Licence MIT

Télécharger l’outil
Architecture du modèlePrécisionScore F1
Notre modèle final0.9950.993
Réseau de neurones sans module LSTM0.9560.891
Arbre de décision0.8780.840
Régression logistique0.9460.914
PortServiceRemarquesIdentifiants (si applicable)
8080DVWAOù réside le WAFadmin:password
5601ElasticsearchPour visualiser les journauxelastic:changeme
8088Tableau de bordTableau de bord pour gérer le modèle WAF
5001DrupotPot de miel