Правило Snort: обнаружить запрос abc.jsp и значение cookie = null

Я хотел бы обнаружить и отправить предупреждение с помощью snort для:

request /abc/abc.jsp and
cookie abc value is null

Я старался:

alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTP_PORT (sid:xxx; gid:1; content:"/abc/abc.php"; http_uri; pcre:"abc=''"; msg:"BLACKLIST - request without cookie ";)

но вроде не работает...


person user3158049    schedule 22.11.2016    source источник
comment
Я меняю следующим образом и не могу сопоставить alert tcp any any -> any any (msg:Imposter URI без cookie; content:/abc/abc.jsp; http_uri; content:!abc=; http_cookie; sid:1; )   -  person user3158049    schedule 22.11.2016


Ответы (2)


Ваш контент pcre не соответствует правильному синтаксису. Вам нужно поместить содержимое между косой чертой (/). См. руководство здесь . Таким образом, ваш вариант pcre должен выглядеть следующим образом:

pcre:"/abc=''/"

Я также хотел бы отметить, что этого pcre, вероятно, недостаточно для того, что вы хотите сделать. Я бы сделал что-то вроде следующего:

pcre:"/abc=('|\")(\1)/C"

Это позволит вам искать как одинарные, так и двойные кавычки, чтобы это соответствовало одному из следующих:

абс=''
абс=""

Кроме того, добавление буквы C в конце pcre заставит snort проверять только следующее:
Соответствие нормализованному HTTP-запросу или HTTP-ответу cookie.

Что более эффективно и менее подвержено ложным срабатываниям, поскольку проверяет только нормализованное содержимое файлов cookie. Он также менее подвержен ложным отрицательным результатам, потому что он проверяет нормализованное содержимое файла cookie, потому что, если файл cookie по какой-либо причине закодирован в URL-адресе, ' будет% 27, а " будет % 22, и pcre не будет соответствовать. Предоставление опции C snort проверит нормализованную полезную нагрузку и будет соответствовать.

Таким образом, ваше окончательное правило может выглядеть так:

alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTP_PORT (sid:xxx; gid:1; content:"/abc/abc.php"; http_uri; pcre:"/abc=('|\")(\1)/C"; msg:"BLACKLIST - request without cookie ";)
person johnjg12    schedule 25.11.2016

Структура файла cookie: name=value;

Если вы хотите определить, что значение cookie abc равно нулю, используйте шаблон abc=;

alert tcp any any -> any any (msg:"test-cookie"; content:"abc=\;"; http_cookie; nocase;)

person Mr.kang    schedule 24.12.2016