Модификаторы области поиска

ID статьи: 890
Последнее обновление: 08 дек, 2025
Documentation:
Product: NGFW
Version: 7.x

.no_case

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

Пример:

UASL(.id=XXX; .name="XXX"; .pattern="Host: "; .pattern="google.com";)

.where

Модификатор .where используется для указания области поиска сигнатуры:

.where=<MODE>;

где <MODE> может принимать следующие значения:

  • packet_origin — областью поиска является весь пакет без протокольного декодера;

  • uri — областью поиска является поле URI-заголовка HTTP;

  • host — областью поиска для HTTP-сессии является поле Host (до переноса строки);

  • header — областью поиска для HTTP-сессии являются HTTP-заголовки, команды SMTP и POP3, заголовки протоколов TLS и SSH;

  • body — областью поиска является содержимое пакетов HTTP;

  • file — областью поиска являются: декодированное содержимое HTTP-пакета, вложения в email, FTP data-сессия.

.service

Этот модификатор области поиска предназначен для выбора диссектора:

.service=<MODE>;

где <MODE> может принимать следующие значения:

  • http — разбор протокола HTTP.

Пример:

UASL(.name="block.google"; .protocol=tcp; .service=http; .host="google.com";)

.distance, .within, .at, .startin

Назначение модификаторов приведено в таблице.

Модификатор

Описание

.distance

Пропустить заданное количество байтов (RANGE) от начала или последнего найденного блока.

Задается в формате:

.distance=<RANGE> [,<MODE>];

где <RANGE> — это целое число, начиная с 0.

Опциональные параметры (<MODE>) будут рассмотрены далее.

Например, следующая запись задает пропуск 10 байтов с начала для первого шаблона или от последнего найденного для второго и последующего шаблонов:

.distance=10;

Пример использования опциональных параметров:

  • пропустить 10 байтов от начала:

    .distance=10, start;
  • пропустить 10 байтов от последнего найденного шаблона:

    .distance=10, match;

.within

Сканировать в заданном интервале (RANGE) от начала или последнего найденного блока (шаблон полностью попадает в заданный интервал).

Задается в формате:

.within=<RANGE> [,<MODE>];

где <RANGE> — это целое число, начиная с 1.

Опциональные параметры (<MODE>) будут рассмотрены далее.

Например, следующая запись задает поиск с 1-го по 10-й байт с начала для первого шаблон или от последнего найденного для второго и последующего шаблона:

.within=10;

Пример использования опциональных параметров:

  • поиск с 1-го (с начала) по 10-й байт:

    .within=10, start;
  • поиск в диапазоне 10 байтов после последнего найденного шаблона:

    .within=10, match;

.startin

Сканировать в заданном интервале (RANGE) от начала или последнего найденного блока (для совпадения в заданный интервал может попадать только начало шаблона).

Задается в формате:

.startin=<RANGE> [,<MODE>];

где <RANGE> — это целое число, начиная с 1.

Опциональные параметры (<MODE>) будут рассмотрены далее

.at

Проверять наличие шаблона в заданной позиции.

Важно! Этот модификатор несовместим с модификаторами «.distance» и «.within».

Задается в формате:

.at=<RANGE> [,<MODE>];

где <RANGE> — это целое число, начиная с 0.

Опциональные параметры (<MODE>) будут рассмотрены далее

Опциональные параметры модификаторов представлены в таблице.

Наименование

Описание

start

Поиск с начала потока данных.

Важно! Является значением по умолчанию для первого шаблона.

packet

Сканирование с начала пакета

reverse

Поиск с конца пакета (удобно для проверки Next Protocol в ESP)

match

Поиск от последнего найденного шаблона

Важно! Является значением по умолчанию для второго и последующего шаблона.

lastmark

Сканирование от последней метки, выставленной с помощью .mark pset

ПримечаниеЕсли опциональный параметр для модификаторов «.distance» и «.within» совпадают, то отсчет значения модификатора .within производится от значения .distance.

Например, запись:

.distance=10,match; .within=5,match

задает поиск в диапазоне с 10-го по 15-й байт от последнего найденного шаблона.

Примеры:

UASL(.name="sock5.proxy.detect"; .protocol=tcp; .flow=from_client; .seq=1,relative; .pattern="|05 01 00|"; .within=3;)
UASL(.name="block.google"; .protocol=tcp; .service=http;.pattern="google.com"; .within=512;.where=host;)

.protocol

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

.protocol=<MODE>;

где <MODE> может принимать следующие значения:

  • icmp — анализ трафика протокола ICMP;

  • udp — анализ трафика протокола UDP;

  • tcp — анализ трафика протокола TCP.

ПримечаниеМожно задать только один протокол. Если протокол не указан, то сигнатура применяется только к трафику TCP и UDP.

Пример:

UASL(.name="block.google"; .protocol=tcp; .pattern="google.com";)

Эта статья была:   Полезна | Не полезна
ID статьи: 890
Последнее обновление: 08 дек, 2025
Ревизия: 17
Просмотры: 7488
Комментарии: 0
Теги