Como posso detectar um ataque DDoS usando o pfSense para que eu possa dizer ao meu provedor que bloquear? [duplicado]

4

Na semana passada, minha rede foi atingido por um ataque DDoS que saturou completamente o nosso link de 100 MBps com a Internet e praticamente desligou todos os sites e serviços que hospedamos.

Eu entendo (desta experiência, bem como outras respostas ) que eu não posso lidar com um ataque DDoS como este em meu fim, porque mesmo se deixarmos os pacotes, eles ainda serão enviados pelo nosso link e estarão saturando nossa conexão.

No entanto, quando isso aconteceu, meu ISP foi (estranhamente) incapaz de me dizer de onde o ataque estava vindo. Eles disseram que se eu pudesse determinar a fonte (E.G. via tcpdump ) eu poderia dar a eles endereços IP para bloquear. Mas as coisas estavam tão sobrecarregadas que executar tcpdump era impossível. Eu simplesmente não consegui ver a saída.

Quase todos os nossos servidores estão atrás de um roteador pfSense. Como posso detectar um ataque DDoS usando pfSense para que eu possa dizer ao meu provedor que bloquear? Eu não quero bloquear o ataque sozinho, eu só quero receber alertas / ser capaz de ver uma lista de endereços IP que estão usando muito mais largura de banda do que o normal.

O roteador pfSense está executando o Snort, se isso puder ser usado para ajudar de alguma forma.

    
por Josh 03.08.2012 / 19:58

1 resposta

13

Existem vários tipos diferentes de DDoS, portanto, qualquer informação genérica sobre eles pode estar correta apenas para um tipo específico. Por exemplo, a ideia de que um DDoS sempre esgota sua largura de banda está incorreta. O que você precisa fazer é analisar (alguns) o tráfego, determinar por que ele está invadindo seu site, encontrar uma maneira de identificá-lo e, em seguida, decidir sobre uma ação que possa bloquear o tráfego.

O tráfego de DDoS provavelmente não se parece com tráfego real, mas o que o torna diferente não é necessariamente a quantidade. Durante um recente DDoS, nosso provedor de hospedagem decidiu bloquear os dez endereços IP de conexão mais altos. Tudo isso, claro, não teve nada a ver com o DDoS e um deles era, na verdade, o bot do Google. Eles teriam bloqueado nosso escritório, exceto que eles reconheceram o endereço IP. O conselho padrão para usar netstat , sort e uniq para encontrar as conexões mais altas não é necessariamente um bom conselho.

Nosso DDoS foi um SYN-flood, o que significa algumas coisas para detecção:

  1. Essas não são conexões totalmente abertas, portanto, dependendo de como você está medindo as conexões, talvez nem as veja.
  2. Não há muita informação de identificação para continuar. Praticamente apenas endereço IP de origem e porta de origem.
  3. O endereço de origem pode (e quase certamente será) falsificado porque não está esperando uma resposta.
  4. Você pode ter sorte e encontrar uma bandeira TCP incomum definida.

Você pode ver apenas cada endereço IP uma vez, o que tornaria o bloqueio de um endereço IP que você já viu bastante inútil. Na prática, vimos 100.000 endereços IP de origem exclusivos em 10 minutos e 140.000 pacotes por segundo, o que significa que (em média) cada endereço IP retornou uma vez por segundo. O bloqueio de endereços IP teria sido eficaz no nosso caso. A largura de banda total foi de apenas 70Mb / s e, como os endereços de origem foram falsificados, todo o DDoS poderia ter sido facilmente eliminado por um único servidor em algum lugar.

Como cada endereço IP enviava apenas um pacote por segundo, isso era consideravelmente mais baixo do que qualquer outro endereço IP legítimo. Muitas de nossas home pages de sites têm até MB, o que significa milhares de pacotes para o que o usuário vê como uma única solicitação.

Principalmente as portas de origem foram randomizadas, mas por algumas horas ela mudou e a porta de origem sempre foi 1234. Isso facilitou muito a identificação do tráfego.

No nosso caso, o problema era que o número de pacotes por segundo era maior do que o que o firewall poderia suportar. Bloquear esses endereços IP em nosso firewall não funcionaria porque o firewall era o problema, mas se o tráfego está passando pelo firewall e as caixas da web são o problema, o bloqueio no firewall pode ajudar. Nosso provedor de hospedagem conseguiu bloquear o tráfego a montante de nosso firewall quando a porta de origem mudou para 1234.

Existem outros tipos de DDoS e alguns deles preenchem sua largura de banda. O nosso nocauteou nosso firewall de qualquer maneira, o que significa que não poderíamos acessar nenhuma parte de nossa infraestrutura. Para sua pergunta específica, você precisará de algum modo fora de banda para se comunicar com seu firewall e / ou caixas para que, se o seu cachimbo de Internet for preenchido, você ainda consiga diagnosticar o problema. Em geral, isso é uma boa ideia, porque há muitas outras maneiras de diminuir seu cachimbo. Eu costumo ver um monte de modems ADSL nas prateleiras de outras pessoas quando eu ando em torno de centros de dados e não ficaria surpreso se alguns deles fossem para comunicação fora da banda.

Dois outros tipos de DDoS que eu já vi são solicitações de DNS refletidas e solicitações HTTP caras. As solicitações de DNS refletidas são particularmente problemáticas se você executar um resolvedor de DNS porque não deseja bloquear esses endereços IP, caso deseje receber uma resposta real de um deles. Eu mudaria meus hosts para usar um novo resolvedor de DNS (talvez um público grátis) e bloquear todos os outros tráfegos de DNS.

As caras solicitações HTTP tendem a ter como alvo sua CPU / Memória / IOPS. Eles também vêm com muitas informações de identificação, como cabeçalhos HTTP, e os endereços de origem não podem ser falsificados. Uma ferramenta como o mod_security pode fazer coisas incríveis identificando e bloqueando esses tipos de solicitações. Pode até mesmo eliminar a conexão tcp em vez de enviar uma resposta HTTP.

Resumindo:

  1. Obtenha acesso fora de banda.
  2. Conheça seus protocolos de dentro para fora. (TCP, IP, HTTP, o que você usa.)
  3. Conheça suas ferramentas de dentro para fora. (pfSense, tcpdump, mod_security, etc.)
  4. Conheça suas opções. (HTTP 403, bloco pfSense, bloco de firewall ISP, rota nula, etc.)
por 04.08.2012 / 09:43