Разработчики Tor анонсировали новый инструмент командной строки Oniux, предназначенный для безопасной маршрутизации любых Linux-приложений через сеть Tor для анонимизации сетевых соединений.
В отличие от классических методов, которые используют пространство user-space, Oniux использует пространства имен (namespaces) в Linux для создания полностью изолированной сетевой среды для каждого приложения, предотвращая утечку данных, даже если приложение является вредоносным или настроено некорректно.
Linux namespaces — это функция ядра, которая позволяет процессам работать в изолированных средах, каждая из которых имеет собственное представление о конкретных системных ресурсах, например, о нетворкинге и процессах.
Oniux использует namespaces для изоляции приложений на уровне ядра, в результате чего весь их трафик принудительно пропускается через Tor.
«Мы рады представить Oniux: небольшую утилиту командной строки, обеспечивающую сетевую изоляцию посредством Tor для сторонних приложений, использующих пространства имен Linux, — говорится в сообщении разработчиков. — Построенная на базе Arti и onionmasq, Oniux помещает любую Linux-программу в собственное сетевое пространство имен, чтобы направить ее через Tor и исключить вероятность утечек данных».
Такой эффект достигается посредством размещения каждого приложения в собственном сетевом пространстве имен без доступа к интерфейсам хоста, вместо чего используется виртуальный интерфейс (onion0), осуществляющий маршрутизацию через Tor с помощью onionmasq.
Кроме того, инструмент использует mount namespaces для внедрения собственного /etc/resolv.conf для безопасной работы с Tor DNS, а также user/PID namespaces для безопасной настройки среды с минимальными привилегиями. Это позволяет обеспечить защиту от утечек и изоляцию Tor в ядре для любого приложения Linux.
Разработчики объясняют, что, в отличие от Oniux, Torsocks работает за счет использования LD_PRELOAD и перехвата вызовов сетевых функций в динамически связанных Linux-приложениях и перенаправляет их через SOCKS-прокси Tor.
Проблема такого подхода заключается в том, что необработанные системные вызовы не перехватываются Torsocks, а вредоносные программы могут не использовать функции libc, что может привести к утечкам.
Более того, Torsocks вообще не работает со статическими бинарниками и не обеспечивает настоящей изоляции, поскольку приложения все равно обращаются к реальным сетевым интерфейсам хоста.
В блоге разработчики опубликовали сравнительную таблицу, в которой указаны различия между этими решениями.
Несмотря на очевидные преимущества Oniux, подчеркивается, что это экспериментальный проект, который пока не прошел всестороннее тестирование в разных условиях и сценариях. По этой причине инструмент может работать некорректно, и не рекомендуется задействовать его в критически важных операциях.
Вместо этого разработчики призывают энтузиастов протестировать Oniux и сообщить о возникших проблемах, чтобы побыстрее подготовить инструмент к более широкому внедрению.
Tor Project уже опубликовал исходный код Oniux, и рекомендует всем, кто захочет его протестировать, предварительно убедиться в том, что в их дистрибутиве установлен Rust.