Ⅰ. Введение | Немезида ВАФ

Обзор модулей Немезида ВАФ и аппаратных требований для их установки. Обязательно ознакомьтесь перед использованием продукта.

Общие сведения
Немезида ВАФ — Web Application Firewall — межсетевой экран уровня приложений, предназначенный для защиты сайтов, интернет-магазинов, личных кабинетов, порталов, маркетплейсов, API и других веб-приложений от атак компрометации, L7 DDoS, подбора паролей, паразитных ботов и прочих угроз OWASP.

Преимуществами Немезида ВАФ является простая настройка через веб-интерфейс, высокая точность выявления атак при минимальном количестве ложных срабатываний, возможность интеграции со сторонними решениями (анти-DDoS, SIEM и т.д.), гибкая масштабируемость, а также наличие вспомогательных компонентов (API Firewall, сканер уязвимостей и прочее), позволяющих комплексно решать вопросы безопасности веб-приложений.

🔗 Схема взаимодействия модулей Немезида ВАФ

1 Включает в себя Nginx/Angie, динамический модуль и агент машинного обучения Nemesida AI MLA.

Для минимального развертывания всех компонентов Немезида ВАФ необходимо минимум 3 сервера:

  • Фильтрующая нода (1 сервер);
  • Nemesida AI MLC (1 сервер);
  • Nemesida WAF API, Личный кабинет, СУБД PostgreSQL, Nemesida WAF Scanner (1 сервер).

При этом, для корректной работы всех компонентов запрещена установка компонентов на одном сервере.

  • Динамический модуль для Nginx осуществляет сигнатурный анализ поступающих на сервер запросов и на основе построенных Nemesida AI MLC поведенческих моделей принимает решение об их блокировке или передаче в другие модули.
  • Модуль машинного обучения Nemesida AI MLA применяет к полученным от динамического модуля запросам поведенческие модели, построенные Nemesida AI MLC, и передает команду о блокировке.
  • Модуль машинного обучения Nemesida AI MLC предназначен для построения поведенческих моделей и выявления прочих аномалий (например, атак методом перебора, флуда, DDoS уровня приложений и активность паразитных ботов).
  • Nemesida WAF API предназначен для приема информации об атаках и выявленных уязвимостях, а также передачи информации о заблокированных запросах и результатах работы модулей Nemesida AI и Nemesida WAF Scanner в СУБД PostgreSQL.
  • Личный кабинет предназначен для визуализации и анализа событий работы компонентов из СУБД PostgreSQL, управления настройками Немезида ВАФ, управления схемами запросов OpenAPI, настройки использования поведенческих моделей, построенных и применяемых модулем Nemesida AI, а также систематизации информации об аномалиях и выявленных уязвимостях.
  • Сканер уязвимостей Nemesida WAF Scanner предназначен для выявления уязвимостей в защищаемом веб-приложении.

🔗 Кластеризация и отказоустойчивость компонентов Немезида ВАФ

Для обеспечения отказоустойчивой работы компоненты Немезида ВАФ на основе уникального идентификатора WAF ID объединяются в единый кластер. Использование единого идентификатора позволяет обеспечить автоматическую синхронизацию настроек, списка заблокированных IP-адресов и прочих параметров между узлами, в том числе находящихся на географически распределенных площадках (например, удаленные дата-центры).

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

Требования к серверам компонентов

Фильтрующая нода

Анализирует и перенаправляет не заблокированные запросы на сервер с веб-приложением.

Критичность Высокая
Минимальное количество серверов 2
Описание В случае недоступности компонента:

  • не будет производиться анализ запросов;
  • будут недоступны сервисы, к которым выполняется проксирование трафика через фильтрующую ноду.
Технические требования
Технические требования являются примерными (для нагрузки до 10к RPS) и подбираются индивидуально, в зависимости от количества и типа поступаемого трафика.
Процессор 4 ядра x 2.4 ГГц
Оперативная память 6 ГБ
Дисковое пространство Тип: HDD
Размер: 10 ГБ

Nemesida AI MLC

Используется для построения поведенческих моделей и анализа с их помощью всех поступающих запросов, выявляет DDoS/Bruteforce/Flood-атаки и активность паразитных ботов.

Критичность Средняя
Минимальное количество серверов 1
Описание В случае недоступности компонента:

  • не будет производиться выявление Bruteforce/Flood/DDoS-атак и активность паразитных ботов;
  • будет приостановлен процесс обучения/переобучения поведенческой модели. Недоступность компонента не влияет на анализ запросов модулем машинного обучения на фильтрующей ноде, если поведенческая модель уже была создана и применена до этого;
  • будет приостановлен процесс анализа запросов для генерации спецификации OpenAPI.
Технические требования
Технические требования являются примерными (для нагрузки до 10к RPS) и подбираются индивидуально, в зависимости от количества и типа поступаемого трафика.
Тарифы Лайт Бизнес, Энтерпрайз
Процессор 6 ядер x 2.4 ГГц
Оперативная память 4 ГБ 24 ГБ/8 ГБ*
Дисковое пространство Тип: HDD
Размер: 25 ГБ
* — в случае активации распределенного режима работы кластера компонентов Nemesida AI MLC необходимо выделить 24 ГБ для мастер-ноды и 8 ГБ ОЗУ для каждой вспомогательной ноды. В случае использования только одного сервера Nemesida AI MLC необходимо выделить 24 ГБ ОЗУ. Для тарифа Лайт активация распределенного режима работы нецелесообразна из-за отсутствия возможности создания поведенческих моделей.

Nemesida WAF API и СУБД PostgreSQL

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

Критичность Высокая
Минимальное количество серверов 2*
Описание В случае недоступности компонента:

  • не будет производиться получение настроек другими компонентами, а также их настройка;
  • будет приостановлен процесс получения и записи выявленных аномалий.
Технические требования
Процессор 4 ядра x 2.4 ГГц
Оперативная память 6 ГБ
Дисковое пространство Тип: SSD
Размер: 25 ГБ
* — использование одной копии Nemesida WAF API в режиме Read only позволит компонентам получать список настроек для них (настройки фильтрующей ноды, информация о поведенческих моделях, правила исключения/блокировки и т.д.), но не позволит произвести запись новых данных в БД.

Личный кабинет

Используется для визуализации выявленных аномалий.

Критичность Низкая
Минимальное количество серверов 1
Описание В случае недоступности компонента:

  • будет приостановлен доступ к интерфейсу Личного кабинета.
Технические требования
Процессор 4 ядра x 2.4 ГГц
Оперативная память 6 ГБ
Дисковое пространство Тип: SSD
Размер: 25 ГБ

Nemesida WAF Scanner

Используется для выявления недостатков веб-приложения.

Критичность Низкая
Минимальное количество серверов 1
Описание В случае недоступности компонента:

  • будет невозможно сканирование защищаемого веб-приложения для выявления уязвимостей;
  • будет невозможно использование функционала Recheck;
Технические требования
Процессор 4 ядра x 2.4 ГГц
Оперативная память 6 ГБ
Дисковое пространство Тип: SSD
Размер: 25 ГБ

🔗 Установочные пакеты

Основные:

  • nwaf-dynдинамический модуль для Nginx и агент машинного обучения Nemesida AI MLA, предназначен для выявления и/или блокирования аномалий с использованием сигнатурного анализа и поведенческих моделей, а также передачи трафика для дальнейшей обработки через RabbitMQ в модуль Nemesida AI MLC.
  • nwaf-mlc — модуль машинного обучения Nemesida AI MLC, предназначен для построения поведенческих моделей и выявления прочих аномалий (например, DDoS L7 и активности паразитных ботов, атак методом перебора и т.д.).
  • nwaf-api — модуль Nemesida WAF API, предназначен для передачи информации о заблокированных запросах и результатах работы модулей Nemesida AI и Nemesida WAF Scanner в СУБД PostgreSQL.

Вспомогательные:

  • nwaf-cabinet — модуль Личный кабинет, предназначен для визуализации и анализа событий работы компонентов из СУБД PostgreSQL, управления настройками Немезида ВАФ, управления схемами запросов OpenAPI, настройки использования поведенческих моделей, построенных и применяемых модулем Nemesida AI, а также систематизации информации об аномалиях и выявленных уязвимостях.
  • nwaf-scanner — сканер уязвимостей Nemesida WAF Scanner.

🔗 Техническая поддержка

В процессе работы компонентов Немезида ВАФ информация о событиях может содержаться:

  • в системных журналах ОС;
  • в журнале работы Nginx;
  • в журнале работы RabbitMQ;
  • в журнале работы компонентов Немезида ВАФ:
    • /var/log/nwaf/
    • /var/log/nw-api/
    • /var/log/uwsgi/cabinet/

В случае возникновения вопросов, связанных с коммерческой версией Немезида ВАФ, обратитесь в службу технической поддержки по электронной почте.

В случае возникновения вопросов, связанных с некоммерческой версией Немезида ВАФ, оставьте сообщение на форуме.

🔗 Прочая информация

Каждый экземпляр фильтрующей ноды (установочный пакет nwaf-dyn) должен использовать уникальный лицензионный ключ (лицензию). Лицензия включает в себя право использования всех компонентов, входящих в состав Немезида ВАФ, обновления и техническую поддержку. Лицензия предоставляется на один календарный год.
Доменное имя example.com вместе с поддоменами в руководствах используется в качестве примера.

Все поведенческие модели, созданные модулем Nemesida AI MLC, хранятся в локальной СУБД PostgreSQL (база данных waf, в которой хранятся также настройки Немезида ВАФ, правила исключений и блокировки, настройки веб-сервера Nginx), доступ к которой осуществляется через компонент Nemesida WAF API. Управление поведенческими моделями осуществляется с помощью интерфейса Личного кабинета или API.

Немезида ВАФ во время работы использует служебные заголовки в формате x-nwaf-* (например, x-nwaf-oa-request-id). Использование в веб-приложении заголовков с аналогичными названиями не допускается во избежании возможных ошибок в работе.

Использование IP геолокации позволяет получать расширенную информацию об IP-адресе источника запросов. Точность получаемых данных (в том числе списков Tor/Proxy/VPN) в силу специфики их получения.

Копии некоторых функций веб-сервера Nginx в модифицированном виде используются в динамическом модуле Немезида ВАФ для анализа запросов, передаваемых внутри туннеля Websocket.

Установка и первичная настройка >>