Implementação do WAF no Portal Duratex e Clube Duratex
Esta página é dedicada à documentação da implementação do Web Application Firewall (WAF) nos sites Portal Duratex e Clube Duratex. O objetivo desta documentação é fornecer um entendimento claro do processo de instalação, configuração e operacionalização do WAF, garantindo que todas as equipes envolvidas tenham as informações necessárias para a manutenção e monitoramento contínuo da segurança do site.
Conteúdo Principal:
Escolha da Solução WAF:
Os sites do Portal Duratex e Clube Duratex não tinham nenhuma proteção contra explorações de segurança comuns. O Web Application Firewall-WAF é a solução básica para segurança de qualquer site na web atualmente. Usamos o AWS como solução de nuvem, por isso foi escolhido o produto AWS-WAF.
As regras do AWS WAF ajudam a proteger contra bots mal-intencionados, injeção de SQL, scripts entre sites (XSS), floods de HTTP (Ataques de negação de serviço distribuída-DDoS) e outros ataques conhecidos.
Processo de Implementação:
A implementação ficou a cargo da equipe de infraestrutura.
Como já existia WAFs configurados para uso no AWS Dexco, a implementação envolveu apenas a habilitação deles pelo console do AWS nos serviços dos sites.
Nos testes identificamos a necessidade de ajustes em regras, causado pelo mal desenvolvimento de nossos sites.
Um dos exemplos é o uso indiscriminado da função file_get_contents do PHP para buscar imagens, o que ocasiona várias requisições HTTP do servidor para ele mesmo. Esse número grande de requisições fazia com que a nossa regra de rate-limit bloqueasse acesso as imagens do site. Resolvemos o problema liberando os IPs dos sites da regra de rate-limit.
Regras e Políticas do WAF:
Geolocation-Block : Bloqueia o acesso aos sites dos IPs que tenham como origem os países configurados na regra. Tem como objetivo bloquear o acesso de usuários de países indesejados ou que não se tenha interesse o acesso nossos sites.
Dexco-Blacklist: Bloqueia o acesso aos sites dos IPs configurados na regra. Tem como objetivo bloquear o acesso de usuários suspeitos ou que já tenham cometidos ataques aos sites.
RateLimit-Block: Bloqueia os endereços IP que estão enviando solicitações acima do limite definido e atualizará as regras do AWS WAF para bloquear automaticamente as solicitações subsequentes desses endereços IP. Tem como objetivo impedir que os servidores dos sites sejam afetados por ataques de negação de serviço distribuída (DDoS), comumente chamados de floods de HTTP
AWSManagedRulesAdminProtectionRuleSet: Bloqueia o acesso externo a páginas administrativas. O objetivo é reduzir o risco de um agente mal-intencionado obter acesso administrativo ao aplicativo.
AWSManagedRulesAmazonIpReputationList: Usa a lista de reputação de IP da Amazon que contém regras baseadas na inteligência de ameaças internas da Amazon para bloquear endereços IP normalmente associados a bots ou outras ameaças. O objetivo é bloquear esses endereços IP, ajudando a diminuir bots e reduzir o risco de um agente mal-intencionado descobrir um aplicativo vulnerável.
AWSManagedRulesAnonymousIpList: Bloqueia solicitações de serviços que permitem a ofuscação da identidade do espectador. Isso inclui solicitações de VPNs, proxies, nós Tor e provedores de hospedagem na web. É util para filtrar visualizadores que podem estar tentando ocultar a identidade do seu aplicativo.
AWSManagedRulesKnownBadInputsRuleSet: Bloqueia padrões de solicitação conhecidos como inválidos e associados à exploração ou à descoberta de vulnerabilidades. Ajuda a reduzir o risco de um agente mal-intencionado descobrir um aplicativo vulnerável.
AWSManagedRulesLinuxRuleSet: Bloqueia padrões de solicitação associados à exploração de vulnerabilidades específicas do Linux, incluindo ataques de inclusão local de arquivos (LFI) específicos do Linux. O objetivo é evitar ataques que exponham o conteúdo do arquivo ou executem códigos aos quais o invasor não deveria ter acesso.
AWSManagedRulesPHPRuleSet: Bloqueia padrões de solicitação associados à exploração de vulnerabilidades específicas para o uso da linguagem de programação PHP, incluindo injeção de funções PHP não seguras. Ajuda a evitar a exploração de vulnerabilidades que permitem que um invasor execute remotamente códigos ou comandos para os quais não está autorizado
AWSManagedRulesSQLiRuleSet: Bloqueia padrões de solicitação associados à exploração de bancos de dados SQL, como ataques de injeção SQL. Isso pode ajudar a evitar a injeção remota de consultas não autorizadas. Avalie esse grupo de regras para uso se o aplicativo fizer interface com um banco de dados SQL.
AWSManagedRulesWordPressRuleSet: Bloqueia padrões de solicitação associados à exploração de vulnerabilidades específicas dos WordPress sites. Protege os sites na plataforma WordPress de ataques.
Monitoramento e Manutenção:
O monitoramento é feito de forma automática pela a AWS e as respostas a incidentes das regras são feitos com bloqueio do acesso.
Testes e Calibragem:
Os testes e a calibragem para minimizar falsos positivos são feitas pela própria AWS.
Documentação de Suporte e Referências:
https://owasp.org/www-community/Web_Application_Firewall
https://owasp.org/www-pdf-archive/Best_Practices_WAF_v105.en.pdf
https://docs.aws.amazon.com/pt_br/waf/latest/developerguide/aws-managed-rule-groups-baseline.html
https://docs.aws.amazon.com/pt_br/waf/latest/developerguide/aws-managed-rule-groups-ip-rep.html
https://docs.aws.amazon.com/pt_br/waf/latest/developerguide/aws-managed-rule-groups-use-case.html
Papel das Equipes Envolvidas:
Segurança - Definir as regras.
Desenvolvimento – Verificar a necessidade do uso.
Operações - Criar, configurar e modificar.
Histórico de Alterações e Versões:
Habilitação de WAFs no serviços do clube - 08/2023 a 12/2023
Conclusão: A segurança dos nossos sites é uma prioridade inegociável. A implementação do WAF é um passo significativo para fortalecer nossa postura de segurança, assegurando a confiabilidade e a confiança de nossos usuários e parceiros.