ModSecurity: o que é? Por que é importante?
Ter um site, ou um blog, ou qualquer tipo de aplicação web, é atualmente fácil e está ao alcance de todos. Mas se por um lado há muitas opções e facilidades, há também as preocupações e cuidados para manter esse site. Entre todas as recomendações que existem associadas a manutenção de um site, uma delas é quase unânime e que é a instalação e ativação do ModSecurity. Mas você sabe o que é o ModSecurity? Por que é importante ativar o ModSecurity?
O que é ModSecurity?
Uma das principais, se não a maior medida que alguém deve adotar em relação ao seu site, é o aspecto da segurança. Entre as muitas opções que existem, uma destaca-se e tem defensores e adeptos espalhados pelos quatro cantos – o ModSecurity.
O ModSecurity é um aplicativo de firewall ou WAF (Wev Application Firewall) destinado a atuar sobre aplicações web, Open Source (código aberto) e que pode ser utilizado nos principais servidores web (Web Servers) atualmente utilizados: Apache, Nginx, LiteSpeed e IIS.
Um firewall de aplicações Web, tem como função criar uma camada de segurança adicional, que realiza filtragens nas instruções HTTP, detectando e impedindo ações maliciosas ou inseguras para o ambiente no qual está instalado e operando.
Especificamente quando tratamos do ModSecurity, ele consiste de um módulo do serviço HTTP e como tal, tudo que transita pelo protocolo, é submetido aos filtros que dele constam. Estes filtros nada mais são do que regras lógicas e que a partir do resultado da regra (TRUE ou FALSE, verdadeiro ou falso), ocorre a liberação ou bloqueio da execução correspondente.
Também conhecido simplesmente como ModSec, ele protege aplicações web de ataques de várias naturezas, como PHP ou ASP Injection, Cross-Site Scripting (XSS), SQL Injection, Command Injection, entre outras técnicas que visam obter algum tipo de controle sobre a aplicação ou sobre o ambiente no qual ela é executada / hospedada.
Por que é importante o ModSecurity?
Neste ponto e após uma breve explicação do que é o ModSecurity, deveria estar claro porque é importante ter instalado e habilitado o ModSecurity na sua conta de hospedagem compartilhada, ou no seu VPS ou mesmo no seu servidor dedicado.
Mas nem sempre as pessoas têm o conhecimento e/ou a percepção de como as coisas acontecem na Internet, bem como as razões para tudo o que se deve fazer. Muitos podem perguntar coisas como: “Ele vai proteger meu site contra o que?”, ou “Mas e seu eu não tiver ou não habilitar o ModSec?”, ou ainda “Meu site nunca foi invadido. Preciso usar?”
Da mesma forma como acontece no mundo físico ou real, na Internet não existe algum site ou sistema ou aplicação, 100% seguros ou impenetráveis ou intransponíveis. Há os que exigem mais trabalho ou que têm menos falhas de segurança e há os que requerem menos trabalho e têm mais vulnerabilidades.
Analogamente, se você esquece de trancar o seu carro e ativar o alarme, é possível que quando você retornar, nada tenha acontecido. Com um site ou aplicação web, é o mesmo. Nunca ter havido um problema relacionado com segurança no site, não é sinônimo de que seu site é seguro. Apenas teve a sorte de que alguém mal intencionado, não notou que o carro estava destrancado e sem alarme!
Um site é atacado ou invadido por um hacker (na verdade um cracker!), com objetivos diversos, que podem ser a instalação de um script para envio de SPAM, fazer o upload de um site falso destinado a phishing, ou apenas vandalismo virtual. Seja qual for a intenção, não é provável que você deseje que isso aconteça.
Se por acaso seu site ou blog é vítima de uma invasão, objetivando envio de SPAM ou phishing, é bastante provável que você tenha o seu endereço IP incluído em uma blacklist. Tanto pior para você e para uma série de outros sites, se você utiliza um plano de hospedagem compartilhada e não tem um IP dedicado, pois neste caso, todos os usuários que compartilham o servidor terão sérios problemas para enviar e-mail, sem contar a possível lentidão durante os envios dos e-mails maliciosos.
Essa é uma perspectiva real e que não é rara de ocorrer. Usuários que negligenciam ou apenas desconhecem questões de segurança, cedo ou tarde sofrerão consequências, mais ou menos graves.
Deve-se destacar que instalar e habilitar o ModSec na sua plataforma de hospedagem de site, não vai garantir que nada aconteça ao site, porém os índices de detecção e bloqueio de ameaças do ModSec, são razoavelmente bons e frearão boa parte das ameaças, pelo menos as mais conhecidas e exploradas.
Uma vez que você esteja ciente da importância de ter instalado e habilitado o ModSec em sua conta de hospedagem, você deve estar perguntando-se como utilizar. Vamos a isso!
Como utilizar?
O primeiro passo para poder utilizar o ModSecurity, é tê-lo instalado no seu ambiente de hospedagem, seja ele um plano de hospedagem compartilhada ou um servidor dedicado.
É importante destacar dois pontos. O primeiro, é que não focaremos na instalação, visto que há particularidades de acordo com os sistemas que você tem instalados e, portanto, há passos diferentes caso a caso. O segundo, é que nosso foco é orientado aos usuários de servidores Linux, mais propriamente os que têm ao seu dispor o painel de controle cPanel e que representa o maior número de situações possíveis.
A utilização propriamente dita, é muito simples e literalmente limita-se a um clique de mouse. Em boa parte das boas empresas de hospedagem, ele vem instalado por padrão e nada – além de beneficiar-se da segurança oferecida – precisa ser feito. Assim é na HostMídia.
Porém se eventualmente houver problemas com algum recurso do seu site, que deve exibir uma mensagem de erro “403 – Forbidden - You don't have permission to access / on this server”, então você está diante do ModSecurity do Apache em ação.
Quando uma mensagem como a que consta acima é exibida ao se acessar uma página específica – ou várias – do site ou algum recurso, é porque a página ou recurso, está tentando executar uma ação insegura ou que oferece risco ao site ou ao ambiente no qual ele está hospedado. É assim que age o ModSec, bloqueando e impedindo que a ação insegura seja executada.
Diante de algo igual, sabe-se que há problemas de segurança, os quais se confirmaram pelas regras / filtros existentes no ModSecurity. Para que o problema associado possa ser corrigido, o ModSecurity registra em logs as transações sobre o HTTP que resultaram no bloqueio, de forma que o desenvolvedor ou o programador possa efetuar as correções necessárias.
Nos casos em que não houver um programador ou alguém tecnicamente habilitado a corrigir o problema, como por exemplo, nos casos em que se utiliza um CMS, deve-se buscar junto aos responsáveis pelo CMS, possíveis atualizações relativas ao problema.
Em alguns casos também, o problema pode estar associado a algum plugin que se utilize. Assim como no caso do núcleo da aplicação, busque atualizações que corrijam o problema. Não havendo, recomenda-se que se desabilite o plugin responsável pelo erro.
Ainda é possível desabilitar o ModSecurity, diretamente no cPanel, com apenas um clique, nos casos em que a solução para a falha de programação não puder ser aplicada imediatamente, inviabilizando o acesso ao recurso ou mesmo ao site. Todavia, deve-se ter em mente que ao adotar esta alternativa, o site estará vulnerável a todas as situações que o ModSec previne.
Por fim, há alguns casos de hostings nos quais é possível desabilitar apenas a regra do ModSec que está bloqueando a página ou recurso, apenas para seu usuário do cPanel. Nesta alternativa, todas as demais regras continuam ativas e “trabalhando” pela segurança do site, bem como todos os demais usuários do servidor compartilhado continuam protegidos por todas as regras, incluindo a que foi desabilitada. Porém poucos hostings fazem isso, entre eles, a HostMídia.
Conclusão
O ModSecurity é um módulo do Apache e que também pode ser habilitado em outros servidores web, cujo papel é identificar ações maliciosas ou inseguras sobre o protocolo HTTP, usando para isso um conjunto de regras / filtros. Por meio do monitoramento em tempo real das transações HTTP, ele efetua o bloqueio de tudo o que pode oferecer risco ao ambiente de hospedagem e que está previsto nas regras.