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

ID статьи: 890
Последнее обновление: 27 ноя, 2024
Documentation:
Product: NGFW
Version: 7.1.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 содержимое, вложения в eml, 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=1;)
UASL(.name="block.google"; .protocol=tcp; .service=http;.pattern="google.com"; .within=512;)

.protocol

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

.protocol=<MODE>;

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

  • icmp: анализ трафика протокола ICMP.

  • udp: анализ трафика протокола UDP.

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

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

Пример:

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

Эта статья была:   Полезна | Не полезна
Сообщить об ошибке
ID статьи: 890
Последнее обновление: 27 ноя, 2024
Ревизия: 13
Просмотры: 4815
Комментарии: 0
Теги