Parando um ataque do DOS

9

Um dos sites com os quais trabalho recentemente começou a receber DoS. Começou a 30k RPS e agora está a 50k / min. Os IPs são praticamente todos únicos, não estão na mesma sub-rede e estão em vários países. Eles solicitam apenas a página principal. Alguma dica sobre como parar isso?

Os servidores estão em execução no Linux com o Apache como servidor da web.

obrigado

William
fonte
Que tipo de tráfego é esse? Você identificou que tipo de DDoS é? isto é, está consumindo sua largura de banda ou está consumindo os recursos do sistema?
21413 Josh Brower
Esta é uma ótima pergunta, mas aparentemente não há uma resposta real. Uau, eu nunca soube que a parede de tijolos do DoS era tão espessa.
Xeoncross

Respostas:

4

Você não está apenas tentando suportar um DoS, está tentando suportar um DDoS, que é distribuído e muito mais difícil de lidar.

Essencialmente, você está tentando identificar tráfego ilegítimo e bloqueá-lo. Idealmente, você deseja rotear nulo esse tráfego (melhor ainda, faça com que seus provedores upstream o rotulem nulo)

A primeira porta de escala é a identificação. Você precisa encontrar uma maneira de identificar o tráfego que está sendo enviado ao seu host. Seja um agente de usuário comum, seja o fato de que eles não estão realmente usando um navegador adequado ( DICA: eles agem como navegadores adequados - por exemplo, seguem os redirecionamentos 301), se todas as solicitações chegam exatamente ao mesmo tempo ou como muitas solicitações que cada IP está atingindo no servidor por hora.

Você não pode bloqueá-los sem identificá-los e precisa encontrar uma maneira de fazer isso.

Essas ferramentas de mitigação de DDoS essencialmente fazem a mesma coisa, exceto em tempo real e custam uma bomba. Na metade do tempo, há falsos positivos ou o DDoS é tão grande que não importa, então tome cuidado onde você coloca seu dinheiro aqui se decidir investir em um deles agora ou no futuro.

Lembre-se: 1. IDENTIFICAR 2. BLOCO . 1 é a parte mais difícil.

Philip Reynolds
fonte
1
O problema não está bloqueando, o problema está identificando. Você não pode bloquear algo se não conseguir identificá-lo. Até agora, não vimos nenhum padrão. Navegadores reais, sem padrões nos tempos de solicitação, países completamente diferentes, sem referenciadores, seguem redirecionamentos, aceitam cookies. Eles agem como usuários normais. Parece que é quase impossível dizer. Estamos pensando em rotear todo o tráfego para a Amazon, fazer com que a Amazon lide com todas as solicitações da página inicial que serão armazenadas em cache e todas as outras páginas tratadas por nosso aplicativo da Web por enquanto. Obrigado pela resposta embora.
William
Correção menor: provavelmente não são navegadores reais, lembre-se disso ao trabalhar na identificação. Além disso, como é sua base de usuários? Se está tudo centrado nos EUA, você pode querer bloquear solicitações offshore, um paliativo para comprar-lhe um pouco de espaço para respirar ...
pboin
Eles não são navegadores "reais" no sentido de que estão usando o Firefox, Chrome etc. para suas solicitações. Uma coisa que você notará é como eu disse que esses IPs são únicos, funcionando por horas, no ponto mais alto de um RPS. Aparentemente, essa "pessoa" possui uma enorme rede de bots, mesmo o nosso data center (ThePlanet) também não consegue descobrir uma maneira de pará-lo. Não é muito fácil saber se é um navegador ou não. Se segue redirecionamentos, armazena cookies, etc, como você diz? Além de você precisar se lembrar de algo, cada solicitação é única. Portanto, banir um IP não significa nada. As solicitações precisam ser bloqueadas antes que elas atinjam nosso servidor.
227 William
Não navegadores ou navegadores baseados em texto não tendem a executar javascript? Qual cabeçalho do agente do usuário eles também estão fornecendo?
Philip Reynolds
1

Você está assumindo que este é um DDoS intencional. A primeira coisa a tentar é alterar o endereço IP. Se na verdade não for intencional, ele irá parar.

De onde viriam esses pedidos se não fossem intencionais? Pode ser aleatório ou pode ser um alvo errado. Improvável, mas vale a pena tentar.

Tem certeza de que não está apenas recebendo muito tráfego legítimo? Talvez você tenha sido pontilhado, ou algo assim. Tente olhar para os referenciadores nos logs.

Chase Seibert
fonte
0

O seu roteador / balanceador de carga front-end não possui gerenciamento de ataques do DOS? O nosso faz e faz um mundo de diferença.

Chopper3
fonte
O problema é que TODOS os ip são únicos, de diferentes países etc. Não há realmente nenhuma maneira de diferenciar o invasor de um usuário legítimo. Toda a nossa largura de banda está sendo consumida agora, podemos fazer qualquer coisa.
227 William
Mas os roteadores que gerenciam o DOS e os balanceadores de carga não se importam de onde vem o tráfego; se eles veem um certo tipo de tráfego relacionado ao DOS de determinados IPs, eles o ignoram e continuam seu trabalho independentemente, permitindo que os servidores tráfego do servidor e do cliente a ser tratado corretamente. Pessoas como Cisco e Foundry ganham muito dinheiro com seu trabalho nesta área e o que você vê não é nada fora do comum.
Chopper3
0

Você pode solicitar ao seu provedor upstream que peça assistência ao upstream. Digamos, por exemplo, que você administre um site apenas com usuários do Reino Unido. Em seguida, você pode verificar de onde o tráfego geralmente se origina usando algum banco de dados whois. Digamos, por exemplo, que uma quantidade significativa de seu tráfego indesejado seja originária da Rússia, China e / ou Coréia. Em seguida, você pode ligar para seu provedor upstream e pedir que eles chamem o deles para anular temporariamente seus endereços IP a partir dessas áreas, assumindo que eles tenham roteadores próximos às fontes.

Esta não é uma solução a longo prazo, mas ajuda se a sua base de usuários estiver agrupada em algumas áreas geográficas. No passado, eu já ajudava clientes como esse, simplesmente não os anunciava para pares iniciantes, apenas nacionais. Isso afastou parte de seus negócios (usuários que os consideravam inacessíveis porque não estavam mais disponíveis internacionalmente), mas é muito melhor do que apenas ficar fora de serviço.

Mas no final das contas, isso é mais um ato desesperado. Mas é melhor cortar um membro do que perder o corpo.

Se você tiver sorte, o seu provedor de upstream possui o equipamento e está disposto a ajudá-lo a filtrar a maior parte do tráfego indesejado.

Boa sorte :-)

Rune Nilssen
fonte