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 destino
1, 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.
Esquema, simplificado de nuevo, 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. 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.
Gráfico de Dell SecureWorks con el dinero robado por día en cada criptomoneda.
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 por parte de los administradores de
los servidores, 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.
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