Refinamos a solução várias vezes: estudamos melhor os vetores de ataque e o comportamento dos atacantes, adicionamos e configuramos novas defesas e melhoramos as regras de interação com o cliente. Contarei como nosso serviço se desenvolveu com base no FortiWeb e o que você precisa cuidar para proteger sua aplicação web.
Histórico de serviço
Para nossos próprios sites, certa vez escolhemos o FortiWeb da Fortinet, já conhecíamos as complexidades de trabalhar com ele. Diante dos meus olhos estava a experiência WAF como serviço na nuvem na Fortinet.
No Ocidente, o modelo de autoatendimento é muito difundido para WAF. O cliente recebe uma instância dedicada para autoconfiguração na nuvem desejada (AWS, Azure e GCP), é claro, não na Federação Russa. Este modelo tem suas próprias dificuldades:
- Um especialista em segurança da informação do lado do cliente deve compreender profundamente os recursos de segurança dos aplicativos da web.
- Um especialista de cliente precisa conhecer os recursos e configurações de um WAF específico para criar perfis de proteção. De forma amigável, trabalhar com WAF requer um engenheiro separado para fazer alterações constantes nas configurações.
- Ele precisa interagir constantemente com os desenvolvedores do site e decidir quais vulnerabilidades fechar no WAF, quais corrigir no próprio código. Mesmo assim, o WAF é uma medida compensatória e alguns problemas são mais bem tratados no nível de desenvolvimento .
Grandes empresas com uma grande equipe podem lidar com esses três pontos. Queríamos levar em consideração as solicitações de empresas menores. A estes clientes foi oferecido um serviço chave na mão gerido pelos nossos engenheiros. Eles começaram a coletar isso das questões de arquitetura.
O serviço foi colocado em uma nuvem compatível com PCI DSS. Este certificado é importante para sites que trabalham com dados de pagamento: varejistas, provedores de serviços, empresas de processamento.
O serviço WAF também entrou no escopo PCI DSS.
A tolerância a falhas de serviço foi considerada separadamente. Para FortiWeb, o fornecedor oferece várias opções de cluster. Testamos diferentes métodos de sincronização de sessão e optamos pelo modo Active Backup: uma máquina virtual FortiWeb continua sendo a principal e deixa parte do tráfego para a segunda. Nesse caso, quando um nó cai, o serviço fica indisponível por mais de 10 segundos. Configurei a localização das máquinas para que sempre subam em hosts diferentes.
Em seguida, resolvemos o problema com a separação de clientes na nuvem. FortiWeb não suporta multilocação: não podemos segmentar WAF em domínios, como fizemoscom nosso NGFW-as-a-Service desenvolvido por FortiGate. O que resta é a separação política. Se deixarmos essas políticas à mercê dos clientes, corremos o risco de influenciar nossos vizinhos. Portanto, nossos engenheiros de SI responsáveis pelo serviço criam sites de clientes para o WAF e monitoram as configurações do serviço. E para os clientes, fornecemos uma ferramenta separada com relatórios e estatísticas.
Portanto, o serviço em si não se limitou apenas a WAF, adicionamos a ele:
- Scanner de vulnerabilidade Qualys,
- Proteção DDoS do Qrator,
- ELK para coleta de estatísticas, visualização e análise de dados.
Vou falar um pouco mais sobre cada componente.
Nós examinamos sites em busca de vulnerabilidades
Para pesquisar vulnerabilidades no código dos sites, adicionamos o Qualys - solução para escanear e analisar a segurança de aplicativos web. Já tínhamos implantado um serviço de varredura de vulnerabilidades separado, faltava apenas configurá-lo para funcionar em conjunto com o WAF.
Na primeira vez, iniciamos o scanner antes de configurar o site para WAF e enviamos o relatório aos desenvolvedores do aplicativo. Só depois disso fechamos as vulnerabilidades no WAF que não podem ser eliminadas no nível do código.
Em seguida, configuramos uma varredura mensal e enviamos um relatório ao cliente. E para o futuro, estamos testando um esquema em que o relatório será enviado diretamente para o FortiWeb.
Compreender a limpeza do trânsito
O FortiWeb protege bem contra ataques da camada de aplicativos, por exemplo: se um aplicativo da web for atacado com um grande número de solicitações GET, a proteção DoS no WAF ajudará. Mas, além disso, você precisa de uma solução separada para ataques DDoS abaixo do nível, por exemplo, SYN-flood. Alguns clientes têm seu próprio anti-DDoS, que integramos com nosso serviço WAF. Mas este é um caso bastante especial.
Para os demais casos, o serviço conta com Qrator.Ingress - solução para proteção de infraestrutura contra ataques DDoS. Ele protege o link L2 a L4, analisa e limpa o tráfego.
Criamos interfaces de 10 Gigabit com Qrator para enviar tráfego já limpo para WAF em um canal seguro. O esquema de serviço agora se parece com este:
A infraestrutura do cliente pode residir em qualquer lugar, em qualquer hospedagem. Após configurar um site para WAF, apenas o tráfego verificado pelo serviço é enviado para este hosting. Aqui está um diagrama simplificado de como funciona:
- Temos uma sub-rede "branca" que anunciamos no canal com o Qrator.
- Alocamos 1 novo endereço IP para o cliente desta sub-rede.
- No WAF, criamos políticas de servidor e políticas de roteamento de conteúdo HTTP para o site, adicionamos nomes de domínio e indicamos para onde enviá-los.
- O FortiWEB encerra conexões TLS nele mesmo, então carregamos uma cadeia de certificados nele.
- Em seguida, pedimos ao cliente para alterar o registro DNS do site e especificar o endereço IP da rede Qrator para os nomes de domínio necessários.
Qual é o resultado final? Quando um usuário inicia um navegador e acessa um recurso protegido por WAF, seu tráfego DNS é primeiro roteado para os centros de limpeza no Qrator. Em seguida, o tráfego vai para WAF por meio do canal seguro. E somente após a verificação, o usuário obtém acesso ao servidor web do cliente. Veja o caminho completo:
Mas mesmo que o site seja iniciado para WAF, isso não significa que ele esteja protegido. Você precisa configurar o Web Protection Profile - um conjunto de regras e configurações de proteção para o site. Isso é feito separadamente para cada cliente.
A situação dos ataques é tal que você não pode configurar um perfil uma vez e não pode esquecê-lo. Por isso, analisamos a situação de cada site e melhoramos a proteção: adicionamos novos mecanismos de segurança, ajustamos o perfil para que não haja falsos positivos. Para a configuração inicial, usamos as informações que recebemos do scanner de vulnerabilidade Qualys.
Trabalhando em equipe: estudando ataques com um cliente
A administração do serviço por nossos engenheiros inclui a definição de políticas e, se necessário, o bloqueio manual de ataques. Esta é a responsabilidade dos especialistas da FortiWeb que entendem as nuances da proteção de sites. Mas, ao mesmo tempo, nossos engenheiros não podem conhecer toda a lógica do aplicativo cliente. Se bloquearmos imediatamente qualquer atividade suspeita, podemos bloquear acidentalmente um usuário legítimo. Por isso, trabalhamos em conjunto com os especialistas do cliente e desenvolvemos uma estratégia conjunta para repelir ataques.
Entre os clientes estão empresas sem grandes departamentos de TI e segurança da informação. O desenvolvimento de aplicativos para eles geralmente é feito por terceiros, por isso leva algum tempo para corrigir as vulnerabilidades no código. No WAF, você pode oferecer soluções alternativas e neutralizar rapidamente os ataques que surgiram. Neste caso, desenvolvemos regulamentos e prescrevemos quando considerar a situação crítica e agir imediatamente, e quando combinar bloqueios com o cliente.
O monitoramento em conjunto com ELK nos ajuda a rastrear situações críticas. Da última vez já falamos sobre como funciona tecnicamente. ELK nos permite gerenciar informações de segurança sem adicionar um sistema caro de SIEM (gerenciamento de informações e eventos de segurança) ao serviço.
No monitoramento, configuramos alertas para resposta imediata. A primeira linha de suporte funciona 24 horas por dia, após a notificação avalia imediatamente a situação de acordo com a regulamentação e atua em seu próprio nível, ou transfere o incidente para os engenheiros de segurança.
Se o próprio cliente estiver pronto para monitorar o trabalho do WAF, fornecemos a ele acesso ao sistema de análise baseado em ELK. Nesta solução, configuramos permissões para índices específicos. O cliente gerenciará análises e relatórios sem influenciar o próprio WAF.
Qual é o resultado e como ele se desenvolverá posteriormente
Como resultado, temos uma solução abrangente para proteger aplicativos da web. Além da proteção usando WAF, podemos configurar balanceamento de servidores web, caching, redirecionamentos e, assim, offload do site principal.
Para o futuro, fornecemos uma margem de escala. Para balanceamento, vamos conectar o FortiADC - um controlador para entrega de aplicativos e balanceamento de carga em sistemas de alto desempenho. Ele suporta o descarregamento de SSL de servidores e aumenta o desempenho de aplicativos da web.
O serviço é cobrado com base na largura de banda e é adequado para sites não muito pesados. Se o cliente possui gigabits de tráfego, oferecemos não um serviço de nuvem, mas uma solução privada. Para tornar o serviço transparente para os clientes, planejamos exibir os dados WAF em suas contas pessoais.
Caso tenha interesse em conhecer os detalhes, terei o maior prazer em responder suas perguntas nos comentários. Ou inscreva -se no seminário WAF em 26 de novembro - haverá a oportunidade de fazer perguntas não apenas para nós, mas também para os especialistas técnicos da Qualys, Fortinet e Qrator.