Use o BGP para se defender de um ataque DDoS originário do AS remoto

16

Eu tenho uma pergunta sobre o BGP e como obter essa configuração.

Meu roteador principal da empresa está conectado a um provedor de serviços de Internet (hospedagem única). Este roteador já trocou os prefixos IP públicos específicos para o ISP nas atualizações do BGP. Agora vamos dizer que há um AS a vários saltos de distância que está inundando meu AS local com um ataque DDoS. Existem várias redes nesse AS direcionadas aos servidores Web no meu AS local.

Como podemos parar esse tráfego em nosso roteador usando o BGP?

Agradecemos sua resposta !! :)

Harish Reddy
fonte
2
Como você estabeleceu a fonte desse tráfego? Se você estivesse olhando apenas os endereços IP de origem, eles poderiam ser falsificados. Uma enxurrada de pacotes de todos os endereços de origem de falsificação em um único AS é o que você veria se um ataque de reflexão estivesse acontecendo.
kasperd
Alguma resposta o ajudou? Nesse caso, você deve aceitar a resposta para que a pergunta não apareça para sempre, procurando uma resposta. Como alternativa, você pode fornecer e aceitar sua própria resposta.
Ron Maupin

Respostas:

14

Há duas coisas que você pode fazer com o BGP:

RTBH - Buraco Negro Acionado Remotamente

A primeira opção é a radical: Blackhole (interromper o tráfego) para o IP ser atacado. Desvantagem: o IP que está sendo segmentado não está mais acessível. Benefício: o restante da sua rede permanece ativo. O Packetlife tem uma boa explicação sobre como funciona e como fazê-lo. A segunda opção se baseia na primeira:

RTBH com base na fonte

O RTBH também pode ser usado (em determinadas configurações) para bloquear o tráfego proveniente de IPs específicos (em um DDoS real que não ajudaria tanto quanto o tráfego proveniente de milhares de IPs). Novamente, Packetlife tem uma explicação.

No seu caso, você pode obter todos os prefixos para o AS de um banco de dados de roteamento como o RADB e bloqueá-los com o RTBH com base na origem. O tráfego ainda atingia sua rede na fronteira.

Quando você usa RTBH "simples", a vantagem é que você pode enviar essas rotas RTBH para o ISP Upstream (se houver suporte), que já pode bloquear o tráfego na rede deles, para que você não precise lidar com isso.

Sebastian Wiesinger
fonte
O método descrito por Packetlife é útil, mas não será útil em um cenário em que seus uplinks estão saturados pelo tráfego de ataque. Eu escrevi uma resposta sobre o uso de comunidades de buracos negros a montante para resolver esse problema.
Elliot B.
2
Está na minha última frase: "Quando você usa o RTBH" simples ", a vantagem é que você pode enviar essas rotas RTBH para o seu ISP Upstream (se houver suporte), que poderiam bloquear o tráfego na rede deles para que você não tenha para lidar com isso ".
Sebastian Wiesinger
Vi isso, mas queria detalhar o método do buraco negro acionado pelo cliente e apontar que "[não ter que lidar com isso" significa que o buraco negro não seria eficaz de outra maneira. Não pretende ser uma batida na sua resposta, apenas fornecendo mais informações :)
Elliot B.
7

O método RTBH descrito por @Sebastian via Packetlife é útil, mas esse método só funcionará se o seu uplink não estiver saturado pelo tráfego de ataque. Se o seu uplink estiver saturado, o buraco negro deverá ser implementado em um ponto antes que o tráfego de ataque chegue à sua rede.

Você pode fazer isso com comunidades de buracos negros a montante.

O Hurricane Electric oferece uma explicação / exemplo simples de blackholing acionado pelo cliente com uma comunidade BGP:

  1. Ataque começa
  2. Cliente identifica faixa de ip ou ip sob ataque
  3. A estática do cliente roteia o intervalo de ip ou ip para Null0 e adiciona um anúncio do prefixo correspondente com um mapa de rota que o identifica com 6939: 666.

Exemplo de configuração da Cisco (em que XXXX o IP está sendo atacado):

conf t
ip route X.X.X.X 255.255.255.255 Null0
router bgp YourAS
network X.X.X.X mask 255.255.255.255 route-map blackhole
route-map blackhole permit 10
set community 6939:666
end

Observe que 6939:666é a comunidade de buracos negros específica para o Hurricane Electric. Você modificaria esse valor para corresponder à comunidade blackhole do seu provedor upstream.

É claro que existem várias maneiras de configurar isso. No meu equipamento Brocade, uso a seguinte configuração:

router bgp
!
redistribute static route-map blackhole
!
!
route-map blackhole permit  5
 match tag  66
 set community  55555:666

Onde 55555:666está a comunidade blackhole do seu provedor upstream. Um buraco negro a montante pode então ser aplicado com um comando simples:

ip route 123.123.123.123 255.255.255.255 null0 tag 66
Elliot B.
fonte
4

Da perspectiva do BGP, não há muito que você possa fazer. Você pode parar de anunciar seu prefixo, mas está apenas concluindo o ataque de negação de serviço, porque ninguém poderá acessar seu serviço.

Se você tiver vários prefixos, poderá renumerar, mas provavelmente o ataque também será movido para o novo prefixo.

O que você precisa fazer é trabalhar com o seu upstream. Eles têm um serviço de lavagem? Se eles tiverem um sistema como o Arbor Peakflow, poderão limpar o tráfego e limpá-lo antes que ele entre na sua rede. Tais serviços costumam ser muito caros.

Também existem outras opções, como Cloudflare e empresas similares, nas quais você configura o BGP por meio de um túnel GRE para essa empresa e seu tráfego é tratado pela "nuvem" deles, que pode lidar com muito mais tráfego do que os dispositivos locais.

Daniel Dib
fonte
0

Eu trabalho na CloudFlare, gostaria de compartilhar um pouco do conhecimento que desenvolvi sobre a mitigação de ataques DDOS nos últimos meses em que estive aqui.

Primeiramente; muitas pessoas recorrem a medidas no nível da rede para mitigar ataques DDOS da camada de aplicativos. Antes de mergulhar no BGP Blackholing, considere se é algo que limita a taxa ou se a proteção da camada de aplicação pode lidar. Dito isto; agora é muito barato lançar ataques DDOS de capacidade muito grande (considerando a quantidade de recursores de DNS aberto e como eles podem amplificar ataques).

Como Elliot descreveu em sua resposta, o uso de BGP Communities para o tráfego de buracos negros pode funcionar bem se sua rede for pequena; esse mecanismo está documentado na RFC 3882 . No entanto, como nós, se você deseja absorver o tráfego de ataque em vez de blackhole (ou seja, deseja coletar dados de ataque DDOS ), tenha cuidado com os danos colaterais pelos quais os provedores intermediários de rede acabam sendo congestionados. Você pode atenuar os danos colaterais consultando diretamente os ISPs das redes que estão lançando os ataques. Ao fazer isso, você tem o caminho mais curto do invasor ao destino. Além disso, você pode implementar um design de rede Anycast , isso efetivamente significa que um endereço IP atinge vários datacenters (dependendo do que for mais próximo).

Obviamente, não é possível para toda empresa ter a infraestrutura necessária para executar Anycast e peering; é por isso que as empresas estão recorrendo cada vez mais aos serviços em nuvem para remover o tráfego ruim antes que ele chegue aos datacenters. Naturalmente, o CloudFlare é um desses serviços.

mjsa
fonte
-1

Se toda a evidência que você coletou é uma enxurrada de pacotes com endereços IP de origem de um AS em particular, você provavelmente chegou à conclusão errada. Uma explicação mais provável seria que esses IPs de origem sejam falsificados.

Um ataque de reflexão / amplificação envolve o envio de muitos pacotes falsificando o endereço IP de origem de uma vítima. Se isso é realmente o que está acontecendo, e você possui servidores em sua rede que podem amplificar um ataque, a rede que você está acusando de ataque é realmente a vítima e você está ajudando o invasor.

Em tal situação, a solução não é aplicar nenhum tipo de engenharia de tráfego, mas configurar seus servidores para que não possam ser usados ​​em um ataque de amplificação. Como fazer isso não é realmente uma questão de engenharia de rede.

É claro que é possível que todos os pacotes sejam originários de um AS. Com a cooperação do AS ofensor, você pode obter a confirmação de que os pacotes se originam de fato do seu AS. No entanto, com esse nível de cooperação, você também pode bloquear o ataque na fonte.

Se assumirmos que você tem algum método que não pensei em obter confirmação, os pacotes são realmente originários do AS que você pensa, e que você não pode bloqueá-lo na fonte e deseja bloqueá-lo por meio do BGP, então eu li sobre um método um tanto arriscado para conseguir isso. A idéia é que você anexe um caminho AS à rota que está anunciando. Nesse caminho AS anexado, você inclui o número AS da origem desses pacotes.

Quando o anúncio chegar aos roteadores BGP no AS ofensivo, eles detectarão um loop e descartarão o anúncio. Enquanto isso, o resto do mundo não verá um loop e aceitará o anúncio.

Essa é a teoria. Se ele realmente funcionará na prática depende de alguns fatores diferentes. Por exemplo, depende de realmente usar o número AS de onde os pacotes são originários, que podem ser diferentes do número AS que anuncia esses endereços IP. (Essa diferença pode ser legítima ou devida a falsificação.)

Também depende do seu upstream não filtrar a rota se eles acharem o caminho AS suspeito. Além disso, redes mais distantes de você também podem descartar sua rota, por exemplo, se elas também tiveram experiências ruins com o AS ofensivo e decidiram descartar todas as rotas a partir daí.

É sua decisão se essa abordagem vale o risco.

(Eu teria vinculado à fonte dessa abordagem, se pudesse encontrá-la novamente.)

Kasperd
fonte
2
Isso é uma coisa muito perigosa de se fazer. Você está falsificando outro AS no seu caminho que não é seu. Além disso, se outras pessoas abandonarem rotas desse AS, também as abandonarão.
Sebastian Wiesinger
1
@Sebastian True, esse risco também existe. Mas se a alternativa for uma rede inacessível devido a uma inundação de tráfego, pode valer a pena o risco.
kasperd
Parece uma péssima idéia, nunca ouvi falar disso antes. Ele interrompe a conectividade de um ASN inteiro quando há um nó de botnet, que não é o que você deseja para, por exemplo, grandes provedores de nuvem. Além disso, ele se adapta mal aos DDoS, onde milhares de nós de botnet estão atacando algo na sua rede.
Teun Vink
1
@TeunVink Definitivamente, não é aplicável a um ataque DDoS típico. Mas o OP não está perguntando sobre um ataque DDoS típico. Ele está perguntando sobre um ataque em que todo o tráfego é originário de um AS. Quebrar a conectividade com um AS seria aceitável, se a alternativa fosse um ataque que quebra a conectividade com toda a Internet.
kasperd
-2

Você pode bloquear seu AS da rede local, para que o seu roteador BGP crie rotas nulas para qualquer prefixo que eles anunciarem.

Pró:

  • seu AS parecerá morto para eles, que é o objetivo deles, enquanto você ainda troca dados com todo mundo normalmente.
  • sua filtragem de entrada local eliminará automaticamente os pacotes recebidos desse AS

Contra:

  • eles podem criar rotas de buraco negro no seu roteador; portanto, certifique-se de ter regras apropriadas para manter intactas as rotas mais importantes
Simon Richter
fonte
1
Blackholing um AS inteiro significa que você acaba DOSE-se. Ninguém mais nesse AS pode alcançá-lo. Seus clientes também podem estar nesse AS.
Ron Trunk
1
Estou assumindo um AS hostil aqui, ou seja, a anotação de valor será perdida se você os bloquear completamente. Existem alguns serviços de "hospedagem à prova de balas" que eu arquivaria nessa categoria.
Simon Richter
1
A maioria dos ASNs não é completamente hostil ou amigável, apenas contém alguns hosts que fazem parte de uma botnet. Além disso, essa abordagem não impede que seus links upstream sejam inundados, portanto, não ajudará a interromper ataques DDoS baseados em volume.
Teun Vink