Создание правил

Для того чтобы создать правило необходимо перейти на вкладку «Правила» и нажать на кнопку «Добавить правило» (см. рисунок 174).

image297

Рисунок 174 – Создание правила

После нажатия на кнопку «Добавить правило» появляется окно создания нового правила (см. рисунок 175).

image298

Рисунок 175 – Окно создания правила

Окно создания правила содержит следующие элементы:

  1. Название правила – поле ввода названия правила.

  2. Критичность – в данном окне задаётся критичность правила из предложенного списка (см. рисунок 176). Критичность правила проставляется для дополнительной информации пользователю и не влияет на очередность срабатывания правил.

image299

Рисунок 176 – Меню выбора критичности правила

  1. Ревизия – окно выбора версионности правила с возможностью переключения на более старую версию.

  2. В данном окне указывается количество срабатываний данного правила.

  3. Добавление тега – в данном окне можно добавить теги из существующих (см. рисунок 177) или создать новые. Данный функционал позволяет пользователя фильтровать правила по категориям.

image300

Рисунок 177 – Выбор существующего тега или создание нового

Примечание

при выборе тега появляется выпадающее меню с уже созданными тегами (см. рисунок 178).

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

image301

Рисунок 178 – Меню выбора тегов

  1. Цели – в данном разделе выбирается цель из предложенного списка (см. рисунок 179). Также имеется возможность выбора отрицания выбранного условия (см. рисунок 180). Доступные цели при создании правила описаны в таблице 29.

image302

Рисунок 179 – Выбор цели

image303

Рисунок 180 – Возможность использования отрицания условия

Таблица 29 – Выбор цели при создании правила

Возможные классы спецификации транзакции

Возможные параметры

Примечание

Проверка кода HTTP-ответа

Укажите коды ответов

Правило работает только для перечисленных кодов ответов

Использовать отрицание условия

Правило работает для всех кодов ответов, кроме перечисленных

Поиск регулярного выражения в теле ответа

Регулярное выражение

Правило работает для ответов, содержащих указанное регулярное выражение

Использовать отрицание условия

Правило работает для всех ответов, которые не содержат регулярное выражение

Проверка веб-приложения

Выберите приложение

Правило будет распространяться только на трафик приложения

Использовать отрицание условия

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

Проверка действия

Выберите действие

Может использоваться только после блока «Проверка веб-приложения». Правило распространяется только на трафик приложения, который соответствует выбранному действию

Использовать отрицание условия

Может использоваться только после блока «Проверка веб-приложения». Правило распространяется на весь трафик приложения кроме того, который соответствует выбранному действию

Проверка успешности действия

Выберите статус успешности действия

Правило будет распространяться только на выбранный статус успешности действия

Использовать отрицание условия

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

  1. Источники – в данном разделе выбирается источник из предложенного списка (см. рисунок 181). Также имеется возможность выбора отрицания выбранного условия. Доступные источники при создании правила описаны в таблице 30.

image304

Рисунок 181 – Выбор источника

Таблица 30 – Выбор источника при создании правила

Возможные классы спецификации транзакции

Возможные параметры

Примечание

Проверка идентификатора сессии

Укажите идентификатор сессии

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

Использовать отрицание условия

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

Запрос без идентификатора сессии

Правило работает для всех запросов без идентификатора сессии

Использовать отрицание условия

Правило не работает для всех запросов без идентификатора сессии

Проверка имени пользователя

Укажите имя пользователя

Правило работает для запросов, относящихся к указанному пользователю

Использовать отрицание условия

Правило работает для запросов, относящихся ко всем пользователям кроме указанного

Запрос от неавторизованного субъекта

Правило работает для запросов неавторизованных пользователей

Использовать отрицание условия

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

Проверка IP-адреса пользователя

  • Укажите IP-адрес

  • Маска подсети

Правило работает для запросов, поступающих с указанного IP-адреса с указанной маской подсети

Использовать отрицание условия

Правило работает для всех запросов кроме запросов, поступающих с указанного IP-адреса с указанной маской подсети

Проверка страны пользователя

Укажите страну

Правило работает для всех запросов, поступающих с IP-адресов, относящихся к определённой стране

Использовать отрицание условия

Правило работает для всех запросов кроме запросов, поступающих с IP-адресов, относящихся к определённой стране

Проверка ASN пользователя

Укажите ASN

Правило работает для запросов, поступающих с указанного ASN

Использовать отрицание условия

Правило работает для запросов кроме запросов, поступающих с указанного ASN

Проверка источника (конкретное значение)

  • Укажите источник

  • Укажите значение для поиска совпадения

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

Использовать отрицание условия

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

Проверка источника (любое значение)

Укажите источник

Правило работает для запросов, поступающих с указанного источника

Использовать отрицание условия

Правило работает для запросов кроме запросов, поступающих с указанного источника

  1. Аномалии – в данном разделе выбирается аномалия из предложенного списка (см. рисунок 182). Также имеется возможность выбора отрицания выбранного условия. Доступные аномалии при создании правила описаны в таблице 31.

image305

Рисунок 182 – Выбор аномалии

Таблица 31 – Выбор аномалии при создании правила

Возможные классы спецификации транзакции

Возможные параметры

Примечание

Наличие любой аномалии

Правило работает для любой транзакции с выявленной аномалией

Использовать отрицание условия

Правило работает для всего трафика, в котором не выявлены аномалии

Наличие аномалии с заданными свойствами

Выберите модуль анализа:

  • Обнаружение аномалий в последовательностях действий

  • Детектор CSFR-атак

  • Обнаружение переборных атак

  • Разбор ответа

  • Модуль обратного прокси

  • Отслеживание пользователей

  • Подсчёт аномальности сессии

  • Проверка синтаксиса параметров действий

  • Разбор запроса

  • Сигнатурный анализ

  • Обнаружение SQL-инъекций

  • Выделение действий

  • Отслеживание сессий

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

Задайте виды аномалий

Правило работает для транзакции с выявленными выбранным модулем заданными аномалиями

Выберите тип расположения аномалий:

  • не проверять

  • HTTP-сообщение в целом

  • первая строка HTTP-сообщения в целом

  • Заголовок

  • тело в целом

  • параметр в теле запроса

  • URL в целом

  • параметр URL

  • cookie

  • элемент дерева разбора

  • сессионные данные

  • источник (подробное описание детектора переборных атак – Действие/Источник находится в разделе раздел 16.1)

  • цель/объект веб-приложения (подробное описание детектора переборных атак – Действие/Источник/Цель находится в разделе раздел 16.2)

Правило работает для транзакции с выявленной выбранным модулем аномалией, с указанным расположением

Выберите имя расположения аномалии

Правило работает для транзакции с выявленной выбранным модулем аномалией, с указанным расположением и указанным именем расположения аномалии

Использовать отрицание условия

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

  1. В данном разделе выбирается действие из предложенного списка (см. рисунок 183) для созданного правила. Доступные действия при создании правила описаны в таблице 32.

image306

Рисунок 183 – Выбор действия

Таблица 32 – Выбор действия при создании правила

Действие

Возможные параметры

Примечание

Пометить транзакцию

Транзакция, соответствующая заданным в спецификациях «Цели», «Источники» и «Аномалии», помечается для дальнейшего анализа. Используется как действие по умолчанию

Разрешить транзакцию

Транзакция, соответствующая заданным в спецификациях «Цели», «Источники» и «Аномалии», пропускается как легитимная

Блокировать транзакцию

Транзакция, соответствующая заданным в спецификациях «Цели», «Источники» и «Аномалии», блокируется

Добавить значение источника в список

Прервать цепочку применения правил

При срабатывании правила цепочка применения правил прерывается

Решение для транзакции

При срабатывании правила устанавливается выбранное решение

Источник

При срабатывании правила значение указанного источника добавляется в список

Список

При срабатывании правила значение источника добавляется в указанный список

Описание добавляемого в список элемента

Дополнительная информация о добавляемом значении источника

Время жизни добавляемого элемента (в секундах)

Значение источника будет добавлено на указанное время в список

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

Примечание

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

21.1. Особый шаблон ответа

Для настройки выдачи JavaScript-верификации с редиректом вместо блокировки в панели управления необходимо выбрать специальный шаблон ответа redirect.response.json (см. рисунок 184).

image307

Рисунок 184 – Редирект вместо блокировки

Стандартная конфигурация /etc/ibatyr-nginx/templates/redirect.response.json выглядит так:

{
  "$apply": "challenge",
  "type": "redirect",
  "valid_for": 300
}

Параметры:

  1. Параметр valid_for отвечает за время в секундах, в течение которого действительна уже пройденная ранее валидация.

Если задано значение null, то валидация имеет бесконечный срок действия. Срок действия проверяется каждый запрос, к которому применяется мягкая реакция, так что если конфигурация меняется, то сразу используются новые настройки.

  1. Недокументированный параметр obfuscation отвечает за настройки способа обфускации JavaScript-кода и имеет разумные умолчания, подобранные эмпирически.

Шаблон страницы при желании можно кастомизировать, отредактировав файл /etc/ibatyr-nginx/templates/redirect.html.

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

  1. Проверяется, не проходил ли пользователь ранее эту валидацию.

  2. Если старая валидация все еще действительна и IP-адрес пользователя не менялся, то запрос пропускается.

В журнале iBatyr Nginx это решение отображается как «Pass: challenge passed: redirect».

  1. В противном случае в ответ отдается блокировка с обфусцированным JavaScript-кодом, который делает следующее:

    1. В случае наличия признаков использования управляемого браузера, валидация считается неуспешной.

    2. В случае успешной валидации:

      • Выполняется установка зашифрованного JWE-токена в cookie, имя которой определяется настройкой SESSIONS_COOKIE_NAME (по умолчанию — sw). Результат валидации привязывается к IP-адресу пользователя.

      • Происходит перенаправление (GET-запрос) на изначально запрошенный URL.