Linux-дистрибутивы для анонимной работы в интернете — что нового?

gkadqjlf0wld_rj-e-u_62pnl7y.jpeg

Самый известный из секьюрных дистрибутивов — Tails, он выпускается с 2009 года. Там всё привычно и знакомо: вставил флэшку, загрузился, поработал, почистил RAM за собой. При этом периодически появляются альтернативные решения, такие как Whonix, Qubes OS или совсем новый дистрибутив Obscurix.

Личная безопасность — не та сфера, где следят за модой. Это не какое-то хобби, мобильная разработка или дизайн, здесь речь о сохранении жизни и свободы. Нововведения — не дань эстетике или комфорту, а попытка обеспечить ещё более надёжную защиту.


В контексте операционных систем часто говорят о некоторых специфических характеристиках «безопасных» систем:
  • грамотное разделение привилегий;
  • мандатный контроль;
  • изоляция процессов;
  • … и многое-многое другое.

Безопасность программных процессов — это немного иная тема. Там проблему рассматривают под другим углом, интересным в первую очередь военным, государственным и корпоративным клиентам, которые защищают коммерческие тайны, шпионят за сотрудниками, борются с утечками информации и тому подобное — обычно для дележа власти и/или денег. Забавно, что слежку за сотрудниками компании или гражданами государства часто устанавливают для их же блага: мол, так они «чувствуют себя более защищёнными».

Мы же здесь говорим о личной безопасности человека, что в принципе невозможно без гарантий анонимности. Это совсем другое. Как обсуждалось ранее, в современном мире личная безопасность напрямую зависит от анонимности, иначе никто не гарантирует вам свободу после комментариев в телеграме или финансовых транзакций. Любые действия в интернете могут быть наказуемы после принятия новых законов, имеющих обратную силу. Сейчас такое время, а дальше будет ещё хуже.

Другими словами, личная защита намного важнее, чем корпоративные, военные или национальные интересы какого-то государства. Всё-таки физическая безопасность касается конкретных живых организмов, а корпорации и государства — это абстрактные сущности, изобретённые относительно недавно, то есть они вторичны.

Именно в таком контексте безопасность рассматривают разработчики большинства защищённых дистрибутивов. В первую очередь они думают о безопасности человека, то есть о приватности, анонимности, защите от эксплоитов, слежки, деанонимизации, о надёжном шифровании.


Obscurix (Obscure *nix) — относительно новый проект. Операционная система пока в альфе, от неё пока не стоит ожидать стабильности.

Это «живая», загружаемая с внешнего носителя операционка на базе Arch Linux, сконфигурированная с прицелом конкретно на приватность и анонимность (исходный код, образ ISO для загрузочной флэшки). Как и положено, весь трафик безопасно направляется через Tor. Поддерживаются сети анонимайзеров I2P и Freenet (но они не выстраиваются в цепочку).

Встроенный файрвол сконфигурирован через iptables и блокирует весь входящий трафик, разрешая только исходящие соединения по Tor, I2P или Freenet (правила iptables). NetworkManager.service вообще не запускается без iptables.

Разрешениями приложений управляет линуксовый модуль AppArmor, для изоляции используются Bubblewrap и Xpra.

Исходный код Obscurix открыт, из него можно собрать такой же образ, который доступен для скачивания. В комплекте с дистрибутивом поставляются только опенсорсные программы. Единственные проприетарные фрагменты — обновления микрокода для процессоров AMD и Intel (пакеты amd-ucode и intel-ucode), и они здесь только из вынужденной необходимости: это единственная защита от аппаратных уязвимостей типа Meltdown и Spectre.

В операционной системе установлен часовой пояс UTC, его лучше не менять, чтобы не выделять себя из общей массы пользователей. Аналогичная маскировка рекомендуется во всех сценариях поведения в интернете. Как известно, фингерпринтинг «анонимных» пользователей осуществляют по косвенным битам информации, таким как список установленных расширений, список шрифтов в операционной системе, скорость рендеринга графики (указывает на аппаратную конфигурацию компьютера), особенности набора текста на клавиатуре и т. д.

Выбор приложений:

  • IRC-клиент Hexchat с настройками приватности, без автостарта;
  • VLC, сбор метаданных отключён;
  • Thunderbird с отключёнными функциями типа Javascript, чатов, SVG для уменьшения поверхности атаки; без телеметрии и Google Safebrowsing; с защитой от фингерпринтинга, плагином enigmail для шифрования почты;
  • вьюер Evince с отключёнными опциями evince-previewer и evince-thumbnailer;
  • файл-менеджер Thunar без thunar-volman, предпросмотра и закладки для сети;
  • Pacman: изоляция потоков, только зеркала HTTPS;
  • GnuPG в усиленной конфигурации Джейкоба Эпплбаума;
  • Gedit, Eog, Electrum, Keepassxc.

Для безопасности в системе отключены все необычные протоколы и файловые системы, модули веб-камеры и динамика, Bluetooth, Firewire, Thunderbolt. Блокируются все беспроводные устройства (кроме WiFi), отключён своп.

Синхронизация времени критична для анонимности. Но протокол NTP чрезвычайно уязвим, не зашифрован, не работает через Tor и выдаёт локальное время в таймстампах. Поэтому автор написал скрипт Secure Time Synchronization для более безопасной синхронизации времени.

Для сбора дополнительной энтропии в ГСЧ установлены библиотека jitterentropy и демон haveged.

Все потенциальные идентификаторы в системе обфусцированы, MAC-адреса спуфятся при загрузке, интервалы между нажатиями клавиш на клавиатуре обфусцируются с помощью инструмента kloak.

Obscurix не поддерживает VPN по причинам безопасности. При использовании Tor довольно сомнительно, что VPN обеспечивает дополнительную защиту, а не наоборот. На этот счёт ведутся дискуссии. Хотя если Tor блокируется средствами DPI на уровне провайдера, то VPN действительно помогает скрыть трафик и запустить Tor.


Защищённые дистрибутивы старательно укрепляются с точки зрения информационной защиты. В Obscurix используется hardened_malloc, специальные настройки для укрепления ядра, а некоторые защитные параметры передаются ядру через загрузчик. К примеру, вот специфические параметры выполнения ядра, которые устанавливаются утилитой sysctl:
  • kernel.dmesg_restrict=1 ограничивает логи ядра только для рута, не позволяя злоумышленнику собрать информацию о системе
  • kernel.kptr_restrict=2 скрывает символы ядра в /proc/kallsyms, чтобы эту информацию злоумышленник тоже не смог использовать для атаки
  • kernel.unprivileged_bpf_disabled=1 ограничивает работу JIT-компилятора BPF только для рута, предотвращая многие возможные атаки на JIT-компилятор типа распыления кучи
  • net.core.bpf_jit_harden=2 тоже защищает JIT-компилятор от некоторых атак
  • kernel.yama.ptrace_scope=2 устанавливает ограничение на использование системного вызова ptrace() только для рута: этот вызов используется для проверки и модификации запущенных процессов, что очень опасно
  • kernel.kexec_load_disabled=1 отключает kexec, который используется для изменений в ядре без перезагрузки
  • net.ipv4.tcp_syncookies=1 включает SYN cookie — технику противодействия атакам SYN flood (тип DoS-атак)
  • net.ipv4.tcp_rfc1337=1 предотвращает атаки типа TIME-WAIT Assassination
  • net.ipv4.conf.default.rp_filter=1 и net.ipv4.conf.all.rp_filter=1 предотвращают определённые методы IP-спуфинга.
  • net.ipv4.conf.all.accept_redirects=0
    net.ipv4.conf.default.accept_redirects=0
    net.ipv4.conf.all.secure_redirects=0
    net.ipv4.conf.default.secure_redirects=0
    net.ipv6.conf.all.accept_redirects=0
    net.ipv6.conf.default.accept_redirects=0

    отключает приём ICMP-редиректов

  • net.ipv4.conf.all.send_redirects=0 и net.ipv4.conf.default.send_redirects=0 отключают отправку ICMP-редиректов
  • net.ipv4.icmp_echo_ignore_all=1 заставляет систему игнорировать ICMP-запросы
  • vm.mmap_rnd_bits=32 vm.mmap_rnd_compat_bits=16 повышает эффективность ASLR для mmap
  • net.ipv4.tcp_timestamps=0 отключает метки времени TCP, которые используются для определения системного времени в вашей системе
  • net.ipv4.tcp_sack=0 отключает TCP SACK, эта фича практически бесполезная, но часто задействуется в эксплоитах
  • kernel.sysrq=0 отключает клавишу SysRq для выполнения произвольных команд, которым обычно требуется рут
  • kernel.unprivileged_userns_clone=0 отключает пространства имён непривилегированных пользователей, расширяющие поверхность атаки с повышением привилегий
  • kernel.deny_new_usb=1 блокирует все новые USB-устройства

Этот список даёт представление, что векторов атаки очень много. Усиление ядра никогда не будет лишним.
В защищённых дистрибутивах абсолютно весь трафик идёт через сеть анонимайзеров. Ни один пакет «случайно» не отправится по открытым каналам, так что в этом отношении можно чувствовать себя спокойно.

В Whonix работает встроенный гейт Whonix Gateway, в других приватных дистрибутивах схожий механизм.

2rns3p07dh-x27a_qutr15hyu0k.jpeg

В Obscurix обычный демон Tor отключён, а системный демон Tor открывает SocksPort на 9150, чтобы предотвратить ситуацию, когда Tor работает через Tor.


Obscurix похожа на Tails, но сделана на базе дистрибутива Arch, а не Debian. Отсюда и вытекают основные отличия — более тщательное усиление ядра, песочницы и аллокатора памяти, более свежие версии программ и др.

Кроме того, Obscurix не модифицирует Tor Browser, как это делают разработчики Tails, так что отпечаток браузера ничем не будет отличаться от стандартного, то есть не выдаст пользователя специального дистрибутива Linux.

Ещё одно отличие в поддержке нескольких сетей для анонимизации: кроме Tor, поддерживаются I2P и Freenet. Также поддерживаются неанонимные сети Zeronet, IPFS, cjdns для шифрования и децентрализации.

В отличие от Tails, в Obscurix отсутствует небезопасный браузер Unsafe Browser, допускающий прямое подключение в обход Tor. Таким образом, после эксплуатации какой-нибудь другой уязвимости злоумышленник может легко узнать реальный IP-адрес жертвы. Кстати, в последних версиях Tails он уже запрещён по умолчанию.


Дистрибутив Whonix появился несколько лет назад, это уже реальный практический инструмент, в то время как Obscurix пока на стадии эксперимента.

Главное отличие в том, что Whonix разработан для виртуальной машины. В то же время Obscurix и Tails загружаются с флэшки в RAM и не оставляют после себя следов для компьютерной экспертизы. В случае с Whonix/VM теоретически появляются дополнительные уровни абстракции. С другой стороны, Whonix удобнее, ведь виртуальную машину можно запустить под любой ОС, включая Windows и MacOS, в любом менеджере ОС.

Whonix часто используют в связке с Qubes OS. Этот десктопный дистрибутив за качественную изоляцию VM похвалил сам Эдвард Сноуден.


На схеме далее представлен дизайн Qubes OS с установкой Whonix. Разные цвета модулей соответствуют разным уровням доверия: от чёрного (максимальное доверие) до опасного красного (USB, сетевой стек).

cho3bi4wk1sar5x6kt6egqj85pa.png

По сравнению с традиционными «живыми» дистрибутивами это более продвинутый подход. В связке Qubes-Whonix получается как бы двойная защита: специальный защищённый Linux-дистрибутив внутри другого специального дистрибутива с качественной изоляцией процессов. Но всё-таки загружаемые/живые дистрибутивы формально безопаснее, потому что не оставляют никаких следов на хосте (amnesiac) и даже очищают оперативную память на выходе.

С другой стороны, хотя та же Qubes OS не считается 'amnesiac', но здесь полнодисковое шифрование по умолчанию. То есть по факту всё равно не остаётся никаких следов, а удобства больше.

В общем, старая добрая Tails уже не одинока в арсенале свободного человека.


На правах рекламы


VDSina предлагает VDS в аренду под любые задачи, огромный выбор операционных систем для автоматической установки, есть возможность установить любую ОС с собственного ISO, удобная панель управления собственной разработки и посуточная оплата тарифа, который вы можете создать индивидуально под свои задачи.

Присоединяйтесь к нашему чату в Telegram.

8p3vz47nluspfyc0axlkx88gdua.png

© Habrahabr.ru