Seguridad en protocolos de routing: BGP.
|
BGP (Border Gateway Protocol) es un protocolo de routing, mediante el cual se intercambia información de encaminamiento entre sistemas autónomos. Por ejemplo, los proveedores de servicio de Internet (ISP), suelen constar de diversos sistemas autónomos y para este caso es necesario un protocolo como BGP.
Los sistemas autónomos de los ISP interactúan entre ellos permutando sus tablas de rutas a través del protocolo BGP. Este intercambio de información de encaminamiento se hace entre los routers externos de cada sistema autónomo, los cuales deben soportar BGP. Se trata del protocolo más utilizado para redes que trabajan con un Exterior Gateway Protocol (EGP).
El protocolo de gateway fronterizo (BGP) es un ejemplo de protocolo de gateway exterior (EGP). BGP permite permutar información de encaminamiento entre sistemas autónomos, a la vez que asegura una elección de rutas libres de bucles. Es el protocolo de publicación de rutas más utilizado por los ISP. BGP4 es la primera versión que acepta encaminamiento entre dominios sin clase (CIDR) y agregado de rutas. A diferencia de los protocolos de Gateway internos (IGP), como RIP, OSPF y EIGRP, no usa métricas como: número de saltos, ancho de banda o retardos. En cambio, BGP toma decisiones de encaminamiento basándose en políticas de la red o reglas que utilizan varios atributos de ruta BGP.
La forma de configurar y delimitar la información que contiene e intercambia el protocolo BGP es creando lo que se conoce como sistema autónomo. Cada sistema autónomo (AS) tendrá conexiones o, mejor dicho, sesiones internas (iBGP) y además sesiones externas (eBGP).
BGP tiene una serie de vulnerabilidades a parte de las originadas por una mala configuración de las que cabe destacar las siguientes:
- Envío de información de encaminamiento en texto plano.
- Falta de control temporal de los mensajes BGP. Sin este control, un atacante situado entre dos routers BGP vecinos podría capturar tráfico BGP, por ejemplo, un mensaje UPDATE que elimine cierta ruta y reproducirlo en un instante futuro.
- Falta de verificación de integridad en las rutas recibidas.
- No se autentica el origen de las rutas. Pueden realizarse con relativa facilidad ataques de suplantación de prefijos, sistemas autónomos o routers y tener repercusiones a nivel de Internet. Por tanto, es necesario utilizar mecanismos de autentificación que garanticen que cada elemento del sistema es quien dice ser.
- Mal manejo en el control de encaminamiento que puede producir denegación de servicios.
Las principales medidas que se deben de tomar para securizar los elementos de red que trabajan con BGP son:
- Proteger los mensajes de actualización (updates): Un mensaje de actualización erróneo o falsificado provocaría la designación equivocada de rutas.
- Control de acceso para evitar información no autorizada (spoofing). Esto se lleva a cabo mediante reglas de filtrado que evitan que redes no autorizadas ingresen en un sistema autónomo. Utilizando reglas de filtrado se pueden definir las rutas que se aceptarán y aquellas que serán anunciadas. Un ISP para evitar este problema debe filtrar todas las rutas que procedan de una organización final diferentes a las correspondientes a sus prefijos registrados.
- Por su parte, una organización final debe ajustar sus filtros para no anunciar sus rutas de otros sistemas autónomos (para impedir el trafico).
Existen dos herramientas ideales para auditar la topología de rutas en el protocolo BGP y ver los cambios de enrutamiento para reforzar la seguridad de la red: BGPHist y LinkRank.
BGPHist, es una herramienta que pueda obtener actualizaciones MP-BGP, decodificarlo y escribir en un almacenamiento de backend para el registro y monitorizacion.
Se admite rutas no sólo de Internet, sino también estas familias de direcciones:
- Multicast ipv4.
- Unicast etiquetado de ipv4.
- Unicast vpnv4.
- Unicast ipv6.
- Unicast etiquetado de ipv6.
- Unicast vpnv6.
- L2vpn vpls-vpws.
- Mvpn en ipv4.
El almacenamientos de resultados en el backend puede ser: texto plano, bases de datos MySQL y Oracle.
Para el almacenamiento backend en MySQL también hay una sencilla interfaz de PHP, lo que lo convierte en la opción mas recomendable. Esta aplicación permite:
- Controlar y registrar la actividad de los clientes del ISP y redes privadas virtuales.
- Uso como una mira pasiva en BGP para todas las VPN y acceso a Internet.
- Como backend pora algún sistema de motorización externo.
BGPHist debe conectarse al router que tiene el rol de reflector en BGP como un cliente para obtener todas las actualizaciones de enrutamiento. No permite generar mensajes de actualización de BGP, sólo actúa como un oyente.
Más información y descarga de BGPHist:
https://sourceforge.net/projects/bgphist/?source=directory
LinkRank es una herramienta para visualizar los cambios de enrutamiento BGP (protocolo utilizado en MPLS). Esta herramienta puede ser utilizada para entender la dinámica de enrutamiento, o para aprender más sobre BGP.
LinkRank resume los megabytes de actualizaciones BGP recibidos de los puntos de recogida y genera gráficos que indican los segmentos de rutas afectadas. Captura la dinámica de enrutamiento en forma gráfico que muestra claramente que los enlaces AS-AS han perdido rutas y cuáles han ganado rutas.Cada enlace AS-AS se pesa por el número de rutas BGP realizan y los cambios en los pesos de enlace se utilizan para visualizar los eventos de enrutamiento.
Más información y descarga de LinkRank:
http://sourceforge.net/projects/link-rank/?source=directory
BGP (Border Gateway Protocol):
https://es.wikipedia.org/wiki/Border_Gateway_Protocol
Análisis protocolo BGP-4 RFC4274:
http://tools.ietf.org/html/rfc4274
Seguridad en protocolos de routing: IGRP y EIGRP.
http://www.gurudelainformatica.es/2013/05/seguridad-en-protocolos-de-routing-igrp.html