h3>28.5.1 Segurança e Robustez do BGP
BGP pertence à classe de protocolos de roteamento vetorial de caminhos, onde cada nó anuncia a “melhor” rota para cada destino a todos os seus vizinhos. Um nó BGP armazena todos os caminhos enviados pelos seus vizinhos mas usa e anuncia apenas o “melhor” de acordo com uma determinada política. Quando este caminho primário falha, o BGP retira este caminho e seleciona a próxima melhor rota de backup. A nova rota é então anunciada aos seus vizinhos.
A razão fundamental para a popularidade do BGP é a sua grande flexibilidade na configuração e utilização de rotas para que cada Provedor de Serviços de Internet (ISP) possa implementar as suas políticas desejadas sem ter que torná-las públicas. Infelizmente, essa flexibilidade e opacidade também são a causa de muitos problemas com o BGP, incluindo configurações incompatíveis por diferentes ISPs, falta de visibilidade global sobre a qualidade ou status das rotas e incapacidade de montar uma abordagem coordenada para lidar com problemas de roteamento . Por exemplo, mesmo que todos os caminhos sejam escolhidos estritamente com base em estimativas de custos, o BGP freqüentemente apresenta comportamentos indesejáveis, como longos atrasos de convergência e oscilações, porque as informações sobre disponibilidade de caminho são tipicamente deduzidas em vez de explicitamente propagadas. Como resultado, o BGP pode substituir um caminho falhado pelo melhor caminho seguinte sem perceber que sua avaliação local desse caminho é incorreta. Esta ausência de informação sobre a validade de uma rota pode fazer com que o BGP passe por uma série de rotas de backup antes de selecionar uma válida. O ciclo de retiros/anúncios pode continuar por um período de tempo considerável. Este atraso é conhecido como o atraso de convergência (ou tempo de recuperação). Estas vulnerabilidades podem até ser exploradas por um atacante para que o BGP se comporte de forma pior do que de outra forma.
O problema de convergência tem sido examinado extensivamente na literatura . Em particular, foi demonstrado por Labovitz et al. que o atraso de convergência para retiradas de rotas isoladas pode ser maior que três minutos em 30% dos casos e pode chegar a 15 minutos. Eles também descobriram que a taxa de perda de pacotes pode aumentar em 30x e o atraso de pacotes em 4x durante a recuperação. Há também muitas tentativas de melhorar o atraso de convergência do BGP através de uma variedade de técnicas . A referência examina a questão do desempenho da entrega de pacotes e propõe uma técnica para reduzir a perda e atraso de pacotes.
Agora examinamos a robustez das próprias tabelas de roteamento. Embora seja difícil corromper diretamente as tabelas de roteamento, mensagens legítimas de atualização das tabelas de roteamento poderiam ser desviadas para criar tabelas de roteamento inconsistentes. Alternativamente, mensagens falsas de atualização poderiam ser enviadas simplesmente para esgotar a computação, memória ou outros recursos nos roteadores. Um problema relacionado é a perturbação das configurações de QoS, que pode ser explorada para interromper o tratamento adequado do tráfego. Uma supressão, duplicação ou alteração de mensagens de atualização de rotas pode causar entrega errada e congestionamento. Tais ataques têm sido amplamente considerados na literatura, e a proteção é feita através de meios criptográficos, como autenticação de mensagens de atualização e criptografia do conteúdo dos pacotes ou cabeçalhos. A referência fornece um levantamento abrangente das vulnerabilidades BGP e numerosos mecanismos de proteção.
Secure BGP (SBGP) utiliza atualizações de rotas assinadas, fazendo uso de duas hierarquias PKI, uma para garantir a integridade dos prefixos IP e outra para números AS. O principal objetivo da SBGP é garantir a integridade do “caminho AS” registrado nas atualizações de rotas e dos prefixos IP anunciados. (O AS-path é a lista de ASes através dos quais um anúncio de rota BGP ou mensagem de retirada viaja antes de chegar ao seu destino). O uso da hierarquia PKI é essencial para ter uma cadeia de confiança para cada prefixo IP e caminho AS; no entanto, a necessidade de múltiplas operações de chave pública torna o esquema bastante lento. Hu, Perrig e Johnson discutem um mecanismo rápido para assegurar atualizações de roteamento para BGP. Os autores justificam o uso de criptografia simétrica, que é muito mais eficiente do que o uso de PKI. Eles defendem o uso de cadeias de hash envolvendo um código de autenticação de mensagem (MAC) em cada nó ao longo do caminho percorrido pelos pacotes de atualização para garantir que as atualizações não sejam adulteradas e que os nós sejam adicionados ou removidos do caminho. Embora tal esquema possa assegurar atualizações, ainda há problemas de troca de chaves e a sobrecarga da verificação de MACs através de cadeias de hash. A Validação de Rota Inter-domínio (IRV) é uma autenticação muito diferente onde um servidor IRV em cada AS pode opcionalmente validar a atualização a partir do originador do AS.
Apesar de as técnicas criptográficas serem capazes de proteger as atualizações de roteamento contra alterações não autorizadas, elas trazem uma complexidade extra e assim aumentam as chances de configurações erradas. De fato, os problemas da SBGP, que usa uma hierarquia PKI, são similares aos problemas do DNSSEC discutidos na Seção 28.3.3.
Em casos raros, um AS pode se tornar malicioso, talvez devido ao comprometimento por um adversário. Por exemplo, um AS BGP malicioso pode decidir não retirar uma rota não funcional ou deixar de colocar uma rota funcional no conjunto de rotas atuais. Um AS malicioso também pode falsamente anunciar que tem o caminho mais desejável (por exemplo, o mais curto) para um determinado destino. Isto fará com que todo o tráfego para o destino seja encaminhado através deste AS e o AS pode bisbilhotar o tráfego ou simplesmente descartar parte ou todo ele e causar a negação de serviço. A modificação do AS-path também pode causar impactos similares. Conseguir um roteamento robusto apesar de alguns ASes maliciosos pode ser muito difícil, mas pode ser suficiente simplesmente detectar e colocar em quarentena tais ASes.