Говоря о преимуществах платформы Android, большинство пользователей обычно называют настраиваемость, разнообразие устройств и гибкие цены. И почему-то о безопасности речи нет. Видимо, большинство просто не считает Android безопасным. Самая большая причина может быть в том, что Google Play Store — это открытая площадка: залить туда вредоносное ПО гораздо проще, чем в Apple AppStore. И это действительно случалось. Неоднократно.
Это реальная проблема. Но она связана с недостаточно жёсткой политикой Google на платформе. Хотя, похоже, это постепенно меняется. В любом случае, нужно всегда помнить о том, какому программному обеспечению следует доверять, а какому — нет. На любой платформе.
Недавно я искал новый телефон и заодно решил выяснить, каков сейчас уровень защищённости платформы Android и какой телефон наиболее безопасен. Выяснилось, что у Android неплохая модель безопасности.
Прежде всего, производитель устройства должен убедиться, что его телефон с Android OS соответствует Документу определения совместимости Android (CDD). Если устройство не соответствует требованиям к аппаратному обеспечению, оно не сможет работать с этой ОС. Если поставщик меняет систему Android и этим нарушает CDD, то такую систему больше нельзя называть «Android». Поэтому, если вы покупаете устройство и явно указано, что оно работает под управлением Android, это означает, что совместимость с CDD гарантирована.
CDD гарантирует безопасность
В CDD для Android 10 есть целый раздел, посвящённый безопасности. Этот документ огромен и ссылается на множество других огромных документов. Я постараюсь сформулировать предельно коротко.
Система разрешений должна соответствовать справочнику по безопасности Android. Он охватывает такие вопросы, как возможность отмены разрешений после того, как они были предоставлены, как работают запросы разрешений, какие разрешения могут предоставляться только системным приложениям и многое другое.
Песочница должна быть организована правильно. Подробности описаны в этом документе. По сути, каждое приложение имеет уникальный идентификатор пользователя UNIX и каталоги, которые принадлежат этому и только этому пользователю. Поскольку у Android нет пользователя root, другие приложения не могут получить доступ к данным, которые хранятся в этих каталогах. Следовательно, введение root в систему нарушит модель безопасности. Вот почему мы никогда не увидим Android-телефон, который по умолчанию рутирован. Помимо всего этого, существуют также политики SELinux для принудительного контроля доступа.
Таким образом, обязательные средства управления доступом (Mandatory Access Control — MAC) SELinux должны обеспечить изолированную среду для приложений ядра. Обязательные политики контроля доступа разрешают устанавливать и применять ограничения. Они не могут быть изменены или перезаписаны каким-либо пользователем и, следовательно, это практически не под силу вредоносному ПО.
Шифрование
CDD также требует, чтобы разделы /data и /sdcard встроенного хранилища были зашифрованы «из коробки». Раздел /data содержит персональные данные для каждого приложения. Раздел /sdcard — хранилище общего назначения: там, например, хранятся ваши фотографии и документы.
Поэтому, если устройство выключено, и оно в таком состоянии попадёт кому-то в руки, будет почти невозможно извлечь данные из встроенного хранилища.
Верифицированная загрузка
В первую очередь, такая загрузка также должна работать правильно:
- Весь исполняемый код должен быть получен из надёжного источника (обычно это производители устройств), а не от злоумышленника. На каждом этапе загрузки проверяется целостность и подлинность компонента, прежде чем передать ему выполнение.
- В дополнение к тому, что устройства работают под управлением безопасной версии Android, проверяется корректность версии ОС. Защита от отката помогает предотвратить сохранение возможного эксплойта, поскольку устройства обновляются только до более новых версий Android.
Многие считают, что такая загрузка обеспечивает безопасность устройства только тогда, когда злоумышленник имеет физический доступ к машине, и таким образом преуменьшают важность этой функции. Но когда речь идет о мобильных устройствах, прежде всего, именно физический доступ как раз и стоит рассматривать.
Более того, верифицированная загрузка гарантирует, что нежелательный код не будет выполняться во время или непосредственно после загрузки. Это усложняет жизнь любому типу вредоносного ПО. После перезагрузки мы автоматически удаляем это ПО, если оно вдруг попало в систему. Например, такие джейлбрейк-эксплойты, как checkra1n, не сохраняются после перезагрузки. Напомню, что iOS тоже использует верифицированную загрузку.
Управление доступом к данным
Для шифрования нужны ключи, которые должны где-то храниться. Для защиты ключей Android может использовать технологии Keymaster и Strongbox, даже в случае компрометации ядра или аппаратных эксплойтов (например, Meltdown and Spectre).
Samsung KNOX, например, идёт ещё дальше: после перепрошивки загрузчика, ядра или Recovery на пользовательское, а также при получении на устройстве root-прав будет активирован электронный предохранитель. После его активации пользователь больше не сможет оплачивать покупки через сервис мобильных платежей Samsung Pay, а устройство потеряет доступ к данным из защищённых каталогов.
Хватит платить за ошибки памяти
Недавнее исследование Microsoft показало, что около 70% всех уязвимостей в продуктах Microsoft связаны с уязвимостью в памяти. Исследование Google показало то же самое для Chrome. Так что, безусловно, есть основания полагать, что это актуально и для Android.
И специалисты компании Google решили исправить эту проблему. В Android 11 они использовали новый распределитель памяти, несколько более безопасных способов инициализации ядра и пространства пользователя, а также методы выявления ошибок памяти в режиме реального времени.
Ошибки памяти безусловно не исчезнут полностью, но наверняка теперь их будет гораздо меньше.
Вершина айсберга…
Всё вышеперечисленное — это лишь вершина айсберга. Есть ещё много интересных подробностей, которые можно узнать о безопасности систем на базе Android. Например, про тот же Samsung KNOX можно написать отдельную большую статью.
Так что, вопреки распространённому мнению, современные Android-устройства довольно безопасны.
На правах рекламы
Безопасные виртуальные серверы с защитой от DDoS-атак и мощным железом. Всё это про наши эпичные серверы. Максимальная конфигурация — 128 ядер CPU, 512 ГБ RAM, 4000 ГБ NVMe.