Лекция - "Безопасность мобильных устройств"

Professor

Professional
Messages
213
Reaction score
22
Points
18
И так, начинаем.

Самыми поплуярными мобильными ОС являются iOS и Android, как известно, iOS зависит от сервисов Apple и их нельзя оттуда вырезать, а Android зависит от сервисов Google, но может успешно функционировать и без них с некоторыми ограничениями.

Давайте рассмотрим механизмы защиты этих платформ.

Начнем рассмотрение с iOS.

Обеспечение безопасности делится на 2 части: программную и аппаратную.

Рассмотрим аппаратную защиту устройств на iOS, которая обеспечивается благодаря Secure Enclave. Это отдельная подсистема безопасности в Apple SoC (система на кристалле). Secure Encalve работает независимо от остальных компонентов предназначен для обеспечения безопасности чувствительных данных пользователя и изолирован от других компонентов SoC.

Наиболее современная и защищенная реализация Secure Enclave поставляется в iPhone начиная 12 и в устройства с процессором M1 или новее.

Ещё одним компонентом защиты от аппаратного взлома являются цепи мониторинга. Все аппаратные компоненты устройства имеют определенные рабочие частоты и напряжения, таким образом теоретически, если получить физический доступ к устройству, можно физически вывести из строя систему защиты устройства, чтобы этого избежать, система безопасности iPhone моментально полностью блокирует устройство, если замечает подобное вмешательство в электрическую цепь устройства, даже если оно без аккумулятора, после этого восстановить iPhone можно только в официальном сервисном центре Apple.

Перейдем к программной защите iOS. Всё начинается с загрузки ОС, для защиты устройства от атаки поддельной загрузки Apple использует функцию безопасной загрузки. Она включает в себя набор компонентов, которые проверяют целостность системы и то, что загружает только код от Apple. Данная функция так же блокирует откат ОС к более старым и уязвимым версиям системы.

iOS является закрытой ОС и не позволяет устанавливать в неё сторонние приложения, на данный момент в iOS можно устанавливать приложения только из AppStore, где они тщательно проверяются, такой подход минимизирует риск заражения ОС вредоносным ПО. Пользователь в iOS имеет ограниченные права и ему недоступно изменение или редактирование критических системных компонентов, только при помощи Jailbreak можно получить полный доступ к системе, но Jailbreak серьезно нарушает безопасность ОС.

Я не стану очень подробно останавливаться на всех компонентах безопасности iOS и iPhone, поскольку у этих устройств есть 1 проблема – Apple имеет полный контроль над вашим устройством и избавиться от этого никак не получится.

Так же, очень многие высокопоставленные чиновники, члены правительств и т.д. пользуются продукцией Apple, что делает эти устройства главной целью для правительственных хакеров различных стран, так израильская NSO Group заявляет, что может взломать любой iPhone независимо от модели и версии iOS, это является косвенным фактом о том, что абсолютно все устройства Apple уязвимы. Естественно, что iPhone обычного кладмена никто не будет взламывать в применением 0-day уязвимостей и т.д., но тем, кто занимается какими-либо серьезными делами и попадает в данную зону риска следует задуматься, надо ли ему использовать iPhone в качестве рабочего устройства.

Для обычных пользователей устройсва Apple являются удобными и защищенными, но с весьма ограниченным функционалом по сравнению с Android.

Но я всё же оставлю несколько ссылок на полезные приложения для iPhone:

Tor браузер - https://apps.apple.com/us/app/onion-browser/id519296448

XMPP-клиент с OMEMO шифрованием Monal IM - https://apps.apple.com/app/id317711500

Менеджер паролей KeePassium - https://apps.apple.com/app/keepassium-keepass-passwords/id1435127111

Приложение для генерации OTP кодов (аналог Google authenticator) - https://apps.apple.com/app/freeotp-authenticator/id872559395

OpenVPN клиент - https://apps.apple.com/us/app/openvpn-connect-openvpn-app/id590379981

Wireguard клиент - https://apps.apple.com/us/app/wireguard/id1441195209?ls=1

Matrix-клиент Element - https://apps.apple.com/app/vector/id1083446067

Теперь перейдем к Android устройствам, поскольку Android является самой популярной мобильной ОС, то и 90% вредоносных программ, нацеленных на мобильные устройства, написаны для Android.

Коротко рассмотрим, что из себя представляет Android ОС.
Android — мобильная операционная система с открытым исходным кодом на ядре Linux, т. е. Можно назвать Android дистрибутивом Linux.

В Android есть такой термин, как «патч безопасности», эти патчи выходят каждый месяц и помогают закрывать существующие уязвимости в системе, посмотреть актуальный патч безопасности можно на сайте https://source.android.com/security/bulletin?hl=ru

На вашем смартфоне в информации об устройстве вы можете посмотреть, какой патч безопасности у вас установлен, если он не соответствует последнему актуальному патчу безопасности — ваше Android устройство уязвимо, аналогично если у вас не последняя версия Android (на данный момент актуальная версия Android 13), но безопасность в первую очередь зависит от того, насколько свежий патч безопасности, а потом уже от версии Android

Перейдем к тому, как выстраивается программная и аппаратная защита Android устройств. Я буду рассказывать только про смартфоны линейки Google Pixel на процессорах Google Tensor (т. е. Google Pixel 6 и новее), потому что только эти устройства могут дать приемлемый уровень защиты, потом я объясню, почему какой-нибудь «Xiaomi» не обладает достаточным уровнем защищенности.

Смартфоны с процессорами Google Tensor будут получать обновления безопасности Android в течении 5 лет и имеют максимальный уровень аппаратной безопасности.

SoC Google Tensor использует технологию TrustZone для обеспечения безопасности.

google tensor.jpg


Google Tensor имеет специально разработанную подсистему безопасности, которая включает в себя выделенный процессор, ПЗУ, OTP (одноразовая программируемая память), механизм шифрования, внутреннюю статическую память, защищенную динамическую память. Ядро безопасности используется для защиты ключей пользовательских данных при взаимодействии с чипом безопасности Titan M2 и при безопасной загрузке (аналогично Secure Enclave в смартфонах Apple).

Titan M2 — выделенный чип безопасности, разработанный Google, он используется для безопасной генерации и хранения ключей шифрования совместно с Android StrongBox Keymaster.

Функции обеспечения безопасности работают изолированно от остальных программ в специальной среде Private Compute Core. Данное решение непозволяет вредоносному ПО нарушить работу подсистемы безопасности (теоретически).

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

Теперь поговорим о том, что же не так с остальными Android смартфонами.

Начнем с программной защиты, смартфоны Google Pixel, как правило, намного быстрее остальных смартфонов получают обновления Android и патчи безопасности, так же, в других смартфонах используются прошивки от производителя, вместо чистого Android. Например MIUI в смартфонах Xiaomi, OneUI в смартфонах Samsung и т. д. Все эти прошивки могут иметь узявимости в безопасности.

Теперь рассмотрим аппаратную защиту в Android смартфонах с другими процессорами, сразу стоит отметить, что ничего даже близко похожего на подсистему безопасности в Google Tensor нет в других процессорах, но помимо этого недостатка есть ещё и уязвимости в самом чипе, ниже я напишу, какие модели процессоров являются хоть немного защищенными:

Процессоры Qualcomm Snapdragon — Snapdragon 860 и новее допустимо использовать, более старшие модели имеют уязвимости.

Процессоры Samsung Exynos — абсолютно все процессоры данного производителя являются уязвимыми.

Процессоры MediaTek — абсолютно все процессоры данного производителя являются уязвимыми.

Процессоры HiSilicon Kirin (Huawei) — процессоры Kirin 9000 и новее, остальные уязвимыми.

Процессоры Unisoc — абсолютно все процессоры данного производителя являются уязвимыми.

Аналогично Unisoc дела обстоят и с другими менее известными производителями процессоров.

Теперь перейдем к рассмотрению методов улучшения безопасности Android устройства, а именно к смене прошивки. Сторонних прошивок на Android очень много, но хочу выделить 2 - LineageOS и GrapheneOS.

LineageOS является чистой версией Android без сервисов Google с незначительными доработками, поддерживает множество устройств, со списком устройств ознакомиться можно здесь https://wiki.lineageos.org/devices/

GrapheneOS поддерживается только на устройствах Google Pixel и имеет уже гораздо больше преимуществ, о которых я сейчас расскажу более подробно. Именно GrapheneOS я рассматриваю в качестве основной ОС, когда речь идет о действительно защищенном смартфоне, именно поэтому я не стал подробно останавливаться на программных механизмах защиты стандартного Android. В процессе описания GrapheneOS вы поймете, сколько потенциальных уязвимостей есть в обычном Android.

GrapheneOS - это приватная и безопасная мобильная операционная система с большой функциональностью и удобством использования. Он начинается с сильной базовой линии Android Open Source Project (AOSP) и вносит существенные улучшения как в конфиденциальность, так и в безопасность благодаря множеству тщательно разработанных функций, созданных для защиты от различных атак.

Рассмотрим основные решения в области улучшения безопасности и конфиденциальности:

Уменьшение поверхности атаки.

Значительно сокращена площадь различных атак за счет избавления от ненужного кода, добавления дополнительных функций и отключения некоторых интерфейсов по умолчанию (NFC, Bluetooth и т.д.), когда экран заблокирован (подключение новых периферийных устройств USB, доступ к камере) и при отсутствии активного соединения (Bluetooth, Wi-Fi)

Защищенная среда выполнения приложения.

Безопасная система создания приложений, позволяющая избежать совместного использования адресного пространства, макета и других секретов между приложениями.

Модифицированный libc, обеспечивающий защиту от уязвимостей класса memory corruption.

Собственный усиленный malloc (hardened malloc), использующий современные аппаратные возможности, чтобы обезопасить от уязвимостей класса heap memory corruption, наряду с сокращением срока службы конфиденциальных данных в памяти. Проект “hardened malloc” переносится на другие операционные системы на базе Linux, ориентированные на безопасность, такими как Whonix и ядро Linux hardened. Hardened malloc также сильно повлиял на архитектуру malloc следующего поколения, которая обеспечивает существенно большую безопасность, чем предыдущий malloc от musl, при этом сохраняя минимальное использование памяти и размер кода.

Защищенный набор инструментов компилятора.

Защищенное ядро.

Ограничение доступа к файловой системе.

Улучшенная изоляция компонентов:

GrapheneOS улучшает "песочницу" приложений за счет модификации политики SELinux и seccomp-bpf, а также всех компонентов, таких как ядро. Улучшены другие "песочницы", включая прямые улучшения в них для рендеринга веб-браузера, используемых по умолчанию как для него, так и для механизма рендеринга WebView, предоставляемого ОС и используемого огромным количеством других приложений.

Улучшенная доверенная загрузка с улучшенными свойствами безопасности и уменьшенной поверхностью атаки

GrapheneOS закрывает лазейку, из-за которой компоненты системных приложений, могут быть понижены до более старой версии из-за того, что версия API не увеличивается при их обновлении в рамках изменений в ОС.
Аппаратная проверка и мониторинг безопасности с помощью приложения Auditor и службы сертификации

GrapheneOS включает исправления для большого количества уязвимостей, которые еще не исправлены в Android.

С обновлениями устанавливаются версии ядра Linux LTS на устройства с поддержкой GKI (Generic Kernel Image), включая телефоны Pixel 6-го и 7-го поколений. На момент написания статьи GrapheneOS использует последнюю версию Linux 5.10 GKI LTS (5.10.161). Стандартная ОС Pixel установлена на Linux 5.10.107 с небольшим количеством исправлений. Это означает, что GrapheneOS предоставляет сотни соответствующих улучшений ядра еще не включенных в стандартную ОС.

Возможность отключения доступа к сети для конкретного приложения (системный firewall):

GrapheneOS добавляет встроенный firewall для запрета доступа к любой из доступных сетей. Локальная сеть устройства (localhost) защищена тем же способом. Firewall не дает приложениям использовать сеть через API.

Чтобы избежать несовместимости с приложениями Android, добавленный firewall включен по умолчанию. Однако пользовательский интерфейс установки приложения OS отображает переключатель как часть страницы подтверждения установки, чтобы пользователи могли отключить его.

Переключатель разрешения датчиков.

Переключатель разрешений датчиков позволяет запретить доступ ко всем датчикам, не охватываемым существующими разрешениями Android (камера, микрофон, распознавание активности и т.д.), включая акселерометр, гироскоп, компас, барометр, термометр и др., присутствующие на данном устройстве. Когда доступ отключен, приложения получают обнуленные данные при проверке значений датчиков. GrapheneOS создает легко отключаемое уведомление, когда приложения пытаются получить доступ к датчикам, заблокированным из-за отсутствия разрешения. Это делает функцию более удобной, поскольку пользователи могут определить, пытается ли приложение получить доступ к ней.

GrapheneOS предоставляет области хранения в качестве альтернативы стандартной схеме. Вместо предоставления разрешений на хранение данных пользователи могут включить области хранения, то есть приложение может создавать файлы/каталоги в домашнем каталоге пользователя, но получает доступ только к файлам, которые оно создало само. Но пользователи могут добавлять файлы и каталоги в качестве областей хранения, предоставляя приложению доступ к файлам, созданным другими приложениями.

Режим «только LTE» для уменьшения поверхности атаки сотовой радиосвязи за счет отключения огромного количества как устаревшего кода (2G, 3G), так и нового, не везде используемого кода (5G).

Конфиденциальность Wi-Fi

GrapheneOS поддерживает рандомизацию MAC для каждого соединения и включает ее по умолчанию. Это более приватный подход, чем стандартный постоянный случайный MAC для каждой сети, используемый современным Android.

Когда используется рандомизация MAC для каждого подключения, добавленная GrapheneOS, состояние DHCP-клиента сбрасывается перед повторным подключением к сети, чтобы избежать обнаружения, что это, скорее всего, то же устройство, что и раньше.

На Android каждый снимок экрана также содержит метаданные с указанием локальной даты, времени и часового пояса. GrapheneOS отключает это по умолчанию, чтобы избежать утечки информации о времени и местоположении через них, так как не видны пользователю. Дата и время уже включены в название файла скриншота, который виден пользователю и может быть легко изменен.

GrapheneOS устраняет несколько утечек идентификаторов устройства, чтобы приложения не могли однозначно его идентифицировать.

GrapheneOS не включает и не использует приложения и сервисы Google по умолчанию и любых других приложений/сервисов, которые не соответствуют политике конфиденциальности и безопасности. Приложения и сервисы Google можно использовать на GrapheneOS как обычные изолированные приложения без какого-либо специального доступа или привилегий через изолированную среду.

Это основные изменения в системе безопасности в GrapheneOS, я не стал описывать множество других изменений, иначе это вышло бы на отдельную лекцию

Из вышенаписанного можно сделать вывод о том, что обычному Android далеко до действительно надежной и безопасной ОС, но GrapheneOS в совокупности с аппаратной защитой устройств Pixel 6 и новее дает очень серьезный уровень защиты сравнимый с устройствами Apple, но при этом работает независимо от какой-либо корпорации.

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

Если требуется расширенный функционал, такой как двойное дно, клонирование приложений и т. д., если при этом защищенность самой системы не является первоочередным требованием, то я бы рекомендовал использовать обычные смартфоны Xiaomi с root доступом, их прошивка достаточно функциональная, а root доступ откроет дополнительные возможности, такие как раздача VPN/Tor трафика, смена IMEI на некоторых моделях, возможность завернуть весь трафик системы в Tor, системный firewall и т. д.

Но о защищенности такого устройства говорить не стоит, она будет на минимальном уровне и если попадет в руки злоумышленников или станет объектом целенаправленной удаленной атаки, то его смогут легко скомпрометировать.

Теперь перейдем к различному полезному ПО для работы, я разделю программы на категории, которые требуют root и не требуют. Всё ПО будет с открытым исходным кодом.

1. ПО не требующее root:

Каталог свободных приложений F-Droid - https://f-droid.org/ru/

Аналог F-Droid - https://f-droid.org/ru/packages/com.aurora.adroid/

Свободный аналог Play Market Aurora Store (для некоторых функций требуется root) - https://f-droid.org/ru/packages/com.aurora.store/

Менеджер паролей KeePassDX - https://f-droid.org/ru/packages/com.kunzisoft.keepass.libre/

Приложение для генерации OTP кодов Aegis (аналог Google authenticator) - https://f-droid.org/ru/packages/com.beemdevelopment.aegis/

XMPP клиент с OMEMO шифрованием Conversations (поддерживает работу через Tor с помощью orBot) - https://f-droid.org/ru/packages/eu.siacs.conversations/

Tor прокси orBot - https://github.com/guardianproject/orbot?ysclid=lirsb33oi7484070373

Кошелек Monero (XMR) (поддерживает работу через Tor с помощью orBot) - https://www.monerujo.io/

Лучший анонимный Bitcoin кошелек на Android со встроенным миксером и другими полезными функциями - https://samouraiwallet.com/

Лучший свободный бразуер для Android (не актуально для GrapheneOS) - https://www.bromite.org/

Wireguard клиент (при наличии root может работать на уровне ядра) - https://f-droid.org/ru/packages/com.wireguard.android/

OpenVPN клиент - https://f-droid.org/ru/packages/de.blinkt.openvpn/

Программа для записи ISO образов на флешку прямо со смартфона EtchDroid - https://f-droid.org/ru/packages/eu.depau.etchdroid/

Torrent клиент - https://f-droid.org/ru/packages/org.proninyaroslav.libretorrent/

Matrix клиент Element - https://f-droid.org/ru/packages/im.vector.app/

Tox клиент aTox - https://f-droid.org/ru/packages/ltd.evilcorp.atox/

2. Программы требующие root для работы:

Приложение для раздачи VPN трафика VPN Hotspot - https://github.com/Mygod/VPNHotspot?ysclid=lirsm0bxqa822148774

Приложение, для заворачивания всего трафика системы в Tor (часть функций работает и без root) - https://invizible.net/ru/

На это основная часть лекции закончена, можете задавать вопросы.
 
Top