Mantido desde outubro de 2019

Post-mortem: AMS-01, onze minutos, 14 de outubro de 2020

Um ataque de 340 Gbit/s direcionado a um único cliente tirou todo o site de Amsterdã da rede por onze minutos. A filtragem que executamos desde então existe por causa disso.

Resumo

Em 14 de outubro de 2020, entre 02:41 e 02:52 UTC, todas as instâncias em AMS-01 ficaram inacessíveis. Um ataque volumétrico direcionado a um único endereço de cliente atingiu o pico de 340 Gbit/s e saturou os uplinks do site. Resolvemos pedindo ao upstream que descartasse todo o tráfego para o endereço-alvo, o que restaurou o site e deixou esse único cliente offline por mais cinquenta minutos. Nenhum dado foi perdido e nenhuma instância foi danificada. O site não tinha capacidade de scrubbing na época, e isso foi uma decisão de compra, não um acidente.

Linha do tempo

Todos os horários em UTC, 14 de outubro de 2020.

HorárioEvento
02:41:04O tráfego para um único endereço de cliente sobe de cerca de 200 Mbit/s para 90 Gbit/s em menos de vinte segundos.
02:41:30Ambos os uplinks do site saturam. A perda de pacotes torna-se total em todos os prefixos do site, não apenas no alvo.
02:42O alerta automatizado dispara sobre a alcance de três sondas externas.
02:44O engenheiro de plantão fica online. O ataque é visível nos gráficos de porta e em nenhum outro lugar, porque nossa coleta de fluxo foi amostrada a uma taxa que não conseguia acompanhar.
02:46Pico medido em 340 Gbit/s. Composição é UDP refletido, principalmente DNS e NTP, de dezenas de milhares de fontes.
02:47Decisão tomada de solicitar um descarte upstream de todo o tráfego para o endereço-alvo. Esta era a única ferramenta disponível para nós.
02:49O descarte propaga no primeiro upstream.
02:51O segundo upstream aplica. A utilização do uplink cai abaixo da capacidade.
02:52:10Site totalmente alcançável. Indisponibilidade total visível ao cliente, onze minutos e seis segundos.
03:20Cliente afetado contatado e oferecido um novo endereço.
03:42Cliente mudou para um novo endereço; seu serviço retorna.

Causa raiz

A causa imediata foi um ataque que não pudemos absorver. O que realmente o causou é que vendemos hospedagem em uma cidade onde ataques desse tamanho eram rotina, com duzentos gigabits de uplink e nenhuma filtragem, e tratamos um acordo de descarte upstream como um plano.

Isso não é azar. Foi uma decisão, tomada em 2019 a favor de gastar o dinheiro em hardware, e estava errada.

Duas falhas secundárias pioraram a situação. Nossa coleta de fluxo amostrava a uma taxa que não nos dava detalhes úteis durante um evento real, então os primeiros quatro minutos foram gastos lendo contadores de interface. E o descarte era manual, exigindo um humano acordado, autenticado e confiante, três requisitos demais às três da manhã.

O que isso custou ao cliente

Sendo franco: resolvemos nosso problema desligando o serviço deles. Uma rota de descarte é uma decisão de que um cliente ficará inacessível para que todos os outros não fiquem. Foi a decisão correta com as ferramentas que tínhamos, ainda foi uma indisponibilidade deles, não nossa, e eles não haviam comprado nenhum produto nosso que prometesse o contrário.

Eles ficaram. Não cobramos deles pelo mês de outubro.

O que mudamos

  1. Scrubbing sempre ativo na borda, comprado em três semanas, começando com 1,2 Tbit/s de capacidade. A filtragem fica permanentemente no caminho, então não há atraso de detecção nem botão para alguém apertar às 02:47. Isso agora é padrão em todos os sites, até 12 Tbit/s no maior.
  2. Uplink em AMS-01 elevado, primeiro para 200 Gbit/s de capacidade adicional e depois para os 400 Gbit/s que o site opera hoje.
  3. Telemetria de fluxo sem amostragem em cada borda de site, retida por sete dias para fins operacionais. Isso é metadados de tráfego para nossas próprias portas; não é tráfego de instância nem conteúdo de nada.
  4. A rota de descarte tornou-se automática, com limite documentado, política anunciada e e-mail ao cliente afetado em sessenta segundos, em vez de trinta e nove minutos.
  5. Ataques são publicados na página de status, com tamanho e duração, quer alguém tenha notado ou não.

O que não mudamos, e por quê

Não começamos a cobrar por filtragem. O scrubbing básico está incluído em todos os planos em todos os sites e sempre esteve desde o dia em que o compramos. Um ataque não é um serviço que a vítima pediu. A filtragem de camada 7 com regras personalizadas existe como complemento porque precisa de um humano do nosso lado, e isso é diferente de uma inundação volumétrica.

Não removemos a rota de descarte. Doze terabits por segundo é um número, não infinito, e fingir que nunca mais precisaremos do instrumento contundente seria desonesto. O que mudou é que agora é o último recurso documentado, em vez do único passo.

Não impusemos tetos de tráfego por cliente. Limitar a taxa de todos os clientes a uma fração segura do uplink teria evitado isso e também sufocaria todos os picos legítimos. A filtragem pertence à borda, no ataque, não no cliente.

Não movemos o cliente para um produto diferente. Eles estavam executando o que haviam pago, no plano que lhes convinha, e não era culpa deles que alguém apontou um botnet para eles.

Pronto quando você estiver

Escolha uma cidade. Escolha um tamanho. Pague em cripto.

Sem formulários sobre quem você é, sem esperar aprovação de um humano, sem ligação para verificar nada. O pagamento é confirmado e as credenciais chegam na sua caixa de entrada.