Перейти к основному содержимому

Управление правилами

Для проведения сигнатурного анализа сетевого трафика в eSensor используются решающие правила (далее – правила), написанные на специальном языке.

Группы правил​

Группа правил – это хранящийся на СУС набор решающих правил и связанного с ними файла классификации classification.config. Группа является единицей централизованного обновления и доставки правил на сенсоры. Каждая группа использует не более одного источника правил.

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

  • FTP или SMB – удаленный файловый ресурс; для подключения задаются адрес ресурса и параметры аутентификации;

  • Git – удаленный репозиторий; задаются адрес репозитория, ветка, параметры аутентификации и стратегия разрешения конфликтов;

  • AM TIP – портал получения правил AM TIP; для аутентификации используется токен, заданный в общих настройках СУС;

  • ET Open – открытый набор правил Emerging Threats для поддерживаемой версии Suricata;

  • другая группа правил – выбранная группа на СУС используется в качестве родительского источника;

  • источник не выбран – наполнение группы выполняется вручную: загрузкой архива либо созданием и редактированием правил в группе.

Описание возможностей по управлению группами правил приведено в разделе «Группы правил» этой документации.

Формат загрузки правил​

eSensor поддерживает решающие правила синтаксиса Suricata 8.0.3. При загрузке из внешнего источника или архива правила должны находиться в файлах с расширением .rules, каждое правило размещается в отдельной строке.

Пример содержимого файла с двумя правилами:

alert udp any any -> any any (msg:"test udp rule"; sid:1;)
alert tcp any any -> any any (msg:"test tcp rule"; sid:2;)

Для ручной загрузки допускаются архивы форматов .zip, .tar.gz и .tgz. Архив может содержать один или несколько файлов .rules и, при необходимости, файл пользовательской классификации.

Файл пользовательской классификации должен иметь строгое имя classification.config. При загрузке из архива он помещается в архив вместе с файлами правил; при загрузке из удаленного источника – в ту же директорию или репозиторий, что и файлы .rules.

Каждая строка с описанием класса в classification.config должна соответствовать синтаксису Suricata:

Config classification: <краткое_имя>,<полное_наименование>,

<приоритет>

Пример содержимого classification.config:

config classification: not-suspicious,Not Suspicious Traffic,3
config classification: unknown,Unknown Traffic,3
config classification: bad-unknown,Potentially Bad Traffic,2

Допустимые значения приоритета и соответствующие уровни опасности (1 – критический, 2 – высокий, 3 – средний, 4 – низкий).

При загрузке СУС проверяет синтаксис правил, наличие конфликтов, имя и содержимое classification.config. Файл классификации считается корректным, если он соответствует синтаксису Suricata, содержит не менее одного класса, а краткие имена классов уникальны.

Если проверка загруженного classification.config не пройдена, обновление завершается с ошибкой, а ранее активный файл продолжает использоваться.

Ограничение срабатываний оповещений, формируемых правилами Suricata​

Вкладка «Ограничение срабатываний» предназначена для управления количеством оповещений, формируемых правилами сигнатурного анализа.

Настройка ограничения срабатываний позволяет:

  • полностью подавить оповещения определённого правила;

  • подавить оповещения для выбранного узла или сети;

  • ограничить частоту формирования оповещений;

  • задать количество срабатываний, после которого формируется оповещение.

Ограничения применяются только к формированию оповещений. Остальные действия правила, например установка flowbit или flowint, продолжают выполняться.

Внимание! При использовании Suricata в режиме IPS действия правил drop и reject применяются к каждому соответствующему пакету независимо от настроенного ограничения частоты оповещений.

Добавление ограничения срабатываний​

Настройка ограничения осуществляется через веб-интерфейс eSensor:

  • перейти на страницу «Администрирование» → «Сенсоры»;

  • выбрать сенсор, для которого требуется настроить ограничение;

  • открыть подменю «Сигнатурный анализ»;

  • перейти на вкладку «Ограничение срабатываний»;

  • ввести одну или несколько директив ограничения. Каждую директиву следует указывать с новой строки;

  • нажать «Сохранить».

Некорректно заданная директива может привести к ошибке применения настроек сигнатурного анализа.

Подавление оповещений с помощью suppress​

Директива suppress полностью отключает формирование оповещений для выбранного правила либо подавляет их только для определённых узлов и сетей.

Чтобы подавить все оповещения определённого правила, используется директива:

suppress gen_id <gid>, sig_id <sid>

Чтобы подавить оповещения только для определённого узла или сети, используется расширенная директива:

suppress gen_id <gid>, sig_id <sid>, track <by_src|by_dst|by_either>, ip <ip|subnet|addressvar>

Параметры для настройки ограничений срабатывания представлены в таблице 6.

Таблица 6 – Параметры настройки ограничений срабатывания

ПараметрОписание
<gid>Идентификатор генератора событий. Для правил Suricata обычно используется значение 1.
<sid>Идентификатор сигнатуры, указанный в параметре sid правила.
By_srcОграничение применяется, если заданному адресу соответствует IP-адрес отправителя.
By_dstОграничение применяется, если заданному адресу соответствует IP-адрес получателя.
By_eitherОграничение применяется, если заданному адресу соответствует IP-адрес отправителя или получателя.
<ip>IP-адрес отдельного узла.
<subnet>Адрес подсети в формате CIDR.
<addressvar>Переменная, содержащая адреса, например $HOME_NET.

Например, следующая директива подавляет оповещения сигнатуры 2002087, если IP-адрес отправителя – 209.132.180.67:

suppress gen_id 1, sig_id 2002087, track by_src, ip 209.132.180.67

В параметре ip можно указать список подсетей:

suppress gen_id 1, sig_id 2003614, track by_src, ip [192.168.0.0/16,10.0.0.0/8,172.16.0.0/12]

Вместо конкретных адресов можно использовать переменную группы узлов:

suppress gen_id 1, sig_id 2003614, track by_src, ip $HOME_NET

Чтобы учитывать адреса как отправителя, так и получателя, используйте режим by_either:

suppress gen_id 1, sig_id 2003614, track by_either, ip 217.110.97.128/25

В последнем примере оповещение сигнатуры 2003614 подавляется, если IP-адрес отправителя или получателя входит в подсеть 217.110.97.128/25.

Ограничение частоты оповещений с помощью threshold​

Директива threshold позволяет задать условия и частоту формирования оповещений определённого правила.

Если в самом правиле уже задан параметр threshold или detection_filter, настройка, указанная на вкладке «Ограничение срабатываний», заменяет соответствующую настройку этого правила. Это позволяет адаптировать частоту оповещений к условиям эксплуатации конкретного сенсора без редактирования правила.

Синтаксис директивы:

threshold gen_id <gid>, sig_id <sid>, type <threshold|limit|both>, track <tracker>, count <N>, seconds <T>

Параметры для настройки ограничений частоты оповещений представлены в таблице 7.

Таблица 7 – Параметры настройки ограничений частоты оповещений

ПараметрОписание
<gid>Идентификатор генератора событий.
<sid>Идентификатор сигнатуры.
<tracker>Способ группировки и подсчёта срабатываний.
<N>Количество срабатываний или оповещений.
<T>Продолжительность контролируемого интервала в секундах.

Параметр track может принимать значения, представленные в таблице 8.

Таблица 8 – Значения параметра track

ПараметрОписание
by_srcСрабатывания подсчитываются отдельно для каждого IP-адреса отправителя.
by_dstСрабатывания подсчитываются отдельно для каждого IP-адреса получателя.
by_ruleСрабатывания подсчитываются для правила в целом.
by_bothСрабатывания подсчитываются отдельно для каждой пары адресов отправителя и получателя.
by_flowСрабатывания подсчитываются отдельно для каждого сетевого потока.

Параметр type определяет порядок формирования оповещений и может принимать значения, представленные в таблице 9.

Таблица 9 – Значения параметра type

ПараметрОписание
Оповещение формируется при достижении заданного количества срабатываний. После этого счётчик начинает новый цикл.
limitЗа заданный интервал формируется не более указанного количества оповещений.
bothОповещение формируется после достижения заданного количества срабатываний, но не более одного раза за контролируемый интервал.

Директивы suppress можно применять к правилам, в которых уже используются threshold или detection_filter. В этом случае suppress подавляет оповещения для заданных адресов, а для остальных адресов продолжает действовать настроенное ограничение частоты.