mod_security, защита сервера
19 Март 2010 – 21:55Сегодня речь пойдет о mod_security и защите web-сервера Apache. Как известно защищенность сервера зависит от выполняемых на нем сценариев и программистов, которые пишут эти скрипты. Но есть возможность защитить сервер вне зависимости от всех этих факторов, решение проблемы — mod_security, бесплатный модуль для Apache. Принцип действия схож с сетевым экраном, который встроен в ОС, только в данном случае он специально разработан для обеспечения взаимодействия по протоколу HTTP. Mod_security на основе правил, которые задает администратор, анализирует запросы пользователей к серверу и выносит свое решение о возможности пропустить пакет к web-серверу.
В правилах указываем, что является допустимым в запросе, а что придется отфильтровать. Как можно сформулировать правило для модуля с точки зрения безопасности системы? Если для сервера опасно обращение к какому либо файлу, значит, его не должно быть в URL. Mod_security проверяет на основе заданных фильтров адрес URL, и если он нарушает правила, то запрос отклоняется.
Пример использования mod_security:
SecFilter Engine on - включаем модуль
SecFilterCheckURLEncoding On - проверять кодировку URL
SecFiIterForceByteRange 32 126 - диапазон допустимых символов
SecAuditLog var/mod_security/log - логи модуля
SecFilterDefaultAction "deny,log,status:406" - действие по умолчанию (deny)
SecFilter /bin/cp - для запрета обращения к командам
SecFilter " \. \. /" - для запрета перехода в родительскую директорию
SecFilter "delete [[: space:]] +from" - обнаруживаем SQL injection
SecFilter "<(.|\п)+>" И SecFilter "<[[:space:]]*script" - в защите от XSS-атак нам поможет этот фильтр.
SecFilter ууу log,exec:/home/user/www/detected.php - при обнаружении атаки можно запустить скрипт
Скачать mod_security можно здесь.

