Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
NGWAF — Первая итерация Feedback WAF на основе машинного обучения | Kitploit
Инструменты/GitHubGitHub/fa-pengfei/ngwaf
Оборонительные ИнструментыОбход IDS/IPSОбход WAFВеб-безопасностьТестирование на ПроникновениеМашинное ОбучениеОбучение и ОбразованиеRed TeamingОбнаружение АномалийЛаборатории и Практика
GitHubfa-pengfei/ngwaf

NGWAF

60773 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →

Первая итерация Feedback WAF на основе машинного обучения

Репозиторий
Поделиться

N3XT-G3N Web App Firewall (NGWAF)

NGWAF создан @yupengfei, @zhangbosen, @matthewng и @elizabethlim.

Особая благодарность @ruinahkoh за её вклад в начальные этапы NGWAF.

NGWAF является экспериментальной концептуальной реализацией и в текущем виде не готов к промышленному использованию.

Содержание

  1. Мотивация

    ​ Как работает NGWAF?

    ​ Ключевые преимущества NGWAF

  2. Компоненты | Шестерёнки NGWAF

    ​ Мозг: WAF на основе машинного обучения

    ​ Зеркало: Масштабируемая интерактивная карантинная среда

    ​ Библиотека: Последовательность переобучения для укрепления мозга

  3. Настройка NGWAF

    ​ Требования

    ​ Установка и использование

  4. Отказ от ответственности и прочие замечания

  5. Лицензирование

Мотивация

С взрывным ростом веб-приложений с начала 2000-х годов атаки на их основе становятся всё более распространёнными. Одним из распространённых решений является веб-брандмауэр приложений (WAF). Однако настройка правил существующих WAF для улучшения механизмов обнаружения может быть сложной и трудной. NGWAF стремится устранить эти недостатки с помощью новой архитектуры, основанной на машинном обучении и карантинном перенаправлении в honeypot.

Вдохновлённый реальными проблемами при эксплуатации WAF, NGWAF намерен упростить и переосмыслить операции WAF через следующие процессы:

ПроблемаВозможность NGWAF
Обслуживание механизмов обнаружения и правил может быть сложнымИспользование машинного обучения для автоматизации процесса создания и обновления механизмов обнаружения
Немедленная блокировка вредоносного трафика снижает возможности изучения поведения злоумышленников для будущих улучшений WAFУстранение угрозы через перенаправление в карантин вместо обычного сброса и блокировки вредоносного трафика

Чтобы сделать развёртывание простым и переносимым, мы контейнеризировали различные компоненты архитектуры с помощью Docker и настроили их в файле docker-compose. Это позволяет быстро и легко запускать его на новом устройстве, так как зависимости обрабатываются Docker автоматически. Развёртывание может быть расширено до кластера Kubernetes на локальном или облачном провайдере, что обеспечивает масштабируемость: пользователи могут увеличивать количество узлов/подов для обработки больших объёмов трафика.

Развёртывание тестировалось на macOS (Docker desktop) и Linux (Ubuntu).

Как работает NGWAF?

NGWAF работает «из коробки» с тремя ключевыми компонентами; эти компоненты, как упоминалось выше, все контейнеризированы и масштабируются в зависимости от желаемого использования. Защищаемый ресурс можно настроить, изменив развёртывание в установке.


Высокоуровневая архитектура NGWAF с ожидаемыми потоками трафика от разных сторон

Ключевые преимущества

NGWAF был разработан с учётом следующих ключевых преимуществ для пользователя:

1. Снижение сложности правил

NGWAF заменяет традиционные наборы правил моделями глубокого обучения, чтобы уменьшить сложность управления и обновления правил. Вместо ручного редактирования правил машинное обучение NGWAF автоматизирует процесс изучения закономерностей из вредоносных данных. Данные, собранные из карантинной среды, автоматически очищаются и группируются, что позволяет при желании повторно обучить их на нашей модели обнаружения.

2. Кибердезориентация

NGWAF использует новую архитектуру, включающую интерактивную и карантинную среду, созданную для изоляции потенциальных враждебных злоумышленников. В отличие от обычных WAF, которые блокируют при обнаружении, NGWAF перенаправляет злоумышленников на эмулированные системы, задерживая их, чтобы смягчить воздействие их злонамеренных действий. Среда также действует как «воронка» для сбора текущих методов атак, позволяя наблюдать и собирать вредоносные данные. Эти данные могут быть использованы для дальнейшего улучшения возможностей обнаружения NGWAF.


NGWAF в действии: при обнаружении SQL-инъекции NGWAF перенаправляет в карантинную среду, а не сбрасывает или блокирует попытку.

3. Соответствие международно признанным стандартам

Руководящим принципом создания NGWAF является защита от рисков, указанных в стандартном документе осведомлённости Open Web Application Security Project — OWASP Top 10 2021.

Обучающие данные и проверки соответствия для NGWAF собираются и проводятся на основе этого требования.

Компоненты NGWAF

1. Мозг: WAF на основе машинного обучения

Кому нужна ручная работа, когда можно перейти на НЕЙРОННЫЙ

Вместо традиционных наборов правил, которые требуют от аналитиков ручного выявления и добавления правил со временем, NGWAF использует сквозные конвейеры машинного обучения для механизма обнаружения, что значительно снижает сложность управления правилами WAF, особенно для обнаружения сложных полезных нагрузок.

Базовая модель

Для этого нам сначала нужно создать базовую модель и архитектуру, с которой пользователи могут начать, чтобы позже использовать данные, собранные из их собственных приложений, для переобучения и тонкой настройки:

  1. Мы собрали вредоносные и невредоносные полезные нагрузки из различных общедоступных наборов данных (1, 2, 3)
  2. Вместо ручного определения правил мы используем машинное и глубокое обучение для автоматизации процесса изучения закономерностей из предыдущих вредоносных данных. Мы экспериментировали с несколькими архитектурами моделей, и в итоговой модели использовалась рекуррентная нейронная сеть.

Общая архитектура базовой модели — это простая RNN с двунаправленным модулем LSTM, как показано ниже:


Изображение взято из Tensorflow (ссылка)

Производительность

Используя эту архитектуру RNN, мы смогли достичь улучшения производительности по сравнению с более простыми моделями:

Архитектура моделиТочностьF1-мера
Наша итоговая модель0,9950,993
Нейронная сеть без модуля LSTM0,9560,891
Дерево решений0,8780,840
Логистическая регрессия0,9460,914

Обслуживание и переобучение

Хотя мы включили журналы из различных приложений для улучшения обобщающей способности базовой модели, дальнейшее обслуживание и переобучение модели будут важны для:

  1. Настройки модели для лучшей производительности на трафике конкретного приложения пользователя
  2. Снижения деградации модели со временем, так как злоумышленники находят новые методы и возможности

Чтобы решить эту задачу, пользователи NGWAF получают выгоду от нашего интегрированного конвейера переобучения модели «от начала до конца» и могут легко запустить обслуживание модели в несколько простых шагов, не заглядывая «под капот». (См. Раздел 3 ниже).

2. Зеркало: Масштабируемая интерактивная карантинная среда

Не дайте им уйти, ЗАДЕРЖИТЕ ИХ!

В отличие от традиционных WAF, где вредоносный трафик блокируется или сбрасывается сразу, NGWAF придерживается более гибкого подхода. Он перенаправляет и задерживает злоумышленников в карантинной среде. Эта среда состоит из различных интерактивных эмулированных honeypot для сбора дополнительных методов атак/данных; эти данные будут потенциально использованы для повышения уровня обнаружения NGWAF более современных и сложных атак.

Захват вредоносных данных и автоматическая очистка для целей переобучения

В настоящее время карантинная среда NGWAF пересылает все данные, отправленные захваченным злоумышленником, в наш стек ELK для анализа и визуализации. Данные автоматически очищаются на различные компоненты HTTP-запроса, затем упаковываются внутренне на бэкенде среды в формате JSON перед пересылкой. Это помогает снизить трудозатраты на очистку и индексацию данных при запуске процесса переобучения.

Создание собственной карантинной среды

NGWAF предоставляет пользователям возможность изменять внешний вид фронтенда наших honeypot в карантинной среде (на основе кастомизированной версии drupot). Пользователям достаточно заменить папку assets в томе Docker на свои собственные фронтенд-активы.

NGWAF также открыт для пользователей, которые хотели бы подключить свои собственные honeypot в качестве части карантинной среды. Пользователи просто должны перенаправлять HTTP-запросы от honeypot на сервер бэкенда среды (бэкенд автоматически очистит и перешлёт данные на панель анализа — стек ELK).

3. Библиотека: Последовательность переобучения для укрепления мозга

Умный — это не значит умный, пока ты не научишься учиться

По мере появления новых полезных нагрузок и векторов атак важно модернизировать возможности обнаружения для обеспечения безопасности. Поэтому в NGWAF встроена функция переобучения, чтобы защитники могли обучить модель машинного обучения обнаружению этих новых полезных нагрузок. Пользователи, не знакомые с наукой о данных или нейронными сетями, всё равно смогут донастроить модели с помощью этого простого интерфейса, так как сложные шаги обрабатываются за них.

Как это работает

Пользователям нужно только загрузить небольшой образец размеченных данных из своей собственной работающей системы (например, несколько тысяч), который будет использоваться для донастройки существующей модели на бэкенде:

  1. Внедрение новых концепций: Словарь слоя векторизации текста модели будет расширен за счёт включения новых терминов из нового набора данных. Для этого также будут инициализированы новые эмбеддинги.
  2. Сохранение существующих знаний: Чтобы воспользоваться существующими «выученными знаниями» в предыдущей модели, для ранее известных слов и модуля LSTM будут загружены эмбеддинги из предыдущей модели. Это также ускоряет процесс обучения.
  3. Затем эта обновлённая архитектура будет обучена на новом наборе данных, и после завершения обучения новая модель будет развёрнута на живой конечной точке WAF.

После завершения обучения пользователям также будут предоставлены краткие диагностические данные модели (например, производительность на тестовом наборе и при различных порогах оценки), чтобы они могли оценить новую модель.

Пользовательский поток

Чтобы запустить процесс переобучения, перейдите к панели управления и выполните следующие шаги:

  1. Создайте новый набор данных (.csv) для загрузки со следующими столбцами:
  • payload [str]: это должна быть либо полезная нагрузка из вашей системы, либо некоторые строковые примеры (например, примеры SQLi)
  • label [int]: должно быть 0 для невредоносных примеров и 1 для вредоносных примеров
  • is_url [bool]: должно быть TRUE, если полезная нагрузка из вашей системы (т. е. включает другую информацию о системе, такую как путь и устройство), и FALSE, если это строковый пример (например, "1==1")
  1. Перейдите по адресу http://localhost:8088 для просмотра панели администратора NGWAF.
  2. Выберите вкладку "Import Dataset" и загрузите созданный вами обучающий набор.
  1. Убедитесь, что обучающий набор был успешно загружен, на вкладке "Manage Datasets".
  1. На вкладке "Manage Model" выберите набор(ы) данных, на которых вы хотите переобучить модель, и нажмите кнопку "UPDATE WAF MODEL".
  1. Поздравляем! Через некоторое время модель завершит переобучение. Вы должны увидеть некоторые диагностические данные модели.

4. Дополнительные функции:

NGWAF использует стек ELK для захвата журналов сетевых данных, проходящих через NGWAF, что позволяет пользователям отслеживать трафик, проходящий через NGWAF, для дальнейшего анализа.

NGWAF также оснащён живыми уведомлениями в Telegram, чтобы информировать владельцев о живых вредоносных угрозах, обнаруженных NGWAF.

Примеры сценариев использования

  1. Новое нормальное приложение (используйте встроенный веб-клонировщик / создайте ещё одно дублирующее развёртывание для использования в качестве изолирующей среды)
  2. Интеграция с существующим honeypot/honeynet (обновите конфигурацию, чтобы указать на honeypot/honeynet)

Настройка NGWAF

Требования

Протестированные операционные системы

  1. macOS (Docker Desktop)
  2. Linux

Компонент ML WAF

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

Компонент панели администратора WAF

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

Уровень декодирования

  1. Cyberchef Server

Уровень кэширования

  1. Redis

Карантинная среда

  1. Drupot
  2. Компоненты стека Elastic Search (Elasticsearch, Logstash, Kibana, Filebeats)

Веб-приложение

  1. DVWA
  2. OWASP
  3. VulnLab

Установка и использование

Запустите Docker, затем выполните следующий файл с помощью команды ниже:

./run.sh

Чтобы заменить цели, укажите переменные dest_server и honey_pot_server на правильные цели в файле /waf/WafApp/waf.py

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

После запуска контейнера Docker вы можете посетить свой локальный хост, на котором следующие порты запускают эти службы:

ПортСлужбаПримечанияУчётные данные (если применимо)
8080DVWAГде находится WAFadmin:password
5601ElasticsearchДля просмотра журналовelastic:changeme
8088Панель администратораПанель управления моделью WAF
5001DrupotHoneypot

Также настройте следующее в файле waf-secrets.env

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

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

Также настройте следующее в файле 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="******************"

Отказ от ответственности и прочие замечания

NGWAF — это проект с открытым исходным кодом и работа в процессе; функции и возможности могут меняться от обновления к обновлению. Если вы заинтересованы в участии, пожалуйста, создайте issue или pull request!

Лицензирование

Лицензия

Лицензия MIT

Скачать инструмент