viernes, 12 de julio de 2019

Conociendo el Enrutador Cebolla


echo "Hola Mundo". Hace un tiempo escribí un artículo sobre The Onion Router (TOR) para mis amigos de Sombrero Blanco, el cual se titula "Tor Conociendo la red de la cebolla". El cual pueden encontrar en la siguiente ruta: https://www.sombrero-blanco.com/seguridad-informatica/entrada-educativa-n-7-tor-conociendo-la-red-de-la-cebolla/ 

Hoy he liberado este mismo articulo acá, un poco en tono de pretemporada para comenzar el training de artículos ya que he estado muy ausente de este blog. sin más preámbulo les dejo el post con cambio de nombre ;) .

En los últimos años, este proyecto se ha hecho conocido de forma exponencial ya que ha sido de  mucha utilidad para activistas y periodistas que se encuentran en lugares con conflictos políticos, guerras, o donde no existe la libertad o la privacidad como derecho de las personas o donde simplemente el derecho existe pero no se lleva a la práctica justificado por razones de seguridad nacional.
No podemos obviar el hecho de que Tor también es utilizado con fines macabros por ciberdelincuentes de todo tipo como pederastas, acosadores, estafadores y traficantes de diversos insumos. Cuando hablamos de este tipo de actos en donde la mayoría de las personas suele confundir conceptos como Deep web con Darknet o red oscura e incluso Silk Road.
La Deep web es un concepto generalmente asociado por las personas a contenidos de alto calibre y mercado negro de cualquier cosa que se te pueda ocurrir, desde drogas hasta órganos. Si piensas esto estas equivocado, ya que lo mencionado se acerca más al concepto de Darknet. Cuando hablamos de la Deep web o web profunda, estamos hablando de todo el contenido que existe en internet y que no es indexable por los buscadores o simplemente no puedes acceder por que no se encuentra en puertos comunes como 80 (http) o 443 (https). Podemos categorizar como contenido de la Deep web por ejemplo, al portal de tu cuenta bancaria, el sitio de notas de una universidad, un servidor FTP con contraseña, los servidores de Fortnite y hasta webs que tengan declarados los tags NoIndex, Nofollow o que en robots.txt tenga activados los Disallow. ¿Parecen raros los ejemplos no? Pero así es. Dado lo anterior, si sabes de la existencia de un servicio en internet y no lo encuentras en Google, Bing o DuckDuckGo, ya sabes!
Cuando vemos la famosa imagen de la punta del iceberg al hablar de la Deep web y que solo el 10% del contenido de internet se encuentra indexado podemos decir que en el 90% restante está el contenido mencionado anteriormente incluyendo las redes subyacentes a Internet como Tor, la I2P o la FreeNet, estas últimas dos las hablaremos en otro momento para no extender este post.

Figura 1: La web superficial, La web profunda y las webs oscuras. 


Hablar de Onion no es lo mismo que hablar de P2P o Peer-to-Peer

En más de una ocasión me he topado con personas que piensan que el concepto de red distribuida que utiliza Tor es P2P como en el caso de ZeroNet, lo cual no es así ya que en una red P2P, todos los nodos se comportan de la misma forma y se conectan directamente entre sí, siendo imposible resguardar la privacidad ya que para conectarse entre sí, todos los nodos deben conocer la dirección IP de los otros para establecer la comunicación. Muy parecido a la comunicación en los modelos de cliente y servidor donde también el cliente conoce la IP del cliente y el cliente obviamente conoce la IP del Servidor.

Figura 2: Arquitectura Cliente Servidor y P2P.


Privacidad de las conexiones

Para resguardar la privacidad de los clientes, Tor utiliza el esquema de capas por lo cual es llamado onion (cebolla). En este modelo el cliente se conecta directamente a un Onion Proxy, el cual se ejecuta de forma local. Si has utilizado Tor Browser podrás notar en la configuración de red que estas conectado a un proxy SOCKS en el puerto 9150 de la dirección IP 127.0.0.1, la cual es la dirección IP de loopback asociada a localhost en el archivo de hosts de tu sistema operativo, en síntesis tu propio equipo.

Figura 3: Configuración del proxy en Tor Browser al Onion Proxy.


Para poder conectarse a la red Tor, comienzas conectándote a tu Onion Proxy local, posterior a esto el Onion Proxy se conecta a un Directory Server, el cual posee una base de datos con la lista de servidores de relay conocidos como Onion Routers e información de estos (Router descriptor) para poder mapear la red y crear los circuitos por donde se realizará la comunicación, los que están compuestos de un nodo de entrada (Entry Guard), un nodo intermedio (Middle Relay) y un nodo  de salida (Exit Relay).

Seguridad de las conexiones 
La conexión local al Onion Proxy es una conexión sin cifrar ya que se lleva a cabo entre el sistema el servidor proxy Socks en 127.0.0.1.
El Onion Proxy se conecta directamente al Directory Server vía http, por lo que no existe cifrado en dicha conexión. Luego de obtener la información sobre los Onion Routers, se establece el circuito por donde viajará la información bidireccional sobre TLS, cifrando la información que viaja entre los Onion Routers. Sin embargo la información que sale del Exit Relay no viaja cifrada hacia el destino. Por lo que si tu conexión es bajo un protocolo sin cifrar como HTTP o FTP, en la conexión saliente, los datos están expuestos y eventualmente quien tenga el control del Exit Relay podrá ver con extrema facilidad tu tráfico.

¿Que son los nodos?
Los nodos o los Onion Routers son los servidores que componen el circuito de la red, entre los cuales podemos encontrar:
  • Onion Proxy: Este servidor es generado de manera local en el equipo del cliente. Por ejemplo, al momento de ejecutar Tor Browser, este levanta el servicio Tor, el cual es utilizado como el proxy del browser, ejecutándose sobre la IP 127.0.0.1 en el puerto 9150.
  • Directory Server: Los servidores de directorios son quienes proveen de información crucial para poder llegar al destino. Como mencione anteriomente estos nodos poseen bases de datos con la lista de servidores de relay conocidos como Onion Routers e información de estos (Router descriptor) para poder mapear la red y crear los circuitos por donde se realizará la comunicación, además de los directorios para encontrar direcciones .onion dentro de la red. Cabe mencionar que estos nodos también están distribuidos y con backups, incluso el servicio puede encontrarse en cualquier Onion Router para asegurar que el servicio siempre estará disponible ante cualquier fallo.
  • Entry Guard: Este nodo es el nodo de entrada a la red. Este además es quien conoce la IP origen de la conexión, es decir la IP de Internet a la cual se conecta el Onion Proxy. Si estas conectado desde tu casa, la IP de origen es la del Router que te ha proporcionado tu ISP.
  • Middle Relay: Es el nodo intermedio, quien se encarga de recibir la conexión desde el nodo de entrada. Al llegar al nodo intermedio la IP de origen ya no es la de tu Router, es la del nodo de entrada. Ya empieza la privacidad!
  • Exit Relay: es el nodo que se conecta directamente al destino. Este recibe como origen de la conexión la IP del nodo intermedio. Si consultas tu IP en https://www.whastmyip.com la IP que aparecerá es del nodo de salida.
  • Hidden Service: Es un nodo de la red con un servicio web, el cual no publica su IP, si no que publica una dirección .onion, la cual es conocida por los Directory Servers. Del nombre Hidden Services es que proviene el nombre de la Hidden Wiki. Si quieres ver un Hidden service seguro, puedes entrar a la web onion de Facebook en la dirección: onion, recordar que la dirección es aplicable solo dentro Tor Browser o si estas conectado a Tor desde un proxy (En otro artículo explicare distintas formas).
El famoso nodo de salida
En el primer capítulo de Mr. Robot, Elliot encara al dueño de  “Cafeterías Ron”, quien utiliza los enlaces a internet de la cadena de Cafeterías como fachada para levantar un Hidden Service (.onion) de pornografía infantil llamado Plato´s Boy. Elliot le comenta que ha hackeado su red y que además controla un Nodo de salida (Exit Relay), con lo cual también puede controlar el tráfico saliente y de una u otra forma llegar al origen.


Pueder ver la escena en el siguiente link: https://www.youtube.com/watch?reload=9&v=eyfXCDy6Yts


Figura 4: Elliot explicando el control del tráfico del Exit Relay.
 



Graficando La ruta hacia el destino

Si solo escribimos a cerca de como viaja la información a través de la red Tor, puede parecer un poco complicado, pero en términos de entender los saltos del ruteo cebolla lo podemos entender de la siguiente forma:

 
Figura 5: Ejemplo de Circuito con destino Internet.


 En este ejemplo podemos ver como viajan los datos hacia el destino, y como a través de Tor nos conectamos a un sitio web en Internet.



Figura 6: Ejemplo de circuito con destino Hidden Service.


En las gráficas se muestran ejemplos para poder comprender a grandes rasgos el funcionamiento de Tor, sin embargo la red es dinámica, el circuito cambia constantemente mientras estés conectado, por lo que no es raro ver que si estás navegando en Google. Siendo éste último el que identifique el origen de la conexión desde Londres y si en el mismo browser ahora te conectas a un sitio web de Microsoft, identifique el origen de la conexión provieneniente de París. Lo mismo aplica para los Hidden Services, ya que la conexión de origen puede provenir desde un Exit Relay A y para otro Hidden Service el origen sea de un Exit Relay Z.


Resumiendo los pasos
  1. El origen se conecta al servicio Onion Proxy ejecutado localmente.
  2. El Onion Proxy se conecta directamente a un Directory Server obteniendo la información sobre los Onion Routers y crear el circuito por donde viajaran los datos.
  3. El Onion Proxy crea la conexión hacia un Entry Guard.
  4. el Entry Guard se conecta a un Middle Relay donde ya el origen de la conexión ha cambiado.
  5. El Middle Relay se conecta con el Exit Relay para buscar el destina. El origen de la conexión en este punto ha vuelto a cambiar.
  6. El Exit Relay se conecta con el destino, el cual puede ser un servicio de internet o un Hidden Service existente en la red Tor.

Conclusiones
  • La red Tor es mucho más compleja de lo que explico en este artículo, sin embargo el foco de este último es poder ayudarte a entender mucho mejor el cómo se trata la data al ingresar al circuito.
  • No recomiendo usar Tor para hacer transacciones bancarias o conectarte a servicios donde necesites extrema seguridad.
  • Tor es sumamente útil para usuarios donde las legislaciones limitan la privacidad de los usuarios o donde los periodistas no pueden evidenciar la realidad de un país por distintos conflictos.
  • Esta red es muy utilizada tanto por Ciber delincuentes, delincuentes comunes, pentesters e investigadores de Cyberseguridad (Hackers).
  • El origen siempre es conocido por el Directory Server y el Entry Guard.
  • Quien controla el Exit Relay, puede ver el tráfico de salida. Si el tráfico de salida es en texto plano, pude ser visto su contenido con extrema facilidad.
  • La red Tor no es 100% anónima y menos aun 100% segura.
Te dejo un poco de bibliografía para que puedas profundizar aún más sobre Tor:




 Maldito Informático


No hay comentarios.:

Publicar un comentario