Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
NGWAF — Primera iteración de WAF de retroalimentación basado en ML | Kitploit
Herramientas/GitHubGitHub/fa-pengfei/ngwaf
Herramientas DefensivasEvasión de IDS/IPSEvasión de WAFSeguridad WebPruebas de PenetraciónAprendizaje AutomáticoAprendizaje y EducaciónRed TeamingDetección de AnomalíasLabs y Práctica
GitHubfa-pengfei/ngwaf

NGWAF

607hace 3 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Primera iteración de WAF de retroalimentación basado en ML

Ver Repositorio

Cortafuegos de Aplicaciones Web de Nueva Generación (NGWAF)

NGWAF es creado por @yupengfei, @zhangbosen, @matthewng y @elizabethlim.

Un agradecimiento especial a @ruinahkoh por sus contribuciones en las etapas iniciales de NGWAF.

NGWAF es una prueba de concepto experimental y no está listo para su uso en producción en su estado actual.

Contenido

  1. La Motivación

    ​ ¿Cómo funciona NGWAF?

    ​ Consideraciones clave de NGWAF

  2. Los Componentes | Los Engranajes de NGWAF

    ​ El Cerebro: WAF basado en Aprendizaje Automático

    ​ El Espejo: Entorno de Cuarentena Interactivo Escalable

    ​ La Biblioteca: Secuencia de Reentrenamiento para Reforzar el Cerebro

  3. Configuración de NGWAF

    ​ Requisitos

    ​ Instalación y Uso

  4. Descargos y Otras Consideraciones

  5. Licencia

La Motivación

Con el crecimiento explosivo de las aplicaciones web desde principios de los años 2000, los ataques basados en la web se han vuelto progresivamente más desenfrenados. Una solución común es el Cortafuegos de Aplicaciones Web (WAF). Sin embargo, ajustar las reglas de los WAF actuales para mejorar los mecanismos de detección puede ser complejo y difícil. NGWAF busca abordar estos inconvenientes con una novedosa arquitectura basada en aprendizaje automático y cuarentena hacia honeypots.

Inspirado en puntos débiles reales de la operación de WAF, NGWAF pretende simplificar y reinventar las operaciones de WAF a través de los siguientes procesos:

Punto débilCaracterística de NGWAF
El mantenimiento de los mecanismos de detección y las reglas puede ser complejoAprovechar el aprendizaje automático para automatizar el proceso de creación y actualización de mecanismos de detección
El bloqueo inmediato del tráfico malicioso reduce las oportunidades de aprender del comportamiento de los actores de amenazas para futuras mejoras del WAFEliminación de amenazas mediante cuarentena redirigida en lugar del descarte y bloqueo convencional del tráfico malicioso

Para simplificar y hacer portátil el despliegue, hemos contenerizado los diferentes componentes de la arquitectura usando Docker y los hemos configurado en un archivo docker-compose. Esto permite ejecutarlo en una instalación nueva de forma rápida y sencilla, ya que las dependencias son manejadas automáticamente por Docker. El despliegue se puede ampliar para implementarse en un clúster de Kubernetes local o en la nube, lo que lo hace escalable ya que los usuarios pueden aumentar el número de nodos/pods para manejar grandes volúmenes de tráfico.

El despliegue se ha probado en macOS (Docker Desktop) y Linux (Ubuntu).

¿Cómo funciona NGWAF?

NGWAF funciona de fábrica con tres componentes clave, estos componentes, como se mencionó anteriormente, están todos contenerizados y son escalables según el uso deseado. El recurso protegido se puede personalizar realizando un cambio de despliegue dentro de la configuración.


Arquitectura de alto nivel de NGWAF con los flujos de tráfico esperados de diferentes partes

Beneficios Clave

NGWAF fue diseñado teniendo en cuenta los siguientes beneficios clave para el usuario:

1. Reducción de la Complejidad de las Reglas

NGWAF reemplaza los conjuntos de reglas tradicionales con modelos de aprendizaje profundo para reducir la complejidad de gestionar y actualizar las reglas. En lugar de editar reglas manualmente, el aprendizaje automático de NGWAF automatiza el proceso de aprendizaje de patrones a partir de datos maliciosos. Los datos recopilados del entorno de cuarentena se depuran y agrupan automáticamente, lo que permite reentrenarlos en nuestro modelo de detección si se desea.

2. Decepción Cibernética

NGWAF adopta una arquitectura novedosa que consiste en un entorno interactivo y de cuarentena diseñado para aislar a posibles atacantes hostiles. A diferencia de los WAF convencionales que bloquean al detectar, NGWAF desvía a los actores de amenazas hacia sistemas emulados, atrapándolos para mitigar el impacto de sus acciones maliciosas. El entorno también actúa como un sumidero para recopilar métodos de ataque actuales, permitiendo la observación y recolección de datos maliciosos. Estos datos se pueden utilizar para mejorar aún más la capacidad de detección de NGWAF.


NGWAF en acción: al detectar una inyección SQL, NGWAF redirige a nuestro entorno de cuarentena, en lugar de descartar o bloquear el intento.

3. Cumplimiento de Estándares Reconocidos Internacionalmente

El principio rector detrás de la creación de NGWAF es protegerse contra los riesgos destacados en el documento de concienciación estándar del Proyecto de Seguridad de Aplicaciones Web Abierto: The OWASP Top 10 2021.

Los datos de entrenamiento y las comprobaciones de cumplimiento para NGWAF se recopilan y realizan según este requisito.

Los Componentes de NGWAF

1. El Cerebro: WAF basado en Aprendizaje Automático

¿Quién necesita manual cuando podemos ir a lo NEURONAL?

En lugar de conjuntos de reglas tradicionales que requieren que los analistas identifiquen y agreguen reglas manualmente con el tiempo, NGWAF aprovecha tuberías de aprendizaje automático de extremo a extremo para el mecanismo de detección, lo que reduce enormemente la complejidad en la gestión de reglas WAF, especialmente para detectar cargas útiles complejas.

Modelo Base

Para hacerlo, primero necesitábamos crear un modelo base y una arquitectura que los usuarios puedan usar inicialmente, antes de que luego utilicen datos recopilados de sus propias aplicaciones para reentrenamiento y ajuste fino:

  1. Recopilamos cargas útiles maliciosas y no maliciosas de varios conjuntos de datos públicos (1, 2, 3)
  2. En lugar de identificar reglas manualmente, aprovechamos el aprendizaje automático y profundo para automatizar el proceso de aprendizaje de patrones a partir de datos maliciosos anteriores. Experimentamos con varias arquitecturas de modelos, y nuestro modelo final utilizó una red neuronal recurrente.

La arquitectura general del modelo base es una RNN simple con un módulo LSTM bidireccional como el siguiente:


Imagen tomada de Tensorflow (enlace)

Rendimiento

Al usar esta arquitectura RNN, pudimos lograr mejoras de rendimiento sobre modelos más simples:

Mantenimiento y Reentrenamiento

Aunque hemos incluido registros de varias aplicaciones para mejorar la generalización del modelo base, será importante realizar un mantenimiento y reentrenamiento adicionales del modelo para:

  1. Ajustar el modelo para un mejor rendimiento en el tráfico de la aplicación específica del usuario
  2. Reducir la degradación del modelo con el tiempo, a medida que los actores de amenazas descubren nuevos métodos y oportunidades

Para abordar esto, los usuarios de NGWAF se benefician de nuestra tubería de reentrenamiento de modelos empaquetada de extremo a extremo, y pueden activar fácilmente el mantenimiento del modelo con unos pocos pasos simples sin tener que profundizar en los detalles técnicos. (Consulte la Sección 3 a continuación).

2. El Espejo: Entorno de Cuarentena Interactivo Escalable

No los dejes ir, ¡DETÉNELOS!

Contrario a los WAF tradicionales donde el tráfico malicioso se bloquea o descarta de inmediato, NGWAF adopta un enfoque más flexible. Redirige y retiene a los actores maliciosos dentro de un entorno de cuarentena. Este entorno consta de varios honeypots interactivos emulados para intentar recopilar más métodos/datos de ataque; estos datos se utilizarán potencialmente para mejorar la tasa de detección de NGWAF de ataques más modernos y complejos.

Captura de Datos Maliciosos y Autodepuración para fines de Reentrenamiento

Actualmente, el entorno de cuarentena de NGWAF reenvía todos los datos enviados por el atacante atrapado a nuestra pila ELK para su análisis y visualización. Los datos se autodepuran en diferentes componentes de la solicitud HTTP, luego se empaquetan internamente en el backend del entorno en formato JSON antes de reenviarlos. Esto ayuda a reducir el costo de mano de obra necesario para limpiar e indexar los datos cuando iniciamos el proceso de reentrenamiento.

Creación de su Entorno de Cuarentena Personalizado

NGWAF actualmente permite a los usuarios realizar cambios en la apariencia del front-end de nuestros honeypots dentro del entorno de cuarentena (basado en una versión personalizada de drupot). Los usuarios simplemente tienen que reemplazar la carpeta de activos dentro del volumen de docker con los activos de front-end de su elección.

NGWAF también es adaptable para usuarios que deseen vincular sus propios honeypots como parte del entorno de cuarentena. Los usuarios solo tienen que reenviar las solicitudes HTTP del honeypot al servidor backend del entorno (los procesos del backend depurarán y reenviarán automáticamente los datos al panel de análisis - pila ELK).

3. La Biblioteca: Secuencia de Reentrenamiento para Reforzar el Cerebro

Inteligente no es realmente inteligente hasta que puedas seguir aprendiendo

A medida que surgen nuevas cargas útiles y vectores de ataque, es importante mejorar las capacidades de detección para garantizar la seguridad. Por lo tanto, se incorporó una función de reentrenamiento en NGWAF para asegurar que los defensores puedan entrenar el modelo de aprendizaje automático para detectar esas nuevas cargas útiles. Los usuarios que no estén familiarizados con la ciencia de datos o las redes neuronales aún podrán ajustar los modelos con esta interfaz simple, ya que los pasos complejos se manejan por ellos.

Cómo funciona

Los usuarios solo necesitan cargar una pequeña muestra de datos etiquetados de su propio sistema en vivo (por ejemplo, en el orden de unos pocos miles), que se utilizará para ajustar el modelo existente en el backend:

  1. Introducir nuevos conceptos: El vocabulario de la capa de vectorización de texto del modelo se ampliará para incluir nuevos términos en el nuevo conjunto de datos. También se inicializarán nuevas incrustaciones para esto.
  2. Mantener el conocimiento existente: Para aprovechar el "conocimiento aprendido" existente dentro del modelo anterior, se cargarán las incrustaciones de palabras previamente conocidas y el módulo LSTM del modelo anterior. Esto también ayuda a acelerar el proceso de entrenamiento.
  3. Esta arquitectura actualizada se entrenará entonces en el nuevo conjunto de datos, y cuando el entrenamiento esté completo, el nuevo modelo se implementará en el endpoint WAF en vivo.

Cuando el entrenamiento esté completo, también se proporcionarán a los usuarios algunos diagnósticos breves del modelo (por ejemplo, rendimiento en el conjunto de prueba y en varios umbrales de puntuación) para que evalúen el nuevo modelo.

Flujo de usuario

Para activar el proceso de reentrenamiento, diríjase al panel de control y siga estos pasos:

  1. Cree un nuevo conjunto de datos (.csv) para cargar con las siguientes columnas:
  • payload [str]: debe ser la carga útil de su sistema, o algunos ejemplos basados en cadenas (por ejemplo, ejemplos de inyección SQL)
  • label [int]: debe ser 0 para ejemplos no maliciosos y 1 para ejemplos maliciosos
  • is_url [bool]: debe ser VERDADERO si la carga útil proviene de su sistema (es decir, incluye otra información del sistema como ruta y dispositivo), y FALSO si es un ejemplo basado en cadenas (por ejemplo, "1==1")
  1. Navegue a http://localhost:8088 para ver el panel de administración de NGWAF.
  2. Seleccione la pestaña "Importar Conjunto de Datos" y cargue el conjunto de entrenamiento que ha creado
  1. Confirme que el conjunto de entrenamiento se haya cargado correctamente en la pestaña "Gestionar Conjuntos de Datos".
  1. En la pestaña "Gestionar Modelo", seleccione el/los conjunto(s) de datos con los que desea reentrenar el modelo y haga clic en el botón "ACTUALIZAR MODELO WAF".
  1. ¡Felicidades! El modelo debería terminar de reentrenarse después de un tiempo. Debería ver algunos diagnósticos del modelo informados.

4. Funcionalidades Adicionales:

NGWAF utiliza la pila ELK para capturar registros de datos de red que pasan a través de NGWAF, lo que permite a los usuarios monitorear el tráfico que pasa por NGWAF para su posterior análisis.

NGWAF también viene con notificaciones en vivo de Telegram, para informar a los propietarios sobre amenazas maliciosas en vivo detectadas por NGWAF.

Escenarios de Uso de Muestra

  1. Aplicación recién normal (Use el clonador web incorporado / cree otra implementación duplicada para usar como entorno de aislamiento)
  2. Integrar en un honeypot/honeynet existente (Actualice la configuración para apuntar al honeypot/honeynet)

Configuración de NGWAF

Requisitos

Sistemas Operativos Probados

  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 del Panel de Administración de WAF

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

Capa de Decodificación

  1. Cyberchef Server

Capa de Caché

  1. Redis

Entorno de Cuarentena

  1. Drupot
  2. Componentes de Elastic Search Stack (Elasticsearch, Logstash, Kibana, Filebeats)

Aplicación Web

  1. DVWA
  2. OWASP
  3. VulnLab

Instalación y Uso

Con Docker en ejecución, ejecute el siguiente archivo usando el comando a continuación:

./run.sh

Para reemplazar los destinos, apunte las variables dest_server y honey_pot_server a los destinos correctos en el archivo /waf/WafApp/waf.py

root@kitploit:~
# Reemplázame
dest_server = "dvwa"
honey_pot_server = "drupot:5000"

Una vez que el contenedor Docker esté activo, puede visitar su localhost, donde estos puertos ejecutan estos servicios:

Configure también lo siguiente en un archivo waf-secrets.env

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

# CONFIGURACIÓN DE TELEGRAM
TELEGRAM_CHAT_ID="-57893457893457345"
TELEGRAM_TOKEN="******************"

Configure también lo siguiente en un archivo waf-admin-secrets.env

root@kitploit:~
# ENDPOINT DE API DEL MODELO 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="******************"

Descargos y Otras Consideraciones

NGWAF es un proyecto de código abierto en desarrollo; las funciones y características pueden cambiar de parche a parche. Si está interesado en contribuir, no dude en crear un issue o pull request.

Licencia

Licencia

Licencia MIT

Descargar herramienta
Arquitectura del modeloPrecisiónPuntuación F1
Nuestro modelo final0.9950.993
Red neuronal sin módulo LSTM0.9560.891
Árbol de decisión0.8780.840
Regresión logística0.9460.914
PuertoServicioObservacionesCredenciales (si aplica)
8080DVWADonde reside el WAFadmin:password
5601ElasticsearchPara ver registroselastic:changeme
8088Panel de AdminPanel para gestionar el modelo WAF
5001DrupotHoneypot