¿Alguna vez habéis pensado cómo llegan los datos que enviáis - un correo, un mensaje de Whatsapp, cualquier cosa - desde vuestro dispositivo a su destino? Todos sabemos que en menos de un segundo, los datos viajan por la red y
acaban en la otra punta del mundo, pero... ¿Cómo lo hacen?
Cuando viajais, necesitais un mapa para no perderos ¿No?. Lo malo es que nadie tiene un mapa de Internet. Para ir de un punto A a un punto B, los datos pasan de un sitio a otro dando saltos. Tu dispositivo transmite los datos al
router de casa y él se los transmite a otro
router de tu proveedor de servicios de internet (ISP).
Ahí la cosa empieza a complicarse algo. Si el destino está conectado a tu mismo proveedor, la cosa es fácil: tu ISP sabe perfectamente cómo están conectadas sus redes y sus
routers enviarán tu paquete de datos por el camino correcto.
Por esta razón se crearon los Centros de Distribución de Datos (CDN), para que la conexión sea mas facil.
Pero volviendo al tema, ¿y si el paquete tiene que viajar
más allá? Digamos al otro lado del mundo, por ejemplo, desde Telefónica hasta los servidores de Google. Tu ISP sabe la dirección IP de destino, pero nada más. ¿Por cuál de todos los caminos posibles mandamos tus datos?
Resulta que hay un protocolo para resolver el problema:
Border Gateway Protocol o BGP. Cada red anuncia a dónde puede enviar tráfico, y con esa información se van construyendo los caminos.
A grandes rasgos, cada red anuncia al resto los caminos que conoce. En el ejemplo, la red de Telefónica anunciará a todos que para acceder a las IPs de sus clientes, contacten con ella, que saben como dirigir los paquetes. Esta información la reciben otros
routers de otras redes y asi construyen caminos más completos.
Por ejemplo, la red de Ono recibirá esos datos y lo que anunciará a sus compañeros será algo como "Para acceder a mis IPs (de la 5.5.5.6 a la 7.7.7.7) avísame a mí. Y para las de Telefónica (1.1.1.1 a 5.5.5.5)
avísame a mí también porque sé cómo mandarle los datos en un sólo salto".
Así, poco a poco, cada una de las redes que conforman Internet van haciéndose una idea de cómo está todo conectado y a quién enviar datos para que lleguen a su destino rápidamente y sin dar muchas vueltas.
¿Y la seguridad? ¿Para qué?
¿A dónde quiero llegar con todo este lío del BGP y la espina dorsal de Internet? Pues a algo que no es nuevo, pero que lo que se habla poco. Cuando se creó BGP, para dar el salto de ARPANet a un modelo descentralizado - el actual -, se hizo pensando que todo el mundo era bueno y confiable, así que
no se tuvo la seguridad del sistema muy en cuenta.
Aqui viene un problema. En Pakistán alguien se equivocó al darle a un botón y acabó dejando a YouTube fuera de línea en todo el mundo.
Y esta es una situacion curiosa. En 2008 Pakistán quiso bloquear YouTube y para ello, Pakistan Telecom, cambió una entrada en sus routers, que decia: "Para ir a las IPs de YouTube 21.3.4.5 o 21.5.4.3, mandad los datos a la basura".
Dicho de forma, ordenaron a sus
routers que todo el tráfico de YouTube
se descartase para que no llegue a su destino.
Y aqui aparece el problema. Al hacer la configuración, se equivocaron un poco, y esa ruta se anunció a las redes conectadas con Pakistan Telecom, y en pocos minutos se extendieron por todo el mundo. Resultado:
YouTube inaccesible por completo.
Suponiendo que quieres ir a 3.3.3.3, si tienes dos posibles rutas, una hacia una red que dice poder acceder a las IPs 1.1.1.1 a 5.5.5.5 y otra hacia otra red que accede a las IPs 3.3.3.0 a 3.3.3.5; BGP se decantará por la segunda porque el rango de IPs que anuncia es menor, más específico, y por lo tanto se supone que esa ruta es más eficiente.
Lo que pasó es que todas las redes recibieron datos que decían que Pakistan Telecom sabía llegar a dos IPs. Tal y como está diseñado BGP, se hace caso a la ruta que mejor acota la IP de destino, que en este caso era la de Pakistan Telecom. Google lo resolvió en poco tiempo anunciando rangos de IP más pequeños todavía que sobreescribiesen los de Pakistan Telecom, y todo volvió a la normalidad.
Esto fue un accidente, pero en todo momento los protocolos
funcionaron como tenían que funcionar. Ese es el problema de BGP: cualquiera puede anunciar rutas alternativas y desviar ingentes cantidades de tráfico. Es muy difícil distinguir cuándo es un cambio legítimo de cuándo es malicioso.
Esquema simplificado de un ataque BGP.
El fallo
se conoce desde hace muchos años, y en 2008, en la conferencia DefCon,
se hizo una demostración de cómo podía ejecutarse un ataque y redirigir tráfico de Internet sigilosamente, sin que hubiese ningún corte de servicio.
La esperanza es que es muy difícil acceder a ese centro de Internet: uno tendría que ser un ISP o una entidad gestora de red para poder hacer los anuncios falsos. ¿No?
En realidad no hace falta
ser, sino
tener acceso a uno. El 13 de agosto de 2014,
Dell SecureWorks descubría descubría cómo unos
crackers habían aprovechado esta debilidad de BGP para
robar Bitcoins.
La idea es sencilla, y se aprovecha de los grupos de servidores que usa algunas personas para minar Bitcoins. Esos servidores tienen un centro de control que les envía los comandos necesarios.
Los atacantes desviaban tráfico para controlar los servidores de minado de Bitcoins y otras criptomonedas.
Los atacantes usaron una cuenta de un ISP canadiense para
desviar el tráfico de los servidores de minado, de tal forma que en lugar de llegar al centro de control normal lo hacía al de los atacantes. Ese "impostor" respondía con un comando para que los servidores se conectasen al centro de control de los atacantes. De esta forma, las rutas BGP sólo se cambiaban puntualmente para tomar control de los servidores, y después, una vez que ya estaba el daño hecho, se dejaban como estaban para evitar ser descubiertos.
Según Dell, en cuatro meses los atacantes se podrían haber hecho con
más de 83.000 dólares. Si bien el ataque podía mitigarse, es muy difícil detectar y parar ataques BGP tal y como está diseñado el protocolo. Por suerte,
HTTPS y demás tecnologías seguras impedirían que el atacante viese los datos que envías, pero no por ello deja de ser un fallo importante.
Dentro de todas las tecnologías que usamos diariamente cuando navegamos por Internet, BGP no es la que más nos pone en riesgo, desde luego, pero
no deja de ser curioso que el tejido que soporta Internet sea tan vulnerable.