Tor: servicios ocultos y desanonimización

Publicado en Artículos, Seguridad,


Tweet about this on TwitterShare on Google+1Share on Facebook0Share on LinkedIn0

Aunque Tor se concibió para mejorar la privacidad de los usuarios de Internet y evitar la censura, también puede utilizarse para otros fines no tan legítimos. Un ejemplo reciente que evidencia la vertiente ilegítima de las acciones llevadas a cabo a través de Tor se describe en un informe del FinCEN (Financial Crimes Enforcement Network), del departamento de Estado de EE.UU. En él, se afirma que, entre un total de 6048 acciones sospechosas reportadas por bancos entre 2001 y 2014, al menos 975 involucraban nodos Tor (no obstante, recordemos que la release inicial de Tor data de 2002).

Igualmente, ha sido muy representativa la Operación Onymous, ejecutada por varias organizaciones de seguridad internacionales (Europol y FBI entre ellas). A través de esta operación, se detuvieron 17 personas responsables de alrededor de 400 direcciones .onion asociadas a un total de 27 sitios web (hidden services).

Tal y como ya ha pasado en otras ocasiones, este suceso ha activado las alarmas entre los responsables del proyecto y el resto de usuarios que emplean la red con fines legítimos, quienes temen que su anonimato esté en riesgo. Por un lado, es posible (¿o probable?) que se hayan recurrido a medios policiales convencionales (vigilancia de sospechosos), o que los servicios ocultos no estuvieran del todo correctamente configurados, como parece ser el caso explicado en un email a la lista de distribución de Tor (por el administrador “supervillano”, según sus propias palabras). También podría tratarse de la existencia de fallos en Tor que estén siendo explotados.

Auditando los nodos de la red Tor

Desde la perspectiva puramente práctica, un proyecto español interesante (presentado en CyberCamp) destinado a auditar la red de Tor, es Tortazo (documentación). Basado en Stem, la librería de control en Python para Tor, Tortazo permite auditar de forma automatizada los nodos Tor que aparecen en el último consenso de la red (o que estén almacenados en la base de datos de la aplicación). Por ejemplo, con las instrucciones indicadas a continuación, Tortazo buscaría nodos de salida con sistema operativo Linux, invocando Nmap con las opciones -sSV -A -n para los 30 primeros:

python Tortazo.py -n 30 -v -m linux -a "-sSV -A -n"
python Tortazo.py --servers-to-attack 30 --verbose --mode linux --scan-arguments "-sSV -A -n"

A partir de la información recopilada, y mediante la opción de incorporar plugins en la herramienta, facilita la tarea de encontrar fallos de seguridad en los nodos que componen la red. Como se verá en los siguientes párrafos, hay determinados tipos de nodos en Tor que juegan un papel importante a la hora de prevenir ataques, por lo que comprobar su seguridad es fundamental. En esta tarea, herramientas como Tortazo pueden ser de gran utilidad.

Ataques contra servicios ocultos

Como se ha mencionado, la operación Onymous afectó a varios servicios ocultos de Tor. En resumen, un servicio oculto (HS a continuación) publica “información de contacto” (información conocida como descriptor de servicio oculto) en una base de datos distribuida en la red Tor. Posteriormente, cualquier cliente que quiera usar el servicio, accede a la base de datos y utiliza esa información para contactar con HS a través de un punto de encuentro (rendezvous) con el que ambos (cliente y HS) establecen un circuito Tor, para evitar poder ser trazados. El resultado final, es una conexión tal y como se muestra en la siguiente figura.

No obstante, hay que tener en cuenta que este modo de funcionamiento es más delicado en cuanto a las garantías de anonimato ofrecidas al servicio oculto. Y es que, en este caso, a la hora de evaluar su seguridad, hay que asumir que en el otro extremo de la comunicación (el cliente) está bajo el control de un atacante del sistema. Es decir, para vulnerar el anonimato de un cliente de Tor, es necesario comprometer tanto el nodo de entrada como el nodo de salida de la red. Por otro lado, para vulnerar el anonimato de un servicio oculto, sólo hace falta comprometer el nodo de salida (ya que el nodo de entrada puede ser directamente el atacante).

En “Trawling for Tor Hidden Services: Detection, Measurement, Deanonymization” se describen varios métodos de ataque relevantes para desanonimizar servicios ocultos en Tor, basados en técnicas de confirmación de tráfico y en el hecho de que un atacante puede incluir fácilmente nodos ilegítimos en la red Tor que se aprovechen de sus características de funcionamiento. Un concepto de la red Tor importante en estos ataques es el de los nodos conocidos como entry guards. Éstos son nodos especiales, que los clientes y servicios ocultos eligen (y rotan periódicamente) para acceder a la red de Tor. Por tanto los entry guards son los únicos nodos que tienen acceso a IPs reales de quienes acceden a Tor. A continuación, imaginemos que el atacante quiere obtener la dirección IP real (123.124.125.126) del servicio oculto con dirección xyz.onion. Uno de los ataques expuestos en el artículo mencionado es como sigue:

  1. Un nodo controlado por el atacante es seleccionado como entry guard por parte del servicio oculto xyz.onion.
  2. El cliente (atacante) establece una conexión con xyz.onion.
    • Al ser el atacante quien establece la conexión, puede decidir un nodo de rendezvous que él controle.
    • Esta conexión tiene asociada una cookie creada por el cliente (atacante) y transmitida también al servicio oculto, que utiliza el nodo de rendezvous para poder distinguir entre conexiones.
  3. Cuando el servicio en xyz.onion se conecta con el rendezvous point malicioso:
    • El nodo de rendezvous puede asociar esta conexión iniciada por xyz.onion con la conexión iniciada por él mismo, ya que contienen la misma cookie.
    • El nodo de rendezvous envía un tráfico anómalo (los investigadores proponen enviar 50 paquetes de un tipo específico) hacia xyz.onion, seguido de una petición para cerrar la conexión.
  4. Por último, el entry guard controlado por el atacante asocia la conexión recibida desde 123.124.125.126 con la conexión del nodo rendezvous con el servicio xyz.onion, si:
    • El entry guard recibe la petición de cierre de conexión después de que el nodo de rendezvous reciba la conexión de xyz.onion con la cookie creada por el atacante.
    • El número de paquetes recibidos por el entry guard corresponde con el patrón de 50 paquetes enviado por el rendezvous.

Es decir, siguiendo este proceso, el atacante podrá asociar la dirección IP 123.124.125.126 con el servicio oculto xyz.onion. El siguiente esquema representa gráficamente el ataque.

Esquema de un ataque a servicios ocultos

Queda un aspecto importante, y es que el ataque depende de que el servicio oculto elija un nodo controlado por el atacante como entry guard. No obstante, dada la política de elección de estos nodos en el momento de la investigación, los autores estimaron que, con un coste de 8280€, en un intervalo de 8 meses, habría un 90% de probabilidad de que alguno de sus servidores (desplegaron 23 en sus experimentos) fuera elegido como entry guard por parte de cualquier servicio oculto (de larga duración). Este tiempo y coste no está para nada lejos del alcance de grandes organizaciones.

Otra alternativa que podría tomar un atacante para poder aumentar las probabilidades de que uno de sus nodos Tor fuera elegido como entry guard es reducir el número de entry guards disponibles (los que tienen el flag “Guard” en el consenso alcanzado por las autoridades de la red Tor). Por ejemplo, un ataque descubierto recientemente, llamado Sniper Attack, permitiría realizar denegaciones de servicio dirigidas a nodos Tor arbitrarios. Los autores del trabajo afirman que un atacante estratégico podría, por ejemplo, reducir en un 35% el ancho de banda disponible en Tor en tan sólo 29 minutos.

Minimizando la probabilidad de éxito del ataque

Como ha quedado patente, tanto los entry guards como su política de elección juegan un papel muy importante en Tor. Esta política se basaba en elegir tres entry guards, que se irían rotando entre cada 30 y 60 días. No obstante, para dificultar este tipo de ataques minimizando la probabilidad de elegir un entry guard controlado por un atacante, los desarrolladores de Tor han cambiado esta política de forma que ahora cada usuario de Tor (incluidos los servicios ocultos) elige un único entry guard. Recientemente han sugerido además aumentar el plazo de rotación del entry guard a 9 meses (se abre en nueva ventana).


vía INCIBE

Califica esta entrada

Etiquetas: , ,


Deja un comentario

Cuanto es 13 + 11 ?
Please leave these two fields as-is:
IMPORTANTE! Necesitas resolver la operación matemática para poder continuar.

Newsletter

Redes sociales

Centro de soporte

Centro de recursos