Примечание. На современных устройствах под управлением операционной системы Android предусмотрена временная принудительная блокировка биометрической аутентификации и функции Smart Lock, а также отключение уведомлений на заблокированном экране. Это поможет в случаях, если есть риск доступа к содержимому телефона без разрешения владельца (например, при пересечении границы или при угрозе кражи). Для активации функции принудительной блокировки следует перейти в настройки телефона. Затем в меню ЭкранДополнительные настройкиНа заблок. экране (или Защита и местоположениеЗаблокированный экран) следует включить параметр Добавить кнопку блокировки. Теперь при нажатии кнопки питания отобразится дополнительная команда. Нажмите и удерживайте кнопку питания в течение нескольких секунд и выберите пункт Блокировка. На экране блокировки будут отключены уведомления, функция Smart Lock, а также распознавание по лицу и отпечатку пальца. Обратите внимание: данный режим будет работать, пока вы не разблокируете телефон с помощью пароля или ПИН-кода.
КЕЙС Как выяснили специалисты, смартфоны HTC One Max и Samsung Galaxy S5 сохраняли данные отпечатков пальцев владельцев в общем разделе файловой системы в виде незащищенного графического файла с расширением. bmp. Любому приложению, получившему на телефоне доступ к файлам и интернету, доступен и этот графический файл. Кроме того, во многих смартфонах недостаточно защищен сам датчик: вредоносная программа может перехватывать передаваемые данные[903]. Производители выпускают патчи, закрывающие уязвимости, но нет никаких гарантий, что в следующем флагмане с новой версией операционной системы не найдутся новые «дыры». Стоит добавить, что для многих устройств, в частности под управлением операционной системы Android, обновления выпускаются в течение ограниченного срока, после чего поддержка прекращается.
Блокировка загрузчика
Механизм блокировки загрузчика реализован на всех мобильных устройствах (кроме разве что редких китайских поделок – устройства с разблокированным загрузчиком не сертифицируются Google и не допускаются к продаже законными путями). Суть блокировки (защиты) загрузчика, т. е. самого первого кода, выполняющегося при включении смартфона, в предотвращении исполнения постороннего кода. В процессе загрузки мобильной операционной системы загрузчик выполняет инструкции, которые загружают ядро системы и передают ему управление. Поскольку загрузчик запускается на смартфоне первым, именно он принимает решение о том, какой именно код будет выполняться, а какой – нет. В загрузчике проверяется целостность и аутентичность цифровой подписи ядра системы, т. е. неизменность кода ядра. Когда загрузчик заблокирован – запускается только код, предусмотренный производителем устройства (если код изменен, загрузка мобильной операционной системы прекращается), а когда разблокирован – допускается загрузка стороннего кода, например измененного системного ядра с иной цифровой подписью.
Примечание. Штатная разблокировка загрузчика в устройствах компании Apple не предусмотрена, а за эксплойтами следят разработчики. На поиск уязвимости в iOS/iPadOS могут уйти годы, а обнаруженные бреши компания Apple закрывает за пару недель.
Это не значит, что любой смартфон можно разблокировать для загрузки стороннего кода и обойти защиту, чтобы получить доступ к персональным данным. Соответствующую защиту имеют многие аппараты известных компаний, для разблокировки других требуется определенная последовательность действий или связь с компанией-разработчиком. Но время от времени встречаются уязвимости. Например, модель OnePlus 6 была выпущена с уязвимостью загрузчика, позволявшей загружать произвольный код без всякого разблокирования. Обнаруживались уязвимости и в аппаратах Motorola (в том числе модели Nexus 6, работающей на «чистом» Android) и Samsung (в частности, из-за утекшего в интернет инженерного загрузчика[904]). Аппараты Xiaomi могут поставляться с незаблокированным загрузчиком (блокируется автоматически после установки актуальной версии прошивки, но может быть вновь разблокирован без потери данных при откате до предыдущей версии операционной системы)[905]. Но даже если злоумышленник сможет разблокировать загрузчик – единственное, что он сможет сделать с устройством, – попытаться сбросить его к заводским настройкам и настроить заново (начиная с версии Android 5.1 устройство запрашивает данные аккаунта Google, если владелец ранее добавил такой аккаунт[906]). Возможно, злоумышленнику удастся скопировать зашифрованный раздел, содержащий персональные данные владельца, но расшифровать его в ряде случаев будет невозможно. Система Android устроена так, что в процессе разблокирования загрузчика уничтожаются криптографические ключи, с помощью которых зашифрован раздел пользовательских данных[907]. Но все же существуют исключения, так как для надежного шифрования пользовательских данных требуются определенные настройки и алгоритмы шифрования.
Алгоритмы шифрования
В аппаратах под управлением Android используется два алгоритма шифрования:
■ Полнодисковое шифрование (FDE).
■ Пофайловое шифрование (FBE).
Примечание. В iOS используется сложное многослойное шифрование. На уровне файловой системы используются уникальные криптографические ключи, защищающие каждый файл по отдельности (а есть еще и отдельное шифрование для некоторых категорий данных). При удалении файла соответствующий ключ удаляется, поэтому невозможно восстановить такой файл даже при физическом доступе к накопителю[908].
В большинстве старых устройств под управлением операционной системы Android используется полнодисковое шифрование (FDE). В этом режиме данные в пользовательском разделе зашифрованы с помощью ключа шифрования, который генерируется на основе некоего аппаратного ключа и неизменной фразы «default_password». Аппаратный ключ генерируется внутри безопасной среды исполнения (TrustZone) в момент загрузки устройства; он уникален для каждого устройства и недоступен за пределами TrustZone. А вот фраза «default_password» одинакова для всех устройств с FDE без режима безопасного запуска – это очевидная уязвимость в системе защиты пользовательских данных.
TrustZone
TrustZone – это изолированная защищенная среда. Благодаря TrustZone, реализующей на устройствах принцип двух «миров» – Secure World и Normal World, на смартфонах и планшетах запускаются сразу две операционные системы: безопасная TEE (Trusted Execution Environment) OS (Secure World) и расширенная Rich OS (Normal World)[909]. Эти операционные системы и приложения в них функционируют независимо друг от друга. Сначала загружается TEE OS, в которой запускаются специальные доверенные приложения, трастлеты, и хранятся особенно важные данные, такие как биометрические отпечатки и ключи шифрования, а затем загружается так называемая гостевая система, Rich OS, например iOS или Android. Несмотря на сложность реализации TrustZone, атаки на TEE OS вероятны: это может привести к перехвату управления устройством и несанкционированному доступу к приватной информации[910],[911],[912].
Если скопировать данные из памяти телефона, то расшифровать их без ключа из TrustZone не удастся. Злоумышленнику потребуется или взломать TEE OS, или подменить загрузчик, о чем речь шла выше. Для рядового преступника это крайне сложная операция, но такие организации, как, к примеру, компания Cellebrite, имеют инструменты для взлома целого ряда моделей мобильных устройств, а иногда – и целых семейств моделей с одинаковым набором системной логики. Комплексы компании Cellebrite используются спецслужбами и компаниями по всему миру, в том числе и в России[913].
Можно устранить уязвимость в виде неизменной фразы «default_password» и тем самым усложнить вероятность доступа к данным, если включить режим безопасного запуска (Secure Startup). В этом случае вместо «default_password» будет использоваться код блокировки, который вводит пользователь. Для владельца смартфона недостаток метода состоит в том, что смартфон до своей полной загрузки будет запрашивать код блокировки, т. е. если устройство случайно перезагрузится, то не сможет принимать/совершать вызовы, отправлять сообщения и т. п., пока пользователь не введет код блокировки.
Недостатки алгоритма FDE с режимом безопасного запуска устранены в пофайловой схеме шифрования (FBE). Устройства с поддержкой FBE используют код блокировки для шифрования большей части информации, в том числе всех персональных данных. При этом файлы, необходимые для загрузки устройства, шифруются с помощью только аппаратного ключа, поэтому режим безопасного запуска при использовании FBE не нужен. Для расшифровки данных с устройств с FDE в режиме безопасного запуска и FBE злоумышленник может попытаться взломать код блокировки методом перебора. Но для защиты от подобных атак скорость перебора паролей ограничивается на аппаратном уровне; быстро перебрать даже код из 4 цифр не получится, а 6 цифр можно перебирать до бесконечности. Но здесь играет роль другой фактор: подавляющее большинство пользователей устройств с FDE не знают о существовании режима безопасного запуска и/или не используют его (хотя бы потому, что это неудобно), поэтому злоумышленникам не понадобится взламывать код блокировки и они смогут расшифровать содержимое устройства с помощью стороннего загрузчика