Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
NGWAF — Prima iterazione di Feedback WAF basato su ML | Kitploit
Strumenti/GitHubGitHub/fa-pengfei/ngwaf
Strumenti DifensiviEvasione IDS/IPSBypass WAFSicurezza WebPenetration TestingMachine LearningApprendimento e FormazioneRed TeamingRilevamento di AnomalieLab e Pratica
GitHubfa-pengfei/ngwaf

NGWAF

60773 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →

Prima iterazione di Feedback WAF basato su ML

Vedi Repository
Condividi

N3XT-G3N Web App Firewall (NGWAF)

NGWAF è creato da @yupengfei, @zhangbosen, @matthewng e @elizabethlim.

Un ringraziamento speciale a @ruinahkoh per i suoi contributi nelle fasi iniziali di NGWAF.

NGWAF è un proof of concept sperimentale e non è pronto per l'uso in produzione nella sua forma attuale.

Indice

  1. La Motivazione

    ​ Come funziona NGWAF?

    ​ Considerazioni chiave di NGWAF

  2. I Componenti | Gli ingranaggi di NGWAF

    ​ Il Cervello: WAF basato su Machine Learning

    ​ Lo Specchio: Ambiente di Quarantena Interattivo Scalabile

    ​ La Libreria: Sequenza di Riaddestramento per Rinforzare il Cervello

  3. Configurazione di NGWAF

    ​ Requisiti

    ​ Installazione e Utilizzo

  4. Avvertenze e Altre Considerazioni

  5. Licenza

La Motivazione

Con la crescita esplosiva delle applicazioni web dai primi anni 2000, gli attacchi basati sul web sono diventati progressivamente più diffusi. Una soluzione comune è il Web Application Firewall (WAF). Tuttavia, modificare le regole degli attuali WAF per migliorare i meccanismi di rilevamento può essere complesso e difficile. NGWAF mira a superare questi inconvenienti con una nuova architettura basata su machine learning e su un sistema di quarantena che reindirizza a honeypot.

Scarica lo strumento

Ispirato da reali punti critici emersi dalla gestione dei WAF, NGWAF intende semplificare e reimmaginare le operazioni WAF attraverso i seguenti processi:

Punto criticoFunzionalità di NGWAF
La manutenzione dei meccanismi di rilevamento e delle regole può essere complessaSfruttare il machine learning per automatizzare il processo di creazione e aggiornamento dei meccanismi di rilevamento
Il blocco immediato del traffico malintenzionato riduce le opportunità di apprendere dal comportamento degli attaccanti per futuri miglioramenti del WAFEliminazione delle minacce tramite quarantena con reindirizzamento, invece del tradizionale drop e blocco del traffico malevolo

Per rendere la distribuzione semplice e portabile, abbiamo containerizzato i diversi componenti dell'architettura usando docker e li abbiamo configurati in un file docker-compose. Ciò consente di eseguirlo su un'installazione fresca in modo rapido e semplice, poiché le dipendenze sono gestite automaticamente da docker. La distribuzione può essere estesa per essere distribuita in un cluster kubernetes locale o su cloud, rendendola scalabile poiché gli utenti possono aumentare il numero di nodi/pod per gestire grandi volumi di traffico.

La distribuzione è stata testata su macOS (Docker desktop) e linux (ubuntu).

Come funziona NGWAF?

NGWAF funziona immediatamente con tre componenti chiave, questi componenti come menzionato sopra sono tutti containerizzati e sono scalabili in base all'uso desiderato. La risorsa protetta può essere personalizzata apportando una modifica alla distribuzione all'interno della configurazione.


Architettura di alto livello di NGWAF con i flussi di traffico attesi da diverse parti

Vantaggi chiave

NGWAF è stato progettato tenendo presenti i seguenti vantaggi chiave per l'utente:

1. Riduzione della complessità delle regole

NGWAF sostituisce i set di regole tradizionali con modelli di deep learning per ridurre la complessità della gestione e dell'aggiornamento delle regole. Invece di modificare manualmente le regole, il machine learning di NGWAF automatizza il processo di apprendimento dei pattern dai dati malevoli. I dati raccolti dall'ambiente di quarantena vengono automaticamente puliti e raggruppati, permettendo di essere riaddestrati nel nostro modello di rilevamento, se desiderato.

2. Deception informatica

NGWAF adotta una nuova architettura composta da un ambiente interattivo e di quarantena costruito per isolare potenziali attaccanti ostili. A differenza dei WAF convenzionali che bloccano al rilevamento, NGWAF devia gli attaccanti verso sistemi emulati, intrappolandoli per attenuare l'impatto delle loro azioni malevole. L'ambiente funge anche da sinkhole per raccogliere i metodi di attacco correnti, consentendo l'osservazione e la raccolta di dati malevoli. Questi dati possono essere utilizzati per migliorare ulteriormente la capacità di rilevamento di NGWAF.


NGWAF in azione: al rilevamento di una SQL injection, NGWAF reindirizza all'ambiente di quarantena, invece di droppare o bloccare il tentativo.

3. Conformità agli standard internazionalmente riconosciuti

Il principio guida alla base della creazione di NGWAF è proteggersi dai rischi evidenziati nel documento di sensibilizzazione standard dell'Open Web Application Security Project - The OWASP Top 10 2021.

I dati di addestramento e i controlli di conformità per NGWAF sono raccolti e condotti in base a questo requisito.

I Componenti di NGWAF

1. Il Cervello: WAF basato su Machine Learning

Chi ha bisogno di manuale quando possiamo andare NEURALE

Invece dei set di regole tradizionali che richiedono agli analisti di identificare e aggiungere manualmente le regole col passare del tempo, NGWAF sfrutta pipeline end-to-end di machine learning per il meccanismo di rilevamento, riducendo notevolmente la complessità nella gestione delle regole WAF, specialmente per il rilevamento di payload complessi.

Modello Base

Per fare ciò, abbiamo prima bisogno di creare un modello base e un'architettura che gli utenti possano utilizzare come punto di partenza, prima di utilizzare in seguito i dati raccolti dalle proprie applicazioni per riaddestrare e affinare:

  1. Abbiamo raccolto payload malevoli e non malevoli da vari dataset pubblici (1, 2, 3)
  2. Invece di identificare manualmente le regole, sfruttiamo il machine learning e il deep learning per automatizzare il processo di apprendimento dei pattern dai dati malevoli precedenti. Abbiamo sperimentato diverse architetture di modelli, e il nostro modello finale ha utilizzato una rete neurale ricorrente.

L'architettura generale del modello base è una semplice RNN con un modulo LSTM bidirezionale come mostrato di seguito:


Immagine presa da Tensorflow (link)

Prestazioni

Utilizzando questa architettura RNN, siamo riusciti a ottenere miglioramenti delle prestazioni rispetto a modelli più semplici:

Architettura del modelloAccuratezzaPunteggio F1
Il nostro modello finale0.9950.993
Rete neurale senza modulo LSTM0.9560.891
Albero decisionale0.8780.840
Regressione logistica0.9460.914

Manutenzione e Riaddestramento

Sebbene abbiamo incluso log da varie applicazioni per migliorare la generalizzabilità del modello base, un'ulteriore manutenzione e riaddestramento del modello saranno importanti per:

  1. Ottimizzare il modello per migliori prestazioni sul traffico dell'applicazione specifica dell'utente
  2. Ridurre il degrado del modello nel tempo, poiché gli attaccanti scoprono nuovi metodi e opportunità

Per affrontare questo problema, gli utenti di NGWAF beneficiano della nostra pipeline di riaddestramento del modello end-to-end preconfezionata e possono facilmente attivare la manutenzione del modello con alcuni semplici passaggi senza dover guardare sotto il cofano. (Vedi Sezione 3 di seguito).

2. Lo Specchio: Ambiente di Quarantena Interattivo Scalabile

Non lasciarli andare, DETENETELI!

Contrariamente ai WAF tradizionali dove il traffico malevolo viene bloccato o droppato immediatamente, NGWAF adotta un approccio più flessibile. In cui, reindirizza e trattiene gli attaccanti malevoli all'interno di un ambiente di quarantena. Questo ambiente è composto da vari honeypot interattivi emulati per cercare di raccogliere più metodi/dati di attacco, questi dati saranno utilizzati per potenzialmente migliorare il tasso di rilevamento di NGWAF per attacchi più moderni e complessi.

Cattura dei dati malevoli e auto-pulizia per scopi di riaddestramento

Attualmente, l'ambiente di quarantena di NGWAF inoltra tutti i dati inviati dall'attaccante intrappolato al nostro stack ELK per analisi e visualizzazione. I dati vengono automaticamente puliti in diversi componenti della richiesta HTTP, quindi impacchettati internamente nel backend dell'ambiente in formato JSON prima dell'inoltro. Questo aiuta a ridurre il costo del lavoro manuale necessario per pulire e indicizzare i dati quando avviamo il processo di riaddestramento.

Creazione dell'ambiente di quarantena personalizzato

NGWAF attualmente consente agli utenti di apportare modifiche all'aspetto front-end dei nostri honeypot all'interno dell'ambiente di quarantena (basato su una versione personalizzata di drupot). Gli utenti devono semplicemente sostituire la cartella assets all'interno del volume docker con i propri asset front-end desiderati.

NGWAF è anche adattabile per utenti che desiderano collegare i propri honeypot come parte dell'ambiente di quarantena. Gli utenti devono solo inoltrare le richieste HTTP dell'honeypot al server backend dell'ambiente (i processi backend puliranno e inoltreranno automaticamente i dati al dashboard di analisi - stack ELK).

3. La Libreria: Sequenza di Riaddestramento per Rinforzare il Cervello

Intelligente non è veramente intelligente finché non continui ad imparare

Con l'emergere di nuovi payload e vettori di attacco, è importante aggiornare le capacità di rilevamento per garantire la sicurezza. Pertanto, una funzione di riaddestramento è integrata in NGWAF per assicurare che i difensori siano in grado di addestrare il modello di machine learning a rilevare questi payload più recenti. Gli utenti che non hanno familiarità con la data science o le reti neurali saranno comunque in grado di affinare i modelli con questa interfaccia semplice, poiché i passaggi complessi sono gestiti per loro.

Come funziona

Gli utenti devono solo caricare un piccolo campione di dati etichettati dal proprio sistema live (ad esempio, nell'ordine di poche migliaia), che verrà utilizzato per affinare il modello esistente nel backend:

  1. Introduzione di nuovi concetti: Il vocabolario del livello di vettorizzazione del testo del modello verrà ampliato per includere nuovi termini nel nuovo dataset. Verranno anche inizializzate nuove embeddings per questo.
  2. Mantenimento della conoscenza esistente: Per sfruttare la "conoscenza appresa" esistente all'interno del modello precedente, le embeddings per le parole già note e il modulo LSTM verranno caricati dal modello precedente. Questo aiuta anche ad accelerare il processo di addestramento.
  3. Questa architettura aggiornata verrà quindi addestrata sul nuovo dataset e, quando l'addestramento è completo, il nuovo modello verrà distribuito all'endpoint WAF live.

Quando l'addestramento è completo, agli utenti verranno forniti anche alcuni brevi diagnostici del modello (ad esempio, prestazioni sul test set e a varie soglie di punteggio) per valutare il nuovo modello.

Flusso utente

Per attivare il processo di riaddestramento, vai al dashboard e segui questi passaggi:

  1. Crea un nuovo dataset (.csv) da caricare con le seguenti colonne:
  • payload [str]: questo dovrebbe essere il payload del tuo sistema, o alcuni esempi basati su stringhe (es. esempi di SQLi injection)
  • label [int]: dovrebbe essere 0 per esempi non malevoli e 1 per esempi malevoli
  • is_url [bool]: dovrebbe essere TRUE se il payload proviene dal tuo sistema (cioè includendo altre informazioni di sistema come percorso e dispositivo), e FALSE se è un esempio basato su stringa (es. "1==1")
  1. Naviga a http://localhost:8088 per visualizzare il pannello di amministrazione di NGWAF.
  2. Seleziona la scheda "Import Dataset" e carica il set di addestramento che hai creato
  1. Conferma che il set di addestramento sia stato caricato con successo nella scheda "Manage Datasets".
  1. Nella scheda "Manage Model", seleziona il/i dataset su cui vuoi riaddestrare il modello e clicca sul pulsante "UPDATE WAF MODEL".
  1. Congratulazioni! Il modello dovrebbe terminare il riaddestramento dopo un po'. Dovresti vedere alcuni diagnostici del modello riportati.

4. Funzionalità aggiuntive:

NGWAF utilizza lo stack ELK per catturare i log dei dati di rete che passano attraverso NGWAF, consentendo agli utenti di monitorare il traffico che passa attraverso NGWAF per ulteriori analisi.

NGWAF include anche notifiche Telegram in tempo reale, per informare i proprietari sulle minacce maligne in tempo reale rilevate da NGWAF.

Esempi di scenari di utilizzo

  1. Applicazione normale appena creata (Usa il web cloner integrato / crea un'altra distribuzione duplicata da utilizzare come ambiente di isolamento)
  2. Integrazione in un honeypot/honeynet esistente (Aggiorna la configurazione per puntare all'honeypot/honeynet)

Configurazione di NGWAF

Requisiti

Sistemi operativi testati

  1. macOS (Docker Desktop)
  2. linux

Componente ML WAF

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

Componente Pannello di Amministrazione WAF

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

Layer di Decodifica

  1. Cyberchef Server

Layer di Caching

  1. Redis

Ambiente di Quarantena

  1. Drupot
  2. Componenti dello Stack Elastic Search (Elasticsearch, Logstash, Kibana, Filebeats)

Web App

  1. DVWA
  2. OWASP
  3. VulnLab

Installazione e Utilizzo

Con Docker in esecuzione, esegui il seguente file usando il comando seguente:

./run.sh

Per sostituire i target, punta le variabili dest_server e honey_pot_server ai target corretti nel file /waf/WafApp/waf.py

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

Una volta che il container Docker è attivo, puoi visitare il tuo localhost, dove queste porte eseguono questi servizi:

PortaServizioOsservazioniCredenziali (se applicabile)
8080DVWADove risiede il WAFadmin:password
5601ElasticsearchPer visualizzare i logelastic:changeme
8088Admin DashboardDashboard per gestire il modello WAF
5001DrupotHoneypot

Configura anche quanto segue in un file waf-secrets.env

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

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

Configura anche quanto segue in un file waf-admin-secrets.env

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

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

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

Avvertenze e Altre Considerazioni

NGWAF è un progetto W.I.P., open source, funzioni e caratteristiche possono cambiare da una patch all'altra. Se sei interessato a contribuire, sentiti libero di aprire un issue o una pull request!

Licenza

Licenza

MIT License