ti-enxame.com

O mod_security é uma coisa boa?

Recentemente, fui freqüentado por mensagens de erro errôneas do mod_security. Seus conjuntos de filtros cobrem exploits desatualizados PHP, e eu tenho que reescrever minhas coisas porque o Wordpress & Co tinha bugs anos atrás.

Isso acontece com mais alguém?

O Apache mod_security bloqueia solicitações HTTP possivelmente perigosas antes que elas atinjam os aplicativos (PHP especificamente). Ele usa vários conjuntos de filtros, principalmente baseados em regex.

Então eu tenho um bom provedor de hospedagem compartilhada, tecnicamente apto e outras coisas. Mas isso me incomodou:

Na semana passada, tive que alterar um nome de parâmetro &src= em um dos meus aplicativos porque o mod_security bloqueia QUALQUER solicitação com isso. Não pesquisei seus detalhes, mas essa regra de filtro estava impedindo a exploração de outro aplicativo que não uso e provavelmente nunca tinha ouvido falar. Ainda assim, tive que reescrever meu código (renomear o parâmetro muitas vezes é suficiente para enganar o mod_security) que não tinha nada a ver ou em comum com isso!

E hoje, um regex bobo bloqueia os envios de formulários, porque eu queria enviar um código de amostra php. Dado, essas são as coisas simples contra as quais o mod_security existe para se proteger. Mas eu não acredito que o mod_security possa detectar código seriamente ofuscado, e apenas dispara em trechos de php óbvios (e neste caso totalmente triviais).

Basicamente, estou sendo penalizado pelo mod_security porque outras pessoas lançaram aplicativos sujeitos a bugs. (Não estou dizendo que meus aplicativos são ultrasseguros - sou bastante cauteloso em relação à segurança, mas não faço alegações hiperbólicas.)
Eu já pedi ao meu provedor para desabilitá-lo mesmo assim, os benefícios são muito minúsculos IMO e para meus aplicativos.


O que você acha? O mod_security faz muito sentido fora de WP hosting? Ou é realmente apenas um monte de listas negras de bugs de segurança passados ​​há muito tempo? Quais de suas regras são realmente úteis? Existe um nível de aplicativo equivalente?

9
mario

Eu pessoalmente vejo o mod_security como um patch. Eu o uso em alguns de nossos servidores onde não podemos controlar o código que é carregado (servidores de hospedagem compartilhada, por exemplo), mas nunca pareceu uma boa solução para mim. Com base em sua abordagem ampla e geral de lista negra, é mais um patch para cobrir brechas de segurança do que uma boa política de segurança.

Também pode fornecer uma falsa sensação de segurança. O mod_security pode revelar alguns ataques comuns, mas de forma alguma pode impedir qualquer ataque. Novamente, é uma lista negra de ataques conhecidos comuns. Se você simplesmente instalar o mod_security e achar que está seguro como um passe de mágica, está terrivelmente enganado.

Eu encontrei uma política muito melhor para os servidores gerenciados onde minha equipe revisa todo o código que é colocado neles, combinado com muitos logs, análise de logfile, sistemas de relatório e sistemas de detecção/prevenção de intrusão (IPS). Sempre que software de terceiros ou de código aberto é instalado (estou olhando para você, WordPress!), Mantemos um registro de onde ele foi instalado e, quando novas versões são lançadas, atualizamos todas as cópias que foi instalado.

Novamente, é mais provável que você encontre o mod_security em um servidor de hospedagem compartilhada, como está experimentando agora. Conforme você cresce, você pode mudar para um provedor de hospedagem baseado em VPS ou clod, onde obtém seu próprio ambiente gerenciado e pode controlar de forma mais rígida o software disponível.

3
Josh

Na minha opinião, se você é um novato em programação, mod_security é uma boa ideia, mas se você dedicar um tempo para escrever seus aplicativos corretamente e evitar escrever código inseguro que usa eval ou concatenar strings GET diretamente em SQL, você deve ficar bem sem isto. O mod_security nunca impedirá os hackers sérios e, se você tiver um bom aplicativo, os script kiddies desistirão e seguirão para o próximo aplicativo realmente fraco e inseguro que existe.

0
Brandon Wamboldt