Oniux: Leak-Proof Tor-Routing für Linux

Kernel-basierte Isolation für Linux-Apps über Tor

Oniux: Leak-Proof Tor-Routing für Linux
Photo by Wilhelm Gunkel / Unsplash

Das Tor Project hat vor Kurzem oniux vorgestellt, ein neues Befehlszeilen-Tool, das entwickelt wurde, um den Netzwerkverkehr von Linux-Anwendungen sicher und leak-proof durch das Tor-Netzwerk zu leiten. Durch die Nutzung von Kernel-Level-Namespace-Isolierung zielt oniux darauf ab, die Risiken von Datenlecks zu eliminieren, die bei traditionellen Methoden auftreten können. Dieses Werkzeug verspricht eine robustere Methode zur Anonymisierung von Linux-Anwendungen, insbesondere für sicherheitsbewusste Nutzer.

Die Herausforderung: Datenlecks trotz Tor-Nutzung

Bisherige Lösungen zur Anonymisierung von Anwendungsverkehr über Tor, wie beispielsweise SOCKS-Proxys in Verbindung mit Werkzeugen wie torsocks, basieren oft auf dem Abfangen von Netzwerkaufrufen auf der Ebene der C-Standardbibliothek (libc). Dieser Ansatz birgt jedoch Risiken: Anwendungen, die Systemaufrufe direkt tätigen (z.B. durch rohen Assembler-Code oder bei statischer Kompilierung) oder alternative Bibliotheken verwenden (wie es bei in Go, Zig oder Rust geschriebenen Programmen der Fall sein kann), können diese Umleitung umgehen. Solche Umgehungen können zu unbeabsichtigten Datenlecks führen, bei denen der Verkehr die eigentliche IP-Adresse des Nutzers preisgibt, anstatt über das Tor-Netzwerk geleitet zu werden.

oniux: Ein neuer Ansatz für Anonymität unter Linux

Als Antwort auf diese Herausforderungen wurde für das Tor Project oniux entwickelt. Es handelt sich um ein Befehlszeilen-Tool für Linux, das eine strikte Netzwerkisolation für Anwendungen durchsetzt, indem es auf Linux-Kernel-Namespaces zurückgreift. oniux basiert auf Arti, der in Rust geschriebenen, modernen Tor-Implementierung, und onionmasq, einem Werkzeug für Tor-spezifisches DNS und Routing. Das Ziel von oniux ist es, eine Umgebung zu schaffen, in der Anwendungen ihren gesamten Netzwerkverkehr ausschließlich über das Tor-Netzwerk senden, wodurch das Risiko von Datenlecks minimiert wird.

Die Kerntechnologie: Linux Namespaces und onionmasq

Die zentrale Innovation von oniux liegt in der tiefen Integration mit den Isolationsmechanismen des Linux-Kernels. Linux Namespaces ermöglichen es, Prozessen eine isolierte Sicht auf Systemressourcen zu geben. oniux nutzt dies, um für jede Anwendung einen eigenen Netzwerk-Namespace zu erstellen. Innerhalb dieses Namespaces wird der Zugriff auf die regulären Netzwerkschnittstellen des Systems (z.B. eth0) entfernt. Stattdessen wird eine virtuelle Netzwerkschnittstelle namens onion0 bereitgestellt.
Diese onion0-Schnittstelle wird mithilfe von onionmasq verwaltet, das als DNS-Resolver und Router fungiert und sicherstellt, dass sämtlicher Verkehr durch das Tor-Netzwerk geleitet wird. Zusätzlich werden Mount-Namespaces verwendet, um eine angepasste DNS-Konfiguration (/etc/resolv.conf) bereitzustellen, sowie User- und PID-Namespaces, um die Anwendung mit minimalen Rechten in einer Sandbox auszuführen.

oniux im Vergleich zu torsocks

Der Ansatz von oniux unterscheidet sich grundlegend von dem des etablierten Werkzeugs torsocks. Die folgende Tabelle stellt die wichtigsten Unterschiede gegenüber:

Feature oniux torsocks
Isolationstechnik Linux Namespaces (Kernel-Level) LD_PRELOAD (User-Space-Hack für libc)
Anwendungskompatibilität Funktioniert mit allen Anwendungen (inkl. statisch gelinkter, Go/Rust/Zig) Nur mit dynamisch gelinkten Anwendungen, die libc für Netzwerkaufrufe nutzen
Leak-Anfälligkeit Keine Leaks durch rohe Systemaufrufe oder Umgehung von libc Anfällig für Leaks bei rohen Systemaufrufen oder nicht-libc-Aufrufen
Abhängigkeiten Eigenständige Anwendung (integriertes Arti) Benötigt einen laufenden Tor-Daemon
Plattform Nur Linux Plattformübergreifend
Tor-Implementierung Arti (Rust) CTor (C)
Sprache Rust C
Status Neu und experimentell Langjährig erprobt (über 15 Jahre)

Diese Gegenüberstellung macht deutlich, dass oniux durch seinen Kernel-gestützten Ansatz eine höhere Sicherheitsgarantie gegen bestimmte Arten von Datenlecks bietet, insbesondere bei modernen Anwendungen, die nicht traditionell auf libc für Netzwerkoperationen setzen.

Installation und Anwendung von oniux

Um oniux nutzen zu können, wird ein Linux-System mit installierter Rust-Toolchain (insbesondere cargo) benötigt. Die Installation erfolgt über folgenden Befehl:

cargo install --git https://gitlab.torproject.org/tpo/core/oniux oniux@0.4.0

Nach erfolgreicher Installation kann oniux verwendet werden, indem der gewünschte Befehl einfach mit oniux vorangestellt wird. Hier einige Anwendungsbeispiele:

Netzwerkanfragen mit curl über Tor senden:
oniux curl ifconfig.co/json

Dieser Befehl sollte Informationen über die IP-Adresse des genutzen Tor-Exit-Nodes ausgeben.

Eine gesamte Shell-Sitzung "torifizieren":
oniux bash

Alle Befehle, die in dieser Bash-Sitzung ausgeführt werden, nutzen nun das Tor-Netzwerk.

Grafische Anwendungen isolieren:
oniux hexchat

Auch GUI-Anwendungen können auf diese Weise über Tor geleitet werden.

Für Debugging-Zwecke kann die Protokollierung aktiviert werden:
RUST_LOG=debug oniux curl https://icanhazip.com

Aktueller Stand und Ausblick

oniux befindet sich derzeit in einem experimentellen Stadium. Obwohl es bereits funktionsfähig ist und vielversprechende Sicherheitsmerkmale aufweist, besitzt es noch nicht die Reife und ausgiebige Testerfahrung von etablierten Werkzeugen wie torsocks. Das Tor Project weist darauf hin, dass oniux für kritische Operationen noch nicht empfohlen wird und ermutigt die Community ausdrücklich zum Testen und zur Abgabe von Feedback, um das Tool schneller zur Produktionsreife zu führen.

Fazit

Mit oniux stellt das Tor Project ein innovatives Werkzeug für Linux-Nutzer vor, das durch den Einsatz von Kernel-Namespaces und der modernen Arti-Engine eine robuste, Leak-resistente Methode zur Weiterleitung von Anwendungsverkehr über das Tor-Netzwerk bietet.