Руководство по исправлению основных проблем, связанных с настройкой и эксплуатацией Немезида ВАФ.
- Атаки не блокируются
- Атаки блокируются, но не отображаются в личном кабинете
- В личном кабинете не появляется функционал управления настройками
- Не отображаются реальные IP-адреса
- В личном кабинете не отображается поведенческая модель
- После завершения обучения не происходит анализа запросов модулем машинного обучения
- Модуль машинного обучения блокирует легитимные запросы
- Немезида ВАФ блокирует запрос из-за внутренней ошибки в работе компонентов
- Немезида ВАФ блокирует загрузку файлов
- Долгая загрузка страниц Личного кабинета
🔗 Атаки не блокируются
Немезида ВАФ поставляется в виде динамического модуля для Nginx. После проведения первичной настройки компонента необходимо проверить корректность работы сигнатурного метода обнаружения атак, отправив запрос http://YOUR_SERVER/nwaftest
.
Cервер должен вернуть код ответа 403
, а на фильтрующей ноде в error
-логе веб-сервера Nginx появится запись:
Nemesida WAF: the request 5274fe3c397782a09b4f1b057e572e21 blocked by rule ID 1 in zone URL, ...
Если запрос не блокируется:
- проверьте, что после внесения изменений в конфигурацию Nginx фильтрующей ноды был выполнен перезапуск сервисов
nginx nwaf_update mla_main
; - проверьте, что динамический модуль
/etc/nginx/modules/ngx_http_waf_module.so
находится в/etc/nginx/modules
и подключен в/etc/nginx/nginx.conf
; - проверьте размер файла
/etc/nginx/nwaf/rules.bin
, он не должен быть пустым. В случае подозрений нарушения целостности файла его можно удалить и загрузить заново, выполнив перезапуск сервисаnwaf_update
; - проверьте, поступает ли запрос для обработки на фильтрующую ноду;
- проверьте, что отсутствуют правила исключения обработки запросов для виртуального хоста/IP-адреса;
- проверьте, что IP-адрес, с которого обращаетесь, не находится в разрешающем списке (WL).
🔗 Атаки блокируются, но не отображаются в личном кабинете
В случаях, когда атаки блокируются и отображаются в error
-логе веб-сервера Nginx на фильтрующей ноде, но не отображаются в личном кабинете, необходимо проверить, что:
- корректно задан адрес сервера Nemesida WAF API в
/etc/nginx/nwaf/conf/global/nwaf.conf
в форматеnwaf_api_conf host=http://api.example.com:8080/nw-api
; - корректно задан адрес прокси-сервера (если используется) для доступа к Nemesida WAF API в
/etc/nginx/nwaf/conf/global/nwaf.conf
; - произведена корректная установка и настройка компонента Nemesida WAF API, отсутствуют ошибки в логе
/var/log/uwsgi/nw-api/nw-api-logging.log
; - корректно задан параметр
rmq_host
в файле конфигурации модуля Nemesida AI MLC/opt/mlc/mlc.conf
; - сервер Nemesida WAF API имеет доступ к базе данных для подключения. Проверить доступ к базе данных можно, выполнив команду:
# psql -h <server_ip> -U nw_api waf
При подключении введите пароль пользователяnw_api
.
В случае, если доступ отсутствует, его необходимо предоставить, внеся изменения в конфигурационный файлpg_hba.conf
PostgreSQL.
Пример:# IPv4 local connections: host all all 10.1.1.0/24 md5
🔗 В личном кабинете не появляется функционал управления настройками
Для активации функционала управление настройками Немезида ВАФ необходимо выполнить несколько условий:
- добавлен лицензионный ключ в настройках пользователя;
- функционал активирован администратором;
- указан адрес подключения к Nemesida WAF API в параметре
API_URI
(файл/var/www/app/cabinet/settings.py
).
🔗 Не отображаются реальные IP-адреса клиентов
Сервер с веб-приложением не получает реальные IP-адреса клиентов
Все легитимные запросы, не заблокированные Немезида ВАФ, отправляются на сервер с веб-приложением. Чтобы веб-приложение получало от фильтрующей ноды (веб-сервера Nginx с установленным динамическим модулем) корректный IP-адрес клиентов, необходимо добавить заголовок set_real_ip_from
в конфигурационный файл nginx.conf
http { ... set_real_ip_from x.x.x.x; ... }
x.x.x.x
— адрес фильтрующей ноды (веб-сервер Nginx с установленным динамическим модулем).
После внесения изменения проверьте конфигурацию и перезапустите сервис Nginx:
# nginx -t && service nginx reload
В личном кабинете не отображаются реальные IP-адреса клиентов
Личный кабинет предназначен для визуализации информации об атаках. Вся необходимая информация об атаке, включая IP-адрес источника запросов, передается от динамического модуля.
В случае, если дополнительный сервер обрабатывает запросы в режиме reverse proxy
и передает их на фильтрующую ноду (веб-сервер Nginx с установленным динамическим модулем), все запросы будут поступать с единым IP-адресом этого сервера. Чтобы получать корректную информацию об IP-адресах клиентов, необходимо добавить заголовок set_real_ip_from
в конфигурационный файл nginx.conf
:
http { ... set_real_ip_from x.x.x.x; ... }
x.x.x.x
— адрес сервера, работающего в режиме reverse proxy
.
После внесения изменения проверьте конфигурацию и перезапустите сервис Nginx:
# nginx -t && service nginx reload
🔗 В личном кабинете не отображается поведенческая модель
Личный кабинет позволяет управлять поведенческими моделями. Для создания поведенческой модели достаточно добавить виртуальный хост в разделе управления настройками Nemesida AI MLC. После 4-х дневного обучения, поведенческая модель будет сформирована и доступна в Личном кабинете. Если поведенческая модель недоступна, то необходимо проверить журнал компонента Nemesida AI MLC /var/log/nwaf/mlc.log
, обращая внимание на следующие записи:
-
Current training progress for virtual host example.com: 5%
Запись означает, что обучение не завершено. Когда прогресс будет равен 100%, то обучение завершится автоматически и поведенческая модель появится в Личном кабинете.
-
An error occurred while sending the models of virtual host example.com to Nemesida WAF API: status: <Response [413]>
Запись означает, что модель уже сформирована, но не может быть отправлена в Nemesida WAF API из-за его ограничений на максимальный размер тела запроса.
Решение: увеличить значение параметра
client_max_body_size
, приведя конфигураионный файл/etc/nginx/nwaf/conf.d/nwaf-api.conf
к виду:server { ... client_max_body_size 64M; ... }
Значение устанавливаемого параметра должно быть больше значения размера файла с расширением
.ml
в директории/opt/mlc/ml/tmp/
. После внесения изменений необходимо выполнить перезапуск компонента Nemesida WAF API:# systemctl restart nw-api rldscupd memcached
-
Not enough available memory (12%) to process
Запись означает, что недостаточно аппаратных ресурсов сервера для обработки трафика.
Решение: увеличить объем ОЗУ сервера.
-
Insufficient traffic to build behavioral models for virtual host example.com (required: 25)
Запись означает, что Nemesida AI MLC не получил достаточного количества трафика для построения поведенческой модели и обучение будет продолжено.
Решение:
- проверить, что трафик веб-приложения поступает на фильтрующую ноду;
- в конфигурационном файле
/opt/mlc/mlc.conf
проверить, что корректно указаны реквизиты подключения к сервису RabbitMQ на фильтрующей ноде; - проверить, что Nemesida AI MLC собирает трафик из соответствующей очереди RabbitMQ (в очереди
nwaf
не накапливаются записи) на фильтрующей ноде.
🔗 После завершения обучения не происходит анализа запросов модулем машинного обучения
За построение поведенческой модели отвечает компонент Nemesida AI MLC. После 4-х дневного обучения, поведенческая модель будет сформирована и применена на фильтрующей ноде, а также будет отображаться в Личном кабинете. Если поведенческая модель недоступна, то необходимо проверить журнал компонента Nemesida AI MLC /var/log/nwaf/mlc.log
, обращая внимание на следующую запись:
Current training progress for virtual host example.com: 5%
Запись означает, что обучение не завершено. Когда прогресс будет равен 100%, то обучение завершится автоматически и поведенческая модель:
- появится в директории
/opt/mlc/ml
в виде 2 файлов:example.com_vect.ml
иexample.com_rf.ml
; - появится в Личном кабинете;
- появится на фильтрующей ноде в директории
/etc/nginx/nwaf/ml
в виде 2 файлов:example.com_vect.ml
иexample.com_rf.ml
;
Анализ запросов модулем машинного обучения начнется только после применения поведенческой модели на фильтрующей ноде. Чтобы проверить, что поведенческие модели применились на фильтрующей ноде, необходимо проверить журнал Nemesida AI MLA
/var/log/nwaf/mla.log
, обращая внимание на следующуя запись:INFO The list of Nemesida AI virtual hosts received from Nemesida WAF API: example.com INFO example.com md5: cdaba1e888de20b3b116d3ad28838a4f INFO Models processing finished
Запись означает, что на фильтрующей ноде применена поведенческая модель для виртуального хоста example.com
. Отсутствие записи example.com md5: cdaba1e888de20b3b116d3ad28838a4f
означает, что поведенческая модель не была применена.
Ошибка при применении поведенческой модели может возникнуть в нескольких случаях:
- поведенческая модель была повреждена и не может быть применена агентом машинного обучения Nemesida AI MLA;
- на фильтрующей ноде и Nemesida AI MLC установлены различные версии
Python
, использующие несовместимые версии pip-пакетов; - поведенческая модель не применяется после обновления компонентов.
Если поведенческая модель была повреждена и не может быть применена агентом машинного обучения Nemesida AI MLA, то рекомендуется выполнить дообучение поведенческой модели с использованием резервной копии обучающей выборки.
Если на фильтрующей ноде и Nemesida AI MLC установлены различные версии Python
, использующие несовместимые версии pip-пакетов, то рекомендуется произвести обновление версий Python
до актуальной, для синхронизации используемых пакетов на обоих серверах.
В случае, если обновление версии Python
невозможно на одном из серверов, то в качестве решения можно произвести понижение версии используемых pip-пакетов до версий, используемых в Python
самой ранней версии (например, при установленной версии Python 3.7
на одном из серверов, понижение версии пакетов будет производиться до этой версии, если она является самой ранней из установленных).
Рассмотрим пример понижения версии pip-пакетов для Python 3.9
до версии Python 3.7
:
Поведенческая модель создается компонентом Nemesida AI MLC для определенной версии Python
. Если понижение версии используемых pip-пакетов производилось для сервера с компонентов Nemesida AI MLC, то после понижения версии pip-пакетов необходимо выполнить процесс дообучения поведенческой модели с используем резервной копии обучающей выборки.
При принятии решения о понижении версии пакетов следует учитывать, что устревшие версии ОС могут использовать версии
Python
, поддержка которых завершена или завершится в ближайшее время. Поэтому для решения проблем, связанных с использованием разных версийPython
, рекомендуем рассматривать вариант обновления ОС до актуальной версии. Проверить состояние поддержки интерсующей версии Python можно здесь.
Если после обновления поведенческой модели не производится анализ модулем машинного обучения, то необходимо проверить журналы компонентов /var/log/nwaf/mla.log
и /var/log/nwaf/mlc.log
. Ошибки вида:
An error occurred while loading file /etc/nginx/nwaf/ml/example.com_rf.ml: node array from the pickle has an incompatible dtype: - expected: [('left_child', '<i8'), ('right_child', '<i8'), ('feature', '<i8'), ('threshold', '<f8'), ('impurity', '<f8'), ('n_node_samples', '<i8'), ('weighted_n_node_samples', '<f8')] - got: {'names': ['left_child', 'right_child', 'feature', 'threshold', 'impurity', 'n_node_samples', 'weighted_n_node_samples', 'missing_go_to_left'], 'formats': ['<i8', '<i8', '<i8', '<f8', '<f8', '<i8', '<f8', 'u1'], 'offsets': [0, 8, 16, 24, 32, 40, 48, 56], 'itemsize': 64}
говорят о том, что поведенческие модели были созданы на одной версии pip-зависимостей, но после обновления компонентов были обновлены зависимости и дальнейшее применение моделей невозможно. В таком случае рекомендуется обновить pip-зависимости по следующей инструкции:
- Фильтрующая нода:
- Обновите компонент до актуальной версии;
- Обновите pip-зависимости, запустив скрипт
/usr/share/nwaf/venv/pip_update.sh
на каждом из обновленных компонентов; - Перезапустите сервис
mla_main
.
- Nemesida AI MLC:
- Удалите все поведенческие модели, используя функционал Личного кабинета или вызов API;
- Обновите компонент до актуальной версии;
- Обновите pip-зависимости, запустив скрипт
/usr/share/nwaf/venv/pip_update.sh
на каждом из обновленных компонентов; - Перезапустите сервис
mlc_main
.
🔗 Модуль машинного обучения блокирует легитимные запросы
Применение машинного обучения при обрабокте запросов позволяет увеличить точность выявления атак до 99.98%, однако для достижения этих показателей необходимо корректно обучить поведенческую модель. Блокировка легитимного запроса может происходить по нескольким причинам:
- Трафик не поступал на обработку модулем Nemesida AI MLC и поэтому модуль машинного обучения считает запрос аномальным относительно примененной поведенческой модели;
- Поведенческая модель была построена некорректно и требуется ее переобучение;
- Ложно-положительные результаты, которые можно устранить, экспортируя запросы для применения в поведенческой модели «на лету».
Существует 2 основных способа устранения ложно-положитльных блокировок:
1-й способ:
1. Проанализируйте заблокированные запросы в разделе Настройка поведенческой модели, используя веб-интерфейс Личного кабинета, и экспортируйте те, которые считаются легитимными.
Пример экспорта запроса 2. После того, как легитимные запросы перестанут блокироваться, запустите переобучение поведенческой модели.
Если экспорт запросов не приводит к ожидаемому результату (легитимные запросы продолжают блокироваться после экспорта), то запускать переобучение поведенческой модели бессмысленно. В этом случае необходимо воспользоваться 2-ым способом.
2-й способ:
1. Переведите режим обработки запросов модулем машинного обучения в режим мониторинга, активировав опцию Активация режима мониторинга анализа запросов, определенных модулем Nemesida AI MLA как нелегитимные (BT 3) в разделе управления настройками фильтрующей ноды в Личном кабинете:
Активация опции 2.Проанализируйте
error
-лог фильтрующей ноды (/var/log/nginx/error.log
) и выявите те запросы, которые были отправлены на дополнительный анализ в модуль машинного обучения.Запросы будут отправляться на дополнительный анализ модулем машинного обучения при выявлении в запросе сигнатур, сумма «веса» которых будет
>=
значенияmla_score
в файле конфигурации/etc/nginx/nwaf/conf/global/nwaf.conf
(по умолчанию,2
). Отправка запроса на дополнительный анализ будет сопровождаться сообщением в логе.
Пример:2023/11/27 17:50:59 [error] 4292#4292: *466 Nemesida WAF: the request b3270f75de9c6a381fb645bd46f0d772 contains rule ID 1039 in zone BODY and will be sent to Nemesida AI MLA, client: 1.1.1.1, server: , request: "POST /admin/uploads.php HTTP/1.1", host: "example.com"
3. Составьте правило исключения сигнатуры (или несколько правил), выбрав в качестве зоны срабатывания правила
NoMLA
:Создание правила исключения Зона
NoMLA
исключает отправку запроса в модуль машинного обучения при срабатывании сигнатуры.4. Деактивируйте ранее активированную опцию Активация режима мониторинга анализа запросов, определенных модулем Nemesida AI MLA как нелегитимные (BT 3).
5. Запустите переобучение поведенческой модели, если после добавления правил исключения блокировки прекратились. В противном случае добавляйте правила исключения до тех пор, пока блокировки легитимных запросов не прекратятся.
6. После завершения обучения отключите ранее созданные правила исключения для проверки, что проблема решена.
🔗 Немезида ВАФ блокирует запрос из-за внутренней ошибки в работе компонентов
При обработке запросов в некоторых случаях может произойти блокировка из-за внутренней ошибки в работе компонентов. Рассмотрим некоторые случаи, при которых может возникнуть данная ошибка:
Недоступность компонента
Все компоненты Немезида ВАФ взаимодействуют друг с другом, например, фильтрующая нода, при необходимости, после проведения сигнатурного анализа отправляет запрос на дополнительную обработк, например, в Nemesida AI MLA или Анти-вирусное решение. В случаях, если компонент в момент передачи запроса не возвращает ответ за установленное время, то запрос блокируется для исключения возможности обхода ВАФ из-за перегрузки тех или иных компонентов.
Рассмотрим на примере взаимодействия Фильтрующей ноды и Nemesida AI MLA (агент машинного обучения) признаки блокировки запроса из-за внутренней ошибки при недоступности компонента. Признаки блокировки будут проявляться следующим образом:
1. В логе фильтрующей ноды появятся записи:
[error] 28808#28808: *3 Nemesida WAF: the request 47ee09c37fd353ce359caad7a2d34cd0 contains rule ID 51 in zone URL and will be sent to Nemesida AI MLA, client: 192.168.173.2, server: example.com, request: "GET /q=j%26Tab;avascript:a%26Tab;lert() HTTP/1.1", host: "example.com" [error] 28808#28808: Nemesida WAF: unable to connect to Nemesida AI MLA while processing request 47ee09c37fd353ce359caad7a2d34cd0 (The target address was not listening for connections or refused the connection request) [error] 28808#28808: *3 Nemesida WAF: the request 47ee09c37fd353ce359caad7a2d34cd0 has been blocked because timeout occurred while waiting response from Nemesida AI MLA, client: 192.168.173.2, server: example.com, request: "GET /q=j%26Tab;avascript:a%26Tab;lert() HTTP/1.1", host: "example.com"
2. В Личном кабинете появится запись о блокировке с типом
Internal error
вида:Причины:
- Недоступен сервис
mla_main
компонента Nemesida AI MLA. Проверить состояние сервиса:# service mla_main status
Решение: Проверьте статус сервиса Nemesida AI MLA, перезапустите его, и убедитесь, что в логе
/var/log/nwaf/mla.log
отсутствуют ошибки. - Отсутствует доступ для обращений к сервисам внутри локального хоста (
localhost
) на сервере фильтрующей ноды.
Решение: Предоставьте соответствующие доступы.
Ошибка в работе компонента
В данном случае, в отличие от предыдущего, ошибка может возникать даже при доступности компонента, куда передается запрос на дополнительный анализ. В этом случае признаки блокировки будут проявляться следующим образом:
1. В логе фильтрующей ноды появятся записи:
[error] 28808#28808: *3 Nemesida WAF: the request 47ee09c37fd353ce359caad7a2d34cd0 contains rule ID 51 in zone URL and will be sent to Nemesida AI MLA, client: 192.168.173.2, server: example.com, request: "GET /q=j%26Tab;avascript:a%26Tab;lert() HTTP/1.1", host: "example.com" [error] 28808#28808: Nemesida WAF: unable to connect to Nemesida AI MLA while processing request 47ee09c37fd353ce359caad7a2d34cd0 (The target address was not listening for connections or refused the connection request) [error] 4012815#4012815: *4080454 Nemesida WAF: the response code 4 (error) received from Nemesida AI MLA during processing the request 47ee09c37fd353ce359caad7a2d34cd0, request blocked, client: 192.168.173.2, server: example.com, request: "GET /q=j%26Tab;avascript:a%26Tab;lert() HTTP/1.1", host: "example.com"
2. В логе Nemesida AI MLA
/var/log/nwaf/mla.log
появятся записи вида:ERROR ML: a timeout occurred while processing request 47ee09c37fd353ce359caad7a2d34cd0 (example.com) by behavioral model
3. В Личном кабинете появится соответствующая запись о блокировке с типом
Internal error
.Решение:
В некоторых случаях проблема может возникать из-за запросов, передающих в теле запроса бинарное содержимое. Для обработки подобных запросов требуется некоторое количество аппаратных ресурсов и времени, что помимо блокировок запросов типаInternal error
, может замедлить работу как фильтрующей ноды, так и всех веб-приложений, трафик которых проксируется через нее. Если функционал веб-приложения поддерживает передачу файлов, то в качестве возможного решения проблемы необходимо в Личном кабинете применить параметры, исключающие проверку содержимого тела запроса, активировав опцию:В некоторых случаях фильтрующая нода также может потреблять повышенное количество аппаратных ресурсов (в частности, ОЗУ сервера) из-за обработки большого количества запросов, которые передаются на дополнительный анализ модулем машинного обучения, что также может приводить к ошибкам в работе компонента и блокировке запроса с типом
Internal error
. Связано это с тем, что при сигнатурном анализе запроса дополнительно производится Base64-декодирование зонARGS
,BODY
,URL
,HEADERS
, после которого обнаруживаются признаки атаки (сигнатуры), а запрос передается в модуль Nemesida AI MLA. В большинстве случаев для решения проблемы будет достаточно активировать в Личном кабинете параметр отключения декодирования соответствующей зоны:В некоторых случаях ошибка может быть связана с ошибками самой поведенческой модели и необходимо выполнить ее переобучение:
- Переведите режим обработки запросов модулем машинного обучения в режим мониторинга, активировав опцию Активация режима мониторинга анализа запросов, определенных модулем Nemesida AI MLA как нелегитимные (BT 3) в разделе управления настройками фильтрующей ноды в Личном кабинете:
- Проанализируйте
error
-лог фильтрующей ноды (/var/log/nginx/error.log
) и выявите те запросы, которые были отправлены на дополнительный анализ в модуль машинного обучения. Запросы будут отправляться на дополнительный анализ модулем машинного обучения при выявлении в запросе сигнатур, сумма «веса» которых будет>=
значенияmla_score
в файле конфигурации/etc/nginx/nwaf/conf/global/nwaf.conf
(по умолчанию,2
). Отправка запроса на дополнительный анализ будет сопровождаться сообщением в логе.Пример:
2023/11/27 17:50:59 [error] 4292#4292: *466 Nemesida WAF: the request b3270f75de9c6a381fb645bd46f0d772 contains rule ID 1039 in zone BODY and will be sent to Nemesida AI MLA, client: 1.1.1.1, server: , request: "POST /admin/uploads.php HTTP/1.1", host: "example.com"
- Составьте правило исключения сигнатуры (или несколько правил), выбрав в качестве зоны срабатывания правила
NoMLA
:Зона
NoMLA
исключает отправку запроса в модуль машинного обучения при срабатывании сигнатуры. - Деактивируйте ранее активированную опцию Активация режима мониторинга анализа запросов, определенных модулем Nemesida AI MLA как нелегитимные (BT 3).
- Запустите переобучение поведенческой модели, если после добавления правил исключения блокировки прекратились. В противном случае добавляйте правила исключения до тех пор, пока блокировки легитимных запросов не прекратятся.
- После завершения обучения отключите ранее созданные правила исключения для проверки, что проблема решена.
🔗 Немезида ВАФ блокирует загрузку файлов
Блокировка запросов при загрузке файлов на сервер веб-приложения — одна из наиболее распространенных проблем, с которой может столкнуться пользователь при работе с любым WAF. Это происходит из-за того, что для передачи файлов (например, документов) по протоколу HTTP производится бинарное кодирование передаваемых данных. Закодированное содержимое представляет собой набор символов, при анализе которых практически всегда обнаруживаются последовательности символов, попадающие под одну или несколько сигнатур. После обнаружения сигнатур запрос блокируется. Из-за особенностей, описанных выше, анализ бинарного содержимого запросов является нецелесообразным, поэтому для URL-адресов, которые предназначены для загрузки файлов, рекомендуется деактивировать анализ сигнатурным методом.
Как определить, что передается бинарное содержимое
Проверьте содержимое заголовка
Content-Type
. Если передается бинарное содержимое, то, в зависимости от типа файла, это может быть:Также стоит обратить внимание на содержимое запроса, где в начале указывается «сигнатура» файла. Для PDF-файла сигнатура может быть записана как
%PDF-1.3.%
, а для, RAR-архивов —Rar!...
.Чтобы исключить обработку тела запроса сигнатурным методом для URL-адреса, необходимо в Личном кабинете использовать соответствующую опцию:
Отключение анализа для URL-адреса example.com/uploads/
Поскольку опция отключает проверку содержимого файлов сигнатурным методом, то функционал передачи файлов остается практически без защиты и может стать целью для злоумышленников, поэтому рекомендуется активировать проверку передаваемых файлов антивирусным ПО, например,
ClamAV
.
🔗 Долгая загрузка страниц Личного кабинета
Долгая загрузка страниц при работе Личного кабинета, как правило, связана с большим размером используемой базы данных, что замедляет сканирование таблицы для быстрой работы с ней. В таком случае необходимо:
1. Выполнить оптимизацию базы данных:
# su postgres $ psql waf waf# VACUUM FULL attack; waf# VACUUM ANALYZE attack;
Данное действие направлено на освобождение места путем удаления неиспользуемых строк в таблице
attack
. После удаления неиспользуемых строк таблицы уменьшается ее фактический размер.2. Настроить автоматическое удаление старых записей из таблицы
attack
средствами Немезида ВАФ. Данный функционал позволит автоматически удалять неактуальные записи по выбранным критериям.