Header Ads

Brave Tor

Este es un artículo que no quisiéramos publicar, porque se trata de Brave, uno de los mejores y más seguros navegadores de la actualidad, que, de hecho usamos y felicitamos a su equipo por el gran trabajo que están realizando, pero desafortunadamente la necesidad tiene cara de perro. 
No nos referiremos a la larga lista de sus bondades, bien conocidas, que superan con creces a su competencia. El asunto que nos trae hoy es una particular característica que viene incorporada a Brave llamada "Nueva ventana privada con Tor", que si bien no reemplaza al navegador Tor, se acerca bastante.
El punto es que gracias a esta incorporación, Brave logra saltarse casi cualquier restricción de firewalls o proxy.
Si bien existen algunas maneras de bloquear la red Tor, como por ejemplo restringir las conexiones IPv6 y bloquear con una regla de Iptables o Ipset las direcciones IPv4 de la lista de nodos de salida de Tor (entre otras alternativas), esto no servirá de nada, ya que Brave no usa los nodos de esta lista para salir a Tor (sus nodos cambian con frecuencia, así que capturarlos todos es una tarea de nunca acabar).
Tampoco sirve de mucho bloquear el dominio .brave.com (y otros dominios y subdominios relacionados) con un proxy http (como Squid-Cache) o con un DNS Sinkhole (como Pi-Hole), ya que este tipo de tráfico no usa estos puertos.
¿Entonces?
Hay dos maneras, ambas poco ortodoxas, para bloquear este modo privado con Tor de Brave:
1. Bloquear los puertos:
Normalmente Tor usa los puertos TCP 80, 443, 9001, 9050 y 9150. Para el caso de Brave en modo Tor usa los puertos TCP 8008, 8443, 9001:9004, 9090, 9101:9103 y eventualmente TCP 9030, 9031, 9050, 9150 (o el rango 9132:9159).
Ejemplo de reglas Iptables (Si quieren dejar registros se recomienda usar ulog2):
# Install ulogd2
# sudo apt -y install ulogd2
# sudo chown root:root /var/log
# if [ ! -d /var/log/ulog ]; then sudo mkdir -p /var/log/ulog && sudo touch /var/log/ulog/syslogemu.log; fi
# Check NFLOG: /var/log/ulog/syslogemu.log

# Iptables Rules
iptables -A FORWARD -p tcp -m multiport --dports 8008,8443,9001:9004,9090,9101:9103,9030,9031,9050,9132:9159 -j NFLOG --nflog-prefix "Illegal Port: Brave Tor"
iptables -A FORWARD -p tcp -m multiport --dports 8008,8443,9001:9004,9090,9101:9103,9030,9031,9050,9132:9159 -j DROP
Nota: Estos puertos pueden cambiar sin previo aviso. Tenga en cuenta que bloquear tantos puertos puede comprometer el funcionamiento de algunas aplicaciones (Para mayor información consulte service-names-port-numbers IANA).
2, Bloqueo basado en hex-string:
Como las conexiones de Brave en modo Tor son "inteligentes", tarde o temprano encontrará la manera de saltarse la restricción de puertos. En este caso, deberá crear en su firewall una regla para bloquear el hex-string:
1cc02bc02fc02cc030c00ac009c013c01400330039002f0035000a00ff01.
A continuación un ejemplo de esta regla en un firewall Iptables:
iptables -A FORWARD -m string --hex-string "|1cc02bc02fc02cc030c00ac009c013c01400330039002f0035000a00ff01|" --algo kmp -j NFLOG --nflog-prefix "Illegal Hex-String: Brave Tor"
iptables -A FORWARD -m string --hex-string "|1cc02bc02fc02cc030c00ac009c013c01400330039002f0035000a00ff01|" --algo kmp -j DROP
Nota: Este hex-string puede cambiar in previo aviso
registros de bloqueo nflog usando ambas reglas iptables
Importante:
Estas reglas eventualmente pueden afectar la navegación de su red local y el hex-string puede generar falsos positivos (no es exclusivo de Brave Tor). 
Adicionalmente para que estas reglas funcionen, su red local deberá estar centralizada y controlada por un servidor Linux con Iptables (o similar) o un firewall que soporte este tipo de reglas de filtrado.
Asumimos que cuando el equipo de Brave lea esta nota tomarán medidas para "camuflar" sus hex-strings e implementar un mayor número de puertos para su conexión y esta publicación quedará obsoleta, pero así es el eterno juego del gato y el ratón.
Con la tecnología de Blogger.