viernes, 29 de agosto de 2008

Un inmenso ¿agujero? de seguridad en BGP (Border GAteway Protocol)


Se ha hecho pública una técnica para interceptar inadvertidamente el tráfico de Internet a una escala hasta ahora desconocida.

La táctica hace uso de protocolo de enrutamiento BGP. A grandes rasgos, un protocolo de enrutamiento permite que los routers (dispositivos que transportan el tráfico informático) puedan comunicarse de manera autónoma (sin la intervención de un ingeniero) y poder decidir por si solos hacia dónde y de qué manera envían el tráfico para que llegue a un determinado destino. BGP es un protocolo muy usado entre Proveedores de Servicios de Internet o ISP (Telefónica, British Telecom, etc), para anunciar a los otros proveedores los caminos hacia sus redes.

No es el primer agujero en los protocolos fundamentales de Internet que se descubre en las últimas fechas (DNS) y esto se debe en gran medida a que los protocolos fueron diseñados en los años '70 bajo la asunción de que cada nodo en la red sería confiable. Este no parece ser el caso.

Se trata de una vulnerabilidad a un ataque de los llamados man-in-the-middle (hombre en el medio) en los que se podría engañar a BGP para redireccionar el tráfico a la red del atacante. Parace que con un router que "hable" BGP el atacante podría interceptar tráfico con destino a una dirección concreta pero no dependiendo de la dirección IP de origen.

La vulnerabilidad, dicen los expertos, no es un fallo sino que más bien explota la forma en que BGP fue diseñado, para mantener el nivel de interconectividad que la maya de Internet necesita para funcionar. Esto se hace a través de relaciones de confianza entre Sistemas Autónomos o AS (básicamente los diferentes proveedores de servicios en todo el mundo). Como las tablas de direcciones de Internet son inmensas, ya no sólo un router no puede conocerlas todas, sino que los propios AS tampoco conocen las de otros AS, confiando unos en otros para mandar el tráfico a su destino.

Cuando a un router (pongamos Router A) le llega un paquete IP dirigido a un determinado destino buscará en su tabla de enrutamiento cual es el siguiente salto (router) a donde enviar ese tráfico. Si dos routers (B y C) en dos AS distintos pueden enviar el tráfico a su destino (porque así se lo han comunicado a A mediante BGP), El Router A elegirá la ruta (el router a donde enviar el tráfico) con un prefijo más específico, por ejemplo, si el Router B puede enviar el tráfico a su destino porque conoce la red entera donde la dirección IP de destino se encuentram pero el Router C conoce una pequeña porción de esa red,el router A enviará el tráfico a C.

Parace que para interceptar ese tráfico bastaría con que un administrador malicioso publicara (insertara manualmente en BGP) un rango de direcciones IP más concreto de los advertidos por otros routers o AS. El router empezará a publicar que él puede llegar a estos destinos y en pocos minutos la información se habrá esparcido por Internet.

El problema ahora es ¿cómo se va a distinguir en las rutas BGP de los routers un cambio malicioso de un legítimo?

No hay comentarios: