Защита сайтов с помощью ModSecurity

Защита сайтов с помощью ModSecurity

05 марта 2016
Практически ежедневно мы сталкиваемся с обнаружением посторонних файлов на сайтах, которые появляются из-за заражения этих сайтов. Заражение зачастую происходит полностью в автоматическом режиме, путем формирования специальных запросов роботами на базе известных уязвимостей в системах управления сайтами или их плагинах.

С целью защиты сайтов мы решили применить технологию защиты сайтов в реальном времени с помощью модуля Apache, который называется ModSecurity.

Защита происходит в реальном времени путем произведения анализа запросов, которые делаются к сайтам. Если запрос не проходит проверку по каким-то причинам, то клиент получает 403 ошибку.

Ранее мы пробовали использовать ModSecurity, но отказались от него по причине большого числа ложных срабатываний. Проблема была в плохих правилах, которые мы использовали на тот момент. Совсем недавно мы узнали о продукте Comodo Web Application Firewallгде большинство правил основаны именно на закрытии известных уязвимостей в популярных системах управления сайтами и их плагинах. На момент публикации статьи, продукт насчитывает 1 103 правила, 669 из которых основаны на закрытии конкретных уязвимостей.

За сутки защита блокирует более 100 000 запросов на сервере с 3 000 сайтами. Если посмотреть на число запросов, то можно предположить, что модуль не только защищает сайты от взлома, но и экономит массу ресурсов процессорного времени и оперативной памяти.

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

Первым дело необходимо найти журнал ошибок в панели управления или по FTP, в нем скорее всего будет присутствовать следующие записи:


Из ошибки нам необходимо извлечь ID правила, в данном случае это 212790. После этого необходимо в файл .htaccess Вашего сайта внести следующую запись:


Бывают ситуации, когда 403 ошибка не пропадает, необходимо вновь посмотреть журнал ошибок, посмотреть, не появились ли новые ошибки и извлечь новые ID, которые также необходимо прописать в файл .htaccess:


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


Теперь немного информации для системных администраторов: продукт абсолютно бесплатный, для его использования необходимо зарегистрироваться на сайте waf.comodo.com.

Модуль отлично работает с панелями управления Cpanel, DirectAdmin и Plesk (устанавливает в них плагины для управления правилами ModSecurity). Есть поддержка Apache, Nginx и LiteSpeed.

Первым делом необходимо установить ModSecurity для Вашего веб сервера. После этого Вам необходимо авторизироваться на сайте waf.comodo.com и скачать файл установки модуля cwaf_client_install.sh. Запустите его, он автоматически определит панель управления и всё установит автоматически. После этого проверьте подключение модуля и конфигурационных файлов для своего веб сервера, на этом установка будет завершена.

Вы можете ознакомиться с краткой документацией и подробной документацией на сайте разработчика модуля.

Единственное, что стоит подметить, управление автоматическим обновлением правил присутствует только в плагине Cpanel, если Вы используете другие панели управления или же не используете панелей управления вообще, то добавьте в CRON задачи следующую запись:


На сервере с DirectAdmin я использовал иное правило, так как стандартное приводило к ошибке обновления:


Данные задачи обновляют правила защиты раз в сутки.