В данном разделе будут рассмотрены поля протоколов ICMP, TCP, UDP, HTTP.
Т.к. для одной сигнатуры можно задать только один протокол, то использование ниже представленных параметров автоматически определяет его, т.е равносильно использованию параметра .protocol.
ПримечаниеУказание параметров разных протоколов приведёт к ошибке.
ICMP
Для проверки свойств заголовка ICMP доступно использование следующих параметров:
Наименование
Описание
.icmp.type
Проверка типа ICMP.
Доступно использование следующих операторов: =, !=.
.icmp.code
Проверка значения кода ICMP.
Доступно использование следующих операторов: =, !=.
.icmp.id
Проверка значений идентификаторов ICMP.
Доступно использование следующих операторов: =, !=.
.icmp.checksum
Проверка контрольной суммы, которая используется при обнаружении ошибок.
Доступно использование следующих операторов: <, >, <=, >=, =, !=.
.icmp.data_size
Проверка размера поля данных пакета. Параметр используется для обнаружения пакетов аномальных размеров, зачастую использующихся для переполнения буфера.
Доступно использование следующих операторов: <, >, <=, >=, =, !=. Если заданы несколько условий, то они объединяются логическим оператором И.
TCP
Для проверки свойств заголовка TCP доступно использование следующих параметров:
Наименование
Описание
.tcp.sport
Проверка номера порта или диапазона портов источника.
Доступно использование следующих операторов: =, !=.
.tcp.dport
Проверка номера порта или диапазона портов назначения.
Доступно использование следующих операторов: =, !=.
.tcp.window_size
Проверка размера окна TCP.
Поддерживаются следующие операторы: <, >, <=, >=, =, !=.
.tcp.checksum
Проверка контрольной суммы, использующейся для проверки на наличие ошибок при передаче и/или приеме отправленного пакета.
Доступно использование следующих операторов: <, >, <=, >=, =, !=.
.tcp.seq
Проверка значения порядковых номеров TCP.
Поддерживаются следующие операторы: <, >, <=, >=, =, !=.
Доступно использование модификатора relative — проверка относительно начального номера последовательности.
Применение:
.tcp.seq=<value>,relative;
где <value> - порядковый номер TCP.
.tcp.flags
Проверка TCP-флагов:
.tcp.flags=[<mod>]<tcp_flags>;
где <mod> — модификатор.
<tcp_flags> — флаг TCP, который может быть указан как в буквенном, так и в числовом (десятеричной или шестнадцатеричной системах) форматах.
Флаги:
0 — флаги не установлены;
F, 1, 0X001 — FIN;
S, 2, 0X002 — SYN;
R, 4, 0X004 — RST;
P, 8, 0X008 — PSH;
A, 16, 0X010 — ACK;
U, 32, 0X020 — URG;
E, 64, 0X040 — ECE;
C, 128, 0X080 — CWR;
N, 256, 0X100 — NS.
Модификаторы:
* — должен быть установлен хотя бы один из заданных флагов, остальные не проверяются;
+ — должны быть установлены все заданные флаги, остальные не проверяются;
! — все заданные флаги должны быть сброшены, остальные не проверяются;
!0 — должен быть установлен хотя бы один флаг (любой).
Важно! Если ни один из модификаторов не указан, то должны быть установлены все заданные флаги (строгое соответствие), остальные - сброшены.
.tcp.data_size
Размер полезной нагрузки пакета TCP (без учета заголовков).
Поддерживаются следующие операторы: <, >, <=, >=, =, !=.
Возможно указание как .data_size, тогда параметр будет относится к протколам TCP и UDP.
UDP
Для проверки свойств заголовка UDP доступно использование следующих параметров:
Наименование
Описание
.udp.sport
Проверка номера порта или диапазона портов источника.
Доступно использование следующих операторов: =, !=.
.udp.dport
Проверка номера порта или диапазона портов назначения.
Доступно использование следующих операторов: =, !=.
.udp.checksum
Проверка контрольной суммы.
Доступно использование следующих операторов: <, >, <=, >=, =, !=.
.udp.data_size
Размер полезной нагрузки пакета UDP (без учета заголовков).
Поддерживаются следующие операторы: <, >, <=, >=, =, !=.
Возможно указание как .data_size, тогда параметр будет относится к протколам TCP и UDP.
HTTP
Для проверки свойств заголовка HTTP доступно использование следующих параметров:
Наименование
Описание
.uri
Проверка поля идентификатора ресурса (URI).
.body
Проверка тела содержимого запроса или ответа HTTP.