Memperkenalkan Oniux, alat isolasi Tor tingkat kernel untuk aplikasi Linux
(blog.torproject.org)- Oniux adalah alat isolasi tingkat kernel yang memaksa seluruh trafik aplikasi Linux dirutekan melalui jaringan Tor untuk meminimalkan risiko kebocoran data
- Dengan memanfaatkan namespace Linux, setiap aplikasi diisolasi ke lingkungan jaringan yang independen dan komunikasi aman melalui Tor pun diwujudkan
- Berbeda dari torsocks yang ada saat ini, Oniux juga bekerja pada aplikasi yang tidak menggunakan libc atau berupa biner statis, sehingga memblokir jalur kebocoran data langsung dari aplikasi berbahaya
- Oniux dibangun di atas Arti dan onionmasq yang baru, serta ditulis dalam Rust, sehingga memperkuat baik keamanan maupun skalabilitas
- Saat ini Oniux masih merupakan alat eksperimental; berbeda dari torsocks yang kestabilannya telah teruji, tetapi tetap diperhatikan sebagai solusi isolasi trafik Tor generasi berikutnya
Memperkenalkan Oniux
Oniux adalah utilitas baris perintah yang secara drastis meningkatkan tingkat keamanan privasi melalui isolasi jaringan Tor di Linux. Alat ini dirancang agar pengembang, aktivis, dan peneliti dapat sepenuhnya menutup kemungkinan kebocoran data akibat konfigurasi proxy yang salah atau sedikit kelalaian. Oniux berjalan di atas Arti dan onionmasq, lalu mengisolasi aplikasi Linux apa pun ke namespace jaringan terpisah dan memaksa seluruh trafik hanya melewati jaringan Tor.
Apa itu namespace Linux
- Namespace adalah fitur isolasi utama di kernel Linux
- Fitur ini memisahkan secara logis sebagian sumber daya aplikasi dari keseluruhan sistem
- Berbagai sumber daya seperti jaringan, mount, dan proses dapat diisolasi dengan teknik ini
- Setiap namespace memisahkan sumber daya sistem operasi dan digunakan untuk lingkungan kontainer maupun tujuan keamanan
- Solusi kontainer terkenal seperti Docker memanfaatkan namespace sebagai prinsip dasarnya
Arti menggabungkan Tor dan namespace
- Namespace melindungi akses jaringan Tor aplikasi apa pun dengan isolasi penuh
- Setiap aplikasi ditempatkan secara terpisah di namespace jaringan, dan hanya antarmuka kustom bernama onion0 yang diekspos
- Karena aplikasi tidak dapat mengakses antarmuka jaringan OS secara keseluruhan (misalnya
eth0), keamanan dapat dimaksimalkan - Tidak seperti pendekatan proxy berbasis SOCKS, tidak ada risiko kebocoran trafik langsung akibat kesalahan atau cacat apa pun
Perbandingan Oniux dan torsocks
- Torsocks mengait fungsi jaringan milik libc dengan teknik LD_PRELOAD untuk mengalihkannya ke proxy SOCKS milik Tor
- Oniux bekerja melalui isolasi namespace, sehingga biner statis atau aplikasi Zig pun dapat dicegah 100% dari kebocoran trafik
- Poin perbandingan utama
- Oniux: tidak memerlukan daemon Tor terpisah, menggunakan namespace, mendukung semua aplikasi, memblokir syscall mentah dari aplikasi berbahaya, khusus Linux, baru/eksperimental, berbasis Arti, ditulis dalam Rust
- Torsocks: memerlukan daemon Tor, melakukan peretasan ld.so, hanya mendukung aplikasi yang terhubung ke libc, syscall mentah masih bisa bocor, lintas platform, telah teruji lebih dari 15 tahun, mesin CTor, ditulis dalam C
Cara menggunakan Oniux
- Diperlukan sistem Linux dengan lingkungan pengembangan Rust yang telah disiapkan
- Oniux dapat dipasang dan dijalankan dengan mudah dari baris perintah
Contoh penggunaan utama:
- $ oniux curl https://icanhazip.com # Cek IP yang diperoleh melalui perutean Tor
- $ oniux bash # Jalankan seluruh shell dalam isolasi Tor
- $ oniux hexchat # Aplikasi GUI juga bisa dipaksa lewat Tor
- $ RUST_LOG=debug oniux curl ... # Mendukung logging untuk debugging
Cara kerja internal
- Oniux membuat proses anak di namespace jaringan, mount, PID, dan pengguna yang terpisah melalui syscall
clone(2) - Proses anak me-mount
/procsecara terpisah dan menyesuaikan hak akses melalui pemetaan UID/GID - File sementara berisi informasi nameserver di-bind mount ke
/etc/resolv.confuntuk memaksa penggunaan name resolver berbasis Tor - Membuat antarmuka TUN (onion0) dengan onionmasq lalu menetapkan dan mengonfigurasi IP
- Proses anak mengirimkan fd antarmuka ke proses induk melalui socket domain Unix untuk meminimalkan hak istimewa
- Pada akhirnya, perintah yang dimasukkan pengguna dijalankan dengan memanfaatkan fitur Rust
Sifat eksperimental Oniux
- Oniux adalah versi awal yang dibangun di atas teknologi baru seperti Arti dan onionmasq
- Meski saat ini berfungsi dengan baik, Oniux masih belum memiliki pengalaman kematangan jangka panjang seperti torsocks
- Beragam umpan balik dari penggunaan nyata diperlukan untuk memastikan stabilitas dan meningkatkan performa
Kredit dan dukungan
- Disampaikan terima kasih kepada smoltcp, stack IP berbasis Rust, serta para pengembang seperti 7ppKb5bW yang memberi saran tentang pemanfaatan namespace pengguna dalam pengembangan
- Proyek oniux dipelihara berkat dukungan The Tor Project dan komunitas, dan donasi dianjurkan demi kemajuan privasi dan perangkat lunak terbuka
2 komentar
Tor sepertinya tidak buruk untuk privasi, tetapi saya kurang yakin apakah ini alat yang cocok untuk anonimitas. Ada juga cerita bahwa node keluar sudah dikuasai oleh lembaga negara.
Komentar Hacker News
torsockdantorifypada dasarnya juga melakukan peran yang sama, tetapi ada titik-titik di mana keduanya terasa kurang kokoh dari segi ketahanancargo install --git https://gitlab.torproject.org/tpo/core/oniux oniux@0.5.0torsocks. Namun bahkan ketika daemon tor lokal dimatikan,oniuxtetap berjalan dengan baik sementaratorifydantorsockstidak. Setelah melihat dokumentasinya, ternyata memang begitu cara kerjanya. Fakta yang sangat menarik. Di docker juga berjalan baik, meski saya harus memakai opsi--privileged, dan sekadar menyalin binary ke containerdebian:12pun tetap bekerja dengan normaldocker run -it --rm --privileged -v "$PWD/oniux:/usr/bin/oniux" debian:12https://tpo.pages.torproject.net/core/arti/
orjail, tetapiorjailsudah tidak punya commit selama 4 tahun, meski masih berfungsi baik sebagai shell script bersama alatiptables/iprouteorjailjuga punya opsi untuk isolasi tambahan denganfirejail, tetapi Oniux belum memiliki fitur ituhttps://github.com/orjail/orjail/blob/master/usr/sbin/orjail
https://raw.githubusercontent.com/orjail/orjail/master/usr/sbin/orjail
https://github.com/acheong08/syndicate
hexchatsebagai contoh, tetapi kalau pengaturan profil pengguna dipakai apa adanya, bukankah username IRC akan bocor?Saat menjalankan browser, hal seperti cookie juga berpotensi bocor