Por Rafael Soares Gusson

Ataques DoS têm se tornado um constante problema para diversas empresas no mundo todo. De acordo com o HIPPA Journal[1], no ano de 2021 foram realizados cerca de 9,84 milhões de ataques DDoS; um aumento de 14% se comparado com o ano de 2019. Um relatório apresentado pela Dell[2] prevê que entre 2018 e 2023 o número de ataques DDoS será dobrado. Os principais setores afetados no ano de 2021 foram financeiros, saúde, educacional e governamental.

Além de ter de lidar com a queda de serviços importantes e os prejuízos decorrentes dessa situação, diversas empresas têm sofrido com um novo tipo de ação dos atacantes, o Ransom DDoS, ou RDDoS. Após um ataque DDoS bem sucedido, os atacantes ameaçam a empresa afetada em realizar novos ataques caso uma quantia não seja paga. De acordo com um relatório da Cloudflare[3], 1 em cada 5 ataques realizados no segundo trimestre de 2022 foi acompanhado de uma carta de extorsão.

O objetivo desse artigo é explicar como os ataques DoS funcionam e sugerir mecanismos e ações de defesa para mitigá-los.

1. DoS e DDoS

DoS é sigla para Denial of Service, em português Negação de Serviço, enquanto DDoS significa Distributed Denial of Service, em português Negação de Serviço Distribuída. Os dois representam ataques com o objetivo de causar a indisponibilidade de um serviço, no entanto o DDoS é utilizado em ataques com múltiplas origens enquanto DoS significa um ataque gerado a partir de um único computador. Em muitas literaturas esse termo é utilizado de forma intercambiável. A partir de agora, utilizaremos neste artigo apenas o termo DDoS para se referir a todos os tipos de ataques.

1.1 Motivação

Um ataque DDoS pode possuir as seguintes motivações:

  • Cortina de fumaça – Muitos ataques são realizados para deixar a equipe de cybersegurança do alvo ocupada enquanto os atacantes realizam tentativas de invasão do ambiente.
  • Extorsão – Após realizar um breve ataque DDoS, o grupo atacante ameaça executar novos ataques, caso uma quantia em criptomoedas não seja paga pelo alvo.
  • Concorrência – Uma empresa pode financiar um ataque DDoS contra um concorrente para prejudicá-lo, como por exemplo, derrubar um site varejista durante uma campanha massiva de vendas, tal qual a black friday.
  • Ideológica/Militar – Grupos ou nações opostas utilizam de ataques DDoS para prejudicar os serviços e comunicações de seu opositor. Isso pode ser visto recentemente na guerra da Rússia contra Ucrânia, e nas ações do grupo Anonymous durante a “Primavera Árabe”.
  • Vingança – Ex-funcionários podem se utilizar de ataques DDoS para prejudicar a empresa onde trabalharam devido a um sentimento de descontentamento.

1.2 BOTNET

As BOTNETs são um conjunto de computadores infectados com programas de comando e controle, permitindo assim que atacantes enviem comandos remotos de forma arbitrária. Esses equipamentos normalmente são contaminados através de links maliciosos e exploração de vulnerabilidades. É muito comum que BOTNETs sejam utilizadas em ataques DDoS para gerar um grande volume de tráfego durante um ataque.

1.3 Tipos de ataques DDoS

Ataques DDOS são comumente divididos em 3 categorias:

  • Volumétrico;
  • Protocolo;
  • Camada de aplicação.

1.3.1 Volumétrico

Ataques volumétricos têm como objetivo sobrecarregar a capacidade de rede e processamento do alvo através de alto volume de tráfego. Essa categoria de ataques é mensurada em bits por segundo.

Abaixo estão alguns exemplos desse tipo de ataque:

HTTP flood

O ataque HTTP flood tem o objetivo de gerar diversas requisições com métodos GET ou POST para um servidor web com o objetivo de exaurir a largura da banda do alvo. Esse ataque normalmente é feito através de uma BOTNET com milhares de computadores iniciando as conexões. Como esse ataque é muito parecido com o acesso de um usuário comum, é difícil detectá-lo.

UDP flood

Um ataque UDP flood é feito através do envio de uma enorme quantidade de pacotes UDP para um servidor. O objetivo compreende explorar a forma com que um servidor normalmente responde a pacotes UDP:

  1. ao receber um pacote UDP, o servidor irá verificar se existe algum programa escutando na porta especificada
  2. caso não haja nenhum programa utilizando essa porta, o servidor irá responder com um pacote ICMP para informar ao remetente que a porta de destino não está operante.

Ao receber essa grande quantidade de pacotes, o servidor pode ficar sobrecarregado e deixar  de responder a novas requisições, impedindo que o tráfego legítimo seja processado. Também é possível que o firewall, que protege o servidor, torne-se incapaz de processar a carga de requisições de um ataque UDP flood, e como decorrência, seja impactado.

ICMP flood

Ataques ICMP flood ocorrem de forma parecida com o ataque de UDP flood: uma quantidade enorme de tráfego será enviada ao alvo para consumir largura de banda e recursos computacionais, abusando da característica de resposta do protocolo ICMP. Ao receber uma requisição ICMP (echo-request), um servidor irá responder com outro pacote ICMP (echo-reply).

IPSEC flood

O protocolo IPSEC é muito utilizado em conexões VPN para estabelecer uma conexão segura entre dispositivos através de uma rede não segura.

Ataques IPSEC flood enviam uma grande quantidade de requisições IPSEC IKE a um servidor de VPN através da porta 500, forçando o mesmo a responder todas as requisições. Cada resposta irá consumir recursos de processamento do servidor até que ele se esgote, causando assim, a queda desse serviço.

Reflection Amplification

Ataques reflection amplification são realizados através do envio de pacotes com o IP de origem falsificado a diversos serviços na Internet. O IP de origem nesses pacotes conterá o IP do alvo. Ao enviar essas requisições os serviços de Internet responderão para o IP do alvo, consumindo assim sua largura de banda. Dessa forma, dependendo da escala do ataque, pode não haver banda suficiente para responder ao tráfego legítimo.

1.3.2 Protocolo

Ataques de protocolo têm o objetivo de abusar de fraquezas de protocolos comumente utilizados na Internet.  Essa categoria de ataque é mensurada em pacotes por segundo.

SYN flood

O ataque SYN flood explora uma fraqueza no three-way handshake do protocolo TCP.  Normalmente, ao executá-lo, o cliente envia um pacote SYN, o servidor responde com um pacote SYN/ACK e aguarda por um último pacote ACK do cliente para poder começar a enviar dados. A imagem abaixo representa esse processo:

Em um ataque SYN flood são enviadas diversas requisições SYN, entretanto o cliente não responde com o pacote ACK. Dessa forma, o servidor ficará aguardando esse pacote e manterá as características dessa conexão em uma tabela até o timeout dessa tentativa de conexão ser atingido. Com o acúmulo desse tipo de requisição, a tabela de conexões do firewall será exaurida antes do timeout das conexões ser alcançado, impossibilitando que conexões legítimas sejam estabelecidas, além de causar um grande consumo de recursos. A imagem abaixo demonstra esse processo:

Fragmented packet

Para explicar os ataques do tipo fragmented packet, é importante entender o funcionamento da fragmentação de pacotes no protocolo IP.

Cada rede que opera na Internet possui um tamanho máximo de pacotes que consegue processar. Esse limite é chamado de maximum transmission unit (MTU). Quando um pacote necessita trafegar por uma rede onde o MTU seja menor que o tamanho do pacote, será preciso fragmentá-lo, ou seja, dividi-lo em menores partes.

Uma analogia a esse processo é o transporte de um grande armário em uma residência. Primeiro será necessário desmontá-lo em partes menores para que ele passe pela porta, em seguida ele será transportado até o destino onde a remontagem acontecerá.

Existem dois tipos de ataque de fragmentação:

  • UDP e ICMP: são enviados pacotes UDP ou ICMP superdimensionados (normalmente com MTU superiores a 1500). Nessa situação o servidor acabará por reservar recursos para pacotes que jamais poderão ser remontados, até que chegue a um ponto em que o servidor não irá mais conseguir processar pacotes legítimos.
  • TCP:  O alvo desses ataques são os mecanismos de remontagem de pacotes, fazendo com que os mesmos sejam sobrepostos quando são reordenados. Existem sistemas operacionais que não conseguem lidar com essa situação e passam a operar de forma indesejada, muitas vezes resultando em uma tela azul. Exemplos de sistemas vulneráveis são: Windows Vista e Windows 7.

A fragmentação de pacotes é necessária, já que cada rede na Internet possui um tamanho de pacotes que pode processar.

1.3.3 Camada de aplicação

Essa categoria de ataque busca explorar vulnerabilidades do funcionamento de protocolos da camada de aplicação. Nem todos os ataques de camadas de aplicação geram grandes volumes de dados, mas isso não os torna menos efetivos.

Low and slow

Ataques desse tipo visam criar conexões extremamente lentas com servidores web expostos na Internet. O objetivo é ocupar o servidor com diversas conexões lentas ativas para impedir que usuários legítimos utilizem os serviços.

Esse tipo de ataque é de difícil detecção, pois como não gera grandes volumes de dados, pode passar imperceptível. Os atacantes podem usar tanto métodos GET como POST para gerar essas requisições.

Large Payload POST

Esse tipo de ataque abusa do mecanismo de análise de mensagens XML de um servidor web. Através do método HTTP POST, um atacante irá criar requisições complexas para que o servidor utilize uma grande quantidade de memória para analisar a mensagem. Além de mensagens complexas, variações desse ataque incluem cabeçalhos e corpo da mensagem excessivamente grandes.

A seguir é demonstrada a exemplificação de um ataque com requisição complexa:

Essa mensagem contém um elemento raiz denominado attrz, além de diversas entidades. Dentre essas entidades, a primeira delas possui o texto “data”. O elemento attr2 expande 10 vezes o elemento attr. O elemento attr3 expande 10 vezes o elemento attr2 e assim sucessivamente até o elemento value9. Dessa forma, quando o analisador de mensagens terminar de expandir as entidades esse bloco de 1KB terá na verdade diversos GBs. Com poucas mensagens como essa, um servidor web pode facilmente ser sobrecarregado.

Agora temos um exemplo de ataque com um cabeçalho grande:

Um atacante pode criar uma mensagem em que o cabeçalho tenha alguns MBs e em seguida utilizar uma pequena BOTNET para enviar essa mensagem para o alvo. Através dessa abordagem, o servidor pode ser sobrecarregado com diversos GBs de dados, impedindo que tráfego legítimo seja processado.

Diferente de outros tipos de ataque DDoS, nos que englobam Large Payload POST não é necessária uma grande quantidade de computadores para executá-lo. Ele também é de difícil detecção por não possuir um padrão reconhecível.

Mimicked User Browsing

Esse tipo de ataque é realizado através de uma BOTNET. Nesse caso, os computadores vão simular usuários legítimos acessando um website. O objetivo é causar um grande consumo de recursos no alvo para que ele seja derrubado ou ao menos impedir e dificultar usuários legítimos de utilizarem o serviço. Esse é mais um ataque de difícil detecção, haja vista o fato de que simula  as ações de usuários legítimos.

DNS flood

O objetivo de um ataque DNS flood é exaurir os recursos de um servidor DNS através de uma grande quantidade de requisições DNS. Nesse tipo de ataque, um atacante utiliza uma botnet para bombardear um servidor DNS com pacotes malformados. Isso irá gerar um alto consumo de processamento, memória e banda.

Nessa situação o servidor DNS não será capaz de atender a requisições de usuários legítimos, e os domínios vinculados a esse servidor ficarão inacessíveis.

2. Mitigações anti-DDoS: aprendendo como se defender

Devido à grande quantidade de diferentes tipos de ataques DDoS também existem diferentes soluções apropriadas para cada situação. Abaixo, dividimos as diferentes opções de defesa entre ambiente on-premise e nuvem.

2.1 On-premises

Scrubbing center

Scrubbing center é um serviço de mitigação de DDoS na nuvem. Ele é capaz de capturar e filtrar o tráfego destinado a um hostname ou bloco de endereçamento IP, entregando ao destino apenas o tráfego considerado legítimo.

Através de um scrubbing center é possível se defender de ataques volumétricos e de protocolo, sem que seja necessário o investimento de valores significativos em infraestrutura. Além disso, ele permite mitigar ataques direcionados para a infraestrutura de endereçamento IP da empresa, o que não é possível com outros serviços de proteção, tal qual um CDN. É importante ressaltar que quando esse tipo de serviço é ativado, haverá um aumento da latência entre o cliente e a aplicação protegidos pelo serviço, já que o tráfego será desviado e filtrado.

É possível ativar o serviço de scrubbing center sob o regime 24×7, ou sob demanda. Dessa forma é possível utilizá-lo apenas quando estiver sob ataque.

Para a proteção de blocos de endereçamento IP existem alguns requisitos, como possuir um bloco público de 256 endereços IP e roteadores capazes de criar um túnel BGP. Sendo assim, esse tipo de serviço não é viável para todos os tipos de empresa. Outra característica desse serviço é que ele não faz inspeção SSL e dessa forma não é capaz de proteger contra ataques de camada de serviço.

Appliance DDoS

Um appliance anti-DDoS é um equipamento criado especialmente para mitigar ataques DDoS. Seu hardware é desenhado para lidar com um alto nível de conexões e tráfego. Ele realiza interceptação SSL, ou seja, é capaz de descriptografar pacotes e ler o seu conteúdo, desde que provido do certificado apropriado e dessa forma ele consegue atuar na defesa de ataques de protocolo. Normalmente é vendido com diferentes capacidades de processamento de pacotes e de largura de banda.

Diferente dos scrubbing centers, a implementação de um appliance DDoS é muito mais simples e possui menos requisitos. Uma grande vantagem desse equipamento é a possibilidade de criar regras específicas de defesa, enquanto que em scrubbing centers e CDNs, essas opções são mais limitadas.

CDN

CDN é a abreviação de Content Delivery Network. Trata-se de um serviço na nuvem utilizado para entregar o conteúdo de páginas estáticas de uma aplicação web aos usuários baseados em sua localização geográfica. Serviços de CDN possuem grande capacidade de mitigação dos 3 tipos de ataques DDoS, no entanto protegem apenas hostnames e não tem qualquer capacidade de mitigação contra-ataques direcionados diretamente aos endereços IPs que hospedam uma aplicação, isso é particularmente preocupante em aplicações hospedadas em ambientes on-premise. Além disso, uma CDN apenas é capaz de proteger aplicações web, outros tipos de aplicação devem ser protegidas através de outros meios.

É comum que CDNs ofereçam, por padrão, apenas proteção DDoS contra-ataques volumétricos e protocolo. Em contrapartida, para a proteção contra-ataques de camada de aplicação são cobradas taxas adicionais.

WAF

Um WAF (Web Application Firewall) é responsável por proteger e mitigar ameaças direcionadas a aplicações web. Essa proteção inclui ameaças como SQL Injection, Cross-Site Scripting (XSS), file inclusion, e também, ataques DDoS de camada de aplicação.

É comum que um WAF seja disponibilizado como uma feature em um firewall convencional. Ele é uma opção útil, especialmente quando não há um CDN e/ou um appliance anti-DDoS protegendo uma aplicação web.

Hardening de firewall

É uma boa prática realizar o hardening de um firewall para aumentar sua resistência contra-ataques DDoS. Os firewalls mais avançados possuem diversas configurações que podem ser aplicadas para detectar, mitigar e suportar esses tipos de ataques, no entanto é importante ter em mente que os mesmos não foram desenvolvidos para se defender de ataques DDoS de larga escala, e nestes casos, não podem ser utilizados como única linha de defesa.

Diversas configurações de proteção DDoS podem causar efeitos indesejados como falsos positivos, alto consumo de recursos e lentidão no acesso às aplicações. É preciso entender como cada proteção funciona e quais os possíveis impactos de ativá-las.

Dentre as configurações mais comuns de proteção pode-se citar o incremento de buffers, redução do tempo de timeout de conexões TCP e otimização do processo de descarte de pacotes.

Resumo de camadas de aplicação

Para criar uma estratégia de defesa DDoS é importante entender o que cada elemento de sua defesa é capaz de realizar. Abaixo temos um breve resumo desses elementos e sua aplicação.

Conforme descrito anteriormente, é importante ressaltar que diferentes elementos funcionam de diferentes formas e têm capacidades de defesa distintas. Por exemplo, um appliance anti-DDoS é capaz de mitigar todos os 3 tipos de ataques DDoS, no entanto ele não é tão efetivo em ataques volumétricos quanto um scrubbing center ou CDN.

Como toda estratégia de cyber defesa, é recomendado que ela seja pensada em profundidade, ou seja, um atacante terá que passar por várias camadas até conseguir atingir o seu alvo.

Abaixo temos uma representação da topologia com essas camadas aplicadas.

2.2 Nuvem

A estratégia de defesa contra-ataques DDoS na nuvem é um pouco diferente de um ambiente on-premise. Os maiores provedores de nuvem, tais quais AWS, Azure, GCP disponibilizam — nativamente — uma proteção robusta contra-ataques DDoS direcionados às camadas 3 e 4. Essa proteção é automática e não exige custos extras.

Para a proteção contra-ataques de camada de aplicação, os provedores de nuvem citados acima oferecerem serviços com características parecidas:

  • possibilidade de empregar WAFs com custos reduzidos;
  • monitoramento avançado de ataques DDoS;
  • equipe disponível 24×7 para tratar ataques em andamento;
  • reembolso de despesas com escalonamento de recursos causados por ataques DDoS;
  • dashboards e relatórios centralizados de ameaças e ataques DDoS.

Abaixo está uma lista com os nomes dos serviços oferecidos por cada provedor:

Monitoramento – On-premises e cloud

Independentemente de onde uma aplicação esteja hospedada, é crítico que haja um monitoramento adequado para detectar ataques de DDoS.  É comum que, antes de receber um ataque DDoS em larga escala, um atacante realize ataques menores visando testar as defesas de seu alvo. Esse reconhecimento pode demorar horas ou dias.

Com um monitoramento adequado é possível se adiantar a esses ataques e fortalecer suas defesas. Um exemplo é um ataque direcionado a uma determinada aplicação que causou alto consumo de recursos, mas não causou negação de serviço. Nesta situação é possível preparar o ambiente para escalar recursos para a aplicação e também, ajustar as camadas superiores de proteção para que impeçam que o ataque chegue à aplicação.

É recomendado que o monitoramento seja configurado para que seja possível detectar ataques baseados em assinaturas e comportamentos.

Conclusão

Uma defesa eficaz contra ataques DDoS envolve uma combinação de medidas proativas e reativas. Isso inclui a implementação de firewalls hardenizados, sistemas de detecção e serviços de mitigação de
DDoS, que podem ajudar a identificar e filtrar o tráfego malicioso antes que ele atinja o destino final.

É crucial que as organizações estejam preparadas para lidar com ataques DDoS, desenvolvendo planos de resposta a incidentes detalhados e realizando testes regulares de segurança para avaliar a eficácia de suas defesas.

Em última análise, proteger-se contra ataques DDoS requer uma abordagem multifacetada e contínua para a segurança cibernética. Ao adotar as melhores práticas de segurança, estar preparado para
responder a incidentes e colaborar com outros na comunidade de segurança, as organizações podem reduzir significativamente o risco e o impacto de ataques DDoS em suas operações.

Referências

2021 Saw Record Numbers of DDoS Attacks on the Healthcare Industry. Disponível em: <https://www.hipaajournal.com/2021-saw-record-numbers-of-ddos-attacks-on-the-healthcare-industry/>. Acesso em 22 de abril de 2022.

CISCO. Cisco Annual Internet Report (2018–2023) White Paper. Disponível em: <https://www.cisco.com/c/en/us/solutions/collateral/executive-perspectives/annual-internet-report/white-paper-c11-741490.html>. Acesso em 9 de março de 2020.

YOACHIMIK, O. DDoS attack trends for 2022 Q2. Disponível em: <https://blog.cloudflare.com/ddos-attack-trends-for-2022-q2/>. Acesso em 6 de julho de 2022.