Tor komt met cli-tool Oniux die alle Linux-applicaties via Tor kan draaien

Tor heeft een commandlinetool voor Linux uitgebracht waarmee het mogelijk is iedere Linux-applicatie via het Tor-netwerk te draaien en die zo te anonimiseren. Oniux gebruikt daarvoor de namespaces in Linux waardoor processen kunnen worden geïsoleerd

De makers van de Tor-browser schrijven dat Oniux inmiddels algemeen beschikbaar is. De makers waarschuwen wel dat het tooltje nog in een experimentele fase zit en dat gebruikers minimaal een Rust-toolchain moeten hebben geïnstalleerd. Oniux is een commandlinetool waarmee het mogelijk is om iedere actie op Linux via de terminal uit te voeren via Oniux door simpelweg die prefix voor een commando te zetten. De makers geven als voorbeeld het uitvoeren van een bash-script om een volledige shell te isoleren of een curl-query uit te voeren.

Als gebruikers een actie uitvoeren via Oniux wordt dat proces volledig geïsoleerd van de rest van het besturingssysteem. Daarvoor zet Oniux iedere applicatie in een aparte netwerk-namespace. Namespaces zijn een feature in Linux waardoor processen in een aparte container worden gezet en geen toegang hebben tot de rest van het systeem. Dat kunnen processen zijn, maar ook bijvoorbeeld bestandssystemen. Door Oniux te gebruiken in een terminalcommando worden alle processen in zo'n namespacecontainer geplaatst. Vervolgens lopen ze via onionmasq over het Tor-netwerk. Verder worden er specifieke veiligheidsfeatures aan de verbinding toegevoegd zoals Tors eigen dns-dienst.

De makers zeggen dat die manier van werken ervoor zorgt dat applicaties geen data meer kunnen lekken naar andere, potentieel kwetsbare onderdelen van het besturingssysteem. Dat is geen volledig nieuw concept. Tor heeft ook torsocks waarbij het mogelijk is applicaties via een Socks-proxy van Tor zelf te draaien. Dat werkt weliswaar ook op andere platformen dan Linux, maar torsocks heeft volgens Tor veel beperkingen. Niet in de minste plaats kan een geïnfecteerde applicatie alsnog data lekken door bepaalde systemcalls te maken. Ook werkt torsocks alleen op applicaties die libc gebruiken.

Tor heeft Oniux opensource beschikbaar gemaakt. De code is te vinden in een repo onder een MIT- of een Apache-licentie. De makers waarschuwen ervoor de tool in de experimentele fase nog niet te gebruiken in belangrijke omgevingen en roept gebruikers op de tool te testen en feedback te geven.

Door Tijs Hofmans

Nieuwscoördinator

16-05-2025 • 07:31

20

Submitter: Munchie

Reacties (20)

20
20
10
1
0
9
Wijzig sortering
Op het moment dat je dit nodig hebt, ben je dan niet veel beter af met Tails?
Eens.
Tor heeft ook torsocks waarbij het mogelijk is applicaties via een Socks-proxy van Tor zelf te draaien. Dat werkt weliswaar ook op andere platformen dan Linux, maar torsocks heeft volgens Tor echter veel beperkingen. Niet in de minste plaats kan een geïnfecteerde applicatie alsnog data lekken door bepaalde systemcalls te maken.
Als je al een geïnfecteerde applicatie op je machine hebt dan heb je al verloren. Privilege escalation exploits komen regelmatig langs. Een lokale kwaadwillende aanwezigheid met beperkte rechten hoeft alleen maar te wachten totdat er een nieuwe kwetsbaarheid bekend is die nog niet is opgelost.

Isolatie is wel nuttig om meer zekerheid te hebben dat een applicatie geen verkeer kan lekken. Liever zou ik daarvoor twee VM's gebruiken: één router VM en één client VM. De client VM kan enkel via de router VM met internet verbinden via VPN of Tor, zonder ooit een directe internetverbinding te hebben. De client VM heeft geen invloed op de router VM. Zo is er meer isolatie en minder ruimte voor eigen fouten in gebruik. Ik denk dat een gebrek aan discipline een grotere kans geeft op het verlies van anonimiteit ten opzichte van enkel de kans dat een systeem geïnfecteerd raakt met malware.

[Reactie gewijzigd door The Zep Man op 16 mei 2025 08:18]

Dit lijkt mij een interessante tool om eens uit te proberen.
Ik heb met firejail een keer geëxperimenteerd, is dat hetzelfde principe als deze tool maar nu dan alles via het tor netwerk het internet op?
Ik hoef niet zo zeer een compleet besturing systeem te installeren als ik 1 applicatie over 1 onion route wil gooien. Ik denk dat ik wel een paar manieren kan vinden om dit in mijn thuis server te implementeren.

Als ik dan gewoon een alpine image pak, dit installeer en uitvoer denk ik niet dat er veel kan gebeuren.

[Reactie gewijzigd door Xorifelse op 16 mei 2025 11:03]

Tails is superveilig, maar verder niet een erg fijn OS. Als dagelijks OS zou ik het absoluut niet willen gebruiken.
Mensen gebruiken toch ook veel vaker de Tor-Browser op normale Windows/Linux dan Tails? Met Oniux kan je een "Tor" versie maken van elke Linux applicatie die internet nodig heeft.

De preciese concequenties gaan mij een beetje boven de pet, maar dit lijkt mij wel handig om bv een Docker oid te kunnen isoleren, zonder iets op de router te hoeven doen.
Mijn Russische vriend die deel is van ons development team is geblokkeerd van Discord. Hij gebruikt nu een betaalde VPN maar was dus eerst via Tor SOCKS aan het proberen, wat niet lukte. Een tool zoals deze kan dat dus verhelpen.
Oh... dus dit zorgt er ook voor dat de meeste firewalls niet meer verkeer tegen kunnen houden tenzij ook alle tor entry nodes geblokkeerd zijn of dat er alleen een allow-list is.

Hoe zit dat met zerosingle trust tools zoals zscaler?

[Reactie gewijzigd door djwice op 16 mei 2025 07:51]

Oh... dus dit zorgt er ook voor dat de meeste firewalls niet meer verkeer tegen kunnen houden tenzij ook alle tor nodes geblokkeerd zijn of alleen een allow-list hebben?
Dat heeft hier niets mee te maken. Dit heeft betrekking op verkeer binnen het Tor-netwerk.

Verder kan je nooit alle Tor nodes blokkeren omdat de IP-adressen niet van alle nodes bekend zijn. Dat is ook niet nodig. Als je exit nodes blokkeert (waarvan alle adressen bekend zijn) dan is je dienst niet bereikbaar via Tor zonder verdere hulpmiddelen (zoals een VPN ergens anders heen).

Uitgaande verbindingen naar het Tor-netwerk zijn lastig te blokkeren wanneer gebruik gemaakt wordt van bridges.

[Reactie gewijzigd door The Zep Man op 16 mei 2025 08:11]

Het gaat hier om het omgekeerde. Een ontwikkelaar is geïrriteerd dat een bepaalde website geblokkeerd is waar hij code wil.downloaden. De ticket verwerking van een firewall rule aanpassing kost tijd, zelfs eventuele extra overleggen en is met redirects of afhankelijkheden in de code van code op weer andere domeinen lastig.

In het build script gebruikt hij daarom deze commandline tool om toch bij de website te komen en de code te downloaden.

Lijsten als https://metrics.torproject.org/rs.html#search/flag:guard zijn denk ik niet afdoende, toch?
En exit nodes ook niet in dit geval toch?
Bridges zijn een soort jump-boxes?

Dus kan de firewall om de build server alleen een allow-list hebben, toch?

[Reactie gewijzigd door djwice op 16 mei 2025 08:21]

Daarom gebruik je bedrijfsmatig ook een proxy waarover al je verkeer naar buiten gaat. Daar heb je volledige controle over mits je ook DPI toepast op eventuele ‘illegale’ tunnels.
Hoe deed je dat normaal gesproken dan met bijvoorbeeld VPN verbindingen? Dat is toch vrijwel hetzelfde?
Thanks! How could I have overlooked the obvious |:(
Dank je!
Als linux gebruiker (met de juiste kennis en root rechten) is het sowieso al triviaal om om zscaler heen te werken
Ze gaan dus voor een soort LXC achtige oplossing. Als je alleen het netwerk verkeer van een willekeurig programma wil onderscheppen en gegarandeerd via tor wil laten lopen dan kan dat door gebruik te maken van cgroups. In het kort: je start het programma binnen een netwerk cgroup, en programmeert de firewall zodanig dat alle verkeer van programma's in deze cgroup naar de tor daemon wordt gestuurd. Heb in 2017 een programma genaamd AORTA geschreven die deze methode gebruikt. Hier een linkje: AORTA a transparent Tor proxy for Linux programs
De makers geven als voorbeeld [...] een curl-query uit te voeren.
Het is wel jammer dat het gegeven voorbeeld voor curl niet werkt, tenminste niet met een enigszins recente versie. En zoals altijd is DNS het probleem :D

Curl implementeert namelijk RFC 7686 ("block .onion names from getting resolved using normal DNS"), wat vanuit de Tor-community komt om privacy te waarborgen. Dus in het gegeven voorbeeld kan curl de domeinnaam niet resolven. De oplossing is ook niet zo eenvoudig, getuige de discussie hierover.
Dit kon in principe al sinds het begin van tor... door gebruik te maken van tsocks, en die al het netwerkverkeer naar de socks poort van tor te sturen.

Kwestie van tsocks voor het commando zetten:

$ tsocks curl https://www.tweakers.net

Zou dan via tor moeten gaan ;) (als je tsocks configged om met localhost:1080 te praten)

De enige beperking was dat dit alleen werkte voor TCP verbindingen, deze nieuwe tool kan zo te zien ook omgaan met UDP of andere protocollen.

[Reactie gewijzigd door markjanssen op 16 mei 2025 13:31]

You may have also heard of a tool with a similar goal, known as torsocks, which works by overwriting all network-related libc functions in a way to route traffic over a SOCKS proxy offered by Tor. While this approach is a bit more cross-platform, it has the notable downside that applications making system calls not through a dynamically linked libc, either with malicious intent or not, will leak data. Most notably, this excludes support for purely static binaries and applications from the Zig ecosystem.

The following provides a basic comparison on oniux vs torsocks:
  • Standalone application - Requires running Tor daemon
  • Uses Linux namespaces - Uses an ld.so preload hack
  • Works on all applications - Only works on applications making system calls through libc
  • Malicious application cannot leak - Malicious application can leak by making a system call through raw assembly
  • Linux only - Cross-platform
  • New and experimental - Battle-proven for over 15 years
  • Uses Arti as its engine - Uses CTor as its engine
  • Written in Rust - Written in C
Klopt wat je zegt, toch heeft dit nieuwe project zo te lezen voordelen t.o.v. de al bestaande weg met torsocks.
Bron: https://blog.torproject.o...n-using-linux-namespaces/

[Reactie gewijzigd door linext op 16 mei 2025 20:01]

Klinkt ingewikkeld. Torsocks werkt prima voor mijn use cases.
Kan met een simpel bash script, werkt fantastisch is beschikbaar op github met een gpl 3 licentie... torctl, geen raar rust gedoe, enkel bash... waarom het warm water opnieuw proberen uit vinden?
Dit is zeer goed nieuws. Als je weet hoe dit soort isolatie werkt en Tor gebruikt dan wachtte je er hoogstwaarschijnlijk al langer op.


Om te kunnen reageren moet je ingelogd zijn