A batalha contra os ataques DDoS continua evoluindo. No relatório de tendências de ataques DDoS de 2023, a F5 Labs analisou dados recentes de três anos sobre ataques de negação de serviço distribuída (DDoS) e constatou que, embora os invasores ainda usem ataques DDoS multivetoriais complexos, eles também passaram a lançar mais ataques exclusivamente na camada de aplicação (camada 7). Somente em 2022, a prevalência de ataques de camada 7 cresceu 165%.

Normalmente, os invasores seguem o caminho mais fácil para atingir seu objetivo, seja impedir o funcionamento de um site ou extorquir um alvo. Esse aumento nos ataques de camada 7 pode indicar que está se tornando mais difícil lançar um ataque DDoS usando apenas uma estratégia volumétrica ou de protocolo e que os ataques à camada de aplicação estão se mostrando mais eficazes.
Protegendo aplicações modernas com eBF e XDP
Ao proteger suas aplicações contra ataques DDoS, é importante aproveitar os avanços tecnológicos sempre que possível para maximizar as chances de mantê-las disponíveis (e seus usuários satisfeitos). Embora a tecnologia Filtro de Pacotes Berkeley Estendido (eBPF) com Caminho de Dados Expresso (XDP) exista desde 2014, sua popularidade vem crescendo rapidamente entre as comunidades de desenvolvedores, SRE e operações devido à crescente adoção de microsserviços e arquiteturas nativas da nuvem.
eBPF
O eBPF é uma máquina virtual (VM) da camada de enlace de dados no kernel do Linux que permite aos usuários executar programas com segurança e eficiência. Ele também amplia os recursos do kernel em tempo de execução, sem alterar o código-fonte do kernel nem adicionar módulos extras. O eBPF é acionado por eventos — ele detecta atividades específicas em um host Linux e executa ações específicas. Essa tecnologia oferece visibilidade de toda a pilha de aplicativos e serviços de aplicativos, com a capacidade de rastrear a conectividade e as transações entre microsserviços e usuários finais. A variedade de dados disponíveis é bastante ampla. Ela permite atender a necessidades críticas de observabilidade, analisar o gerenciamento do tráfego de rede e as necessidades de segurança em tempo de execução, além de aproveitar seu design essencialmente eficiente para reduzir os custos de computação.
Confira o vídeo “O que é eBPF?” da F5 DevCentral para ter uma visão geral rápida da tecnologia eBPF.
XDP
O XDP oferece o benefício de uma rede de alto desempenho. Ele permite que programas no espaço do usuário leiam e gravem diretamente os dados dos pacotes de rede e decidam como processar um pacote antes que ele chegue ao nível do kernel. Essa tecnologia permite que os desenvolvedores anexem um programa eBPF a um hook de baixo nível, implementado pelo driver do dispositivo de rede no kernel do Linux.
Como o NGINX App Protect DoS usa o eBPF?
NGINX App Protect DoS é uma solução avançada de mitigação de DDoS na camada 7, baseada em comportamento, que é executada no NGINX Plus e no NGINX Ingress Controller para proteger aplicações HTTP e HTTP/2 contra ataques como Slowloris e HTTP Flood. Em resumo, o NGINX App Protect DoS protege contra ataques na camada de aplicação que soluções simples de DDoS de rede não conseguem detectar.

Quando usado com o NGINX App Protect DoS, o eBPF oferece a possibilidade de aumentar significativamente a capacidade de absorção de ataques DDoS. O NGINX App Protect DoS usa o eBPF (que não está disponível no próprio NGINX Ingress Controller) como parte de uma solução multicamadas que acelera o desempenho da mitigação ao bloquear o tráfego de agentes mal-intencionados, identificados pelo endereço IP de origem, isoladamente ou em conjunto com a impressão digital TLS.
Agora, vamos analisar os mecanismos básicos de funcionamento do NGINX App Protect DoS em três fases: detecção de anomalias, criação dinâmica de regras e aprendizado adaptativo, e aplicação de regras.
Detecção de anomalias
O NGINX App Protect DoS monitora continuamente seu aplicativo protegido e usa aprendizado de máquina para criar um modelo estatístico do site com base no comportamento do aplicativo e dos clientes. Ele observa o tráfego em tempo real e acompanha mais de 300 métricas de solicitações HTTP para criar uma linha de base abrangente e constantemente atualizada da atividade e do desempenho. Além de monitorar passivamente o tráfego do aplicativo, o NGINX App Protect DoS também realiza verificações ativas da integridade do aplicativo e monitora métricas como tempos de resposta e solicitações descartadas.
Quando a aplicação sofre um ataque DDoS de camada 7, os tempos de resposta da aplicação (ou as taxas de erro) se desviam do modelo aprendido, acionando o sistema de proteção da aplicação.
Criação dinâmica de regras e aprendizado adaptativo
Após a detecção de uma anomalia, o NGINX App Protect DoS cria regras dinamicamente para identificar e bloquear o tráfego malicioso. Com o objetivo de permitir que usuários legítimos acessem a aplicação e, ao mesmo tempo, bloquear invasores mal-intencionados, ele cria um panorama estatístico do comportamento dos clientes para identificar quais usuários estão ou não contribuindo para o ataque.
Além de implantar assinaturas dinâmicas para bloquear ataques, o NGINX App Protect DoS mede continuamente a eficácia da mitigação e aplica aprendizado adaptativo para oferecer constantemente uma segurança robusta às aplicações e bloquear ataques de dia zero. Depois que os clientes e as solicitações responsáveis por um ataque são identificados, ele cria uma regra para bloquear esse tráfego.
NGINX App Protect DoS implementa uma estratégia de defesa em várias camadas que inclui:
- Bloqueio de agentes mal-intencionados com base no endereço IP ou na impressão digital TLS
- Bloqueio de solicitações maliciosas com assinaturas de ataque
- Aplicação de limitação global de taxa
Essas três medidas de mitigação são aplicadas de forma incremental para garantir que os invasores sejam bloqueados tanto quanto possível, sem afetar os usuários legítimos. No entanto, a maior parte da atividade de bloqueio costuma ocorrer na fase inicial, que combina o bloqueio por endereço IP e impressão digital TLS, ou na fase de bloqueio apenas por endereço IP. Felizmente, esses são exatamente os tipos de regras que podem ser aplicados de forma eficaz por um programa eBPF.
Aplicação de regras
O NGINX App Protect DoS usa as regras criadas e as aplica ao tráfego de entrada da aplicação para bloquear solicitações maliciosas. Como todo o tráfego da aplicação é encaminhado por proxy para a aplicação de backend (ou upstream) pelo proxy NGINX Plus, todas as solicitações que correspondem às regras de bloqueio são simplesmente descartadas e não são encaminhadas para a aplicação de backend.
Embora o NGINX Plus seja um proxy de alto desempenho, ainda é possível que a carga de trabalho adicional gerada pelas regras de ataque e mitigação sobrecarregue os recursos disponíveis da plataforma na qual o NGINX está sendo executado. É aí que entra o eBPF. Ao aplicar no kernel o bloqueio baseado apenas no endereço IP ou combiná-lo com o bloqueio baseado no endereço IP e na impressão digital TLS, o tráfego malicioso pode ser avaliado e bloqueado antecipadamente na camada de transporte (Camada 4). Isso é muito mais eficiente do que quando realizado pelo NGINX no espaço do usuário.
Em plataformas compatíveis, quando o NGINX App Protect DoS cria regras para bloquear invasores com base no endereço IP de origem ou na impressão digital TLS, essas regras são compiladas em um programa de bytecode eBPF, que é executado pelo kernel quando ocorrem eventos de rede (conhecidos como hooks). Se um determinado evento de rede acionar a regra, o tráfego será descartado antecipadamente na Camada 4. Isso ajuda a acelerar a mitigação de DDoS antes que o tráfego chegue à Camada 7. Como toda essa atividade ocorre no kernel, ela é muito eficiente e permite filtrar mais tráfego (antes que os recursos se esgotem) do que quando as regras são implementadas no espaço do usuário.

Habilitando a mitigação acelerada por eBPF no NGINX App Protect DoS
A mitigação acelerada do NGINX App Protect DoS está disponível nas seguintes distribuições Linux:
- Alpine 3.15+
- Debian 11+
- RHEL 8+
- Ubuntu 20.04+
Para habilitar a mitigação acelerada de DDoS, siga estas etapas:
- Instale o pacote NGINX App Protect DoS com suporte a eBPF e execute todas as tarefas adicionais necessárias. (Consulte a documentação de instalação para obter detalhes, pois as tarefas pós-instalação variam de acordo com a distribuição.)
- Configure o NGINX App Protect DoS como de costume.
- Adicione a seguinte diretiva no bloco
http{}da configuração do NGINX Plus.
protect_dos_accelerated_mitigation on;- Recarregue a configuração do NGINX.
$ sudo nginx -t && nginx -s reloadResumo
A combinação dos recursos de aprendizado adaptativo do NGINX App Protect DoS com o processamento de tráfego altamente eficiente da execução do eBPF no kernel oferece uma estratégia acelerada e multicamadas de mitigação de DDoS na Camada 7, com recursos aprimorados para enfrentar os atuais ataques DDoS multivetoriais e direcionados a aplicações. Além disso, reduz os custos de infraestrutura e computação ao diminuir os recursos necessários para mitigar qualquer ataque DDoS.
Experimente o NGINX App Protect DoS com uma avaliação gratuita de 30 dias ou entre em contato conosco para conversar sobre seus casos de uso.
Recursos adicionais
- Whitepaper – Protegendo aplicações modernas contra ataques de DoS na camada 7
- Blog – Como o NGINX App Protect Denial of Service se adapta ao cenário de ataques em constante evolução
- Folha de dados – Defenda-se, adapte-se e mitigue ataques de DoS na camada 7
Sobre o autor

Publicações relacionadas no blog

Como o F5 NGINX One aprimora o gerenciamento e a observabilidade
Descubra como o F5 NGINX One aprimora o gerenciamento e a observabilidade de ambientes híbridos e multicloud ao oferecer um console web centralizado baseado em SaaS, com insights em tempo real, conformidade automatizada e gerenciamento simplificado de configurações.

Do OpenAPI ao NGINX como gateway de API usando uma API declarativa
Descubra como transformar uma definição de esquema OpenAPI em uma configuração NGINX totalmente funcional, operando como um API Gateway com a segurança de um Web Application Firewall e um Portal do Desenvolvedor, usando uma abordagem declarativa de API.

Como gerenciar picos repentinos de tráfego e sobrecarga do servidor
Picos de tráfego e sobrecarga de servidores são preocupações sérias para varejistas online em qualquer época, mas especialmente durante a “Cyber Season” de compras de fim de ano. Detalhamos como você pode aproveitar as soluções de entrega de aplicações de nível de produção da NGINX para se preparar para aumentos repentinos de tráfego.

Distribuição segura de chaves privadas SSL com o NGINX
Descrevemos três maneiras progressivamente mais seguras de proteger chaves privadas SSL ao configurar o NGINX para processar tráfego HTTPS: permitir acesso de leitura apenas ao usuário root, criptografar as chaves com senhas armazenadas separadamente e distribuir as senhas a partir de um repositório central.
Agrupando solicitações de API em lotes com NGINX Plus e o módulo JavaScript do NGINX
O módulo JavaScript do NGINX lançado com o NGINX Plus R15 oferece suporte a subsolicitações, possibilitando uma classe totalmente nova de casos de uso para o NGINX Plus. Este exemplo completo também usa a API do NGINX Plus e os módulos de chave-valor para converter solicitações de API dos clientes em solicitações separadas para as APIs dos microsserviços que compõem um aplicativo.
Como superar o esgotamento de portas efêmeras no NGINX e no NGINX Plus
Confira dicas para evitar o esgotamento de portas efêmeras com ajustes no kernel do Linux, conexões keepalive e conexões vinculadas dinamicamente a endereços IP locais.