Как настроить механизм ModSecurity, чтобы он был включен для одного типа атаки и DetectionOnly для всех остальных? - PullRequest
0 голосов
/ 25 мая 2019

Мне нужно постепенно внедрять ModSecurity.Он должен быть настроен так, чтобы блокировать атаки только одним типом атаки (например, SQLi), но регистрировать все другие атаки других типов атаки.

Для простоты обновления правил owasp рекомендуется избегать измененияоригинальные правила owasp.В идеале я ищу решение, которое будет следовать этому руководству и не потребует изменения оригинальных правил owasp.

В настоящее время моя тестовая конфигурация выполняет только часть этого.После установки ModSecurity в Debian я удалил отдельные файлы правил из /usr/share/modsecurity-crs/rules/*.conf из конфигурации.Это позволяет мне включить ModSecurity с engine = on и только набором правил для конкретного типа атаки, загруженного в конфигурацию, но он не регистрирует инциденты других типов атаки.

1 Ответ

0 голосов
/ 25 мая 2019

У вас есть несколько вариантов:

1) Используйте оценку аномалий и значение sql_injection_score, которое OWASP CRS устанавливает для правил SQLi.

  • Установите ваш режим на DetectionOnly.
  • Установите ваши значения оценки аномалии очень высокими в
  • Добавить новое правило, которое блокирует, если sql_injection_score выше определенной суммы.

Это может быть достигнуто с помощью дополнительного правила, такого как:

 SecRule tx.sql_injection_score "@gt 1” 
    "id:9999,\
    phase:5,\
    ctl:ruleEngine=on \
    block"

Установка ”@gt 1” на соответствующий порог.

OWASP CRS устанавливает аналогичные переменные и для других категорий.

2) Загружать правила по отдельности и правила до и после включения и выключения механизма правил.

В пределах фазы правила выполняются в указанном порядке. Вы можете использовать это, чтобы иметь конфигурацию, подобную следующей:

SecRuleEngine DetectionOnly
Include rules/other_rules_1.conf
Include rules/other_rules_2.conf
SecAction “id:9000, phase:2, ctl: ctl:ruleEngine=on”
Include rules/sqli_rules.conf
SecAction “id:9001, phase:2, ctl: ctl:ruleEngine=off”
Include rules/other_rules_3.conf
Include rules/other_rules_4.conf

Однако, если категория содержит несколько фаз, вам нужно добавить несколько секций - по одной для каждой используемой фазы.

3) Активируйте нужные вам правила, изменив Действия, чтобы включить включение правила.

Это, вероятно, немного хрупко, поскольку зависит от знания конкретных идентификаторов правил, а также требует проверки действий по правилу или предположения, что они все одинаковы. Наверное, лучше просто отредактировать файлы CRS, если честно.

Вероятно, это лучше, если вы хотите включить только набор правил, а не полную категорию.

4) Отредактируйте файлы, чтобы сделать то же самое, что указано выше.

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

В качестве альтернативы оставьте исходные правила на месте и скопируйте правила, присвоив им новые идентификаторы и добавив действие ctl:ruleEngine=on.

...