правило suricata для определения POST-запросов

Вопрос или проблема

Я не могу разобраться / понять. Нужно написать правило, которое фиксирует HTTP POST запрос с одного IP-адреса более трех раз за 10 секунд и регистрирует это.

alert http $EXTERNAL_NET any -> $HOME_NET any (msg:"HTTP post packet flood "; flow:to_server; ..... count 3, seconds 10;)

Какие команды следует использовать вместо точек? Есть ли где-то примеры или статья, описывающая использование флагов? Я не понимаю это в документации на официальном сайте.

С помощью http.method возможно сопоставить этот запрос.

https://suricata.readthedocs.io/en/suricata-6.0.3/rules/http-keywords.html#http-method

alert http $EXTERNAL_NET any -> $HOME_NET any (msg:"HTTP post packet flood "; flow:to_server; http.method; content:"POST"; count 3, seconds 10;)

.

Ответ или решение

Для создания правила в Suricata, которое будет отслеживать HTTP POST-запросы от одного IP-адреса более 3 раз в течение 10 секунд, следует учитывать следующие аспекты:

Структура правила

Правило Suricata имеет следующий синтаксис:

alert http [источник] [порт] -> [назначение] [порт] (msg:"сообщение"; [условия]; [действия]; ...)

Основные элементы

  1. alert — указывает на действие, которое будет выполнено при срабатывании правила.
  2. http — указывает на протокол, к которому применяется правило.
  3. $EXTERNAL_NET — макрос, который обозначает внешний сетевой интерфейс (IP-адреса, доступные из Интернета).
  4. $HOME_NET — макрос для внутренней сети.
  5. flow:to_server — указывает, что правило будет применяться к трафику, направленному к серверу.
  6. http.method — указывает, что мы проверяем метод HTTP.
  7. content:"POST" — фильтрует пакеты, в которых содержится метод POST.

Условие для подсчета

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

Полное правило

Полное правило будет выглядеть следующим образом:

alert http $EXTERNAL_NET any -> $HOME_NET any (msg:"HTTP POST packet flood detected"; flow:to_server; http.method; content:"POST"; threshold:type threshold, track by_src, count 3, seconds 10; sid:1000001; rev:1;)

Объяснение правил

  1. msg:"HTTP POST packet flood detected" — сообщение, которое будет записано в журнал при срабатывании правила.
  2. threshold:type threshold, track by_src, count 3, seconds 10; — ключевая часть, которая указывает, что если за 10 секунд был зарегистрирован более 3 запросов от одного источника, то сгенерируется сигнал тревоги.
  3. sid:1000001 — уникальный идентификатор правила, который используется для его идентификации.
  4. rev:1 — версия правила.

Дополнительные ресурсы

Для более детального изучения правил Suricata вы можете ознакомиться с официальной документацией, в частности, с разделами, описывающими детальную настройку правил:

Заключение

Создание правил в Suricata — это мощный инструмент для мониторинга сетевого трафика. Используя предложенное правило, вы сможете эффективно отслеживать возможные атаки через POST-запросы и реагировать на них.

Оцените материал
Добавить комментарий

Капча загружается...