Правило Snort для Java-скрипта не работает

Я не понимаю, почему следующее правило не обнаруживает содержимое "unescape":

alert tcp any any -> any any (msg:"example 1";flow:to_client,established;file_data;content:"unescape";sid:20001) 

Пока работает следующее:

alert tcp any any -> any any (msg:"example 1";flow:to_client,established;file_data;content:"<script>";sid:20001)

Кажется, что Snort не обнаруживает никакого контента внутри тегов скрипта. Большое тебе спасибо.


person R0n1N    schedule 01.02.2015    source источник
comment
Какой у Вас вопрос? Кажется, у вас уже есть ответ. . .   -  person    schedule 01.02.2015
comment
Я должен обнаружить unescape, а не ‹script›, ‹script› обнаруживается, а unescape нет. Почему ? (очевидно, функция unescape находится внутри тегов ‹script›‹/script›. Спасибо.   -  person R0n1N    schedule 01.02.2015


Ответы (1)


Существует возможность номализации javascript в препроцессоре http. Вы должны убедиться, что это включено, иначе такие функции, как unescape, не будут такими, как вы ожидаете. однако вы все равно должны увидеть «unescape», поэтому я не совсем уверен, что это ваша проблема. Вы можете прочитать о том, как настроить этот параметр в руководстве snort в параметрах конфигурации сервера. Вот фрагмент из руководства по этому варианту:

"normalize_javascript Этот параметр включает нормализацию Javascript в теле ответа HTTP. Перед настройкой этого параметра следует выбрать параметр конфигурации extended_response_inspection. Когда этот параметр включен, Http Inspect ищет Javascript в теле ответа HTTP, выполняя поиск <script> теги и начинает его нормализацию. Когда Http Inspect видит тег <script> без типа, он считается javascript. Запутанные данные в функциях javascript, таких как unescape, String.fromCharCode, decodeURI, decodeURIComponent, будут Компонент unescape/decodeURI/decodeURIComponent обрабатывает различные кодировки: %XX, %uXXXX, XX и uXXXXi. Помимо этих кодировок, Http Inspect также обнаружит последовательные пробелы и нормализует их до одного пробела. нормализовать плюс и объединить строки. Параметр правила file_data можно использовать для доступа к этому нормализованному буферу из правила. предупреждение процессора с SID 9 и GID 120 генерируется, когда уровни запутывания в Http Inspect равны или превышают 2».

Если это все еще не работает, вам следует проверить следующее:

Возможно, значение server_flow_depth в http://manual.snort.org/node17.html#SECTION003274000000000000000 слишком низкое. Значение по умолчанию — 300, поэтому, если «<script>» находится в первых 300 байтах, а «unescape» — после 300 байт, snort не будет проверять так далеко. Попробуйте установить это значение на 65535. Вы сможете проверить это, сопоставив содержимое для «</script>», если это не генерирует предупреждение, скорее всего, это настройка.

person johnjg12    schedule 05.02.2015
comment
server_flow_depth установлен на 0. Обнаружены и ‹script› и ‹/script›, а также теги до и после, такие как ‹html›‹/html›, но все внутри тегов ‹script›‹/script› не обнаружено. Спасибо - person R0n1N; 06.02.2015
comment
есть ли у вас способ предоставить образец pcap этого трафика? - person johnjg12; 06.02.2015
comment
Не понимаю почему, но отключив normalize_javascript все работает. - person R0n1N; 07.02.2015