Comprendiendo la infraestructura de enrutamiento insegura de Internet

Todos conocemos incidentes como el reciente de China. Todo apunta pues a pensar que el sistema de enrutamiento que subyace en Internet no es del todo seguro (¡faltaría más!). ¿Pero cómo de malo realmente es?.

Vamos a empezar repasando algunos conceptos básicos de enrutamiento en Internet. Éste se basa en prefijos de intercambios de sistemas autónomos (ASes) bajo rangos de direcciones IP que usan el protocolo Border Gateway Protocol (BGP), a modo de Providers (ISPs). Algunas organizaciones permanecen conectadas permanentemente a más de uno de estos Providers. Las direcciones IPs que se da a los clientes son añadidas a un pequeño número de prefijos que son replicados a otros ASes. Estos prefijos viajan de AS a AS, para así toda Internet pueda conocer donde enviar los paquetes de datos a una dirección de destino determinada.

El término "Border Gateway Protocol" surge hace más de 20 años, cuando la palabra "gateway" se usaba para lo que hoy llamamos "router". Por ello el BGP es el protocolo usado entre routers limítrofes entre sistemas autónomos. La estructura sería algo como esto:
Las relaciones hacia arriba y hacia abajo (up/down) son entre los ISPs y sus clientes, ¡esos que pagan religiosamente al ISP, vamos jejeje!!. Las líneas punteadas de lado a lado están "mirando" las relaciones donde el tráfico es intercambiado "sin manos que cambien de dinero". Los modelos económicos son tales que el tráfico fluye por la jerarquía hacia arriba, luego hacia los lados y luego hacia abajo. Rutas que van de lado a lado, luego arriba o abajo, y luego hacia los lados de nuevo sólo sucederán si alguien está regalando servicio gratuito, y esto es raro hoy día ¿no?.

Así, los paquetes de datos que partan de AS 6 hacia AS 5, seguirán la ruta  6 - 3 - 1 - 2 - 5, donde AS 6 paga a AS 3, el cual a su vez hace lo mismo a AS 1,  y así  hasta AS 5 a AS 2. Así todos los ISPs son recompensados, a pesar de que AS 1 no paga a AS 2 (u otro camino alrededor). Sin embargo, la ruta 6 - 3 - 4 - 2 - 5 no es un camino válido para llegar desde AS 6 a AS 5. En este caso, AS 4 tendría que pagar a AS 2 por este tráfico, pero AS 3 no paga a AS 4 nada,luego AS 4 estaria dando servicio alrededor altruistamente. En el otro lado, desde AS 6 a AS 8 sobre el encaminamiento 6 - 3 - 4 - 8 es correcto, porque AS 8 es un cliente de AS 4, luego AS 8 paga a AS 4 por el tráfico entrante.

BGP en sí es felizmente ignorante de todos los problemas de dinero. En su estado predeterminado, BGP confiará en todo lo que oye y regala servicios. Para evitar esto, los enrutadores BGP deben configurarse con filtros que aseguren que sólo la información correcta es transmitida por el protocolo. Además, los anuncios previos, que son la forma de BGP de invitar tráfico entrante, sólo se envían de acuerdo con las relaciones comerciales.

Con el conocimiento de cómo cada AS está interconectado con otros sistemas autónomos y si una conexión implica una relación cliente / proveedor de Internet o de interconexión, es posible saber exactamente cómo cada destino a través de Internet debe ser accesible desde cualquier fuente. Además, es necesario saber qué rango de direcciones IP pertenece a cada AS. Contabilizar cambios de ruta tras fallos añade algo de complejidad, pero no es un problema.

El conocimiento del grafo de la red y las relaciones AS-prefijo haría posible la creación de filtros que validen la información recibida sobre BGP y rechazar la información incorrecta o falsificada, y hay bases de datos de enrutamiento donde ASes pueden registrar esta información. Desafortunadamente, muchas personas no lo hacen, y la información que está ahí es a menudo incompleta. El IETF y los Registros Regionales de Internet que dan las direcciones IP y números AS están ahora trabajando en una infraestructura de base de datos y de certificados que permita a los operadores de red hacer exactamente esto, pero no estamos allí todavía.

¿Dónde están los servidores?
Los operadores de red simplemente no saben si los servidores de CNN están en Atlanta o Pekín. Así que cuando BGP actualiza, los ISP, mejor dicho sus routers, no tienen otra opción más que instalar las actualizaciones y comenzar a enviar el tráfico en la nueva dirección. 999 veces de 1000, un evento de cambio de ruta de este tipo es un cambio rutinario en la red o la reparación de una misma rutina de un fallo. Pero esto último en el caso 1000 es incorrecta, ya sea un error o por un ataque de algún tipo.

Si volvemos a 1990s, un incidente como el que envió el tráfico a China hubiera obligado a los ingenieros de redes a luchar durante horas de depuración para solucionar el problema. Pero en estos días, estos incidentes son demasiado comunes. Como resultado, una batería de sistemas de seguimiento está disponible a lo largo y ancho de Internet. Permanecer oculto bajo el radar es tan probable como conducir un tanque por la Avenida Pennsylvania sin llamar la atención.

Esto conduce a un estado desagradable de la disonancia cognitiva. Por un lado, es inconcebible que el enrutamiento en Internet sea tan crédulo. Por otra parte, funciona bien la mayor parte del tiempo. La fijación de la situación sería compleja, costosa, y no sería rentable a corto plazo.

No subestimemos las complejidades inherentes a la seguridad en el enrutamiento en Internet. ¿Qué pasa si un certificado usado en S-BGP o soBGP expira?. Significaría que una conexión es derribada, buena suerte descargando el certificado actualizado. El enrutamiento (Routing) es un sistema crítico en tiempo real. En estos sistemas, el modelo de seguridad tradicional de apagar cuando las credenciales de seguridad no pueden ser validadas no funciona. Es vital usar mecanismos de seguridad para alejar a atacantes a todos los niveles, y al mismo tiempo que dichos mecanismos no consigan arreglar el sistema cuando haya fallos o cercano a ellos. Desafortunadamente los modelos actuales no consiguen este balance.

Reexaminando el enrutamiento de China
Entonces ¿qué sucedió exactamente en China que causó que el 15% de los prefijos en Internet (Ojo, ¡no el 15% del tráfico!) sufrieran enrutamientos a esta nación en Abril? ¿Fue realmente un accidente o algo malicioso?. Actualmente hay unos 341.000 prefijos que componen Internet y, con el fin de poder llegar a todos ellos, los routers BGP necesitan tener todo esto en sus tablas de enrutamiento. Si, por alguna razón, un router BGP no tiene ningún filtro, simplemente enviará una copia de la tabla por completo a todos los routers vecinos. Fugas en algunas tablas llenas es un error bastante común y parece que esto fue lo que pasó en China.

Cuando un filtro se actualiza, puede llegar a ser no funcional. Por lo general, esto se detecta con un filtro "máximo de prefijos" de último recurso, este mata a una sesión BGP si hay más de un número predeterminado de prefijos que se recibe. Pero, aun sin esto, por un desvío a través de (por ejemplo)  China significa que sistemas autónomos adicionales se atraviesan, y BGP prefiere trayectorias más cortas a los más largos. Esto es posible porque, para cada prefijo, los sistemas autónomos en el camino hacia ese destino se registran en un "path". Sin embargo, sólo escapa la tabla completa, o al menos una parte considerable de ella, se vio agravada por una decisión de diseño curioso por China Telecom. Esa decisión hizo ver al resto del mundo como China Telecom había despojado también de la ruta de acceso a todos los prefijos que se habían filtrado. Así parecía que destinos como CNN se encontraban en la red de China Telecom. Así fue como muchos ASes empezaron a redirigir su tráfico a China.

Mientras esperamos que próximas mejoras en la seguridad global estén disponibles, deberíamos pensar en lo que sucedería si las direcciones de sistemas remotos a los que nos comunicamos se enrutaran y nuestro tráfico fuera interceptado. Métodos de autenticación y encriptación como HTTPS o protecciones VPN actúan sobre estas situaciones. Sin embargo, hay un problema con la encriptación:  las entidades emisoras de certificados pueden no ser tan confiables como debieran. Pero esto es otra historia a contar próximamente.

No hay comentarios :

Publicar un comentario

Buscar en el Blog: