Linux uygulamaları için çekirdek düzeyinde Tor yalıtım aracı Oniux tanıtıldı
(blog.torproject.org)- Oniux, Linux uygulamalarının tüm trafiğini Tor ağı üzerinden zorunlu olarak yönlendirerek veri sızıntısı riskini en aza indiren çekirdek düzeyinde bir yalıtım aracıdır
- Linux namespace yapısını kullanarak her uygulamayı bağımsız bir ağ ortamında yalıtır ve Tor üzerinden güvenli iletişim sağlar
- Mevcut torsocks çözümünden farklı olarak, libc kullanmayan veya statik binary dosyalarda da çalışır; böylece kötü amaçlı uygulamaların doğrudan veri sızdırma yollarını engeller
- Oniux, yeni Arti, onionmasq temeli üzerinde Rust diliyle yazılmıştır; bu da hem güvenliği hem de genişletilebilirliği güçlendirir
- Oniux şu anda deneysel bir araçtır; kararlılık açısından uzun süredir doğrulanmış torsocks'tan farklı olsa da, yeni nesil Tor trafik yalıtım çözümü olarak dikkat çekmektedir
Oniux'a giriş
Oniux, Linux'ta Tor ağı yalıtımı aracılığıyla kişisel gizlilik güvenliğini ciddi ölçüde artıran bir komut satırı yardımcı programıdır. Geliştiricilerin, aktivistlerin ve araştırmacıların hatalı proxy ayarları ya da küçük dikkatsizlikler nedeniyle oluşabilecek veri sızıntısı olasılığını tamamen engelleyebilmesi için tasarlanmıştır. Oniux, Arti ve onionmasq üzerinde çalışır; herhangi bir Linux uygulamasını ayrı bir ağ namespace'inde yalıtarak trafiği yalnızca Tor ağına zorunlu olarak yönlendirir.
Linux namespace nedir
- Namespace, Linux çekirdeğinin temel yalıtım özelliklerinden biridir
- Bir uygulamanın bazı kaynaklarını sistemin geri kalanından mantıksal olarak ayırır
- Ağ, mount, süreç gibi çeşitli kaynaklar bu teknikle yalıtılabilir
- Her namespace, işletim sistemi kaynaklarını ayırarak konteyner ortamlarında veya güvenlik amaçlı kullanılır
- Docker gibi yaygın konteyner çözümleri namespace'i temel prensip olarak kullanır
Tor ile namespace birleşiminin anlamı
- Namespace, herhangi bir uygulamanın Tor ağına erişimini tam yalıtımla korur
- Her uygulama ayrı bir network namespace içine yerleştirilir ve yalnızca
onion0adlı özel arayüz açığa çıkarılır - Uygulama, işletim sisteminin genel ağ arayüzlerine (ör.
eth0) erişemediği için güvenlik en üst düzeye çıkarılabilir - SOCKS tabanlı proxy yaklaşımından farklı olarak, herhangi bir hata ya da kusur nedeniyle doğrudan trafik sızıntısı riski yoktur
Oniux ve torsocks karşılaştırması
- Torsocks, libc'nin ağ işlevlerini LD_PRELOAD tekniğiyle hook'layarak trafiği Tor'un SOCKS proxy'si üzerinden geçirir
- Oniux, namespace yalıtımı ile çalışır ve statik binary'lerde veya Zig gibi ortamlarda da trafik sızıntısını %100 engeller
- Başlıca karşılaştırma noktaları
- Oniux: Ayrı bir Tor daemon'u gerekmez, namespace kullanır, tüm uygulamaları destekler, kötü amaçlı uygulamaların raw system call'larını da engeller, yalnızca Linux'ta çalışır, yeni/deneyseldir, Arti tabanlıdır, Rust ile yazılmıştır
- Torsocks: Tor daemon'u gerekir,
ld.sohilesi kullanır, yalnızca libc'ye bağlı uygulamaları destekler, raw system call'larda sızıntı olabilir, çapraz platformdur, 15 yılı aşkın süredir doğrulanmıştır, CTor motorunu kullanır, C diliyle yazılmıştır
Oniux nasıl kullanılır
- Rust geliştirme ortamı kurulmuş bir Linux sistemi gerekir
- Komut satırında oniux kolayca kurulup çalıştırılabilir
Başlıca kullanım örnekleri:
- $ oniux curl https://icanhazip.com # Tor üzerinden alınan IP'yi görüntüler
- $ oniux bash # Tüm shell'i Tor yalıtımı altında çalıştırır
- $ oniux hexchat # GUI uygulamaları da Tor üzerinden zorla yönlendirilebilir
- $ RUST_LOG=debug oniux curl ... # Hata ayıklama loglamasını destekler
İç çalışma mantığı
- Oniux,
clone(2)system call'ı ile bağımsız ağ, mount, PID ve kullanıcı namespace'lerinde bir child process oluşturur - Child process,
/proc'u ayrı olarak mount eder ve UID/GID eşlemesiyle yetkileri ayarlar - İsim sunucusu bilgisini içeren geçici bir dosyayı
/etc/resolv.confüzerine bind mount ederek Tor tabanlı isim çözümleyicinin zorunlu kullanımını sağlar onionmasqile TUN arayüzü (onion0) oluşturur, IP ataması ve yapılandırmasını yapar- Child process, arayüz fd'sini Unix domain socket üzerinden parent process'e aktarır ve yetkileri en aza indirir
- Son olarak Rust özelliklerini kullanarak kullanıcının verdiği komutu çalıştırır
Oniux'un deneysel niteliği
- Oniux, Arti, onionmasq gibi yeni teknolojiler temel alınarak oluşturulmuş erken aşama bir sürümdür
- Şu anda düzgün çalışsa da, torsocks gibi uzun yıllara yayılan olgunlaşma ve saha deneyiminden yoksundur
- Kararlılığın sağlanması ve performansın iyileştirilmesi için çeşitli gerçek kullanım geri bildirimlerine ihtiyaç vardır
Katkılar ve destek
- Rust tabanlı IP stack'i smoltcp'ye ve user namespace kullanımına dair geliştirme tavsiyeleri veren 7ppKb5bW gibi geliştiricilere teşekkür edilmektedir
- Oniux projesi, The Tor Project ve topluluğun desteğiyle sürdürülmektedir; gizlilik ve açık kaynaklı yazılımın gelişimi için bağış yapılması önerilmektedir
2 yorum
Tor gizlilik açısından fena değil gibi, ama anonimlik için uygun bir araç olup olmadığından pek emin değilim. Çıkış düğümlerinin zaten devlet kurumları tarafından ele geçirilmiş olduğuna dair laflar da var.
Hacker News görüşü
torsockvetorifyde temelde aynı rolü oynuyor, ama sağlamlık açısından daha zayıf hissettiren noktalar var.cargo install --git https://gitlab.torproject.org/tpo/core/oniux oniux@0.5.0torsocksgibi, trafiğin yerelde çalışan bir tor daemon'u üzerinden çıktığını sanmıştım. Ama yerel tor daemon'unu kapatsam da oniux hâlâ düzgün çalışıyor, buna karşılıktorifyvetorsocksçalışmıyor. Belgelere bakınca gerçekten de böyle olduğu görülüyor. Oldukça ilginç bir durum. Docker içinde de iyi çalışıyor ama--privilegedseçeneğini kullanmam gerekti ve yalnızca binary'yidebian:12konteynerine kopyalayınca da sorunsuz çalıştı.docker run -it --rm --privileged -v "$PWD/oniux:/usr/bin/oniux" debian:12https://tpo.pages.torproject.net/core/arti/
orjail'e benziyor, amaorjail4 yıldır commit almamış olsa da hâlâiptables/iproutearaçlarıyla birlikte shell script olarak gayet iyi çalışıyor.orjailiçinfirejailile ek izolasyon sağlayan bir seçenek de var ama Oniux'ta henüz böyle bir özellik yok.https://github.com/orjail/orjail/blob/master/usr/sbin/orjail
https://raw.githubusercontent.com/orjail/orjail/master/usr/sbin/orjail
chromeile tor web sitelerine erişmenin mümkün olup olmadığını merak ediyorum.chrome'da Tor Browser'daki çeşitli anti-fingerprinting stratejileri yok. Normal bir tarayıcı kullanırsanız daha da ayırt edilebilir bir kullanıcı haline gelirsiniz.chromegibi tarayıcılarla da erişmek mümkün. Tor daemon'un standart portu 9050. Hatta birsocksproxy'si yazıp trafiği yönlendirmek de oldukça kolay. Örneğinsocks5proxy kullanarak trafiğisyncthinggibi bir yere gönderebilirsiniz.https://github.com/acheong08/syndicate
hexchatveriliyor ama kullanıcının profil ayarları aynen kullanılırsa IRC kullanıcı adının sızmayacağını nasıl söyleyebiliriz diye merak ediyorum.Tarayıcı çalıştırılırsa çerezler gibi şeyler de sızabilir.