BLOG | NGINX

Acelerando a mitigação de DDoS com eBPF no F5 NGINX App Protect DoS

NGINX-Parte-de-F5-horiz-preto-tipo-RGB
Robert Haynes Miniatura
Robert Haynes
Publicado em 05 de abril de 2023

A batalha contra ataques DDoS continua se transformando. No relatório Tendências de Ataques DDoS de 2023 , a F5 Labs analisou três anos de dados recentes sobre ataques distribuídos de negação de serviço (DDoS) e descobriu que, embora os invasores ainda usem ataques DDoS multivetoriais complexos, eles também mudaram para lançar ataques mais puramente na camada de aplicativo (Camada 7). Somente em 2022, a prevalência de ataques de Camada 7 cresceu 165%.

Diagrama mostrando contagens de tipos de ataques DDoS (volumétricos, de protocolo, de aplicação e multivetoriais) de 2020 a 2022
Contagens de tipos de ataques DDoS, 2020–2022, mostrando um grande aumento no número de ataques a aplicativos e redução correspondente em ataques volumétricos e multivetoriais.

Normalmente, os invasores buscam o caminho mais fácil para atingir seu objetivo, seja impedindo as operações de um site ou extorquindo um alvo. Esse aumento nos ataques de Camada 7 pode ser uma indicação de 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 na camada de aplicação estão se mostrando mais eficazes.

Protegendo aplicativos modernos com eBF e XDP

Ao defender seus aplicativos contra ataques DDoS, é importante aproveitar os avanços tecnológicos sempre que possível para maximizar a chance de manter seus aplicativos disponíveis (e seus usuários felizes). Embora a tecnologia Berkeley Packet Filter (eBPF) estendida com eXpress Data Path (XDP) exista desde 2014, sua popularidade está aumentando atualmente entre comunidades de desenvolvedores, SRE e operações devido à crescente adoção de microsserviços e arquiteturas nativas da nuvem.

eBPF

eBPF é uma máquina virtual (VM) de camada de enlace de dados no kernel Linux que permite aos usuários executar programas com segurança e eficiência. Ele também estende os recursos do kernel em tempo de execução, sem alterar o código-fonte do kernel nem adicionar módulos adicionais do kernel. O eBPF é acionado por evento – ele detecta atividade específica em um host Linux e toma uma ação específica. Essa tecnologia fornece visibilidade completa de aplicativos e serviços de aplicativos com a capacidade de rastrear conectividade e transações entre microsserviços e usuários finais. A gama de dados disponíveis é bastante extensa. Ele tem a capacidade de abordar observabilidade aguda, analisar gerenciamento de tráfego de rede e necessidades de segurança em tempo de execução, além de usar seu design eficiente fundamental para reduzir custos de computação.

Confira o vídeo O que é eBPF? do F5 DevCentral para uma rápida visão geral da tecnologia eBPF.

XDP

O XDP oferece o benefício de rede de alto desempenho. Ele permite que programas de espaço do usuário leiam e gravem diretamente dados de pacotes de rede e tomem decisões sobre como lidar com um pacote antes de atingir o nível do kernel. Essa tecnologia permite que os desenvolvedores anexem um programa eBPF a um gancho de baixo nível, implementado pelo driver de dispositivo de rede dentro do kernel Linux.

Como o aplicativo NGINX protege o uso de DoS eBPF?

O NGINX App Protect DoS é uma solução avançada de mitigação de DDoS de Camada 7 baseada em comportamento que é executada no NGINX Plus e no NGINX Ingress Controller para defender aplicativos HTTP e HTTP/2 contra ataques como Slowloris e HTTP Flood . Resumindo, o NGINX App Protect DoS protege contra ataques na camada de aplicativo que soluções simples de DDoS de rede não conseguem detectar.

Diagrama mostrando os tipos de ataques que o NGINX App Protect DoS defende contra
O NGINX App Protect DoS pode ser implantado no NGINX Plus no balanceador de carga ou no gateway de API e no NGINX Ingress Controller ou dentro do cluster como um proxy por pod ou por serviço. Ele também pode ser facilmente integrado como “segurança como código” em pipelines de CI/CD para DevOps ágil.

Quando usado com o NGINX App Protect DoS, o eBPF oferece a promessa de capacidade de absorção de ataques DDoS significativamente aprimorada. O NGINX App Protect DoS usa eBPF (que não está disponível no próprio NGINX Ingress Controller) como parte de uma solução multicamadas que acelera o desempenho de mitigação ao bloquear o tráfego de agentes mal-intencionados, que são identificados pelo endereço IP de origem, sozinhos ou em combinação com impressão digital TLS.

A seguir, vamos analisar a mecânica básica de como o NGINX App Protect DoS funciona em três fases: detecção de anomalias , criação de regras dinâmicas 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 de site do comportamento do aplicativo e do cliente. Ele observa o tráfego em tempo real e rastreia mais de 300 métricas de solicitações HTTP para criar uma linha de base abrangente e constantemente atualizada de atividade e desempenho. Além de monitorar passivamente o tráfego de aplicativos, o NGINX App Protect DoS também realiza verificações ativas de integridade de aplicativos e monitora métricas como tempos de resposta e solicitações descartadas.

Quando o aplicativo sofre um ataque DDoS de Camada 7, os tempos de resposta do aplicativo (ou taxas de erro) desviam do modelo aprendido e o sistema de proteção do aplicativo é acionado.

Criação dinâmica de regras e aprendizagem adaptativa

Depois que uma anomalia é detectada, o NGINX App Protect DoS cria regras dinamicamente para identificar e bloquear tráfego malicioso. Com o objetivo de permitir que usuários legítimos acessem o aplicativo e, ao mesmo tempo, bloquear invasores mal-intencionados, ele cria uma imagem estatística do comportamento do cliente 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 fornecer constantemente segurança robusta ao aplicativo e bloquear ataques de dia zero. Depois que os clientes e solicitações que causam um ataque são identificados, ele cria uma regra para negar esse tráfego.

O NGINX App Protect DoS implementa uma estratégia de defesa em várias camadas que inclui:

  • Bloqueio de agentes mal-intencionados com base em endereço IP ou impressão digital TLS
  • Bloqueando solicitações ruins com assinaturas de ataque
  • Aplicando limitação de taxa global

Essas três mitigações são aplicadas de forma incremental para garantir que os invasores sejam bloqueados o máximo possível, sem impacto aos usuários legítimos. No entanto, a maior parte da atividade de bloqueio ocorre frequentemente na combinação inicial de bloqueio de endereço IP e impressão digital TLS ou na fase de bloqueio somente de endereço IP. Felizmente, esses são exatamente os tipos de regras que podem ser efetivamente aplicadas por um programa eBPF.

Aplicação de regras

O NGINX App Protect DoS usa as regras criadas e as aplica ao tráfego de aplicativos de entrada para bloquear solicitações maliciosas. Como todo o tráfego do aplicativo é enviado por proxy para o aplicativo de backend (ou upstream ) pelo proxy NGINX Plus, quaisquer solicitações que correspondam às regras de bloqueio são simplesmente descartadas e não passadas para o aplicativo de backend.

Embora o NGINX Plus seja um proxy de alto desempenho, ainda é possível que a carga de trabalho adicional criada pelas regras de ataque e mitigação sobrecarregue os recursos disponíveis da plataforma em que o NGINX está sendo executado. É aqui que entra o eBPF. Ao aplicar o bloqueio somente de endereço IP ou combiná-lo com o bloqueio de endereço IP e impressão digital TLS no kernel, o tráfego malicioso pode ser avaliado e bloqueado precocemente na camada de transporte (Camada 4). Isso tem uma eficiência muito maior do que quando executado pelo NGINX no espaço do usuário.

Em plataformas suportadas, 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, as regras são compiladas em um programa de bytecode eBPF que é executado pelo kernel quando ocorrem eventos de rede (conhecidos como hooks). Se um evento de rede específico acionar a regra, o tráfego será descartado antecipadamente na Camada 4. Isso ajuda a acelerar a mitigação de DDoS antes de atingir a Camada 7. Como toda essa atividade ocorre no kernel, ela é muito eficiente e pode filtrar mais tráfego (antes de esgotar os recursos) do que quando as regras são implementadas no espaço do usuário.

Diagrama mostrando como o NGINX App Protect DoS invoca uma regra codificada por eBPF no kernel para repelir um invasor
O NGINX App Protect DoS com eBPF bloqueia o tráfego ruim no kernel antes de atingir o espaço do usuário, acelerando a mitigação de DDoS e reduzindo os custos de computação.

Habilitando a mitigação acelerada de eBPF no NGINX App Protect DoS

A mitigação acelerada de DoS do NGINX App Protect está disponível nas seguintes distribuições Linux:

  • Alpino 3.15+
  • Debian 11+
  • RHEL 8+
  • Ubuntu 20.04+

Para habilitar a mitigação acelerada de DDoS, siga estas etapas:

  1. Instale o pacote NGINX App Protect DoS habilitado para eBPF e execute quaisquer tarefas adicionais. (Consulte a documentação de instalação para obter detalhes, pois as tarefas pós-instalação variam de acordo com a distribuição.)
  2. Configure o NGINX App Protect DoS normalmente.
  3. Adicione a seguinte diretiva no bloco http{} da configuração do NGINX Plus.

    protect_dos_accelerated_mitigation ativado;
    
  4. Recarregue a configuração do NGINX.

    $ sudo nginx -t && nginx -s recarregar
    

Resumo

A combinação dos recursos de aprendizado adaptativo do NGINX App Protect DoS com o tratamento de tráfego de alta eficiência da execução do kernel eBPF fornece uma estratégia de mitigação de DDoS de Camada 7 acelerada e multicamadas com recursos aprimorados para os ataques DDoS multivetoriais e focados em aplicativos atuais. Além disso, ele mantém os custos de infraestrutura e computação baixos ao diminuir os recursos necessários para mitigar qualquer ataque DDoS.

Teste o NGINX App Protect DoS por 30 dias gratuitamente ou entre em contato conosco para discutir seus casos de uso .

Recursos adicionais


"Esta postagem do blog pode fazer referência a produtos que não estão mais disponíveis e/ou não têm mais suporte. Para obter as informações mais atualizadas sobre os produtos e soluções F5 NGINX disponíveis, explore nossa família de produtos NGINX . O NGINX agora faz parte do F5. Todos os links anteriores do NGINX.com redirecionarão para conteúdo semelhante do NGINX no F5.com."