Por dentro da Spudworks: DDoS e ping

Por dentro da Spudworks: DDoS e ping

Por dentro da Spudworks: DDoS e ping

Um resumo: ataque DDoS é baixo-astral. Os jogadores se irritam, não é legal. Fizemos mudanças, vai ficar genial.

Olá, pessoal! Os JMods de infraestrutura estão de volta com mais um artigo da Spudworks. Desta vez, abordaremos ataques DDoS e ping. Como de costume, essa é uma publicação técnica, mas faremos o possível para tentar explicar bem os conceitos. Em caso de dúvidas, deixe sua dúvida em nossos canais (como Reddit e Discord) e talvez a gente faça um novo post respondendo!

Guardas de Trânsito

Neste verão do hemisfério norte, nossos queridos jogos atingiram novas alturas. Como JMods e fãs, foi uma beleza de ver. Infelizmente, isso também trouxe pessoas mal-intencionadas e, em alguns momentos, o RuneScape e o Old School ficaram indisponíveis para os jogadores devido a ataques DDoS, ou ataques de negação distribuída de serviço hipervolumétricos.

Parte do nosso trabalho aqui na Spudworks é garantir que os seus cliques perfeitos cheguem até a gente de forma constante e sem atrasos, inclusive em condições adversas. Então vamos ver por que esses ataques causaram um transtorno tão grande.

O que é um ataque DDoS?

Vamos começar pela definição de ataque de negação de serviço (DoS). Ele envolve um cliente mal-intencionado se comunicando com o servidor de tal forma que o impede de responder a clientes legítimos. Existem três categorias gerais de ataque DoS:

  • Volumétrico – Inunda a interface de rede do servidor com mais tráfego do que ele comporta. Para ter uma ideia, imagine um vaso sanitário entupido.
  • De protocolo – Abusa do funcionamento das interações legítimas para consumir tempo ou recursos do servidor. Pense numa senhorinha pagando as compras de supermercado com centavinhos e segurando toda a fila.
  • De aplicativo – Ataca vulnerabilidades no aplicativo ou o inunda de solicitações legítimas. Seguindo o exemplo anterior, seria como pagar normalmente, mas comprando um produto de cada vez sem parar.

Ataques de negação de serviço (DoS) são fáceis de resolver porque têm uma única origem: um balde de estrume de Ugthanki, uma senhorinha ou um cliente peculiar. Facinho de detectar e bloquear.

Ataques de negação distribuída de serviço (DDoS) são mais complicados porque usam os mesmos métodos, mas de várias fontes diferentes (muitas vezes, exércitos de dispositivos inteligentes comprometidos, como o caso da botnet Mirai), para dificultar a distinção entre tráfego ruim e legítimo.

O que significa hipervolumétrico?

Um ataque DDoS hipervolumétrico é o maior e mais difícil de impedir, excedendo um terabit por segundo de tráfego ruim de rede. Ataques dessa categoria podem representar mais de mil vezes o volume dos padrões normais de tráfego.

Pensem na capacidade de rede da Jagex como uma rodovia local de quatro faixas levando aos servidores de jogo. Os carros nessa estrada vêm de uma rede de estradas global e representam pacotes de dados enviados por vários clientes.

Para entrar na rodovia da Jagex, os carros precisam passar por um posto que separa o tráfego bom do ruim. Esses postos são muito eficientes, mas não são perfeitos. Um pequeno percentual de tráfego ruim sempre acaba passando.

Num dia normal, a maioria dos carros é tráfego legítimo, ocupando só uma faixa da nossa rodovia. Porém, um ataque DDoS hipervolumétrico é como o pior engarrafamento que vocês já pegaram (para os jogadores ingleses, imaginem a M25 na hora do rush)! O posto ainda cumpre seu papel, mas o tráfego é tão intenso que a pequena fração que passa já é suficiente para engarrafar a estrada local. Todas as quatro pistas estão congestionadas, e a fila de carros esperando para entrar na estrada está crescendo.

As filas demoram tanto que o tráfego legítimo começa a desistir e voltar para casa. No mundo real, isso assume a forma do tempo limite de rede.

Como a Jagex responde a ataques DDoS?

A Jagex é alvo de centenas de ataques DDoS todos os anos. Numa tendência presente em toda a indústria, eles estão ficando mais comuns e causando mais transtornos. Quase todos os ataques são atenuados imediatamente pelas defesas da Jagex.

A rede da Jagex é monitorada e protegida 24 horas por dia, sete dias por semana. Quando um ataque afeta nossos jogadores, os engenheiros de infraestrutura e os dos nossos parceiros entram em ação. Não podemos dar detalhes de procedimentos específicos para não entregar o ouro a malfeitores, mas as equipes de engenharia sempre tentarão analisar e conter o ataque.

O que a Jagex está fazendo para se proteger de outros ataques?

Existem três formas principais de expandir ou melhorar a infraestrutura para lidar com esse tipo de ataque:

  1. Aumentar a capacidade de limpeza do tráfego global (o posto da analogia da estrada) e refinar seu conjunto de regras para reduzir o tráfego ilegítimo que escapa para a nossa rede (rodovia local) durante um ataque.
  2. Aumentar a capacidade da nossa própria rede (rodovia local) para deixá-la com uma folga maior nos ataques.
  3. Aumentar a capacidade das nossas redes de backend (vias particulares) para acomodar melhor um estouro de jogadores legítimos nos entupindo de logins/tentativas durante ou logo após um ataque.

Em resposta aos ataques recentes, os JMods de infraestrutura:

  1. Reformularam e aumentaram consideravelmente nossa capacidade de limpeza global (postos).
  2. Expandiram a largura de banda das nossas conexões de trânsito (rodovia local) em 300%.
  3. Expandiram a capacidade das nossas redes de backend (vias particulares) em 400%.

Então é o fim dos DDoS?

Isso, nós não temos como garantir. A infraestrutura e as medidas anteriores eram suficientes até deixarem de ser.

Proteger nossos jogos é uma corrida, mas continuaremos avaliando, investindo e melhorando.

E o meu ping?!

“Ei, descascador de batata anônimo que está escrevendo este post, você não disse que ia falar de ping? Por que o meu ping ficou ruim por semanas após os ataques?”

Excelente pergunta, Scaper.

Vamos continuar com a imagem da batata: Roteamento de batata quente, ou roteamento de saída precoce, É uma estratégia muito empregada pelos provedores para garantir que os seus pacotes peguem a rota mais barata de cada rede intermediária, mas não necessariamente a mais rápida.

No exemplo abaixo, o provedor A poderia fazer seus pacotes chegarem mais rápido ao destino, mas, devido à estratégia da batata quente, prefere pegar uma rota um pouco mais longa que minimiza os custos de rede dele.

Para oferecer aos jogadores os melhores caminhos para os nossos mundos de jogo, a Jagex emprega o roteamento “Anycast” para anunciar cada mundo de jogo de diferentes pontos de presença regionais. Dessa forma, o roteamento de batata quente incentiva os provedores a sair o quanto antes para a rede da Jagex de forma que a gente possa levar seus pacotes diretamente ao destino usando o nosso backbone.

Percebemos que alguns ataques só afetaram uma região de cada vez. Devido ao anycast, volumes altos de tráfego ruim pesaram os nossos pontos de presença, prejudicando jogadores em regiões que não foram diretamente atingidas pelo ataque.

Como medida temporária para combater isso, desabilitamos o anycast por algumas semanas. Isso isolou os ataques regionais e tirou a pressão da nossa rede de backbone, mas não sem aumentar a latência para muitos usuários.

Depois de trazer novas defesas, expandir pontos de presença e aumentar a capacidade da rede, trouxemos o roteamento anycast de volta à ativa. Isso normaliza o ping da maioria dos jogadores, mas a expansão dos pontos de presença muda o roteamento de alguns provedores e não beneficia a todos igualmente. Temos mais planos nesse departamento para compartilhar em outro post.

Perguntas Frequentes

Aqui vão nossas respostas para algumas das perguntas que vimos por aí!

Por que vocês não usam logo a empresa XYZ?

Avaliamos vários parceiros de mitigação de DDoS, tanto empresas indies quanto as grandes, além de formas de aprimorar ferramentas e processos internos. Devido ao caráter único dos nossos jogos, nem sempre o que funciona para os outros estúdios funciona para nós, mas estamos confiantes de que escolhemos a solução certa para o nosso caso.

Quem promoveu o ataque?

É muito difícil atribuir a contratação de botnets a grupos ou indivíduos. Em ataques significativos, a Jagex trabalha com as autoridades para investigar.

E nuvem? Ajuda?

Capacidade nunca é demais, mas serviços de mitigação de DDoS como AWS Shield Advanced e Azure DDoS Protection não são necessariamente um avanço em relação à nossa abordagem atual.

Estamos fazendo avanços em mundos baseados em nuvem. Fique de olho.

Por que vocês não se precaveram com defesas melhores?

Enfrentamos centenas de ataques DDoS por ano. Na maioria das vezes, nossas defesas protegem Guilenor automaticamente, sem intervenção manual, ou seja, pouquíssimos desses ataques causam grandes transtornos.

Os agressores estão sempre adaptando e ampliando seus métodos. Estamos aprendendo constantemente e vamos continuar investindo na área.

Parece um desafio muito divertido de resolver, posso ajudar?

Se você gosta de desafios assim e tem vontade de se envolver, fique de olho nas vagas em https://www.jagex.com/careers.

Quem é o mod 🐹?

Poder de computação medido em guinchados por segundo e os dentes rilhados da justiça (cuidado, DDoSers)!

“Vocês podem escrever um post sobre XYZ?”/“Minha pergunta não foi respondida aqui!”

Deixe um comentário no subreddit ou no Discord oficial para a gente tentar cobrir isso no futuro.


Mods Kraken, Vxp, Bash, Maniac, Vallcore, Haydon, Cky, Qwert, Drax, M0iqp, Ibex, Adad, Roman... e 🐹

- JMods de infraestrutura

Voltar ao início