Является ли mod_security хорошей вещью?


9

Недавно меня часто посещали ошибочные сообщения об ошибках от mod_security. Его наборы фильтров покрывают устаревшие эксплойты PHP, и мне приходится переписывать свои материалы, потому что в Wordpress & Co были ошибки много лет назад.

Это случается с кем-то еще?

Apache mod_security блокирует потенциально опасные HTTP-запросы до того, как они достигнут приложений (в частности, PHP). Он использует различные наборы фильтров, в основном на основе регулярных выражений.

Так что у меня хороший провайдер виртуального хостинга, технически подходящий и прочее. Но это заставило меня

Только на прошлой неделе мне пришлось изменить имя параметра &src=в одном из моих приложений, потому что mod_security блокирует ЛЮБЫЕ запросы с этим. Я не просматривал его детали, но это правило фильтра не позволяло использовать другое приложение, которое я не использую и, вероятно, никогда не слышал. Тем не менее, мне пришлось переписать мой код (часто для перехвата mod_security достаточно параметра переименования), который не имел ничего общего или общего с этим!

И сегодня глупые регулярные выражения блокируют представления, потому что я хотел представить пример кода php. Учитывая это, это простая вещь, от которой есть защита mod_security. Но я не верю, что mod_security может обнаружить серьезно запутанный код, и просто уходит в очевидные (и в этом случае совершенно тривиальные) фрагменты php.

По сути, меня наказывает mod_security, потому что другие люди выпускают подверженные ошибкам приложения. (Я не говорю, что мои приложения ультра-безопасны - я довольно осторожен с безопасностью, но не делаю никаких гиперболических заявлений.)
Я уже попросил своего провайдера все равно отключить его, преимущества для IMO слишком малы и для моих приложений.


Что вы думаете? Имеет ли смысл mod_security вне хостинга WP? Или это действительно куча черных списков давно пройденных ошибок безопасности? Какие из его правил на самом деле полезны? Есть ли эквивалент уровня приложения?


1
Такое представление PHP-кода глупо, потому что даже печать строки с <?php doBadStuff(); ?>не запускает эту функцию. (Если вы, evalконечно, не используете, что в любом случае является злом.)
DisgruntledGoat

@DisgruntledGoat: Или, может быть, я снова был слишком сварливым только из-за двух ложных срабатываний. В конце концов, mod_security похож на антивирусный сканер, который все еще хранит вирусные сигнатуры MS-DOS. В основном бесполезно, но ловит сканер случайных эксплойтов и случайные потенциальные неприятности ()? Или так:}
Марио

Ответы:


3

Я лично вижу mod_security как патч. Я использую его на некоторых наших серверах, где мы не можем контролировать загруженный код (например, серверы общего хостинга), но это никогда не казалось мне хорошим решением. Основанный на широком и очень общем подходе к черному списку, это скорее патч, чтобы скрыть дыры в безопасности, чем хорошая политика безопасности.

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

Я нашел гораздо лучшую политику для управляемых серверов, где моя команда просматривает весь код, размещенный на них, в сочетании с большим количеством журналов, анализом файлов журналов, системами отчетов и системами обнаружения / предотвращения вторжений (IPS). Каждый раз, когда устанавливается стороннее программное обеспечение или программное обеспечение с открытым исходным кодом (я смотрю на вас , WordPress!), Мы ведем журнал того, где оно было установлено, и когда выпускаются новые версии, мы обновляем каждую установленную копию.

Опять же, вы, скорее всего, найдете mod_security на сервере общего хостинга, как сейчас. По мере роста вы можете переходить на VPS или хостинг-провайдера, где вы получаете собственную управляемую среду и можете более жестко контролировать доступное программное обеспечение.


Вот каково это для меня. Для обеспечения безопасности общих учетных записей хостинга suexec + fastcgi обычно более применим. На VPS и со всем пользовательским кодом mod_security помогает редко (хотя и выполняет несколько проверок на соответствие HTTP). +1 комплексные журналы.
Марио

0

На мой взгляд, если вы новичок в программировании, то mod_security - хорошая идея, но если вы потратите время на правильное написание своих приложений и избежите написания небезопасного кода, использующего eval или сцепленные строки GET непосредственно в SQL, вы должны быть в порядке без Это. mod_security никогда не остановит серьезных хакеров, и если у вас есть хорошее приложение, детишки скрипта сдадутся и перейдут к следующему действительно слабому и небезопасному приложению.


Способ не объяснить ваш
отрицательный
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.