Ataque de DDoS ao Memcached

O memcached pode acelerar sites, mas um servidor memcached também pode ser explorado para realizar um ataque DDoS.

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Definir um ataque DDoS memcached
  • Explicar como funciona o memcached
  • Métodos de destaque para mitigar os ataques de memcached

Conteúdo relacionado


Quer saber mais?

Assine o theNET, uma recapitulação mensal feita pela Cloudflare dos insights mais populares da internet.

Consulte a política de privacidade da Cloudflare para saber como coletamos e processamos seus dados pessoais.

Copiar o link do artigo

O que é um ataque DDoS memcached?

Um ataque de negação de serviço distribuída (DDoS) memcached é um tipo de ataque cibernético no qual um invasor tenta sobrecarregar uma vítima alvo com tráfego da internet. O invasor falsifica solicitações para um servidor vulnerável de UDP memcached*, que então inunda uma vítima alvo com tráfego de internet, potencialmente sobrecarregando os recursos da vítima. Enquanto a infraestrutura de internet do alvo está sobrecarregada, novas solicitações não podem ser processadas e o tráfego regular não consegue acessar o recurso da internet, resultando em negação de serviço.

*O memcached é um sistema de cache de banco de dados para agilizar sites e redes.

Mapa de tráfego do Cloudflare Memcached

Aqui estão os data centers na Rede global da Cloudflare e a quantidade relativa de tráfego de ataque memcached que eles receberam durante um ataque recente.

Como funciona um ataque memcached?

Um ataque memcached opera de maneira semelhante a todos os ataques de amplificação de DDoS, como Amplificação de NTP e Amplificação de DNS. O ataque funciona enviando solicitações falsificadas para um servidor vulnerável, que então responde com uma quantidade de dados maior do que a solicitação inicial, ampliando o volume de tráfego.

A amplificação do memcached pode ser comparada a um adolescente malicioso que liga para um restaurante e diz, "Quero todos os itens do seu cardápio, um de cada. Agora me ligue de volta e repita todo o meu pedido”. Quando o restaurante pergunta para qual telefone deve retornar, o número fornecido é o da vítima visada. Em seguida, a vítima recebe uma ligação do restaurante com muitas informações que não solicitou.

Esse método de ataque de amplificação é possível porque os servidores memcached têm a opção de operar usando o protocolo UDP. O UDP é um protocolo de rede que permite o envio de dados sem primeiro obter o que é conhecido como handshake, que é um processo de rede em que ambos os lados concordam com a comunicação. O UDP é utilizado porque o host de destino nunca é consultado sobre se está ou não disposto a receber os dados, permitindo que uma grande quantidade de dados seja enviada ao destino sem seu consentimento prévio.

Um ataque memcached ocorre em 4 etapas:

  1. Um invasor implanta um grande contéudo* de dados em um servidor memcached exposto.
  2. Em seguida, o invasor falsifica uma solicitação HTTP GET com o endereço de IP da vítima.
  3. O servidor memcached vulnerável que recebe a solicitação e está tentando ser útil respondendo, envia uma resposta grande ao destino.
  4. O servidor de destino ou sua infraestrutura circundante não consegue processar a grande quantidade de dados enviados do servidor memcached, resultando em sobrecarga e negação de serviço para solicitações legítimas.
Memcached

Este é um ataque de memcached de 260 GB por segundo contra a rede da Cloudflare sendo mitigado

Qual o tamanho de um ataque de amplificação de memcached?

O fator de ampliação desse tipo de ataque é realmente impressionante; na prática, testemunhamos fatores de amplificação de até 51.200x! Isso significa que para uma solicitação de 15 bytes, uma resposta de 750 kB pode ser enviada. Isso representa um grande fator de amplificação e risco de segurança para propriedades da web que não conseguem suportar o peso desse volume de tráfego de ataque. Ter um fator de amplificação tão grande acoplado a servidores vulneráveis torna o memcached um caso de uso principal para invasores que desejam lançar DDoS contra vários alvos.

Como um ataque memcached pode ser mitigado?

  1. Desabilitar o UDP - para servidores memcached, certifique-se de desabilitar o suporte UDP se você não precisar dele. Por padrão, o memcached tem suporte ao UDP habilitado, deixando um servidor possivelmente vulnerável.
  2. Usar o firewall nos servidores memcached - ao usar o firewall em servidores memcached da internet, os administradores de sistema podem usar o UDP para o memcached, se necessário, sem exposição.
  3. Evitar a falsificação de IP - desde que os endereços de IP possam ser falsificados, os ataques DDoS podem usar a vulnerabilidade para direcionar o tráfego para a rede da vítima. Impedir a falsificação de IP é uma solução maior que não pode ser implementada por nenhum administrador de sistema específico e exige que os provedores de trânsito não permitam que nenhum pacote que saia de sua rede tenha um endereço de IP de origem produzido fora da rede. Em outras palavras, empresas como provedores de serviços de internet (ISPs) devem filtrar o tráfego de modo que os pacotes que saem de sua rede não possam fingir ser de uma rede diferente em outro lugar. Se todos os principais provedores de trânsito implementassem esse tipo de filtragem, os ataques baseados em falsificação desapareceriam da noite para o dia.
  4. Desenvolver software com respostas UDP reduzidas - outra maneira de eliminar ataques de amplificação é remover o fator de amplificação de qualquer solicitação recebida. Se os dados de resposta enviados como resultado de uma solicitação UDP forem menores ou iguais à solicitação inicial, a amplificação não será mais possível.

A Cloudflare filtra o tráfego UDP em nossa borda de rede, eliminando o risco de ataques de amplificação como este. Explore a proteção contra DDoS avançada da Cloudflare.

Para uma visão mais aprofundada da batalha da Cloudflare contra ataques memcached e comandos e processos específicos para mitigação, explore a postagem do blog Memcrashed - Principais ataques de amplificação da porta UDP 11211.