Содержание статьи
Когда мы говорим об анонимности в интернете, то чаще всего подразумеваем такие проекты, как Tor, I2P, Tor Browser, DNSCrypt и Live CD TAILS, включающий в себя все перечисленное. Однако существует менее известная, но очень интересная система Whonix, использующая виртуализацию в качестве средства изоляции рабочей станции от глобальной сети и способная защитить твою анонимность даже после взлома.
Вместо введения
Чтобы обеспечить анонимность своего пребывания в Сети, мало установить Tor и завернуть в него весь исходящий трафик. Необходимо позаботиться о таких вещах, как утечки DNS, обнаружение твоего географического положения на основе настроек часового пояса, утечки имени пользователя (через SSH, например), утечки IP-адреса, свойственные некоторым сетевым протоколам, побороть проблему идентификации машины на выходных узлах Tor путем сравнения типов трафика. Ну и в целом придется серьезно повозиться, чтобы заставить все установленные сетевые приложения использовать Tor и не выдавать данных о твоей машине.
Ты можешь сделать все это сам, но лучше взять проверенное готовое решение, а именно дистрибутив TAILS. Он включает в себя множество преднастроенных приложений, корректно настроенный Tor и брандмауэр, так что в целом это достаточно надежная в плане сохранения анонимности и приватности система, которой не гнушался пользоваться сам Эдвард Сноуден.
Однако у TAILS есть два серьезных ограничения. Во-первых, это Live CD, изначально позиционируемый как «одноразовый»: TAILS не умеет запоминать свое состояние между выключениями и не оставляет никаких следов на машине. Как средство для слива секретных документов АНБ несколько раз за всю жизнь это превосходный инструмент, как повседневно используемая система — ужасный. Во-вторых, запуская TAILS на голом железе, юзер автоматически открывает серьезную дыру в своей анонимности. Ведь конфигурация ПК тоже позволяет идентифицировать человека.
Плюс TAILS никак не защищена от компрометации системы. Любой взломавший твою машину сразу деанонимизирует и твой IP, и тебя самого. Чтобы этого избежать, запланировано размещать ключевые системные сервисы в песочницах — но только в версии 3.0, которая непонятно когда выйдет, да это и не даст стопроцентной защиты. А самое печальное, что «благодаря» необновляемости системы ты не сможешь быстро залатать дыру, с помощью которой тебя взломали, придется ждать официальный релиз свежей версии TAILS (при условии, что информация о дыре находится в открытом доступе).
Для решения всех этих проблем как раз и предназначен Linux-дистрибутив Whonix, преследующий те же цели, но достигающий их несколько иным путем.
Сила виртуализации
TAILS распространяется в форме немодифицируемого Live CD не только для защиты от троянов и от возможных утечек конфиденциальных данных при получении физического доступа к машине, но и для банальной «защиты от дурака». Разработчики не могут быть уверены, что пользователь корректно настроит каждое установленное им приложение и не спровоцирует утечку данных или раскрытие своего IP. А если систему нельзя менять, то и проблема пропадает сама собой.
Whonix, с другой стороны, изначально разрабатывался с оглядкой на возможность модификации системы и «настройки под себя», поэтому, кроме используемых в TAILS методов защиты от утечек и фингерпринтинга, здесь реализована довольно интересная архитектура с применением виртуализации. Whonix распространяется в двух образах VirtualBox: один играет роль шлюза в глобальную сеть через Tor, а второй — это рабочая машина с браузером, чат-, email-клиентами и другим софтом, в том числе тем, что можно установить из репозиториев. Оба образа основаны на Debian.
Единственный способ выйти во внешний мир для рабочей машины — это шлюз, единственный путь трафика во внешний мир из шлюза и обратно — через сеть Tor. Неважно, насколько протекающий софт ты установишь на рабочую машину, он все равно тебя не выдаст. Получить доступ к интернету в обход Tor приложение не сможет, IP-адрес увидит только локальный, именем пользователя для него будет просто user (разработчики не рекомендуют его менять), а информацией о железе — стандартная конфигурация VirtualBox. Тебя не удастся отследить даже по временной зоне, часы здесь настроены на UTC, а для синхронизации времени используются time stamp’ы HTTP-заголовков, отдаваемых случайно выбранными веб-серверами.
Самая же интересная черта системы в том, что она вовсе не требует, чтобы ты использовал именно рабочую машину Whonix. Главный компонент здесь — это шлюз, к которому можно подцепить любую другую запущенную в виртуалке ОС, будь то Ubuntu, Windows или OS X, и получить почти такой же уровень защиты от отслеживания (см. официальную документацию). «Почти такой же» потому, что, кроме графического окружения и набора приложений, рабочая машина Whonix включает набор инструментов и настроек, позволяющих защитить тебя от отслеживания с помощью сравнения типов трафика на выходных узлах Tor (identity correlation through Tor circuit sharing) и определения настроек твоих часов и uptime’а через NTP и метки времени TCP/ICMP (все это подробно описано на wiki-странице Whonix).
Первая задача здесь решается с помощью изоляции потоков (stream isolation), все поставляемое в комплекте рабочей машины ПО заранее настроено на использование разных портов Tor (SocksPort) и враппера uwt, перенаправляющего трафик на разные Tor-порты, если приложение само не предоставляет такой возможности (используется для apt-get, cURL, Git и других консольных инструментов). Поэтому трафик всех приложений идет через разные цепочки Tor-узлов на разные выходные узлы. Вторая проблема решается с использованием утилиты sdwdate, которая синхронизирует часы не через NTP, а обращаясь к случайно выбранным серверам.
Whonix поддерживает любые виды туннелирования трафика Tor через VPN/SSH (или наоборот). Эта функция может очень пригодиться, если твой провайдер блокирует Tor (в этом случае VPN-клиент устанавливается на шлюз и Tor использует его для связи с другими узлами), или для скрытия трафика уже после того, как он покинул выходной узел Tor (VPN-клиент устанавливается на рабочую машину, так что Tor роутит уже зашифрованный трафик).
Пробуем
Итак, Whonix — это два преднастроенных образа для VirtualBox или Linux KVM. Поэтому систему можно запустить в любой операционке, для которой есть официальная версия VirtualBox, а это Linux, Windows, OS X и Solaris. Все, что для этого требуется сделать, — это скачать оба образа (суммарный объем 3,5 Гбайт) и затем импортировать их в VirtualBox с помощью меню File → Import Appliance.
Далее запускаем Whonix-Gateway и дожидаемся его загрузки. После появления рабочего стола (да, у шлюза есть графический интерфейс, так что разберутся даже самые маленькие) система предложит согласиться с дисклеймером, запустить Tor и обновить пакеты, затем запустится утилита whonixcheck, которая проверит подключение к Tor и корректность настроек системы, одновременно с ней отработает служба синхронизации времени sdwdate.
Сразу скажу о двух неочевидных моментах. Шлюз и рабочая станция Whonix никогда не подключаются к интернету напрямую и используют Tor даже для обновления пакетов из сетевых репозиториев. Поэтому сразу приготовься к довольно значительному проседанию скорости (я получил невероятно медленные по нынешним меркам 500 Кбайт/с).
Второй момент — шлюз совсем не обязательно запускать с графическим интерфейсом, который будет понапрасну жрать оперативку. Более того, здесь есть механизм, автоматически загружающий шлюз в текстовом режиме, если в настройках виртуалки выделить машине 192 Мбайт. Чтобы сделать это, достаточно кликнуть правой кнопкой на Whonix-Gateway, выбрать Settings и на вкладке System сдвинуть ползунок до значения 192. В итоге ты ничего не потеряешь, так как все, что позволяет сделать графический интерфейс, — это перезапустить Tor кликом мыши, отредактировать настройки брандмауэра и запустить интерфейс мониторинга Tor под названием arm (и он текстовый).
После окончания загрузки шлюза можно запускать десктоп. Последовательность действий тут почти такая же: запускаем виртуалку, соглашаемся с дисклеймером, соглашаемся обновить пакеты, ждем окончания проверки соединения с Tor и синхронизации времени. Далее можно начать работать. Правда, предустановленных приложений тут кот наплакал. Из повседневно необходимых только Tor Browser, IRC-клиент XChat и KGpg. Причем первый даже не установлен; после клика по иконке запускается инсталлятор, который предлагает выкачать браузер через Tor.
Остальной необходимый софт ты волен ставить из репозиториев с помощью стандартной команды sudo apt-get install приложение
. В ответ на запрос пароля вводим changeme и, конечно же, меняем пароль с помощью команды passwd
.
Stream isolation
Устанавливая сторонний софт в Whonix, ты сразу столкнешься с проблемой, называемой identity correlation through Tor circuit sharing. Не решусь перевести этот термин, просто скажу, что по умолчанию левый софт использует системные настройки SOCKS-прокси, а это единый стандартный порт Tor (TransPort). Проблема такой настройки в том, что, просто сравнивая типы трафика и их временную связь (например, ты можешь использовать Telegram одновременно с WhatsApp), выходной узел может установить связь между разными сеансами использования приложений и идентифицировать тебя (но не твой IP или географическое положение).
Для борьбы с данным типом атаки в Tor есть механизм, названный stream isolation, он позволяет разделить трафик разных приложений, направив его в разные цепочки узлов Tor. Использовать его довольно просто — надо всего лишь создать в настройках Tor несколько дополнительных портов SOCKS и настроить сами приложения так, чтобы они использовали разные порты. Whonix уже имеет такие настройки: предустановленный софт использует порты 9100–9149. Также в нем есть набор свободных портов для стороннего софта:
- 9153–9159 — свободные;
- 9160–9169 — свободные с опцией IsolateDestAddress;
- 9170–7179 — свободные с опцией IsolateDestPort;
- 9180–9189 — с обеими опциями.
Все, что остается, — настроить софт на использование адреса 10.152.152.10 и любого из этих портов в качестве адреса SOCKS-сервера. Причем использовать порты с опциями IsolateDestPort и/или IsolateDestAddr я бы не рекомендовал. Они разделяют даже трафик одного приложения на основе адреса удаленного порта или адреса. В большинстве случаев это избыточно и очень накладно (представь, если торрент-клиент или веб-браузер будет использовать разные цепочки узлов Tor для всех соединений).
Выводы
Whonix, при всех своих странностях и неоднозначностях, определенно стоит внимания любого, кто хочет обеспечить свою анонимность в Сети. По умолчанию это всего лишь система для запуска Tor Browser, однако при наличии рук и свободного времени из Whonix можно сделать полноценную рабочую систему, и необходимость запуска системы в виртуалке этому нисколько не мешает. Ну и конечно же, стоит помнить, что абсолютной анонимности не существует. Если надо — тебя найдут. Следи за собой, будь осторожен.