Пользовательские сигнатуры

На вкладке можно добавить кастомные сигнатуры Предотвращения вторжений. Сигнатура - это шаблон, который позволяет идентифицировать определенные виды вредоносного трафика, аномалий в протоколах или известных атак.

Сигнатуры, не используемые в профилях Предотвращения вторжений, и профили, не используемые в правилах Файрвола, не участвуют в обработке трафика!

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

Описание валидной сигнатуры

Валидная сигнатура состоит из трех основных частей:

  • Действие при совпадении правила;

  • Заголовок, определяющий протокол, IP-адреса или сети отправителя и получателя сетевых пакетов, порты и направление трафика;

  • Опции, определяющие специфику сигнатуры.

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

Пример валидной сигнатуры. Генерирует предупреждение, если обнаружен HTTP GET-запрос, в URI которого встречается слово rule:

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"HTTP GET Request Containing Rule in URI"; flow:established,to_server; http.method; content:"GET"; http.uri; content:"rule"; fast_pattern; classtype:bad-unknown; sid:123; rev:1;)

где:

  • alert - действие. Перечень валидных действий:

    • alert- сгенерировать предупреждение;

    • pass - принять пакет;

    • drop - отбросить пакет и сгенерировать предупреждение;

    • reject - отправить ошибку RST/ICMP unreach отправителю пакета;

    • rejectdst - отправить пакет с ошибкой RST/ICMP error получателю исходного пакета;

    • rejectboth - отправить пакеты с ошибкой RST/ICMP error отправителю и получателю исходного пакета.

  • http $HOME_NET any -> $EXTERNAL_NET any - заголовок, в том числе:

    • http - протокол. Валидные протоколы: сетевого уровня (ip, icmp), транспортного уровня (tcp, udp), уровня представления (tls, ssl), прикладного уровня (http, dns, ssh, ftp и другие);

    • $HOME_NET - сети отправителя, указанные в настройках в Правила трафика -> Предотвращение вторжений -> Настройки -> Сети, защищенные от вторжений;

    • any - порты отправителя/получателя;

    • -> - направление трафика. Два валидных значения: -> - проверка трафика слева направо, <>- проверка трафика в обоих направлениях. Значение <- не является валидным. Например, при проверке пакетов, идущих из сети А в сеть В, валидное значение в сигнатуре - сеть А -> сеть В, невалидное значение - сеть В <- сеть А;

    • $EXTERNAL_NET - сети получателя (значения, которые не попадают в $HOME_NET).

  • (msg:"HTTP GET Request Containing Rule in URI"; flow:established,to_server; http.method; content:"GET"; http.uri; content:"rule"; fast_pattern; classtype:bad-unknown; sid:123; rev:1;) - опции, заключенные в скобки и разделенные точкой с запятой.

Особенности опций валидной сигнатуры

Порядок опций важен, его изменение влияет на порядок обработки. Например, указанная в примере опция content:"GET" относится к опции http.method, а опция content:"rule" - к опции http.uri.

Опции бывают двух основных видов:

  • Влияющие на инспекцию трафика. При добавлении сигнатуры их необходимо указать. Описание некоторых опций из примера:

    • flow - состояние соединения, направление следования пакета и др.;

    • content - содержимое пакета, по которому производится сопоставление.

  • Метаопции - опции, не влияющие на инспекцию трафика, но влияющие на способ информирования о срабатывании сигнатуры. Список некоторых метаопций из примера:

    • msg - информация о сигнатуре и возможном алерте;

    • classtype - информация о классе правил и алертов (короткое и длинное название, приоритет);

    • sid - уникальный номер сигнатуры;

    • rev - версия сигнатуры;

    • metadata - дополнительная информация о сигнатуре. Формат metadata:

metadata: key value;
metadata: key value, key value;
Примеры указания тактики MITRE

1. Формат в правилах Касперского - metadata: MITRE TA0001:

alert http $HOME_NET any -> $EXTERNAL_NET any (metadata: MITRE TA0001; msg:""; sid:1;)
  • TA0001 - MITRE_ID

2. Формат в Emerging Threats - metadata: mitre_tactic_id TA0001:

alert http $HOME_NET any -> $EXTERNAL_NET any (metadata: mitre_tactic_id TA0001; msg:""; sid:1;)
  • TA0001 - MITRE_ID

Символы ; и " имеют специальное значение и должны быть экранированы с помощью символа \ в случае их использования в значениях опций.

Полная документация по форматам сигнатур представлена по ссылке.

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

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

1. Нажмите Добавить и выберите способ добавления: Вручную или Из файла.

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

Значения SID добавляемых вручную или из файла сигнатур должны быть уникальными и находиться в диапазоне 1-999999.

Если структура сигнатур не соответствует нужной, Ideco NGFW выдаст ошибку с указанием номеров строк файла, где найдены ошибки.

3. Если был выбран способ Вручную, в открывшейся форме введите комментарий, сигнатуру и нажмите Добавить:

При наличии большого количества сигнатур в таблице воспользуйтесь кнопкой Фильтры.

Пример создания исключения с конкретным адресом и сигнатурой

Описание примера. Пользователю необходимо добавить в исключения передачу трафика, который блокируется конкретной сигнатурой Предотвращения вторжений, для конкретного отправителя (192.168.10.10) и получателя (1.1.1.1).

Если пользователь добавит в исключения конкретную сигнатуру, то разрешит этот трафик для всех адресов. Если же он создаст исключение в разделе Правила трафика -> Исключения, то исключается конкретный адрес для всех сигнатур.

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

1. Перейдите в раздел Отчеты и журналы -> События безопасности и найдите ID сигнатуры, которую необходимо добавить в исключения.

2. Скопируйте содержание выбранной сигнатуры, которое отобразится при наведении мыши на ID.

3. Перейдите в раздел Правила трафика -> Предотвращение вторжений -> Пользовательские сигнатуры и нажмите Добавить -> Вручную.

4. Вставьте скопированный лог в поле Сигнатура и измените в нем:

  • Действие drop на pass;

  • Значения $HOME_NET и/или $EXTERNAL_NET на нужный адрес отправителя/получателя;

  • Значение sid на любое уникальное в диапазоне 1-999999.

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

4. Нажмите Добавить.

Пример содержания сигнатуры в разделе Отчеты и журналы -> События безопасности:

drop http $EXTERNAL_NET any -> $HOME_NET any (msg:"ET HUNTING DDoS-Guard Hosted Content"; flow:established,to_client; http.stat_code; content:"200"; http.server; content:"DDoS-Guard"; nocase; bsize:10; fast_pattern; reference:url,malwarebytes.com/blog/threat-intelligence/2023/01/crypto-inspired-magecart-skimmer-surfaces-via-digital-crime-haven; classtype:bad-unknown; sid:2043310; rev:1; metadata:attack_target Client_Endpoint, created_at 2023_01_17, deployment Perimeter, performance_impact Moderate, confidence Low, signature_severity Minor, updated_at 2023_01_17, reviewed_at 2024_10_14;)

Пример пользовательской сигнатуры:

pass http 192.168.10.10 any -> 1.1.1.1 any (flow:established,to_client; http.stat_code; content:"200"; http.server; content:"DDoS-Guard"; nocase; bsize:10; fast_pattern; sid:234;)

Last updated