modsecurity: действительно ли необходимо отключать обработчик правил при реализации правила внесения в белый список?

Практически все примеры SecRule для внесения в белый список modsecurity, которые я нашел в Интернете, включают отключение механизма правил, например:

фаза: 1, nolog, разрешить, ctl: ruleEngine = Off, id: 23023

Однако, насколько я понял из документации, «nolog» в сочетании с «allow» уже должен иметь точно такой же эффект, а именно прерывать обработку правил и предотвращать любые записи в журнале. Следовательно, не будет ли следующая конфигурация абсолютно эквивалентной?

фаза: 1, нолог, разрешить, идентификатор: 23023

Если я ошибаюсь, в чем разница между ними?

Я использую модбезопасность 2.9.3.


person Dante77    schedule 18.10.2019    source источник


Ответы (1)


Я не видел этого раньше, но могу предположить, почему он там.

Действие allow является разрушительным действием. Когда ModSecurity работает в режиме DetectionOnly, разрушительные действия (включая allow) фактически не выполняются. Это означает, что все последующие правила продолжают выполняться, даже если они не будут выполняться в обычном режиме On. Это может сделать журналы очень зашумленными, а также заставить вас думать, что вам нужно настроить больше правил, которые на самом деле вам не нужно настраивать.

Действие ctl не является разрушительным и выполняется даже в режиме DetectionOnly. Таким образом, добавляя ctl:ruleEngine=Off к любым allow правилам, вы можете регистрировать только реальные ошибки в режиме только обнаружения.

На самом деле я сделал наоборот и использовал ctl:ruleEngine=On, чтобы действие allow действовало даже в режиме DetectionOnly. Например, у меня есть правило в начале всех моих правил, чтобы просмотреть вызовы GET без параметров к страницам index.html и сказать, что они достаточно безопасны, поэтому нет необходимости запускать для них остальные правила. Это экономит время обработки и ложные флаги.

person Barry Pollard    schedule 18.10.2019
comment
Хороший момент, для режима только обнаружения это, очевидно, имеет смысл. Спасибо. - person Dante77; 22.10.2019