Así se usó un fallo en el tejido de Internet para robar Bitcoins
¿Alguna vez os habéis parado a pensar cómo llegan los datos que enviáis desde vuestro móvil o PC - un correo, un mensaje de Whatsapp, cualquier cosa - a su destino? En menos de un segundo, los datos viajan por la red y acaban en la otra punta del mundo. ¿Cómo lo hacen?
Si fuéseis vosotros los que tuviéseis que viajar, necesitaríais un mapa. Lo malo es que nadie tiene un mapa concreto de Internet. Para ir de un punto A a un punto B, lo que se hace es ir "pasándose la bola". Tu ordenador le pasa los datos a enviar a tu router de casa y él se los transmite a otro router de tu proveedor de servicios (ISP).
Ahí la cosa empieza a complicarse algo. Quizás el destino está conectado a tu mismo proveedor, y entonces 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.
Pero, ¿y si el paquete tiene que viajar más allá? 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?
Cada red anuncia a dónde puede enviar tráfico, y con esa información se van construyendo los caminos
Resulta que hay un protocolo para resolver el problema: Border Gateway Protocol
o BGP. A grandes rasgos, cada red anuncia al resto los caminos que
conoce. En un primer momento, la red de Telefónica - siguiendo con
nuestro ejemplo - anunciará a todos que para acceder a las IPs de sus
clientes (de la IP 1.1.1.1 a la 5.5.5.5, por ejemplo), contacten con
ella. Esta información la reciben otros routers de otras redes y van construyendo 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.
¿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, se hizo pensando que todo el mundo era bueno y confiable, así que no se tuvo la seguridad del sistema muy en cuenta.
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.
Eso lleva a situaciones curiosas. Por ejemplo, en 2008 Pakistán quiso
bloquear YouTube. Para ello, uno de los ISP del país, Pakistan Telecom,
cambió una entrada en sus routers, que venía a decir "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 más elegante, ordenaron a sus routers que todo el tráfico destinado a YouTube se descartase para que no llegue a su destino.El problema es que se equivocaron un poco al hacer la configuración, 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.
1: 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 destino1, 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 (si aparece una red nueva o un enlace deja de funcionar hay que cambiar las rutas, por ejemplo) de cuándo es malicioso.
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. Hace unos días, Dell SecureWorks descubría descubría cómo unos crackers habían aprovechado esta debilidad de BGP para robar Bitcoins y otras criptomonedas.
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.La solución sería usar criptografía de clave pública para que sólo ciertas redes puedan anunciar cambios en ciertas IPs, evitando así que cualquiera pueda redirigir tráfico arbitrario. Pero es un cambio que todavía no se ha implementado y que tampoco parece cercano.
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.
Fuente | Genbeta
No hay comentarios:
Publicar un comentario