Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
NGWAF — Primeira iteração do WAF de Feedback baseado em ML | Kitploit
Ferramentas/GitHubGitHub/fa-pengfei/ngwaf
Ferramentas DefensivasEvasão de IDS/IPSBypass de WAFSegurança WebTestes de PenetraçãoAprendizado de MáquinaAprendizado e EducaçãoRed TeamingDetecção de AnomaliasLabs e Prática
GitHubfa-pengfei/ngwaf

NGWAF

607há 3 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Primeira iteração do WAF de Feedback baseado em ML

Ver Repositório

N3XT-G3N Firewall de Aplicações Web (NGWAF)

NGWAF foi criado por @yupengfei, @zhangbosen, @matthewng e @elizabethlim.

Um agradecimento especial a @ruinahkoh pelas suas contribuições nas fases iniciais do NGWAF.

NGWAF é uma prova de conceito experimental e não está pronto para uso em produção na sua forma atual.

Índice

  1. A Motivação

    ​ Como funciona o NGWAF?

    ​ Principais considerações do NGWAF

  2. Os Componentes | As Engrenagens do NGWAF

    ​ O Cérebro: WAF baseado em Machine Learning

    ​ O Espelho: Ambiente de Quarentena Interativo Escalável

    ​ A Biblioteca: Sequência de Retreinamento para Reforçar o Cérebro

  3. Configurando o NGWAF

    ​ Requisitos

    ​ Instalação e Uso

  4. Isenções de Responsabilidade e Outras Considerações

  5. Licenciamento

A Motivação

Com o crescimento explosivo das aplicações web desde o início dos anos 2000, os ataques baseados na web têm se tornado progressivamente mais frequentes. Uma solução comum é o Firewall de Aplicações Web (WAF). No entanto, ajustar as regras dos WAFs atuais para melhorar os mecanismos de deteção pode ser complexo e difícil. O NGWAF procura resolver estas desvantagens com uma arquitetura inovadora baseada em machine learning e quarentena para honeypot.

Inspirado por pontos problemáticos reais da operação de WAFs, o NGWAF pretende simplificar e reimaginar as operações de WAF através dos seguintes processos:

Ponto problemáticoCaracterística do NGWAF
A manutenção dos mecanismos de deteção e regras pode ser complexaUtilizar machine learning para automatizar o processo de criação e atualização dos mecanismos de deteção
O bloqueio imediato de tráfego malicioso reduz as oportunidades de aprender com o comportamento dos atores de ameaças para futuras melhorias do WAFEliminação de ameaças através de quarentena redirecionada em vez do bloqueio e descarte convencionais de tráfego malicioso

Para tornar a implantação simples e portátil, containerizámos os diferentes componentes da arquitetura usando docker e configurámo-los num ficheiro docker-compose. Isto permite que a execução numa instalação nova seja rápida e fácil, pois as dependências são tratadas automaticamente pelo docker. A implantação pode ser expandida para ser implantada num cluster kubernetes local ou baseado em fornecedor de cloud, tornando-a escalável à medida que os utilizadores aumentam o número de nodes/pods para lidar com grandes volumes de tráfego.

A implantação foi testada no macOS (Docker desktop), linux (ubuntu).

Como funciona o NGWAF?

O NGWAF funciona de imediato com três componentes principais; estes componentes, como mencionado acima, são todos containerizados e escaláveis de acordo com o uso desejado. O recurso protegido pode ser personalizado através de uma alteração na implantação dentro da configuração.


Arquitetura de alto nível do NGWAF com fluxos de tráfego esperados de diferentes partes

Principais Benefícios

O NGWAF foi projetado com os seguintes benefícios principais para o utilizador em mente:

1. Redução da Complexidade das Regras

O NGWAF substitui os conjuntos de regras tradicionais por modelos de deep learning para reduzir a complexidade de gerir e atualizar regras. Em vez de editar manualmente as regras, o machine learning do NGWAF automatiza o processo de aprendizagem de padrões a partir de dados maliciosos. Os dados recolhidos do ambiente de quarentena são automaticamente limpos e agrupados, permitindo que sejam retreinados no nosso modelo de deteção, se desejado.

2. Deceção Cibernética

O NGWAF adota uma arquitetura inovadora que consiste num ambiente interativo e de quarentena construído para isolar potenciais atacantes hostis. Ao contrário dos WAFs convencionais que bloqueiam ao detetar, o NGWAF redireciona os atores de ameaças para sistemas emulados, prendendo-os para suavizar o impacto das suas ações maliciosas. O ambiente também atua como um sumidouro para recolher métodos de ataque atuais, permitindo a observação e coleta de dados maliciosos. Estes dados podem ser usados para melhorar ainda mais a capacidade de deteção do NGWAF.


NGWAF em ação: Ao detetar uma injeção SQL, o NGWAF redireciona para o nosso ambiente de quarentena, em vez de descartar ou bloquear a tentativa.

3. Conformidade com Normas Internacionalmente Reconhecidas

O princípio orientador por detrás da criação do NGWAF é proteger contra os riscos destacados no documento de sensibilização padrão do Open Web Application Security Project - The OWASP Top 10 2021.

Os dados de treino e as verificações de conformidade para o NGWAF são recolhidos e realizados com base neste requisito.

Os Componentes do NGWAF

1. O Cérebro: WAF baseado em Machine Learning

Quem precisa de manual quando podemos ir de NEURAL

Em vez de conjuntos de regras tradicionais que exigem que os analistas identifiquem e adicionem regras manualmente ao longo do tempo, o NGWAF utiliza pipelines de machine learning de ponta a ponta para o mecanismo de deteção, reduzindo significativamente a complexidade da gestão de regras do WAF, especialmente para detetar payloads complexos.

Modelo de Base

Para tal, precisámos primeiro de criar um modelo de base e uma arquitetura com os quais os utilizadores possam começar, antes de usarem posteriormente dados recolhidos das suas próprias aplicações para retreinamento e ajuste fino:

  1. Recolhemos payloads maliciosos e não-maliciosos de vários conjuntos de dados públicos (1, 2, 3)
  2. Em vez de identificar regras manualmente, utilizamos machine learning e deep learning para automatizar o processo de aprendizagem de padrões a partir de dados maliciosos anteriores. Experimentámos várias arquiteturas de modelo, e o nosso modelo final utilizou uma rede neural recorrente.

A arquitetura geral do modelo de base é uma RNN simples com um módulo LSTM bidirecional como abaixo:


Imagem retirada do Tensorflow (link)

Desempenho

Ao utilizar esta arquitetura RNN, conseguimos obter melhorias de desempenho em relação a modelos mais simples:

Manutenção e Retreinamento

Embora tenhamos incluído registos de várias aplicações para melhorar a generalização do modelo de base, a manutenção e o retreinamento adicional do modelo serão importantes para:

  1. Ajustar o modelo para melhor desempenho no tráfego da aplicação específica do utilizador
  2. Reduzir a degradação do modelo ao longo do tempo, à medida que os atores de ameaças descobrem novos métodos e oportunidades

Para resolver isto, os utilizadores do NGWAF beneficiam do nosso pipeline integrado de retenção de modelo de ponta a ponta, e podem facilmente acionar a manutenção do modelo com alguns passos simples sem terem de se aprofundar. (Consulte a Secção 3 abaixo).

2. O Espelho: Ambiente de Quarentena Interativo Escalável

Não os deixe ir, DETENHA-OS!

Ao contrário dos WAFs tradicionais, onde o tráfego malicioso é bloqueado ou descartado imediatamente, o NGWAF adota uma abordagem mais flexível. Através da qual, redireciona e detém atores maliciosos dentro de um ambiente de quarentena. Este ambiente consiste em vários honeypots emulados interativos para tentar recolher mais métodos/dados de ataque; estes dados serão utilizados para potencialmente aumentar a taxa de deteção do NGWAF de ataques mais modernos e complexos.

Captura de dados maliciosos e limpeza automática para fins de retreinamento

Atualmente, o ambiente de quarentena do NGWAF encaminha todos os dados submetidos pelo atacante preso para a nossa pilha ELK para análise e visualização. Os dados são automaticamente limpos em diferentes componentes do pedido HTTP, depois empacotados internamente no backend do ambiente em formato JSON antes de serem encaminhados. Isto ajuda a reduzir o custo de mão de obra necessário para limpar e indexar os dados quando iniciarmos o processo de retreinamento.

Criar o seu ambiente de quarentena personalizado

O NGWAF atualmente permite que os utilizadores façam alterações à aparência e ambiente do aspeto front-end dos nossos honeypots dentro do ambiente de quarentena (baseado numa versão personalizada do drupot). Os utilizadores simplesmente têm de substituir a pasta assets dentro do volume docker pelos seus assets front-end de escolha.

O NGWAF também é flexível para utilizadores que queiram ligar os seus próprios honeypots como parte do ambiente de quarentena. Os utilizadores apenas têm de encaminhar os pedidos HTTP do honeypot para o servidor backend do ambiente (os processos backend vão automaticamente limpar e encaminhar os dados para o painel de análise - pilha ELK).

3. A Biblioteca: Sequência de Retreinamento para Reforçar o Cérebro

Inteligente não é realmente inteligente até que possas continuar a aprender

À medida que novos payloads e vetores de ataque surgem, é importante atualizar as capacidades de deteção para garantir a segurança. Assim, uma função de retreinamento está integrada no NGWAF para garantir que os defensores consigam treinar o modelo de machine learning para detetar esses novos payloads. Utilizadores que não estejam familiarizados com ciência de dados ou redes neurais ainda conseguirão ajustar os modelos com esta interface simples, pois os passos complexos são tratados por eles.

Como funciona

Os utilizadores apenas precisam de carregar uma pequena amostra de dados etiquetados do seu próprio sistema em funcionamento (por exemplo, na ordem dos poucos milhares), que será usada para ajustar o modelo existente no backend:

  1. Introduzir novos conceitos: O vocabulário da camada de vetorização de texto do modelo será expandido para incluir novos termos no novo conjunto de dados. Novos embeddings também serão inicializados para isso.
  2. Manter o conhecimento existente: Para aproveitar o "conhecimento aprendido" existente no modelo anterior, os embeddings para palavras previamente conhecidas e o módulo LSTM serão carregados do modelo anterior. Isto também ajuda a acelerar o processo de treino.
  3. Esta arquitetura atualizada será então treinada no novo conjunto de dados, e quando o treino estiver completo, o novo modelo será implantado no endpoint do WAF ativo.

Quando o treino estiver completo, os utilizadores também receberão alguns diagnósticos breves do modelo (por exemplo, desempenho no conjunto de teste e em vários limiares de pontuação) para que possam avaliar o novo modelo.

Fluxo do utilizador

Para iniciar o processo de retreinamento, vá ao painel de controlo e siga estes passos:

  1. Crie um novo conjunto de dados (.csv) para carregar com as seguintes colunas:
  • payload [str]: deve ser o payload do seu sistema ou alguns exemplos baseados em string (por exemplo, exemplos de injeção SQL)
  • label [int]: deve ser 0 para exemplos não maliciosos e 1 para exemplos maliciosos
  • is_url [bool]: deve ser TRUE se o payload for do seu sistema (ou seja, incluindo outras informações do sistema, como caminho e dispositivo), e FALSE se for um exemplo baseado em string (por exemplo, "1==1")
  1. Navegue para http://localhost:8088 para ver o painel de administração do NGWAF.
  2. Selecione o separador "Import Dataset" e carregue o conjunto de treino que criou
  1. Confirme que o conjunto de treino foi carregado com sucesso no separador "Manage Datasets".
  1. No separador "Manage Model", selecione o(s) conjunto(s) de dados em que deseja retreinar o modelo e clique no botão "UPDATE WAF MODEL".
  1. Parabéns! O modelo deve terminar o retreinamento após algum tempo. Deverá ver alguns diagnósticos do modelo reportados de volta.

4. Funcionalidades Adicionais:

O NGWAF utiliza a pilha ELK para capturar registos dos dados de rede que passam pelo NGWAF, permitindo que os utilizadores monitorizem o tráfego que passa pelo NGWAF para análise adicional.

O NGWAF também vem com notificação ao vivo do Telegram, para informar os proprietários sobre ameaças maliciosas ao vivo que são detetadas pelo NGWAF.

Exemplos de cenários de utilização

  1. Aplicação recentemente normal (Use o clonador web incorporado / crie outra implantação duplicada para usar como ambiente de isolamento)
  2. Integrar em honeypot/honeynet existente (Atualize a configuração para apontar para honeypot/honeynet)

Configurando o NGWAF

Requisitos

Sistemas Operativos Testados

  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 do Painel de Administração WAF

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

Camada de Descodificação

  1. Cyberchef Server

Camada de Cache

  1. Redis

Ambiente de Quarentena

  1. Drupot
  2. Componentes da Pilha Elastic Search (Elasticsearch, Logstash, Kibana, Filebeats)

Aplicação Web

  1. DVWA
  2. OWASP
  3. VulnLab

Instalação e Uso

Com o Docker em execução, execute o seguinte ficheiro usando o comando abaixo:

./run.sh

Para substituir os alvos, aponte as variáveis dest_server e honey_pot_server para os alvos corretos no ficheiro /waf/WafApp/waf.py

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

Assim que o contentor Docker estiver ativo, pode visitar o seu localhost, onde estas portas estão a executar estes serviços:

Configure também o seguinte num ficheiro waf-secrets.env

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

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

Configure também o seguinte num ficheiro 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="******************"

Isenções de Responsabilidade e Outras Considerações

O NGWAF é um projeto de código aberto em desenvolvimento (W.I.P), funções e funcionalidades podem mudar de patch para patch. Se estiver interessado em contribuir, sinta-se à vontade para criar uma issue ou pull request!

Licenciamento

Licença

MIT License

Baixar ferramenta
Arquitetura do modeloPrecisãoPontuação F1
Nosso modelo final0.9950.993
Rede neural sem módulo LSTM0.9560.891
Árvore de Decisão0.8780.840
Regressão Logística0.9460.914
PortaServiçoObservaçõesCredenciais (se aplicável)
8080DVWAOnde o WAF resideadmin:password
5601ElasticsearchPara visualizar registoselastic:changeme
8088Admin DashboardPainel para gerir o modelo WAF
5001DrupotHoneypot