Пользовательские правила детекта

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

Добавление нового правила детекта

Для этого надо создать правило Считать атакой на основе регулярного выражения и заполнить поля:

Regex — регулярное выражение (сигнатура). Если значение указанного ниже параметра попадает под выражение, такой запрос детектируется как атака. Обратите внимание, что поддерживается ограниченное подмножество синтаксиса регулярных выражений;

Атака — тип атаки, которая будет обнаружена при попадании значения параметра в запросе под регулярное выражение;

Экспериментальный — этот флаг позволяет безопасно проверить срабатывания регулярного выражения без блокировки запросов. Запросы не будут блокироваться даже при работе фильтрующего узла в режиме блокировки. Все срабатывания будут рассматриваться как обнаруженные экспериментальным методом и доступны в поиске по выражению experimental attacks;

в этой части запроса — определяет, в каком параметре запроса детектировать соответствующие атаки.

Пример — блокировка всех заголовков с некорректным заголовком X-Authentication

Если выполняются следующие условия:

  • приложение доступно на домене example.com;
  • приложение использует для аутентификации пользователей заголовок X-Authentication;
  • формат заголовка — 32 hex-символа.

Тогда для создания правила, запрещающего токены с неправильным форматом:

  1. Зайдите во вкладку Правила;
  2. Найдите ветку для example.com/**/*.* и нажмите Добавить правило;
  3. Выберите Считать атакой на основе регулярного выражения;
  4. Введите в поле Regex значение [^0-9a-f]|^.{33,}$|^.{0,31}$;
  5. Выберите для Атака тип Virtual patch;
  6. Выберите параметр Header и введите его значение X-AUTHENTICATION после в этой части запроса;
  7. Нажмите Создать.

Создание пользовательского правила детекта

Частичное отключение нового правила детекта

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

  • Regex ID — идентификаторы ранее созданных регулярных выражений, которые необходимо игнорировать;
  • в этой части запроса — параметр, для которого нужно установить отключение правила.

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

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

  1. На вкладке Правила нажмите на кнопку Все правила и выберите Считать атакой на основе регулярного выражения из выпадающего списка;
  2. Выберите ветку, на которую установлено интересующее регулярное выражение;
  3. Выберите группу правил, в которой находится интересующее регулярное выражение;
  4. Нажмите на строку с нужным регулярным выражением;
  5. На появившейся справа панели в поле Regex ID находится искомый идентификатор регулярного выражения. Чтобы скопировать его, нажмите на кнопку справа от поля.

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

Пример — разрешить неправильный заголовок X-Authentication для отдельного URL

Допустим, у вас есть скрипт example.com/test.php, на котором вы хотите изменить формат токенов.

Для создания соответствующего правила:

  1. Зайдите во вкладку Правила;
  2. Найдите или создайте ветку для example.com/test.php и нажмите Добавить правило;
  3. Выберите Игнорировать регулярные выражения;
  4. Введите в поле Regex ID значение идентификатора правила, которое необходимо отключить;
  5. Выберите параметр Header и введите его значение X-AUTHENTICATION после в этой части запроса;
  6. Нажмите Создать.

Отключение пользовательского правила детекта

results matching ""

    No results matching ""