- Регистрация
- 12 Июн 2019
- Сообщения
- 1.854
- Репутация
- 527
- Реакции
- 1.064
Здесь и далее термин "GNU/Linux" сокращается до "Linux" для улучшения восприятия текста.
Часто считается, что программное обеспечение с открытым исходным кодом всегда безопасно, поскольку исходный код доступен для проверки. Однако проверки от сообщества происходят не всегда. Это зависит от ряда факторов,: активность проекта, опыт разработчиков, уровень строгости, применяемый к обзорам кода, и то, как часто уделяется внимание определенным частям кодовой базы, которые остаются нетронутыми годами.Статья предназначена для обычных людей, которые хотят воспользоваться Linux для обеспечения приватности. Не рассматривайте описанное ниже как непреложные истины. Более комплексные задачи можно решить только с помощью прямо противоположных подходов и исходя из противоположных предположений.
На данный момент в настольном Linux есть несколько областей, которые можно улучшить по сравнению с проприетарными аналогами, например:
- Проверенная цепочка загрузки, как Secure Boot от Apple (с Secure Enclave), Verified Boot от Android, Verified boot от ChromeOS или процесс загрузки Microsoft Windows с TPM. Все эти функции и аппаратные технологии помогают предотвратить постоянное вмешательство вредоносных программ или атаки "evil maid".
- Сильное решение "песочницы", такое как в macOS, ChromeOS и Android. Широко используемые решения "песочницы" для Linux, такие как Flatpak и Firejail, все еще далеки от совершенства.
- Сильные средства защиты от эксплойтов
- Избежать телеметрии, которая идет в комплекте с проприетарными операционными системами.
- Придерживаетесь философии свободы программного обеспечения.
- Использовать системы, ориентированные на конфиденциальность, такие как Whonix или Tails.
Выбор дистрибутива
Не все дистрибутивы Linux создаются одинаковыми, поэтому есть несколько моментов, которые следует иметь в виду при выборе.Релизный цикл
Рекомендуем выбирать дистрибутивы, пакетная база которых близка к новейшим версиям программного обеспечения (rolling release). Это связано с тем, что дистрибутивы, выпускающиеся в виде стабильных сборок, иногда не получают обновлений безопасности от разработчиков ПО.Некоторые исправления безопасности в дистрибутивах, вроде Debian, вообще не получают статус CVE и поэтому не попадают в дистрибутив. В результате незначительные исправления безопасности иногда задерживаются до следующего крупного релиза.
Едва ли задержка пакетов и применение промежуточных исправлений является хорошей идеей, поскольку это расходится с тем, как разработчик мог задумать работу программного обеспечения.
Традиционные и атомарные обновления
Традиционно дистрибутивы Linux обновляются путем последовательного обновления нужных пакетов. Традиционные обновления используемые, например, в дистрибутивах Fedora, Arch Linux и Debian, могут быть менее надежными, если в процессе обновления возникает ошибка.Дистрибутивы же с атомарным обновлением применяют обновления полностью или не применяют вообще. Такая система обновления создает снимок, который делается до и после применения обновления. Если обновление не удается в какой-либо момент (например, из-за сбоя питания), обновление можно легко откатить до "последнего известного хорошего состояния".
Метод атомарного обновления используется в таких дистрибутивах, как Silverblue, Tumbleweed и NixOS, и с помощью этой модели можно добиться надежности.
“Security-focused”-дистрибутивы
Часто возникает путаница между дистрибутивами, ориентированными на безопасность, и дистрибутивами для "хакинга". Быстрый поиск "самый безопасный дистрибутив Linux" часто дает такие результаты, как Kali Linux, Black Arch и Parrot OS. Эти дистрибутивы предназначены для тестирования на проникновение, в них собраны инструменты для хакинга и т.д. Они не включают в себя никакой "дополнительной безопасности" или защитных мер, предназначенных для обычного использования.Arch и его дети
Дистрибутивы на базе Arch не рекомендуется использовать новичкам в Linux, поскольку они требуют регулярного обслуживания системы. В Arch по идеологическим причинам фразу "базовый набор ПО" понимают максимально буквально, поэтому дистрибутив поставляется только с ядром Linux, systemd и парой других сервисов. Из коробки нет не то что привычного простому пользователю набора программ нет, отсутствует даже графическое окружение, которое пользователи должны установить сами (или выбрать при установке с помощью скрипта archinstall). Из-за чрезвычайного минимализма пользователь должен быть в курсе современных тенденций и самостоятельно внедрять технологии по мере того, как они вытесняют старые.Для построения безопасной системы от вас также ожидается достаточное знание Linux. Например, знание об обязательной системе контроля доступа, умение настраивать черные списки модулей ядра, усиливать параметры загрузки, манипулировать параметрами sysctl и знать, какие компоненты им необходимы, например, Polkit.
Все, кто использует Arch User Repository (AUR), должны быть готовы к аудиту PKGBUILD'ов, которые они устанавливают из этой службы. Пакеты AUR создаются сообществом и никак не проверяются, поэтому они уязвимы для атак на цепочки поставок программного обеспечения, что уже случалось в прошлом. AUR всегда следует использовать осторожно, и часто на различных страницах можно встретить множество плохих советов, которые направляют людей на слепое использование хелперов AUR без достаточного предупреждения. Аналогичные предупреждения относятся к использованию сторонних персональных архивов пакетов (PPA) в дистрибутивах на базе Debian или проектов сообщества (COPR) в Fedora.
Если у вас есть опыт работы с Linux и вы хотите использовать дистрибутив на базе Arch, рекомендуем только чистый Arch Linux, а не его популярные производные:
- Manjaro. Этот дистрибутив задерживает пакеты на 2 недели, чтобы убедиться, что их собственные изменения не сломаются, а не для того, чтобы убедиться в стабильности upstream. Когда используются пакеты AUR, они часто собираются на основе последних библиотек из репозиториев Arch.
- Garuda. Они используют Chaotic-AUR, который автоматически и вслепую компилирует пакеты из AUR. Нет процесса проверки, чтобы убедиться, что пакеты AUR не страдают от атак цепочки поставок.
Kicksecure
Существует операционная система на базе Debian, которая была "усилена" и стала гораздо более безопасной, чем обычные дистрибутивы Linux: Kicksecure. Kicksecure – если говорить простыми словами – это набор скриптов, конфигураций и пакетов, которые значительно уменьшают поверхность атаки Debian. По умолчанию он охватывает множество рекомендаций по обеспечению конфиденциальности и усилению безопасности.Ядро Linux-libre и “Libre”-дистрибутивы
Настоятельно не рекомендуем использовать ядро Linux-libre, так как в нем по идеологическим причинам удалены средства защиты и подавлены предупреждения ядра об уязвимом микрокоде.Общие рекомендации
Шифрование диска
Большинство дистрибутивов Linux имеют опцию включения LUKS FDE в программе установки. Если эта опция не настроена во время установки, вам придется сделать резервную копию данных и переустановить систему, поскольку шифрование применяется после разбиения диска на разделы, но до форматирования файловых систем. Не забудьте стереть данные безопасным способом, об этом мы уже писали в статье про ShredOS и DBAN.Swap
Рассмотрите возможность использования ZRAM или зашифрованного свопа вместо незашифрованного свопа, чтобы избежать потенциальных проблем с безопасностью при перемещении конфиденциальных данных в пространство свопа. В дистрибутивах на базе Fedora по умолчанию используется ZRAM.Wayland
Рекомендуем использовать среду рабочего стола, поддерживающую протокол отображения Wayland, поскольку он был разработан с учетом требований безопасности. Его предшественник, X11, не поддерживает изоляцию графического интерфейса, позволяя всем окнам записывать экран, вести журнал и вводить данные в другие окна, что делает тщетными любые попытки "песочницы". Хотя и существуют варианты вложенного X11, такие как Xpra или Xephyr, они часто влекут за собой негативные последствия для производительности и не удобны в настройке.К счастью, такие распространенные рабочие окружения, как GNOME, KDE и оконный менеджер Sway, имеют поддержку Wayland. Некоторые дистрибутивы, такие как Fedora и Tumbleweed, используют его по умолчанию, а некоторые другие могут сделать это в будущем, поскольку X11 – очень старая технология, которую сложно поддерживать. Если вы используете одно из этих окружений, то выбрать сессию "Wayland" в менеджере отображения рабочего стола (GDM, SDDM), очень просто.
Мы не рекомендуем использовать окружения рабочего стола или оконные менеджеры, которые не имеют поддержки Wayland, такие как Cinnamon (по умолчанию в Linux Mint), Pantheon (по умолчанию в Elementary OS), MATE, Xfce и i3.
Проприетарный микрокод
Дистрибутивы Linux, такие как Linux-libre или DIY (Arch Linux), не поставляются с собственными обновлениями микрокода, которые часто исправляют уязвимости. Некоторые яркие примеры таких уязвимостей включают Spectre, Meltdown, SSB, Foreshadow, MDS, SWAPGS и другие аппаратные уязвимости.Настоятельно рекомендуем вам установить обновления микрокода, поскольку ваш процессор уже работает с проприетарным микрокодом с завода. В Fedora и openSUSE обновления микрокода применяются по умолчанию.
Обновления
Большинство дистрибутивов Linux автоматически устанавливают обновления или напоминают вам об этом. Важно поддерживать ОС в актуальном состоянии, чтобы программное обеспечение было защищено при обнаружении уязвимости.Некоторые дистрибутивы (особенно предназначенные для продвинутых пользователей) являются более предполагают, что вы все сделаете сами (например, Arch или Debian). В них для получения важных обновлений безопасности необходимо вручную запускать менеджер пакетов (apt, pacman, dnf, etc.).
Кроме того, некоторые дистрибутивы не будут автоматически загружать обновления прошивки. Для этого вам потребуется установить fwupd.
Хаки для приватности
Рандомизация MAC-адреса
Многие настольные дистрибутивы Linux (Fedora, openSUSE и т.д.) поставляются с NetworkManager для настройки параметров Ethernet и Wi-Fi.При использовании NetworkManager можно рандомизировать MAC-адрес. Это обеспечивает немного больше конфиденциальности в сетях Wi-Fi, так как сложнее отследить конкретные устройства в сети, к которой вы подключены. Но учтите, что это не делает вас анонимным. Рекомендуем изменить настройку на случайную, а не на стабильную, как предлагается в статье.
Если вы используете systemd-networkd, вам нужно установить MACAddressPolicy=random, что включит RFC 7844 (Профили анонимности для клиентов DHCP).
Нет особого смысла в рандомизации MAC-адреса для Ethernet-подключений, так как системный администратор может найти вас, посмотрев на порт, который вы используете на сетевом коммутаторе. Рандомизация MAC-адресов Wi-Fi зависит от поддержки встроенного программного обеспечения Wi-Fi.
Другие идентификаторы
Существуют и другие системные идентификаторы, с которыми следует быть осторожными. Следует подумать над этим, чтобы понять, применимо ли это к вашей модели угроз:- Имена хостов. Имя вашей системы используется в сетях, к которым вы подключаетесь. Вам следует избегать включения в имя хоста таких идентифицирующих терминов, как ваше имя или операционная система, вместо этого следует использовать общие термины или случайные строки.
- Имена пользователей. Аналогично, ваше имя пользователя используется различными способами в вашей системе. Подумайте об использовании общих терминов, таких как "пользователь", а не вашего реального имени.
- Идентификатор машины. Во время установки генерируется уникальный идентификатор машины, который хранится на вашем устройстве. Подумайте о том, чтобы установить общий идентификатор.
System Counting
Проект Fedora подсчитывает, сколько уникальных систем обращаются к его зеркалам, используя переменную countme вместо уникального ID. Fedora делает это для определения нагрузки и предоставления лучших серверов для обновлений, где это необходимо.В настоящее время эта опция по умолчанию выключена. Рекомендуем добавить countme=false to /etc/dnf/dnf.conf на случай, если она будет включена в будущем. В системах, использующих rpm-ostree, таких как Silverblue, опция countme отключается путем маскировки таймера rpm-ostree-countme.
openSUSE также использует уникальный ID для подсчета систем, который можно отключить, удалив файл /var/lib/zypp/AnonymousUniqueId.
Выбор дистрибутива
Если вы еще не используете Linux, ниже приведены некоторые дистрибутивы, которые мы рекомендуем попробовать. Список критериев выбора:- Открытый исходный код.
- Регулярные обновления программного обеспечения и ядра Linux.
- Поддержка Wayland.
- Поддержка шифрование всего диска при установке.
- Отсутствие заморозки регулярных релизов более чем на 1 год. Не рекомендуем "Long Term Support" или "стабильные" релизы дистрибутивов для настольного использования.
- Поддержка широкого спектра аппаратного обеспечения.
Fedora Workstation
Fedora Workstation. Fedora обычно внедряет новые технологии раньше других дистрибутивов (например, Wayland, PipeWire). Эти новые технологии часто сопровождаются улучшениями в безопасности, конфиденциальности и удобстве использования в целом.Fedora имеет "полускользящий" цикл выпуска. В то время как некоторые пакеты, такие как GNOME, замораживаются до следующего выпуска Fedora, большинство пакетов (включая ядро) часто обновляются в течение всего срока жизни выпуска. Каждый выпуск Fedora поддерживается в течение одного года, а новая версия выходит каждые 6 месяцев.
openSUSE Tumbleweed
openSUSE Tumbleweed – это стабильный дистрибутив со скользящим выпуском.openSUSE Tumbleweed имеет транзакционную систему обновления, которая использует Btrfs и Snapper для обеспечения возможности отката моментальных снимков в случае возникновения проблем.
Tumbleweed следует модели "скользящего выпуска", где каждое обновление выпускается как снимок дистрибутива. Когда вы обновляете свою систему, загружается новый снимок. Каждый снимок проходит через серию автоматизированных тестов openQA для обеспечения его качества.
Arch Linux
Arch Linux – это легкий, "сделай сам" (DIY), поэтому вы должны самостоятельно устанавливать и поддерживать свою систему. Arch имеет официальную программу установки, чтобы сделать процесс установки немного проще. Для получения дополнительной информации см. FAQ. Arch Linux имеет скользящий цикл выпуска. Нет фиксированного графика выпуска, вместо пакеты обновляются очень часто. Большая часть пакетов Arch Linux воспроизводима.Immutable-дистрибутивы
Перевести слово "immutable" на русский довольно сложно, ближайшее по смыслу слово – "неизменяемый". Коротко: такие дистрибутивы ограждают ядро системы от действий пользователя, в них корневая директория доступна только для чтения. Нанести серьезный вред в immutable-дистрибутиве намного сложнее, чем в других системах. Конечно, опытные пользователи могут отключить эту защиту и вносить изменения, но по умолчанию этого сделать не получится.Fedora Silverblue
Fedora Silverblue и Fedora Kinoite – это неизменяемые варианты Fedora с сильным акцентом на контейнеризацию. Silverblue поставляется с окружением рабочего стола GNOME, а Kinoite – с KDE. Silverblue и Kinoite следуют тому же графику выпуска, что и Fedora Workstation, получая преимущества от таких же быстрых обновлений и оставаясь очень близкими к upstream.Silverblue (и Kinoite) отличаются от Fedora Workstation тем, что в них менеджер пакетов DNF заменен на более продвинутую альтернативу под названием rpm-ostree. Пакетный менеджер rpm-ostree работает путем загрузки базового образа системы, а затем наложения пакетов на него в git-подобном дереве фиксации. Когда система обновляется, загружается новый базовый образ, и наложенные пакеты будут применены к этому новому образу.
После завершения обновления вы перезагрузите систему в новую установку. rpm-ostree сохраняет две установки системы, чтобы вы могли легко откатиться назад, если что-то сломается в новой установке. Также есть возможность подключить больше развертываний по мере необходимости.
Flatpak является основным методом установки пакетов в этих дистрибутивах, так как rpm-ostree предназначен только для наложения пакетов, которые не могут оставаться внутри контейнера, поверх базового образа.
В качестве альтернативы Flatpak есть Toolbox для создания контейнеров Podman, что является полезной функцией для взыскательных разработчиков.
NixOS
NixOS – это независимый дистрибутив, основанный на пакетном менеджере Nix с акцентом на воспроизводимость и надежность.Менеджер пакетов NixOS хранит каждую версию каждого пакета в отдельной папке в хранилище Nix. Благодаря этому в вашей системе могут быть установлены разные версии одного и того же пакета. После записи содержимого пакета в директорию, последняя становится доступной только для чтения.
NixOS также обеспечивает атомарное обновление. Сначала ОС загружает (или собирает) пакеты и файлы для нового поколения системы, а затем переходит на него. Существуют различные способы перехода на новое поколение; вы можете указать NixOS активировать его после перезагрузки или перейти на него во время выполнения. Вы также можете протестировать новое поколение, переключившись на него во время выполнения, но не устанавливая его в качестве текущего поколения системы. Если что-то в процессе обновления сломается, вы можете просто перезагрузиться и автоматически вернуться к рабочей версии системы.
Менеджер пакетов Nix использует чисто функциональный язык – который также называется Nix – для определения пакетов.
Nixpkgs (основной источник пакетов) содержится в репозитории GitHub. Вы также можете определять свои собственные пакеты на том же языке, а затем легко включать их в свой конфиг.
Nix – это менеджер пакетов на основе исходного кода. Если в кэше бинарных файлов нет готовой сборки, Nix просто соберет пакет из исходного кода. Он собирает каждый пакет в чистой среде "песочницы", которая максимально независима от хост-системы, что делает бинарные файлы более адаптированными для выполнения.
Дистрибутивы с уклоном в анонимность
Whonix
Whonix основан на Kicksecure, форке Debian, ориентированном на безопасность. Его цель – обеспечить конфиденциальность, безопасность и анонимность в интернете. Whonix лучше всего использовать в сочетании с Qubes OS.Whonix работает как две виртуальные машины: "Workstation" и Tor "Gateway". Все соединения с Workstation проходят через Gateway. Это означает, что даже если рабочая станция скомпрометирована каким-либо вредоносным ПО, истинный IP-адрес остается скрытым.
Некоторые из его функций включают изоляцию потока Tor, анонимизацию нажатия клавиш, зашифрованную подкачку и усиленный распределитель памяти.
Будущие версии Whonix, вероятно, будут включать в себя полные системные политики AppArmor и программу запуска приложений в песочнице для полного ограничения всех процессов в системе.
Whonix лучше всего использовать в сочетании с Qubes, Qubes-Whonix имеет различные недостатки по сравнению с другими гипервизорами.
Tails
Tails – это операционная система, основанная на Debian, которая направляет все коммуникации через Tor и может загружаться практически на любом компьютере с DVD, USB-накопителя или SD-карты. Она использует Tor для сохранения конфиденциальности и анонимности, обходя цензуру, и не оставляет следов на компьютере, на котором используется, после выключения.Tails отлично подходит для контркриминалистики благодаря амнезии (то есть ничего не записывается на диск)? однако он не является защищенным дистрибутивом, как Whonix. В нем отсутствуют многие функции анонимности и безопасности, которые есть в Whonix, и он обновляется гораздо реже (только раз в шесть недель). Система Tails, взломанная вредоносным ПО, может потенциально обойти прозрачный прокси-сервер, что позволит деанонимизировать пользователя.
Tails включает uBlock Origin в Tor Browser по умолчанию, что потенциально может облегчить злоумышленникам фингерпринтинг пользователей Tails.
Виртуальные машины Whonix могут быть более защищены от утечек, однако у них нет функции амнезии, поэтому данные могут быть восстановлены с вашего устройства хранения.
По своей конструкции Tails предназначен для работы с чистого листа после каждой перезагрузки. Зашифрованное постоянное хранилище может быть настроено для хранения некоторых данных между перезагрузками, однако это ломает саму концепцию дистрибутива.
Дистрибутивы с уклоном в безопасность
Qubes OS
Qubes OS – это операционная система с открытым исходным кодом, разработанная для обеспечения надежной защиты настольных компьютеров. Qubes основана на Xen, X11 и Linux, и может запускать большинство приложений Linux и использовать большинство драйверов Linux.Qubes OS – это операционная система на базе Xen, предназначенная для обеспечения надежной защиты настольных компьютеров с помощью защищенных виртуальных машин (ВМ), также известных как Qubes.
Операционная система Qubes OS обеспечивает безопасность компьютера путем изоляции подсистем (например, сетевых, USB и т.д.) и приложений в отдельных виртуальных машинах. Если одна часть системы будет скомпрометирована, дополнительная изоляция, скорее всего, защитит остальную часть системы. Более подробную информацию можно найти в FAQ по Qubes.