Border Gateway Protocol (BGP) es un estándar IETF que se refiere a un protocolo de puerta de enlace que controla cómo se enrutan los paquetes de una red a otra mediante el intercambio de enrutamiento y su información de accesibilidad entre los enrutadores de borde y también mediante el intercambio de información de enrutamiento entre sistemas autónomos, como redes interactúan y dependen unos de otros y necesitan una forma de comunicarse entre sí, BGP ayuda en eso. BGP es uno de los protocolos de enrutamiento más escalables y ha ampliado su propósito inicial de transportar información de accesibilidad de Internet y ahora puede transportar rutas para VPN, IPv6, multidifusión y otros tipos de datos.
Todos los enrutadores BGP tienen una tabla de enrutamiento que contiene las mejores rutas entre los sistemas autónomos y siempre toma la ruta más directa y más corta de un sistema autónomo a otro para llegar a sus direcciones de destino con la menor cantidad de saltos posibles a través de las redes.
El envenenamiento de BGP es un método para descubrir otras rutas BGP posibles que no pasan por sistemas autónomos definidos mediante la transmisión de mensajes BGP creados discretamente. Influye en el mecanismo de disuasión de bucle del sistema autónomo en BGP.
Funcionamiento del envenenamiento por BGP:
Un sistema autónomo antepone otros sistemas autónomos que no deben cruzarse en una instrucción BGP. Estos sistemas autónomos, al recibir el anuncio creado falsamente, rechazan la ruta del sistema autónomo y anulan su ruta de sus vecinos debido al mecanismo de disuasión de bucle de BGP. Por ejemplo, para descubrir los caminos que no cruzan el sistema autónomo P en la dirección de un prefijo p propiedad del sistema autónomo O, ahora el sistema autónomo O puede declarar una ruta autónoma que contenga P, como (OPO | p) . Cuando esta declaración llega al sistema autónomo P, el sistema autónomo P descarta la ruta y extrae su ruta de los vecinos debido a la propagación de la declaración anteponiendo sus números de sistema autónomo que dan como resultado un bucle en la ruta del sistema autónomo. Por lo tanto,
Es posible envenenar múltiples sistemas autónomos a la vez. Una de las formas más sencillas de hacerlo es incluir todos los sistemas autónomos que planeamos envenenar en la ruta del sistema autónomo de la declaración, como (OP 1 , P 2 , P 3 , … P n O) donde P 1 , P 2 , PAGS 3 , … PAGS norteson los sistemas autónomos para envenenar. Habiendo dicho eso, este enfoque no se puede usar cuando la cantidad de sistemas autónomos que deben envenenarse es grande, ya que los enrutadores BGP eliminan los mensajes BGP con una ruta larga del sistema autónomo. Un enfoque alternativo es usar un conjunto de sistemas autónomos, es decir, un conjunto desordenado de números de sistemas autónomos, para contener todos los sistemas autónomos a envenenar en la ruta del sistema autónomo, por ejemplo, (O {P 1 , P 2 , P 3 , … P n } O), donde {P 1 , P 2 , P 3 , … P n} es un conjunto de sistemas autónomos con sistemas autónomos para envenenar. Utilizando este método, es posible enviar anuncios BGP pero solo con una longitud de 3 para envenenar cualquier número de sistemas autónomos, este método también se conoce como relleno de conjuntos de sistemas autónomos. Sin embargo, este método también tiene su propio conjunto de problemas, como los mensajes BGP con un gran sistema autónomo establecido en una ruta autónoma que los enrutadores BGP filtran. Para aumentar la cantidad de sistemas autónomos que se van a envenenar, se deben usar varios conjuntos de sistemas autónomos en la ruta del sistema autónomo.
Como se puede observar en la imagen anterior, la ruta que observa el monitor M es (SXNV | p) en dirección al prefijo p que declara el sistema autónomo V. Para descubrir otras rutas desde el sistema autónomo S en dirección a p, envenenamos el sistema autónomo X declarando (VXV | p). Ahora, el mecanismo de disuasión de bucle se activará y retirará las rutas del sistema autónomo X al sistema autónomo V, haciendo que el sistema autónomo S elija una ruta diferente al prefijo p, que es (SYNV | p).
Prevenciones:
- Filtrado de prefijos IP.
- Deben incorporar normas mutuamente acordadas para la seguridad del enrutamiento.
- El número de prefijos debe ser restringido.
- Deben implementarse puntos de control de autenticación.
- Se deben utilizar herramientas de respuesta automática.
Ejemplo de envenenamiento por BGP:
Por ejemplo, hace unos años, un proveedor anunció algunos prefijos de IP que pertenecen al servicio Amazon Route 53 DNS de AWS. Entonces, los usuarios que intentaban iniciar sesión en un sitio web de criptomonedas fueron redirigidos a una versión falsa de ese sitio web que estaba controlada por actores maliciosos. Por lo tanto, estos actores maliciosos pudieron robar aproximadamente $160,000 en Ethereum.
Conclusión:
El envenenamiento de BGP nos permite encontrar diferentes rutas en la dirección de un prefijo, lo que puede ayudarnos a encontrar los vecinos de segundo salto de un sistema autónomo. A partir de estas rutas recién encontradas, también podemos descubrir el nuevo segundo salto de vecinos de un sistema autónomo. Eso es para lo que usamos principalmente el envenenamiento de BGP, es decir, para encontrar los vecinos del segundo salto.