martes, 25 de enero de 2011

El agujero de seguridad mas grande de Internet


En Agosto de 2008, en la conferencia DEFCON 16 se presentó la ponencia "Robando Internet", por Alex Pilosov y Tony Capella. La ponencia describe un ataque "Man in the Middle" que puede ejecutarse con relativa facilidad utilizando las vulnerabilidades del protocolo BGP.

Lo inquietante de esta vulnerabilidad es que puede permitir interceptar prácticamente TODO el tráfico dirigido a un rango de direccionamiento en Internet, y que puede ser casi imposible de detectar. Las medidas de seguridad del afectado, equipos de seguridad, ISOs 27000, no pueden ni detectar el problema ni participar en su resolución. Únicamente la participación del proveedor del acceso a Internet puede permitir su detección e intentar abordar un posible plan de acción.

Para entender el ataque es necesario explicar el funcionamiento del protocolo BGP:
BGP4 (RFC 1771 y RFC 1772) es el protocolo que se utiliza para intercambiar tráfico entre los proveedores de servicios de Internet. Sus funciones son bastante simples: básicamente permite que los sistemas autónomos (AS) – las subdivisones organizativas que gestionan los prefijos de enrutamiento en Internet, habitualmente un ISP – comuniquen a otros sistemas autónomos como alcanzar redes en Internet. Específicamente BGPv4 intercambia prefijos de direcciones de Internet seguidas de los identificadores de los sistemas autónomos a través de los cuales se alcanza dicho direccionamiento.

BGP utilizará siempre el número de saltos mas pequeño para alcanzar un prefijo, es decir, el número de sistemas autónomos que el tráfico tendrá que atravesar. Un router BGP siempre envia el tráfico dirigido al prefijo más específico (el que engloba un número menor de direcciones IP) siguiendo la ruta de ASs asociadas al anuncio de dicho prefijo. Por ejemplo, el prefijo 11.1.18.0/24 contiene 256 direcciones IP y es más específico que el 11.1.18.0/20 que contiene 4096 direcciones. Si se anuncian estos 2 prefijos y llegan a un mismo AS, el tráfico dirigido a la subred más específica se enrutará por los ASs anunciados con ese prefijo.

Todas las decisiones de los routers BGP se toman en local, con la información de las rutas proporcionada por sus vecinos. Estas rutas se intercambian asumiendo que son correctas, en lo que se conoce como confianza transitiva, es decir, los routers BGP de los operadores de tránsito IP creen lo que les comunican sus vecinos, ya su vez transmiten dicha información de enrutamiento a sus restantes interconexiones (en este caso sesiones BGP).

En este escenario, Pilosov y Capella han demostrado que es posible que un sistema autónomo "secuestrador" intercepte todo el tráfico dirigido a un sistema autónomo, reenviánolo después al afectado sin que éste se de cuenta de la acción.

El mecanismo consiste en anunciar un rango de direccionamiento con un prefijo más específico que el que utiliza el AS del cliente para anunciarse en Internet. Una vez propagada esta ruta por la red de sistemas BGP, todo el tráfico de Internet se dirigirá al AS "secuestrador" en lugar de hacerlo al AS del cliente. El secuestrador puede asegurar una ruta IP hasta el AS del secuestrado, despriorizando una de las rutas existentes entre él y el AS secuestrado. Tras interceptar todo el tráfico dirigido al cliente desde el AS "secuestrador", éste se reenrutará hacia el AS secuestrado por la ruta que el secuestrador ha protegido previamente.

El tráfico llega al AS "secuestrado" simplemente con retardo, lo que no será fácil de detectar por el cliente. La única evidencia del ataque es que el tráfico solo llegará al cliente por las rutas decididas por el "secuestrador" y que tendrá un TTL inhabitual. El secuestrador también puede modificar el TTL para ocultar su existencia, haciéndose el ataque prácticamente indetectable.

¿Cómo puede ser esto? ¿Es que no hay ningún control?

Los operadores de trásito IP son los que en realidad intercambian rutas BGP libremente, es decir, hoy y desde el ataque a YouTube en 2008, se filtran con rigor las direcciones que los ASs anunciamos a nuestros proveedores, haciendo complicada la puesta en práctica de este ataque. En cualquier caso, el sistema no es ni mucho menos perfecto, porque depende de un filtrado manual perfecto de todas las direcciones y en todos los ASs del planeta, lo que sin duda está abierto a posibles ataques con las peores intenciones.

No hay comentarios: