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 !! :)
Respostas:
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.
fonte
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:
Exemplo de configuração da Cisco (em que XXXX o IP está sendo atacado):
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:
Onde
55555:666
está a comunidade blackhole do seu provedor upstream. Um buraco negro a montante pode então ser aplicado com um comando simples:fonte
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.
fonte
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.
fonte
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.)
fonte
Você pode bloquear seu AS da rede local, para que o seu roteador BGP crie rotas nulas para qualquer prefixo que eles anunciarem.
Pró:
Contra:
fonte