Смартфоны. LineageOS / GrapheneOS

DEAd

Новорег
Сообщения
57
Реакции
44
Баллы
29
Среди огромного разнообразия кастомных прошивок на основе android практически нет ни одной прошивки, которая удовлетворяла бы необходимым требованиям безопасности в отличие от официальных прошивок. И почему ситуация такова, я постараюсь обьяснить, взяв за пример одну из самых популярных прошивок LineageOS.

Мобильные ОС - Android и IOS спроектированы с высоким требованием к безопасности с учетом политики контроля доступа ко всем процессам (MAC), реализованный с помощью модуля безопасности SELinux. ( https://source.android.com/security/selinux/ )

SELinux очень хорошо защищает и ограничивает системные службы, контролирует доступ к данным приложений, уменьшает воздействие вирусов и прочего вредоносного софта на систему, а также защищает пользователей от ошибок в программном обеспечении.

Но иногда пользователи сами нарушают выстроенную политику безопасности SELinux, например прошивая устройство на LineageOS, которая использует сборку userdebug по умолчанию ( https://github.com/LineageOS/hudson/blob/master/lineage-build-targets )
Сборка userdebug использует возможность включения дополнительной отладки, которая обычно нарушает модель безопасности платформы и ослабляет политику SELinux, также предоставляет root доступ через ADB, что значительно расширяет поверхность для атак. Такая сборка подходит только для тестирования. ( https://source.android.com/setup/build/building#choose-a-target )
LineageOS также требует разблокированного загрузчика, потому отключает проверку загрузки, что вносит ещё большую угрозу в безопасность системы. С разблокированным загрузчиком можно с лёгкостью извлечь ключ шифрования и получить доступ ко всем данным хранящимся на устройстве. То есть вопрос потери смартфона (или изъятия) становится ещё более острым. Но это не всё - блокировка загрузчика по умолчанию отменяет возможность исполнения вредоносного кода после перезагрузки устройства и напротив его разблокировка даёт преимущество для атакующего. Например такое устройство можно заразить эксплоитом - шпионом, что даст гарантии сохранения его работоспособности и после перезагрузки.
( https://source.android.com/security/verifiedboot/ )
Получение же root или jailbreak (ios) доступа в системе является самым необдуманным шагом в этом направлении. Активированный jailbreak или root предоставляет огромнейшую поверхность для атаки, даёт неограниченные возможности для всех видов вирусов и шпионского программного обеспечения. Например: подмена запрашиваемых адресов в браузере (фишинг), кража паролей (стилер), доступ к вводимому тексту и экрану любого приложения (кейлоггеры). Без root каждое приложение работает в своей песочнице и не имеет доступа к другим процессам. Именно поэтому приложения для работы с чувствительными данными, такие как онлайн банкинг, отказываются запускаться под root. Это ограничение является правильно продуманным шагом в обеспечение безопасности пользовательских данных.
Следующей уязвимостью пользовательских прошивок являются аналоги встроенных google сервисов - MicroG. Именно этот критерий является
выбором к переходу на аналогичную прошивку, как способ избавиться от отслеживания google. Но эти сервисы ещё больше разрушают безопасность системы, так как для их работы необходима поддержка спуфинга подписи, что позволяет приложениям запрашивать обход проверки подписи. Эта модель нарушает изолированную программную среду приложений, что даёт возможность одному приложению маскироваться под другое, чтобы получить доступ к файлам нужного приложения. Здесь я привёл далеко не все уязвимости при переходе на кастомную прошивку, наподобие LineageOS (Calyx - аналогично) и постарался обьяснить как погоня за конфиденциальностью может обернуться полным разоблачением и как советы некомпетентных людей могут нанести угрозу вашей жизни.

Решением практически всех вышеперечисленных проблем является GrapheneOS, которая не только сохраняет базовую модель безопасности android, но и вносит существенные улучшения защиты и конфиденциальности в архитектуру системы. Я бы сказал, что это совсем другая система, уже не android.
Концепция GrapheneOS направлена в первую очередь на предотвращение атак 0-day за счёт исключения ненужного кода и добавления защищенных модулей и библиотек, что исключает целые классы атак. Причём с сохранением необходимых и полезных для пользователя функций.

Основные преимущества GrapheneOS

- Полностью открытый исходный код
- не включает приложения и службы google по умолчанию, нет MicroG, что также является угрозой конфиденциальности
- усиленный распределитель памяти hardened_malloc, основанный на дизайне malloc OpenBSD ( https://github.com/GrapheneOS/hardened_malloc ) Подходит для использования в whonix. Обеспечивает защиту от наиболее распространённых уязвимостей локального и удаленного выполнения кода. Сокращает нахождение в памяти конфиденциальных данных.
- усиленная библиотека C platform_bionic ( https://github.com/GrapheneOS/platform_bionic ). Значительно ограничивает эксплуатацию системы через эксплойты за счёт ликвидации целого класса ошибок.
- создание новых процессов происходит через exec вместо использования традиционной модели zygote, что предотвращает совместное использование адресного пространства и других данных между приложениями
- закалённое ядро, имеющее конфигурацию, ориентированную на безопасность. Отключены динамически загружаемые модули ядра, что также предотвращает большинство ошибок.
- более строгие политики SELinux и политики seccomp-bpf, что отражается ещё в более усиленной песочнице приложений и песочнице механизма рендеринга WebView (заражения Pegasus происходили именно через компонент WebView, благодаря которому шло перенаправление на динамически генерируемые URL адреса для исполнения JavaScript кода и последующего побега из песочницы) Также GrapheneOS располагает собственным конфиденциальным и безопасным браузером Vanadium, который выступает и в качестве реализации модуля WebView
- низкоуровневые улучшения полнодискового шифрования
- автоматическое отключение метаданных при скриншоте по умолчанию
- проверенная загрузка. Смягчает ущерб после компрометации системы.
- исправляет несколько заметных утечек идентификаторов устройств
- применение более длинных паролей
- превосходная реализация встроенного брандмауэра за счёт отзыва функции «INTERNET» у приложений. Например брандмауэр AFWall+ не позволял со 100% уверенностью запретить приложению выход в интернет. Так как приложение могло использовать IPC для обхода таких ограничений. И отправить намерение другому приложению, например браузеру, для установления сетевого соединения ( https://developer.android.com/reference/android/content/Intent )
- множество других функций безопасности с которыми можно ознакомиться на https://grapheneos.org/features

GrapheneOS является эталоном и превосходным примером использования ОС на мобильном процессоре. Если Графен не устраивает по каким либо критериям или его установка невозможна, рекомендую также обратить внимание на DivestOS
( https://divestos.org/ )

Установка GrapheneOS в Linux

После того как ознакомились с поддерживаемыми моделями ( https://grapheneos.org/faq#supported-devices ), переходим к установке в

1.Разблокировка OEM должна быть включена в операционной системе смартфона.

Включите меню параметров разработчика, выбрав «Настройки» ➔ «О телефоне» и несколько раз нажимая на пункт меню с номером сборки, пока не будет включен режим разработчика.

Затем перейдите в «Настройки» ➔ «Система» ➔ «Параметры разработчика» и включите параметр «Разблокировка OEM».

Запускаем терминал и вводим:
sudo apt install libarchive-tools curl -O https://dl.google.com/android/repository/platform-tools_r33.0.1-linux.zip
echo 'a339548918c3ab31c4d88416c21cee753bd942040540216c06e640f4b6db3ae2 platform-tools_r33.0.1-linux.zip' | sha256sum -c
bsdtar xvf platform-tools_r33.0.1-linux.zip

Затем:
export PATH="$PWD/platform-tools:$PATH"

И сверяем версию fastboot перед продолжением. Для этого вводим:
fastboot --version
Должны увидеть что то вроде этого:
fastboot version 33.0.1-8253317 Installed as /home/username/platform-tools/fastboot
(обратите внимание на версию, она должна быть не меньше 31.0.3)

Работаем дальше:
sudo apt install android-sdk-platform-tools-common

Загружаем телефон в режиме fastboot. Для этого удерживаем кнопку уменьшения громкости. Затем подключаем его к ПК. И вводим:
fastboot flashing unlock
Эта команда должна быть подтверждена на устройстве с помощью кнопок громкости.

После нам нужно прогрузить образ прошивки с официального сайта. Для этого переходим на: https://grapheneos.org/releases из своего браузера, выбираем нужную модель, переходим по ссылке и дальше видим под каждой моделью телефона есть три ссылки на zip архивы. Скопируйте самую верхнюю ссылку под вашей моделью с содержанием -factory и оканчивающуюся на .zip (не zip.sig) После вновь открываем терминал, прописываем: curl -O и вставляем рядом нашу ссылку. Должно получится что то вроде этого:
curl -O https://releases.grapheneos.org/bluejay-factory-2022081800.zip
(так будет выглядеть последний rom для Pixel 6a)
Загрузили, затем извлекаем, вбивая:
bsdtar xvf bluejay-factory-2022081800.zip
переходим в каталог, используя cd:
cd bluejay-factory-2022081800
после вводим:
./flash-all.sh
После прошивки, вновь перезагружаем девайс в fastboot и вводим команду:
fastboot flashing lock
Подтверждаем команду на самом телефоне.

Запускаем GrapheneOS и не забываем отключить OEM разблокировку.

Теперь ваш телефон готов для работы с более чувствительными данными и более устойчив к различным классам эксплойтов и прочих атак. Тем не менее, он все ещё обладает различными уникальными аппаратными идентификаторами. Хотя теперь они и стали ещё более недоступны для различных элементов системы и приложений, нельзя полностью полагаться на программное ограничение. Для того чтобы избежать утечки этих идентификаторов на физическом уровне, я бы рекомендовал использовать немного другую концепцию, о чем напишу в следующей статье.
 
Никогда не устану думать и говорить о том, что установка кастомной прошивки на Android - вариант либо для последних параноиков, либо, что чаще - для людей, которые устали от базового интерфейса и хотят привнести в своей телефон что-то новое. По поводу Root'а - полностью согласен, тут играет как минимум тот фактор, что на подобные девайсы не распространяется гарантия производителя из-за самого момента, вне зависимости от того, когда был куплен телефон, и действует ли ещё она де-факто. Не вижу особого смысла менять прошивку в целях безопасности, потому что, как правило, Android-смартфоны не так часто становятся целями атак, и для того, чтобы себя обезопасить - нужно банально придерживаться двух правил. Первое - цифровая гигиена, она проста и логична. Не скачивайте приложения из сторонних источников, а если скачиваете - то выбирайте только проверенные ресурсы по типу Trashbox. Не переходите по подозрительным ссылкам, и если сайт не поддерживает https-шифрование, или сам браузер настойчиво вас на него не пускает - либо откажитесь от посещения, либо не оставляйте там никаких своих данных. Второе, ещё банальнее - не позволяйте третьим лицам получить доступ к устройству, и тогда, при соблюдении обоих пунктов, вам не нужно будет никогда заморачиваться касательно установки "более безопасной" ОСи
 
Никогда не устану думать и говорить о том, что установка кастомной прошивки на Android - вариант либо для последних параноиков, либо, что чаще - для людей, которые устали от базового интерфейса и хотят привнести в своей телефон что-то новое. По поводу Root'а - полностью согласен, тут играет как минимум тот фактор, что на подобные девайсы не распространяется гарантия производителя из-за самого момента, вне зависимости от того, когда был куплен телефон, и действует ли ещё она де-факто. Не вижу особого смысла менять прошивку в целях безопасности, потому что, как правило, Android-смартфоны не так часто становятся целями атак, и для того, чтобы себя обезопасить - нужно банально придерживаться двух правил. Первое - цифровая гигиена, она проста и логична. Не скачивайте приложения из сторонних источников, а если скачиваете - то выбирайте только проверенные ресурсы по типу Trashbox. Не переходите по подозрительным ссылкам, и если сайт не поддерживает https-шифрование, или сам браузер настойчиво вас на него не пускает - либо откажитесь от посещения, либо не оставляйте там никаких своих данных. Второе, ещё банальнее - не позволяйте третьим лицам получить доступ к устройству, и тогда, при соблюдении обоих пунктов, вам не нужно будет никогда заморачиваться касательно установки "более безопасной" ОСи
Думаю ты очень и очень мало осведомлён о наличии встроенных в прошивку скрытых систем трекинга. Для этого пропусти трафик через анализатор и посмотри сколько сокетов открыто на твоем телефоне, которые передают и передают без остановки данные о тебе на всевозможные серверы. И я молчу о google analitycs, встроенную даже в приложение смс и звонки, которая профилирует тебя и продаёт твой цифровой профиль сотням других компаний. Смартфон, прежде всего - это сборщик данных для последующей эксплуатации их и не только в целях рекламы.
 
Думаю ты очень и очень мало осведомлён о наличии встроенных в прошивку скрытых систем трекинга. Для этого пропусти трафик через анализатор и посмотри сколько сокетов открыто на твоем телефоне, которые передают и передают без остановки данные о тебе на всевозможные серверы. И я молчу о google analitycs, встроенную даже в приложение смс и звонки, которая профилирует тебя и продаёт твой цифровой профиль сотням других компаний. Смартфон, прежде всего - это сборщик данных для последующей эксплуатации их и не только в целях рекламы.
Осведомлен, не делайте поспешных и необоснованных выводов. Дело в том, что большую часть озвученных вами моментов легко можно исправить с помощью установки приложений, которые будут шифровать трафик, и делать так, чтобы цифровой профиль составить было невозможно. Те же самые VPN-утилиты, или проброс трафика через зашифрованный сервер. С помощью того же самого анализатора и сторонней программы можно сделать так, чтобы IP-адреса серверов, принимающих данные, были заблокированы и соединение сбрасывалось. Мы живём в веке IT, и есть достаточно большое количество решений проще и удобнее вами описанного
 
Автору спасибо, то что нужно 4pda в здании
 
Осведомлен, не делайте поспешных и необоснованных выводов. Дело в том, что большую часть озвученных вами моментов легко можно исправить с помощью установки приложений, которые будут шифровать трафик, и делать так, чтобы цифровой профиль составить было невозможно. Те же самые VPN-утилиты, или проброс трафика через зашифрованный сервер. С помощью того же самого анализатора и сторонней программы можно сделать так, чтобы IP-адреса серверов, принимающих данные, были заблокированы и соединение сбрасывалось. Мы живём в веке IT, и есть достаточно большое количество решений проще и удобнее вами описанного
Проще и удобнее...без комментариев.
 
Форум аккуратно превразщается в 4pda
 
Форум аккуратно превразщается в 4pda
Умник, найди где эти темы, что приведены мною в начале статьи, затрагиваются на 4pda? Там ищат юзабилити прежде всего. Убеждаюсь ещё раз в том, что моя работа бессмысленна здесь...
 
У кого сложности с установкой возникли, оставляйте здесь комментарии или пишите в личку
 
Никогда не устану думать и говорить о том, что установка кастомной прошивки на Android - вариант либо для последних параноиков, либо, что чаще - для людей, которые устали от базового интерфейса и хотят привнести в своей телефон что-то новое.
Либо для людей, которые не хотят быть под присмотром большего брата и делиться кучей личных данных - что для гугл сервисов норма.
 
Верх Низ