Мне интересно, возможно ли написать правило snort, соответствующее пакету ESP с поддельным значением SPI.
Пакеты, о которых я хочу предупредить:
00: 00: 00.000000 IP xxxx> xxxx: ESP (spi = 0x00000000, seq = 0x29)
Необработанный пакет будет выглядеть примерно так:
4500 XXXX XXXX XXXX XXXX -> 20 байтов заголовка IP
0000 0000 XXXX XXXX XXXX ->Заголовок ESP, начинающийся с 4 байтов нулей
XXXX ...
Вот почему мое лучшее предположение - попытка сопоставления:
1) IP Proto равен ESP
2) необработанных байтов наначало заголовка ESP равно 0x00000000
До сих пор я придумал следующее:
alert ip any any -> any any \
(ip_proto:esp; content: "|00 00 00 00|"; offset:0; depth: 4;)
К сожалению, это не работает.Я полагаю, что это потому, что Snort начинает смотреть на «content:» в полезной нагрузке.Я попытался использовать опцию pkt_data, чтобы сбросить курсор обнаружения на начало транспортного уровня.По инструкции: «pkt_data: эта опция устанавливает курсор, используемый для обнаружения, в необработанную полезную нагрузку транспорта»
Я предполагал, что это будет обманом для запуска проверки содержимого: сразу после заголовка IP.К сожалению, нет результата.
Я где-то здесь ошибаюсь?Или Snort просто не может сопоставить необработанные байты в заголовке ESP?Любая помощь / мнение будет принята с благодарностью!