modsecurity: действительно ли необходимо отключить механизм правил при реализации правила белого списка? - PullRequest
0 голосов
/ 18 октября 2019

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

phase: 1, nolog, allow, ctl: ruleEngine = Off, id: 23023

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

phase: 1, nolog, allow, id: 23023

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

Я использую modsecurity 2.9.3.

1 Ответ

0 голосов
/ 18 октября 2019

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

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

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

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

...