Руководство по установке, настройке и эксплуатации модуля Личный кабинет, предназначенного для визуализации и систематизации информации об атаках и выявленных уязвимостях, а также управления настройками Немезида ВАФ и веб-сервера Nginx.
- Установка и настройка модуля Личный кабинет
- Список событий
- Таблица и графики атак
- Сканер уязвимостей
- Формирование отчетов
- Настройки пользователя
- Управление настройками Немезида ВАФ
- Настройка API Firewall
- Настройка поведенческих моделей
- Журнал событий работы компонентов Немезида ВАФ
- Панель администратора
Ниже представлено краткое руководство по введению в эксплуатацию локальной версии Личный кабинет на серверах под управлением ОС Linux. Для установки модуля необходимо выполнить следующие действия:
1. Установите и настройте СУБД PostgreSQL:
1. Загрузите скрипт;
2. Запустите скрипт установки командой:
# /bin/bash ./1-postgresql-deploy.sh 'pg_api_pwd=%Password%' 'pg_cabinet_pwd=%Password%' 'api_srv_ip=%Nemesida WAF API server address%'
где:
pg_api_pwd
— пароль для создания пользователяnw_api
для БДwaf
;pg_cabinet_pwd
— пароль для создания пользователяnw_cabinet
для БДcabinet
(необходимо для работы компонента Личный кабинет);api_srv_ip
— IP-адрес сервера с которого будут производиться обращения компонента Nemesida WAF API после его настройки.
Установите пакеты:
# apt update && apt upgrade # apt install postgresql
Создайте БД, пользователя и пароль для подключения модуля Личный кабинет:
# su - postgres -c "psql -c \"CREATE DATABASE cabinet;\"" # su - postgres -c "psql -c \"CREATE ROLE nw_cabinet PASSWORD 'YOUR_PASSWORD';\"" # su - postgres -c "psql -c \"GRANT ALL ON DATABASE cabinet TO nw_cabinet;\"" # su - postgres -c "psql -c \"ALTER ROLE nw_cabinet WITH LOGIN;\"" # su - postgres -c "psql cabinet -c \"GRANT ALL ON ALL TABLES IN SCHEMA public TO nw_cabinet;\"" # su - postgres -c "psql cabinet -c \"GRANT ALL ON ALL SEQUENCES IN SCHEMA public TO nw_cabinet;\"" # su - postgres -c "psql cabinet -c \"GRANT CREATE ON SCHEMA public TO nw_cabinet;\""
Если БД используется на отдельном сервере, то необходимо предоставить к ней доступ. Для этого внесите изменения в файл конфигурации PostgreSQL pg_hba.conf
.
Пример:
# IPv4 local connections: host all all 10.1.1.1/32 md5
# setenforce 0
после чего приведите файл /etc/selinux/config
к виду:
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
Установите и настройте СУБД PostgreSQL:
# dnf update # dnf install postgresql-devel postgresql-server # postgresql-setup initdb # sed -i "s|host all all 127.0.0.1/32 ident|host all all 127.0.0.1/32 md5|" /var/lib/pgsql/data/pg_hba.conf # sed -i "s|host all all ::1/128 ident|host all all ::1/128 md5|" /var/lib/pgsql/data/pg_hba.conf # systemctl start postgresql # systemctl enable postgresql
Создайте БД, пользователя и пароль для подключения модуля Личный кабинет:
# su - postgres -c "psql -c \"CREATE DATABASE cabinet;\"" # su - postgres -c "psql -c \"CREATE ROLE nw_cabinet PASSWORD 'YOUR_PASSWORD';\"" # su - postgres -c "psql -c \"GRANT ALL ON DATABASE cabinet TO nw_cabinet;\"" # su - postgres -c "psql -c \"ALTER ROLE nw_cabinet WITH LOGIN;\"" # su - postgres -c "psql cabinet -c \"GRANT ALL ON ALL TABLES IN SCHEMA public TO nw_cabinet;\"" # su - postgres -c "psql cabinet -c \"GRANT ALL ON ALL SEQUENCES IN SCHEMA public TO nw_cabinet;\"" # su - postgres -c "psql cabinet -c \"GRANT CREATE ON SCHEMA public TO nw_cabinet;\""
Если БД используется на отдельном сервере, то необходимо предоставить к ней доступ. Для этого внесите изменения в файл конфигурации PostgreSQL pg_hba.conf
.
Пример:
# IPv4 local connections: host all all 10.1.1.1/32 md5
2. Установите модуль:
Перед установкой модуля обязательно проверьте доступ к созданной БД, произведя подключение к ней командой:
psql -h <server_ip> -U nw_cabinet cabinet
. При подключении введите пароль пользователяnw_cabinet
.
1. Загрузите скрипт;
2. Запустите скрипт установки командой:
# /bin/bash ./3-cabinet-deploy.sh 'pg_srv_ip=%PostgreSQL server address%' 'pg_srv_port=%PostgreSQL port%' 'pg_api_pwd=%Password%' 'pg_cabinet_pwd=%Password%' 'api_url=%Nemesida WAF API URL%' 'proxy=%Proxy server address%' 'api_proxy=%Proxy server address%'
где:
pg_srv_ip
— IP-адрес сервера БД;pg_srv_port
— порт сервера БД;pg_api_pwd
— пароль пользователяnw_api
для БДwaf
;pg_cabinet_pwd
— пароль пользователяnw_cabinet
для БДcabinet
;api_url
— адрес сервера с которого будут производиться обращения компонента Nemesida WAF API после его настройки (например,http://api.example.com:8080/nw-api/
);proxy
— (Опционально) IP-адрес прокси сервера для доступа компонента к внешним ресурсам (например,http://proxy.example.com:3128
);api_proxy
— (Опционально) IP-адрес прокси сервера для взаимодействия с Nemesida WAF API (например,http://proxy.example.com:3128
).
# timedatectl set-timezone Europe/Moscow # echo 'Europe/Moscow' > /etc/timezone
где Europe/Moscow
— предпочитаемая временная зона.
Установите пакеты:
# apt install apt-transport-https gnupg2 curl
Подключите репозиторий Немезида ВАФ:
Установите пакеты:
# apt install nginx python3 python3-venv python3-dev python3-reportbug python3-pip memcached libmemcached-dev postgresql-server-dev-all gettext libpcre3-dev pkg-config libcairo2-dev # apt install nwaf-cabinet
Во время установки модуля дополнительно устанавливаются следующие pip-пакеты:
wheel uwsgi psycopg2-binary chardet django-debug-toolbar django guppy3 jsonref netaddr pillow pymemcache pympler python-memcached python-pcre pytz pyyaml reportlab requests schedule six sqlparse PyPDF2
# timedatectl set-timezone Europe/Moscow # echo 'Europe/Moscow' > /etc/timezone
где Europe/Moscow
— предпочитаемая временная зона.
Установите пакеты:
# apt install apt-transport-https gnupg2 curl
Подключите репозиторий Немезида ВАФ и установите пакеты:
Установите пакеты:
# apt install nwaf-cabinet
Во время установки модуля дополнительно устанавливаются следующие pip-пакеты:
wheel uwsgi psycopg2-binary chardet django-debug-toolbar django guppy3 jsonref netaddr pillow pymemcache pympler python-memcached python-pcre pytz pyyaml reportlab requests schedule six sqlparse PyPDF2
# timedatectl set-timezone Europe/Moscow # echo 'Europe/Moscow' > /etc/timezone
где Europe/Moscow
— предпочитаемая временная зона.
Подключите репозиторий Немезида ВАФ, приведя файл /etc/yum.repos.d/NemesidaWAF.repo
к виду:
[NemesidaWAF] name=Nemesida WAF Packages for RHEL baseurl=https://nemesida-security.com/repo/nw/rhel/$releasever/$basearch/ gpgkey=https://nemesida-security.com/repo/nw/gpg.key enabled=1 gpgcheck=1
Установите пакеты:
Установите пакеты:
# dnf install nwaf-cabinet
Во время установки модуля дополнительно устанавливаются следующие pip-пакеты:
wheel uwsgi psycopg2-binary chardet django-debug-toolbar django guppy3 jsonref netaddr pillow pymemcache pympler python-memcached python-pcre pytz pyyaml reportlab requests schedule six sqlparse PyPDF2
Для корректной работы модуля Личный кабинет необходимо проверить секцию
server
в файлеnginx.conf
и если она не используется — удалить для избежания перенаправлений на страницу, указанную в ней.
3. Внесите необходимые изменения в файл /var/www/app/cabinet/settings.py
.
При использовании скрипта автоматической установки редактирование файла не требуется.
4. Разрешите обращения:
При локальном развертывании БД:
— к серверу Memcached 127.0.0.1:11211
;
— к серверу с СУБД PostgreSQL 127.0.0.1:5432
;
— к серверу с Nemesida WAF API 127.0.0.1:8080
.
При развертывании БД на отдельном сервере:
— к серверу Memcached 127.0.0.1:11211
;
— к серверу с СУБД PostgreSQL <server_ip>:5432
;
— к серверу с Nemesida WAF API 127.0.0.1:8080
.
5. В настройках межсетевого экрана разрешите обращения к 80 порту (задан по умолчанию в файле /etc/nginx/conf.d/cabinet.conf
).
6. Выполните миграцию и создайте администратора:
# cd /var/www/app/ && . venv/bin/activate && python3 manage.py check_migrations && python3 manage.py migrate && python3 manage.py createsuperuser && deactivate
7. Активируйте виртуальный хост:
# mv /etc/nginx/conf.d/cabinet.conf.disabled /etc/nginx/conf.d/cabinet.conf # nginx -t && service nginx reload
8. Перезагрузите сервер и проверьте работу модуля:
# systemctl status nginx cabinet cabinet_ipinfo cabinet_attack_notification cabinet_cleaning_db cabinet_rule_update memcached
Информация об ошибках в работе Личного кабинета содержится в журналах регистрации событий модуля /var/log/uwsgi/cabinet/*.log
.
В целях безопасности необходимо ограничить обращения к веб-интерфейсу модуля Личный кабинет списком разрешенных IP-адресов для предотвращения управления процессами работы Немезида ВАФ неавторизованными пользователям.
Настройка проксирования
В случае использования промежуточного сервера для проксирования трафика Личного кабинета необходимо на промежуточном сервере задать опцию proxy_set_header Host $http_host
в конфигурационном файле виртуального хоста:
Пример:
server { server_name lk.example.com; listen 80; location / { proxy_pass http://x.x.x.x; proxy_set_header Host $http_host; } }
где x.x.x.x
— адрес сервера Личного кабинета.
YOUR_SERVER/waf/personal/
, содержится информация о работе основных (Nemesida WAF, Nemesida WAF Scanner, Nemesida WAF AI) и вспомогательных модулей Немезида ВАФ.
При клике на иконку отображается список событий.
- пиктограмма отображается в случае, когда модуль машинного обучения не является причиной блокирования запроса (BT 2, 6, 7);
- пиктограмма отображается в случае, когда поведенческие модели находятся в процессе переобучения;
- пиктограмма отображается в случае, когда причиной блокирования запроса является модуль машинного обучения (BT 3, 8).
В верхней части страницы доступна область поиска и выбор событий за определенный период. Поиск на странице можно производить как в обычном режиме (полнотекстовый поиск без указания специальных параметров), так и в расширенном, используя следующие директивы:
Для ограничения вывода информации в поле поиска доступны логические операторы «!» (исключение) и «and» (объединение).
Для запросов, заблокированных сигнатурным методом, доступно поле Rule ID
, при клике на которое во всплывающем окне отобразятся:
- информация о составе сигнатуры;
- правило исключения (
WL
) для добавления в конфигурационный файл Немезида ВАФ.
При клике на Rule ID
будет доступен функционал создания правила исключения сигнатуры. Чтобы создать правило исключения (WL
) необходимо кликнуть на
При клике на кнопку появится интерфейс создания правила исключения (WL
) на основе сигнатуры, по которой был заблокирован запрос, используя веб-интерфейс Личного кабинета. Правило исключения будет отображаться в разделе управления правилами при переходе на страницу «Настройки WAF» (страница ).
Более подробная информация о сигнатурах и правилах исключения доступна в соответствующем разделе руководства.
При наведении курсора на флаг страны рядом с IP-адресом отобразится расширенная информация о нем на основе GeoIP-данных (например, принадлежность IP-адреса хостинг-провайдеру или прокси-серверу, нахождение IP-адреса в «черном» списке и т.д.).
При наведении курсора на IP-адрес и клике на появится диалоговое окно, которое предложит заблокировать IP-адрес для обращений на указанный домен. Управлять списком заблокированных IP-адресов можно в соответствующем разделе.
Функционал Recheck
Nemesida WAF Scanner, помимо основного функционала, позволяет выполнять повторную отправку содержимого заблокированного запроса и/или различные его вариации на защищаемое веб-приложение. Пользователи, входящие в группу «Администраторы», могут выполнить такую проверку с помощью кнопки , для выявленных атак типа: XSS
, SQLI
, LFI
, RFI
, имеющих BT 1 или 2. После того, как пользователь нажмет на кнопку , на ее месте отобразится статус проверки.
Возможные значения:
Подтверждение
— проверка выполняется;- — обнаружена уязвимость;
- — уязвимость не обнаружена;
- — произошла ошибка при обработке запроса сканером уязвимостей.
В случае обнаружения уязвимости информация будет доступна в разделе Scanner
. Администратор может исключить запрос, нажав на , после чего информация о данном запросе будет доступна в панели администратора во вкладке Scanner
. Для использования функционала Recheck необходимо настроить секцию [recheck]
в файле /opt/nws/main.conf
.
Использование
Recheck
может привести к выполнению произвольного кода из запроса на стороне веб-приложения. Применяйте функционал только если полностью уверены в своих действиях.
Функционал Unlock Request
Пользователь личного кабинета, который считает блокировку запроса ошибочной, может направить заявку на ее разблокировку администратору нажатием кнопки . Для всех остальных пользователей возможность отправить запрос на разблокировку блокируется, а при наведении на кнопку отобразится информация:
- кем был отправлен запрос на разблокировку;
- комментарий пользователя;
- решение администратора.
На почту администратору будет направлено письмо с описанием заявки. Список всех заявок находится во вкладке . Запрос можно разблокировать или оставить заблокированным. Для разблокировки запроса администратору необходимо или вручную создать соответствующее правило для Немезида ВАФ, или автоматически, нажав кнопку , после чего пользователь получит уведомление на электронную почту.
Таблица Все атаки отображает количественные показатели аномальных запросов за определенный период времени и по их категориям.
График Интенсивность атак отображает интенсивность и динамику в разрезе заданного периода и выбранных категорий атак.
Диаграммы Последние 24 ч. и Топ по IP отображают Топ-10 доменов, которые подверглись атакам и Топ-10 IP-адресов, с которых приходили аномальные запросы.
В верхней части страницы доступна область поиска и выбор событий за определенный период. Поиск на странице можно производить как в обычном режиме (полнотекстовый поиск без указания специальных параметров), так и в расширенном, используя следующие директивы:
Для ограничения вывода информации в поле поиска доступны логические операторы «!» (исключение) и «and» (объединение).
Результаты работы сканера уязвимостей
Информация о работе модуля Nemesida WAF Scanner доступна во вкладке . Администратор может исключить запрос, нажав на , после чего информация о запросе будет доступна в панели администратора во вкладке «Scanner». В дальнейшем аналогичные запросы не будут отображаться на этой вкладке.
Производить поиск по событиям можно как в обычном режиме (без указания специальных параметров), так и в расширенном, используя следующие директивы:
Для ограничения вывода информации в поле поиска доступны логические операторы «!» (исключение) и «and» (объединение).
При клике на открывается страница со списком обнаруженных уязвимостей с отслеживанием их повторного обнаружения/устранения за выбранный промежуток времени, для этого необходимо выбрать временной интервал отображения записей, где:
- — новая уязвимость/обнаружена повторно;
- — уязвимость устранена/не обнаружена повторно.
- сменить пароль;
- добавить лицензионный ключ для управления настройками Немезида ВАФ и API Firewall;
- настроить отправку уведомлений об атаках.
На странице доступен веб-интерфейс локального управления настройками Немезида ВАФ. Для использования функционала необходимо выполнение нескольких условий:
- добавлен лицензионный ключ в настройках пользователя;
- функционал активирован администратором;
- указан адрес подключения к Nemesida WAF API в параметре
API_URI
(файл/var/www/app/cabinet/settings.py
).
Локальное управление настройками означает, что все настройки, задаваемые при использовании Личного кабинета, хранятся локально, не передаются за пределы сетевого периметра и не зависят от доступности сервера
nemesida-security.com
.
Фильтрующая нода
После клика на открывается раздел управления настройками фильтрующей ноды.
Для завершения минимальной настройки этого модуля достаточно задать условие временной автоматической блокировки IP-адреса (бана). Использование параметра позволит функционалу выявления DDoS-атак, атак методом перебора и флуда блокировать источник атаки.
По клику на можно добавить новый набор значений для параметра, для этого появится диалоговое окно.
Например, мы добавили условие блокировки запросов отдельно для домена example.com
и условия блокировки для всех остальных доменов:
Для редактирования текущих настроек необходимо кликнуть на .
После сохранения настройки применяются автоматически ко всем установленным копиям динамического модуля, настройками которых можно управлять с помощью веб-приложения.
Nemesida AI MLC
При клике на открывается раздел управления настройками модуля машинного обучения Nemesida AI MLC.
Для активации дополнительных возможностей (выявление DDoS-атак, атак методом перебора и флуда) необходимо активировать соответствующие разделы.
Для тарифа Лайт доступен только функционал выявления DDoS-атак, атак методом перебора и флуда.
Управление поведенческими моделями
Чтобы начать процесс построения поведенческих моделей необходимо добавить виртуальный хост, соответствующий домену защищаемого веб-приложения, например, example.com
.
Поведенческие модели, обучение которых было завершено, отображаются в разделе «Поведенческие модели Nemesida AI». Рядом с названием каждой поведенческой модели присутствует индикатор состояния, где:
- — выполняется переобучение поведенческой модели;
- — обучение завершено, поведенческая модель применена к виртуальному хосту.
Для переобучения модели необходимо нажать кнопку и выбрать режим переобучения. Если переобучение модели должно выполняться в течение стандартного периода (4 дня), то для запуска процесса переобучения достаточно нажать кнопку .
Увеличение срока обучения поведенческих моделей Nemesida AI
Для корректного построения моделей требуется порядка 400.000-800.000 уникальных запросов. По умолчанию срок обучения составляет 4 дня. Для изменения периода обучения нажмиите и появится дополнительное поле, где необходимо указать период обучения в днях.
Дообучение моделей с использованием резервной копии обучающей выборки
Если во время обучения количество запросов было недостаточным, то можно его перезапустить и воспользоваться запросами из прошлой выборки. Для этого выполните следующие действия:
1. Остановите сервис Nemesida AI MLC:
# service mlc_main stop
2. Переместите файл /opt/mlc/ml/backup/[vhost].d_[timestamp]
, где [timestamp]
— дата создания резервной копии обучающей выборки, созданной Nemesida AI MLC перед началом построения модели, в /opt/mlc/ml/[vhost].d
. Например, для модели example.com
:
# mv /opt/mlc/ml/backup/example.com.d_1613587613 /opt/mlc/ml/example.com.d
3. Запустите обучение.
4. Запустите сервис Nemesida AI MLC:
# service mlc_main start
Копирование поведенческой модели
Для копирования поведенческой модели на другой виртуальный хост нажмите кнопку и выберите виртуальный хост, для которого будет выполняться копирование поведенческой модели.
Удаление поведенческой модели
В случае некорректного обучения поведенческих моделей или значительных изменений в веб-приложении, приводящих ко множеству ложных срабатываний, рекомендуется удалить модели. Для удаления модели необходимо выбрать нужную модель и нажать кнопку .
Управление правилами
Личный кабинет позволяет создавать правила исключения сигнатур и расширенные правила блокировки запросов. Раздел управления правилами доступен при переходе на вкладку .
Правила исключения сигнатуры
Правило исключения сигнатуры предназначается для исключения срабатывания сигнатуры при обработке запроса.
Для создания правила исключения необходимо кликнуть на кнопку
При составлении правила исключения необходимо задать:
- виртуальный хост (доменное имя);
- Обязательно:
ID
сигнатуры, срабатывание которой необходимо исключить. Значение можно задать как в виде номера (например,2728
), так и символом*
, чтобы исключить срабатывание всех сигнатур, подходящих под заданные критерии; - Обязательно: зона вхождения сигнатуры (например,
ARGS
,BODY
,HEADERS
и т.д.). Допускается выбор сразу нескольких зон, тогда срабатывание сигнатуры будет исключаться при обнаружении в любой из перечисленных зон; - Рекомендуется: зона уточнения. Допускается добавление нескольких уточнений, тогда срабатывание сигнатуры будет исключаться при соблюдении условий каждого уточнения. Допускается использование регулярных выражений.
Необдуманное добавление правил исключения сигнатуры небезопасно и может привести к пропускам атак. Поэтому рекомендуется максимально конкретизировать условия срабатывания правила, используя уточнения.
Уточнение применяется в виде вхождения заданного шаблона. Несколько уточнений взаимодействуют между собой по принципу логического И
(для срабатывания правила обязательно выполнение основного условия и всех добавленных уточнений). В уточнениях допускается использование регулярных выражений. Например, регулярное выражение id=[a-z0-9]+
, применяемое в зоне уточнения Cookie
, будет означать, что дополнительным условием срабатывания правила исключения будет наличие строки (например, id=abcd07dj45rff
) в зоне Cookie
, согласно шаблону регулярного выражения.
Дополнительные условия можно комбинировать, добавляя новые, при создании/редактировании правила исключения. Редактирование правила происходит при клике на .
Расширенные правила блокировки запросов
Функционал расширенных правил блокировки запросов позволяет создавать правило блокирования запроса сочетанием различных параметров, но без поддержки регулярных выражений.
Механизм расширенных правил блокировки запросов позволяет при составлении персональных правил использовать дополнительные условия. Например, можно составить правило, по которому запрос будет заблокирован если:
- соответствует географическому местоположению на основе IP-адреса (определение страны по IP-адресу атакующего);
- происходит обращение на определенный домен или URL;
- содержит определенный заголовок (например,
User-Agent
,Cookie
,Referer
и т.д.) и/или содержимое этих заголовков.
Для более точного результата параметры можно комбинировать между собой. В таком случае правило сработает только в случае соответствия всех условий.
В отличие от функционала создания персональных сигнатур, механизм расширенных блокировок запросов позволяет создавать правило сочетанием различных параметров, но без поддержки регулярных выражений.
Создание правила блокирования запроса
Для создания правила блокирования запроса необходимо перейти во вкладку «Правила блокировки запроса (ERL
)» и нажать . После выбора нужных опций необходимо добавить одно или несколько условий нажатием на .
Для всех параметров условий (кроме Cookie отсутствуют
) допускается использовать несколько значений в одном блоке параметров, используя логические операторы условий «и», «или», «не» (доступно только для первого значения в блоке), «и не», «или не». Операторы не имеют приоритета.
Из-за особенностей обработки запросов функционал не предназначен для работы с большим количеством IP-адресов. Если необходимо блокировать обращения для списка IP-адресов — воспользуйтесь функционалом «Заблокированные IP».
Значения для параметров можно вводить списком, для этого необходимо использовать функцию «многострочный ввод». Введенные в поле значения будут объединяться между собой используемым для этого поля логическим оператором.
Для добавления нового условия выбираем его из списка и повторяем процесс.
Other headers
Параметры для блока «Other headers» используются в формате ключ/значение и взаимодействуют между собой по следующему принципу:
- при наличии заголовка будет проверяться содержимое только этого заголовка;
- при наличии заголовка без содержимого будет проверяться любое содержимое этого заголовка;
- при наличии только содержимого заголовка будет проверяться указанное содержимое в любом заголовке.
Редактирование правила происходит при клике на .
Создание списка заблокированных IP-адресов
Позволяет создать список IP-адресов, обращения с которых будут заблокированы для определенных (или всех) доменов. Для создания списка достаточно указать IP-адрес(а) и домен, для которого необходимо блокировать обращения с этих адресов. При добавлении данных на странице отобразится таблица, в которой будут указаны следующие значения:
- Домен — домен, для которого обращения с указанного IP-адреса будет заблокированы;
- Количество — количество IP адресов, добавленных в список.
IP-адреса, добавленные без указания домена будут применяться ко всем доменам. Допускается использование IPv4/IPv6 адресов, в том числе использование CIDR (например, x.x.x.x/24) и диапазона IP-адресов.
Информация о запросах с IP-адресов из списка заблокированных по умолчанию не отправляется в Nemesida WAF API и не отображается на странице атак. Чтобы отправлять информацию о заблокированном IP-адресе в Nemesida WAF API, необходимо активировать «Отправлять на API» при его добавлении, кликнув на .
Редактирование списка заблокированных IP-адресов
При нажатии на количество IP-адресов отобразится список всех добавленных для домена IP-адресов. При клике на IP-адрес он автоматически удалится из списка.
IP-адреса отображаются в двух форматах:
- — IP-адрес, добавленный для этого домена;
- — IP-адрес, добавленный для всех доменов, включая текущий.
Символ *
рядом с IP-адресом означает, что инциденты, связанные с блокировкой запросов от IP-адресов из списка «Заблокированные IP», будут отправлены в Nemesida WAF API для отображения на странице атак. Чтобы изменить настройку отправки в Nemesida WAF API для IP-адреса необходимо:
- кликнуть на IP-адрес;
- активировать/деактивировать параметр «Отправлять в Nemesida WAF API»;
- сохранить изменения.
Поле для поиска предназначено для поиска интересующего IP-адреса. Если указать несколько IP-адресов через запятую можно удалить их, используя кнопку удаления.
При клике на можно отсортировать IP-адреса по активированному параметру «Отправлять в Nemesida WAF API».
Управление списком автоматически заблокированных IP-адресов
При клике на будет доступен интерфейс управления списком автоматически заблокированных IP-адресов. Все отображаемые на этой странице адреса были автоматически заблокированы при превышении допустимого количества блокировок с одного IP-адреса, которое было установлено параметром «Условия автоматической блокировки IP-адреса». На странице отображается следующая информация:
- IP-источника запросов, который был заблокирован;
- Оставшееся время блокировки (в секундах).
При удалении IP-адреса из списка происходит его автоматическая разблокировка на всех фильтрующих нодах. Для разблокировки IP-адреса необходимо нажать на рядом с ним. При клике на кнопку «Удалить всё» все IP-адреса будут удалены из списка и разблокированы на всех фильтрующих нодах.
Перед отправкой запроса в Nemesida API Firewall на анализ соответствия спецификации проверяется метод, которым был отправлен запрос. Если метод запроса не соответствует
GET
,POST
,PUT
,PATCH
,DELETE
,HEAD
,OPTIONS
илиTRACE
, то запрос будет заблокирован.
Для использования функционала необходимо выполнение нескольких условий:
- добавлен лицензионный ключ с тарифом Бизнес или Энтерпрайз в настройках пользователя;
- функционал активирован администратором;
- указан адрес подключения к Nemesida WAF API в параметре
API_URI
(файл/var/www/app/cabinet/settings.py
).
Для тарифа Бизнес и Энтерпрайз управление функционалом осуществляется локально (созданные спецификации хранятся в локальной БД).
Добавление спецификации
Для добавления новой спецификации необходимо:
- нажать ;
- в диалоговом окне задать имя виртуального хоста, для которого будет применяться спецификация. В названии спецификации допускается использование строгого совпадения и wildcard-значений, например:
example.com
,.example.com
,*.example.com
,*
; - загрузить файл спецификации в форматах
JSON
илиYML
.
Для корректной работы необходимо использовать спецификацию
OpenAPI v3.1
.
Добавленная спецификация применяется модулем Nemesida AI MLA, который будет анализировать запросы на ее соответствие.
При клике на можно изменить имя спецификации.
При клике на происходит загрузка файла спецификации на локальный компьютер.
Кнопка позволяет удалить спецификацию. Для удаления из спецификации отдельных элементов необходимо выбрать соответствующие элементы и нажать .
После добавления спецификации можно просматривать ее для каждого URL, кликнув по нему.
В случае необходимости отсортировать спецификации по методу, необходимо выбрать соответствующий метод из предложенного списка
При анализе запросов на соответствие их спецификации в формате
OpenAPI
все целочисленные форматы данных обрабатываются как типinteger
.
Настройка спецификации
Вкладка позволяет выполнять добавление спецификации для URL-адресов, которые генерируются модулем Nemesida AI MLC во время анализа запросов. Для запуска процесса анализа необходимо добавить виртуальные хосты в разделе настройки Nemesida AI MLC. Для объединения с уже существующими спецификациями нужно выбрать несколько элементов (или все) и кликнуть на . После этого URL-адреса (пути) будут добавлены в существующую спецификацию или создана новая, при ее отсутствии для виртуального хоста.
При нажатии кнопки появится возможность удалить/исключить URL-адрес. В случае исключения URL-адрес не будет использоваться в дальнейшем при создании спецификации.
Исключение URL
При клике на откроется список URL-адресов, исключенных из анализа модулем Nemesida AI MLC. Исключенные URL-адреса не будут участвовать в создании спецификации в формате OpenAPI.
- добавлен лицензионный ключ с тарифом Бизнес или Энтерпрайз в настройках пользователя;
- функционал активирован администратором.
Все события, поступающие от модуля Nemesida AI, отображаются на главной странице («Attack») для последующей обработки. На главной странице отображаются события, полученные через Nemesida WAF API от модуля машинного обучения, следующего типа:
События, имеющие тип BT 11 и BT 13, не передаются в модуль Nemesida AI MLС.
Экспортированные запросы «False Positive» применяются «на лету» и будут учитываться Nemesida AI как пример легитимного запроса.
При переобучении поведенческой модели (после завершения процесса переобучения) рекомендуется удалить экспортированные запросы «False Positive» для снижения нагрузки на модуль Nemesida AI и уменьшения времени обработки запроса модулем машинного обучения.
Для фильтрации запросов доступно поле поиска, производящее выбор запросов по вхождению слова или группы слов, а также с использованием специальных операторов.
- добавлен лицензионный ключ с тарифом Энтерпрайз в настройках пользователя;
- функционал активирован администратором;
- указан адрес подключения к Nemesida WAF API в параметре
API_URI
(файл/var/www/app/cabinet/settings.py
).
По умолчанию данные загружаются за все время, но в верхней части страницы доступен выбор событий за определенный период. Также доступен выбор критериев отображения событий. Сортировка событий доступна по следующим критериям:
При клике на будет создан отчет в формате CSV
. Для удаления записей необходимо выбрать несколько (или все) записей и кликнуть на .
Список пользователей
Во вкладке отображается список всех пользователей. При клике на иконку происходит удаление пользователя. При клике на иконку открывается окно редактирования пользователя.
Сканер уязвимостей
В панели администратора во вкладке отображаются запросы, которые администратор исключил из списка уязвимостей.Список всех заявок на разблокировку запросов
Во вкладке отображается список заявок на разблокировку запросов. При клике на происходит удаление заявки.
При клике на администратор может оставить комментарий к заявке.
Создание нового пользователя
При переходе на вкладку открывается окно для создания нового пользователя.
Для того чтобы создать нового пользователя, необходимо заполнить следующие поля:
Адрес электронной почты.
Идентификатор модуля Немезида ВАФ. Можно задать несколько WAF ID через запятую. Значение «*» означает, что указаны все возможные WAF ID.
Пароль.
Подтверждение пароля.
Роль пользователя: User или Administrator (с правами создавать и редактировать других пользователей).
Статус пользователя: включен (Active) или выключен (Inactive).
Фильтрация атак по доменам. Можно задать несколько доменов через запятую. Значение «*» означает, что будут использованы все домены.
Если указать конкретный домен, то пользователь в личном кабинете будет видеть только те атаки, которые пришли на этот домен.
В данном поле возможно задать wildcard-значения по аналогии с Nginx. Например, доменное имя .example.com
включает в себя основной домен и его поддомены. Доменное имя *.example.com
включает в себя поддомены, но не включает основной домен example.com
.
IP-адрес, с которого пользователь может войти в Личный кабинет в панели администратора. Можно задать несколько адресов через запятую.
Активировать для пользователя возможность генерировать отчеты в форматах CSV
и PDF
, а также доступ к функционалу управления настройками WAF, API Firewall и настройкой моделей.
Настройка почтового сервера
Во вкладке администратор может настроить подключение к почтовому серверу для отправки оповещений об атаках на электронную почту.
При клике на иконку администратор может редактировать настройки.
Для настройки почтового сервера необходимо заполнить следующие поля:
Активировать/деактивировать отправку оповещений об атаках, используя почтовый сервер.
Адрес почтового сервера.
Порт почтового сервера.
SMTP password
Имя пользователя и пароль, от имени которого будут отправляться оповещения.
Метод шифрования. Доступны следующие методы: No
, SSL
, TLS
.
Удаление атак
Во вкладке администратор может настроить автоматическое удаление атак из личного кабинета. При удалении атак из личного кабинета, информация о них также будет удалена из базы данных.
При клике на иконку администратор может добавить в список новую задачу.
Для добавления задачи необходимо заполнить следующие поля:
Период (в днях), при котором записи об атаках старше этого периода будут удалены.
Если задать временной интервал 0
дней, то при выполнении задачи будут удалены все атаки, если не заданы дополнительные опции: BT
, IP
, Domain
, URL
.
*
, example.com
, .example.com
, *.example.com
.
/index.php
будет производиться удаление атак при точном совпадении строки /index.php
.
При клике на иконку администратор может редактировать настройки задачи, а при клике на происходит ее удаление.
Созданные администратором задачи будут срабатывать согласно расписанию каждые 60 минут. При клике на иконку будет выполнен принудительный запуск активных задач вне расписания.