oniux: Izolare Tor la nivel de kernel pentru orice aplicație Linux
Urmărește cele mai noi producții video TechRider.ro
- articolul continuă mai jos -
Atunci când lansează aplicații și servicii critice pentru confidențialitate, dezvoltatorii doresc să se asigure că fiecare pachet trece doar prin Tor. O singură setare proxy greșită – sau un singur apel de sistem în afara wrapper-ului SOCKS – și datele dvs. sunt brusc în pericol.
De aceea, TOR introduce oniux: un mic utilitar de linie de comandă care oferă izolarea rețelei Tor pentru aplicații terțe care utilizează spații de nume – namespace al Linux. Construit pe Arti și onionmasq, oniux transferă orice program Linux în propria caracteristica namespace de rețea pentru a-l ruta prin Tor și elimină potențialul de scurgeri de date a anunțat Tor într-o postare pe blog.
Spre deosebire de metodele clasice precum torsocks, care se bazează pe trucuri din spațiul utilizatorului, Oniux folosește caracteristica namespace a Linux pentru a crea un mediu de rețea complet izolat pentru fiecare aplicație, prevenind scurgerile de date chiar dacă aplicația este rău intenționată sau configurată greșit.
Ce sunt spațiile de nume- namespace în Linux?
Namespace sunt o caracteristică de izolare găsită în kernelul Linux, introdusă în jurul anului 2000. Acestea oferă o modalitate sigură de a izola o anumită parte a unei aplicații de restul sistemului. Acestea vin în diverse forme și dimensiuni. Câteva exemple includ namespace (spații de nume) de rețea, namespace de procese și câteva altele; fiecare dintre ele izolând o anumită cantitate de resurse de sistem de o aplicație.
În Linux, resursele de sistem sunt disponibile global de către toate aplicațiile din sistem. Cel mai notabil exemplu în acest sens este probabil ceasul sistemului de operare, dar există și multe alte zone, cum ar fi lista tuturor proceselor, sistemul de fișiere și lista de utilizatori.
Caracteristica namespace containerizează o anumită parte a unei aplicații de restul sistemului de operare; exact asta folosește Docker pentru a-și oferi primitivele de izolare. Așadar, namspace Linux sunt o caracteristică a kernelului care permite proceselor să ruleze în medii izolate, fiecare cu propria vizualizare a resurselor specifice de sistem, cum ar fi rețeaua, procesele sau montarea fișierelor.
Oniux folosește namespace pentru a izola aplicațiile la nivel de kernel
Oniux folosește aceste namespace (spații de nume) Linux pentru a izola aplicațiile la nivel de kernel, astfel încât tot traficul lor este forțat prin Tor.
„Suntem încântați să vă prezentăm oniux: un mic utilitar de linie de comandă care oferă izolare a rețelei Tor pentru aplicații terțe care utilizează namespace Linux”, se arată într-o postare pe blogul Tor.
„Construit pe Arti și onionmasq, oniux transferă orice program Linux în propriul namespace de rețea pentru a-l ruta prin Tor și elimină potențialul de scurgeri de date.”
Realizează acest lucru prin plasarea fiecărei aplicații în propriul namespace de rețea fără acces la interfețele gazdei și, în schimb, atașând o interfață virtuală (onion0) care ruta traficul prin Tor folosind onionmasq.
De asemenea, folosește caracteristica namespace de montare pentru a injecta un fișier /etc/resolv.conf personalizat pentru DNS sigur pentru Tor și spații de nume utilizator/PID pentru a configura în siguranță mediul cu privilegii minime.
Această configurație asigură o izolare Tor etanșă, impusă de kernel, pentru orice aplicație Linux.
Oniux vs. torsocks
Pe de altă parte, Torsocks funcționează folosind un hack „LD_PRELOAD” pentru a intercepta apelurile de funcții legate de rețea în aplicațiile Linux legate dinamic și a le redirecționa printr-un proxy Tor SOCKS.
Problema acestei abordări este că apelurile de sistem brute nu sunt detectate de Torsocks, iar aplicațiile rău intenționate pot evita utilizarea funcțiilor libc pentru a provoca scurgeri de informații.
Mai mult, Torsocks nu funcționează deloc cu binare statice și nu oferă o izolare reală, deoarece aplicațiile accesează în continuare interfețele de rețea reale ale gazdei.
Proiectul Tor a publicat un tabel comparativ care evidențiază diferențele calitative dintre cele două soluții.
oniux | torsocks |
Aplicație independentă | Necesită rularea daemonului Tor |
Folosește naspace Linux | Folosește un hack de preîncărcare ld.so |
Funcționează pe toate aplicațiile | Funcționează doar pe aplicații care fac apeluri de sistem prin libc |
Aplicația rău intenționată nu poate fi scursă prin raw assebly – ansamblul brut | O aplicație rău intenționată poate scurge informații prin efectuarea unui apel de sistem |
Numai Linux | Multiplatformă |
Nou și experimental | Testat și utilizat de peste 15 ani |
Folosește Arti ca motor | Folosește CTor ca motor |
Scris în Rust | Scris în C |
Oniux este experimental
În ciuda avantajelor evidente ale Oniux, Tor subliniază faptul că proiectul este încă experimental și nu a fost testat extensiv în mai multe condiții și scenarii.
Acestea fiind spuse, instrumentul s-ar putea să nu funcționeze conform așteptărilor, așa că utilizarea sa în operațiuni critice este descurajată.
În schimb, Tor solicită entuziaști care pot testa Oniux și raporta orice probleme pe care le întâmpină, astfel încât instrumentul să poată ajunge rapid la maturitate și să fie pregătit pentru o implementare mai largă.
Proiectul Tor a publicat codul sursă, iar cei interesați să testeze Oniux trebuie mai întâi să se asigure că au Rust instalat pe distribuția lor Linux, apoi să instaleze instrumentul folosind comanda:
cargo install –git https://gitlab.torproject.org/tpo/core/oniux oniux@0.4.0.
Tor oferă și câteva exemple de utilizare, cum ar fi accesarea unui site .onion (oniux curl http://example.onion) sau rularea unei aplicații GUI prin Tor în mediul desktop (oniux hexchat).