28.5.1 Seguridad y robustez de BGP
BGP pertenece a la clase de protocolos de enrutamiento vectorial, en los que cada nodo anuncia la «mejor» ruta para cada destino a todos sus vecinos. Un nodo BGP almacena todas las rutas enviadas por sus vecinos, pero utiliza y anuncia sólo la que es «mejor» según una determinada política. Cuando esta ruta primaria falla, BGP retira esta ruta y selecciona la siguiente mejor ruta de reserva. La nueva ruta se anuncia entonces a sus vecinos.
La razón fundamental de la popularidad de BGP es su gran flexibilidad a la hora de configurar y utilizar las rutas, de modo que cada proveedor de servicios de Internet (ISP) puede aplicar las políticas que desee sin tener que hacerlas públicas. Desgraciadamente, esta flexibilidad y opacidad son también la causa de muchos problemas con BGP, como la incompatibilidad de configuraciones por parte de diferentes ISP, la falta de visibilidad global de la calidad o el estado de las rutas y la incapacidad de montar un enfoque coordinado para manejar los problemas de enrutamiento . Por ejemplo, incluso si todas las rutas se eligen estrictamente en función de las estimaciones de costes, BGP suele mostrar un comportamiento indeseable, como largos retrasos de convergencia y oscilaciones, porque la información sobre la disponibilidad de la ruta suele deducirse en lugar de propagarse explícitamente. Como resultado, BGP puede sustituir una ruta fallida por la siguiente mejor sin darse cuenta de que su evaluación local de esta ruta es incorrecta . Esta ausencia de información sobre la validez de una ruta puede hacer que BGP pase por varias rutas de reserva antes de seleccionar una válida. El ciclo de retiradas/anuncios puede continuar durante un tiempo considerable. Este retraso se conoce como retraso de convergencia (o tiempo de recuperación). Estas vulnerabilidades pueden incluso ser explotadas por un atacante para hacer que BGP se comporte de una manera peor que de otra manera.
El problema de la convergencia ha sido examinado ampliamente en la literatura . En particular, se demostró por Labovitz et al. que el retraso de convergencia para las retiradas de rutas aisladas puede ser mayor de tres minutos en el 30% de los casos y podría ser tan alto como 15 minutos. También descubrieron que la tasa de pérdida de paquetes puede aumentar en 30 veces y el retraso de los paquetes en 4 veces durante la recuperación. También hay muchos intentos de mejorar el retardo de convergencia de BGP mediante diversas técnicas. Reference examina la cuestión del rendimiento de la entrega de paquetes y propone una técnica para reducir la pérdida de paquetes y el retraso.
Ahora examinamos la robustez de las propias tablas de enrutamiento. Aunque es difícil corromper las tablas de enrutamiento directamente, los mensajes legítimos de actualización de las tablas de enrutamiento podrían ser secuestrados para crear tablas de enrutamiento inconsistentes. Otra posibilidad es que se envíen mensajes de actualización falsos simplemente para agotar los recursos informáticos, de memoria o de otro tipo de los routers. Un problema relacionado es el de la perturbación de la configuración de la QoS, que puede ser explotada para interrumpir el tratamiento adecuado del tráfico. La supresión, la duplicación o la modificación de los mensajes de actualización de rutas puede provocar una entrega errónea y una congestión. Este tipo de ataques se ha estudiado ampliamente en la literatura, y la protección se realiza a través de medios criptográficos, como la autenticación de los mensajes de actualización y el cifrado del contenido o las cabeceras de los paquetes. La referencia proporciona un estudio exhaustivo de las vulnerabilidades de BGP y numerosos mecanismos de protección.
Secure BGP (SBGP) utiliza actualizaciones de rutas firmadas haciendo uso de dos jerarquías PKI, una para asegurar la integridad de los prefijos IP y la otra para los números de AS. El objetivo principal de SBGP es garantizar la integridad de la «ruta AS» registrada en las actualizaciones de ruta y los prefijos IP anunciados. (AS-path es la lista de ASes por la que viaja un mensaje de anuncio o retirada de ruta BGP antes de llegar a su destino). El uso de la jerarquía PKI es esencial para tener una cadena de confianza para cada prefijo IP y AS-path; sin embargo, la necesidad de múltiples operaciones de clave pública hace que el esquema sea bastante lento. Hu, Perrig y Johnson discuten un mecanismo rápido para asegurar las actualizaciones de enrutamiento para BGP. Los autores defienden el uso de criptografía simétrica, que es mucho más eficiente que el uso de PKI. Defienden el uso de cadenas de hash que incluyan un código de autenticación de mensajes (MAC) en cada nodo a lo largo de la ruta tomada por los paquetes de actualización para garantizar que las actualizaciones no sean manipuladas y que se añadan o eliminen nodos de la ruta. Aunque este esquema puede asegurar las actualizaciones, sigue habiendo problemas de intercambio de claves y la sobrecarga de comprobar los MAC en las cadenas de hash. La validación de rutas entre dominios (IRV) es una autenticación muy diferente en la que un servidor IRV en cada AS puede validar opcionalmente la actualización del originador del AS.
Aunque las técnicas criptográficas son capaces de asegurar las actualizaciones de enrutamiento contra cambios no autorizados, aportan una complejidad extra y, por tanto, aumentan las posibilidades de errores de configuración. De hecho, los problemas de SBGP, que utiliza una jerarquía PKI, son similares a los problemas de DNSSEC discutidos en la Sección 28.3.3.
En casos raros, un AS puede volverse malicioso por sí mismo, tal vez debido al compromiso de un adversario. Por ejemplo, un AS BGP malicioso puede decidir no retirar una ruta que no funciona o no poner una ruta que funciona en el conjunto de rutas actuales. Un AS malicioso también podría anunciar falsamente que tiene la ruta más deseable (por ejemplo, la más corta) hacia un determinado destino. Esto hará que todo el tráfico hacia el destino se enrute a través de este AS y el AS podría espiar el tráfico o simplemente descartar parte o todo el tráfico y causar una denegación de servicio. La modificación de la ruta del AS también puede causar impactos similares. Lograr un enrutamiento robusto a pesar de algunos ASs maliciosos puede ser muy difícil, pero puede ser suficiente simplemente detectar y poner en cuarentena tales ASs.