Руководство содержит описание программного обеспечения по выявлению и блокированию атак на веб-приложение «Nemesida WAF» и подразумевает наличие навыков работы с операционной системой «GNU Linux».

Требования к программно-аппаратному обеспечению
Программное обеспечение «Nemesida WAF» предназначено для использования на сервере, имеющего следующие технические характеристики:
- операционная система: 64-х битная версия ОС Debian 9/Centos 7;
- процессор: Intel Core i3 или выше;
- минимальный объем ОЗУ - 8 Гб, рекомендуемый объем ОЗУ - 16 Гб;
- дисковое пространство: от 5 Гб.

Установка ПО «Nemesida WAF»
Перед установкой ПО «Nemesida WAF» добавьте информацию о репозитории в систему:

Debian 9CentOS 7
1. Установите необходимые зависимости:

# apt-get install apt-transport-https

2. Создайте файл с информацией о репозитории:

# echo "deb https://nemesida-security.com/nw/debian stretch non-free" > /etc/apt/sources.list.d/NemesidaWAF.list

3. Добавьте ключ gpg.key:

# wget -O - https://nemesida-security.com/nw/gpg.key | apt-key add -
Создайте файл /etc/yum.repos.d/NemesidaWAF.repo с информацией о репозитории следующего содержания:

[NemesidaWAF]
name=Nemesida WAF Packages for CentOS 7
baseurl=https://nemesida-security.com/nw/centos/7/$basearch
gpgkey=https://nemesida-security.com/nw/gpg.key
enabled=1
gpgcheck=1

ПО «Nemesida WAF» состоит из модулей «Nemesida WAF», «Nemesida Scanner» и «Nemesida AI». Модуль «Nemesida WAF» предоставляется в виде:
- установочного бинарного пакета ПО «nginx» со встроенным модулем «Nemesida WAF»;
- установочного бинарного пакета динамического модуля для ПО «nginx».

Для функционирования ПО «Nemesida WAF» необходимо разрешить сетевой доступ к следующим ресурсам:
- https://pypi.python.org (репозиторий «Python Package Index»);
- https://nemesida-security.com (сервисы для установки, обновления и функционирование ПО «Nemesida»).

Debian 9CentOS 7
A. Вариант установки ПО «nginx» со встроенным модулем «Nemesida WAF»
1. Установите необходимые пакеты:

# apt-get update && apt-get upgrade
# apt-get install nginx

B. Вариант установки модуля «Nemesida WAF» в виде динамического модуля (необходимо предварительно получить динамический модуль «nwaf-module.deb»):

1. Установите необходимые пакеты:

# apt-get update && apt-get upgrade
# apt-get install wget lsb-base python3-bs4 libc6 libcurl3-gnutls libpcre3 zlib1g python3 python3-requests python-wheel python-pip python-setuptools python-dev python-requests python-numpy python-pandas python-portalocker python-psutil python-sklearn clamav-daemon python3-pyparsing rabbitmq-server librabbitmq4 librabbitmq-dev
# dpkg -i nwaf-module.deb

2. Внесите изменения в конфигурационный файл /etc/nginx/nginx.conf:
- добавьте следующую строку в блок «main»:

load_module modules/ngx_http_waf_module.so;

- добавьте следующие строки в блок «http»:

include nwaf/conf/global/*.conf;
include nwaf/conf/vhosts/*.conf;
1. Выполните установку модулей «Nemesida WAF»:

# yum update
# yum install nginx

2. При установке согласитесь с выполняемым действием:

Retrieving key from https://nemesida-security.com/nw/gpg.key
  Importing GPG key 0x1929CEB1:
  Userid: "nemesida-security.com (Pentestit LLC) "
  Fingerprint: e89c f6e4 a2d8 bf10 5315 4002 a171 0d6c 1929 ceb1
  From: https://nemesida-security.com/nw/gpg.key
Is this ok [y/N]: y

Работа ПО «Nemesida WAF» в режиме IDS
По умолчанию ПО «Nemesida WAF» работает в режиме IPS, но может эксплуатироваться в режиме IDS. Данный режим необходим для настройки «Nemesida WAF» под сложное веб-приложение без вероятных ложных блокировок запросов (false positive). Копия входящего трафика обрабатывается с записью статус-кодов ответов «200» или «403» для регистрации событий и адаптации ПО «Nemesida WAF» под конкретное веб-приложение.

Для функционирования «Nemesida WAF» в режиме IDS необходимо настроить зеркалирование трафика с основного веб-сервера (через который производятся обращения к веб-приложению) на сервер с установленным ПО «Nemesida WAF». Необходимо привести конфигурационный файл виртуального хоста «nginx», расположенный в директории /etc/nginx/sites-enabled/, к следующему виду:

server { 
        listen 80; 
        server_name example.com; 

        index   index.html; 
        root    /var/www/html; 
}

После внесения изменений необходимо перезапустить «nginx».

Настройка ПО «Nemesida WAF»
Внесите необходимые настройки в основной конфигурационный файл, который расположен в /etc/nginx/nwaf/conf/global/nwaf.conf.

Параметры nwaf.conf

Настройка ПО «RabbitMQ»
Установите ПО «RabbitMQ»:

# apt-get install rabbitmq-server

Внесите изменения в файл /etc/rabbitmq/rabbitmq.config:

Параметры rabbitmq.config

Внесите изменения в файл /etc/rabbitmq/rabbitmq-env.conf:

Параметры rabbitmq-env.conf

Выполните команду:

# chown rabbitmq:rabbitmq /etc/rabbitmq/rabbitmq.config
# service rabbitmq-server restart

Настройка модуля «Nemesida AI»
Модуль «Nemesida AI» состоит из модулей «MLA» и «MLC», взаимодействие которых возможно в совмещённом (модули функционируют на одном сервере) и распределенном (модуль «MLC» функционирует на выделенном сервере) режимах.

Распределенный режим работы ПО «Nemesida AI» предназначен для экономии аппаратных ресурсов, например, при кластерном взаимодействии (несколько серверов с установленным ПО «Nemesida WAF» используют общий сервер с установленным модулем «MLC»).

Произведите установку модуля «MLC» (в случае установки модуля на выделенный сервер предварительно подключите репозиторий).

Debian 9CentOS 7
# apt-get update && apt-get upgrade
# apt-get install nwaf-mlc
# yum update
# yum install nwaf-mlc

Модуль «MLA» работает с «vhost_list», для которого существуют модели в папке /etc/nginx/nwaf/ml/*.ml. Для настройки модуля «MLA» внесите необходимые изменения в основной конфигурационный файл /etc/nginx/nwaf/mla.conf.

Параметры mla.conf

Модуль «MLC» проверяет параметр «vhost_list» на наличие моделей. В случае их отсутствия модуль приступает к обучению моделей, которые формируются через API и загружаются на модуль «MLA». Для добавления новых моделей необходимо перезапустить модуль. Для настройки модуля «MLC» внесите необходимые изменения в основной конфигурационный файл /etc/nginx/nwaf/mlc.conf.

Параметры mlc.conf
Для конкретного «vhost» можно задать значение «fix_num» (vhost1:number, vhost2:number). При этом, если параметр «fix_num» не задан, то он рассчитывается в соответствии с объемом свободной ОЗУ.

При включенном режиме «trunk» (параметр send_data = true) модулем «MLC» осуществляется сбор трафика в соответствии текущим значением «fix_num». Параметр «send_data» комментируется для того, чтобы при получении обученных моделей от «MLS», модуль «MLC» мог перейти к штатной работе.

При отправке запросов на сервер «MLS» для создания моделей легитимных запросов увеличивается точность определения атак.

Настройка модуля «Nemesida Scanner»
Модуль «Nemesida Scanner» предназначен для выявления уязвимостей типа «SQL-injection» и «Cross Site Scripting» в защищаемых веб-приложениях, активных и указанных в конфигурационных файлах ПО «nginx» в директории /etc/nginx/sites-enabled/. Информация об обнаруженных уязвимостях доступна в личном кабинете.

После установки ПО «Nemesida WAF» модуль «Nemesida Scanner» осуществляет поиск уязвимостей в веб-приложениях в соответствии с расписанием в файле /etc/cron.d/nwaf-scanner.

Для настройки модуля внесите необходимые изменения в основной конфигурационный файл /usr/share/nwaf/scanner/scanner.conf.

Параметры scanner.conf

Установка модуля на сервер:

Debian 9CentOS 7
# apt-get update && apt-get upgrade
# apt-get install nwaf-scanner
# yum update
# yum install nwaf-scanner
При работе модуль «Nemesida Scanner» обращается к внешним источникам для получения информации через vulners API.

Настройка виртуальных хостов
Внесите необходимые настройки в конфигурационный файл, расположенный в директории /etc/nginx/sites-enabled/example.com.conf.

Параметры example.com.conf

Настройка взаимодействия с ПО «ClamAV»
После установки пакета «Nemesida WAF» функционал взаимодействия с ПО «ClamAV» по умолчанию выключен, поскольку может являться источником ложных блокирований некоторых запросов к веб-приложению (в зависимости от текущего состояния базы сигнатурного анализа «ClamAV»). Используйте данный функционал на своё усмотрение.

Для активации антивирусной защиты произведите установку ПО «ClamAV» на сервер с настроенным ПО «Nemesida WAF», если это не было сделано ранее, после чего, при необходимости, внесите изменения в конфигурационный файл ПО «ClamAV», расположенный по следующему пути: /etc/clamav/freshclam.conf.

Отключение функционала взаимодействия с ПО «ClamAV» осуществляется путем приведения параметра в файле /etc/nginx/nwaf/conf/global/nwaf.conf
к следующему виду:

#nwaf_clamav unix:/var/run/clamav/clamd.ctl 2000;

После внесения изменений необходимо произвести перезапуск ПО «nginx».

Оптимизация работы операционной системы
Необходимо произвести оптимизацию ОС на сервере с установленным ПО «Nemesida WAF» под большие нагрузки. Для это внесите в файл /etc/sysctl.conf следующие изменения:

Параметры sysctl.conf

Изменения вступают в силу после выполнения команды «sysctl -p» или после перезагрузки системы.

Процедура проверки корректности работы модулей
После установки и настройки модулей «Nemesida WAF» выполните перезагрузку операционной системы и проверьте работоспособность всех модулей.

Проверка работы «Nemesida WAF»
Проверка работы «Nemesida AI»

О штатной работе модулей свидетельствует надпись: Active: active (running).

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

Описание сообщений об ошибках
В процессе работы ПО «Nemesida WAF» информация об ошибках может содержаться:
- в системных журналах ОС;
- в журнале работы ПО «nginx»;
- в журнале работы ПО «RabbitMQ»;
- в журнале работы модуля «MLA» ( /var/log/nwaf/mla.log);
- в журнале работы модуля «MLC» ( /var/log/nwaf/mlс.log, /var/log/procmon.log).

В таблицах ниже приведены описание типовых ошибок, которые могут встречаться при использовании ПО «Nemesida WAF».

Описание сообщений об ошибках модуля «Nemesida AI»
Описание сообщений об ошибках ПО «Nemesida WAF»

В случае возникновения непредвиденных ошибок в работе ПО «Nemesida WAF» свяжитесь с технической поддержкой:
- по телефону +7 (495) 204-19-72;
- по электронной почте;
- через систему обработку заявок на портале.