В предыдущей статье мы рассказали о лотерее, в которую приходится играть тем, кто заказывает устройства из Китая. Выигрыш в лотерее – сносно работающий китайский смартфон за относительно небольшие деньги. Казалось бы, мы рассказали обо всём: и о гарантии, и о соответствии «бумажных» характеристик фактическим, и об экономии производителей, и даже о вредоносных программах в прошивках. И всё же мы не сочли тему китайских смартфонов полностью раскрытой, не проведя исследование в ещё одной немаловажной области: безопасности тех данных, которые хранятся в смартфоне.
Пользователям смартфонов из Китая хорошо знакомо понятие «заблокированного» и «разблокированного» загрузчика. Если первый вариант, по крайней мере – в теории, позволяет загружать только подписанное ядро и устанавливать только подписанные производителем прошивки, то второй даёт исследователю полную свободу. Казалось бы, какие могут быть ещё варианты? Загрузчик или заблокирован, или нет. Но не всё так однозначно.
Ситуация с блокировкой загрузчика в Android неоднозначна. До сих пор редко, но попадаются устройства с полностью разблокированным загрузчиком, позволяющие действовать на свой страх и риск. Такие устройства редки и не получают сертификации Google; продавать их на законных основаниях с установленными службами Google Play нельзя. Существуют устройства, загрузчик у которых можно разблокировать официально, на свой страх и риск, с обязательным уничтожением всех данных (снова требование Google). В таких устройствах разблокирование загрузчика часто сопровождается потерей гарантии производителя (как в некоторых моделях SONY и Motorola), но есть и более открытые для разработчиков варианты (как в устройствах линейки Google Nexus, OnePlus, некоторых моделях Motorola).
Существуют устройства, загрузчик которых как бы и заблокирован, но загрузить неподписанное ядро командой «fastboot boot boot.img» без потери данных по какой-то причине позволяют. К таким относятся, к примеру, многие смартфоны и планшеты ASUS, обойти защиту которых можно загрузкой сторонней recovery CWM.
Чего не должно случаться у сертифицированных Google производителей, так это устройств, позволяющих разблокировать загрузчик без обязательного уничтожения данных. Разблокирование загрузчика – всегда исключительная ситуация, к которой прибегают разработчики и продвинутые пользователи, которым хочется получить root доступ и которые хорошо понимают (или должны понимать) связанные с этим риски.
А вот у подавляющего большинства китайских производителей разблокированный загрузчик – дело жизни и смерти. Дело в том, что в Китае сервисы Google официально запрещены, и производители не устанавливают их в свои устройства, предназначенные для продажи на местном рынке. Что совершенно не мешает множеству онлайновых магазинов и торговых площадок продавать такие смартфоны на международном рынке. Но кто в здравом уме купит телефон без магазина Google и сопутствующих сервисов? Здесь и происходит подмена официальной прошивки производителя на «доработанную». В состав доработанной прошивки, как правило, включаются Google Play Services, добавляется поддержка основных языков (помимо китайского и английского), вырезаются все отсылки на обновления «по воздуху» (если этого не сделать, обновление может вывести устройство из строя).
Однако это не всё. В процессе доработки прошивки в неё устанавливаются и некоторые «довески». В англоязычной литературе для их обозначения используется термин «potentially unwanted programs», мы же ограничимся стандартным определением «вредоносные программы».
Вирусами в классическом смысле слова эти приложения не являются: заразить другой аппарат они не смогут. Удалять или шифровать твои файлы они тоже, скорее всего, не станут. А вот активироваться через неделю-другую после настройки смартфона, а затем скачать и установить в системную область ещё несколько приложений, которые будут показывать весьма откровенную рекламу в самые неожиданные моменты – их основное предназначение. Побочное – сбор информации об использовании телефона и отправка её на сервер в Китае, иногда – не один.
Не обладая специфическими навыками, вычистить подобные приложения обычному пользователю невозможно, да и специалисту – тяжело. Гораздо проще установить в телефон заведомо безопасную прошивку сразу после покупки.
Такие прошивки существуют практически для всех популярных китайских устройств. К примеру, для Xiaomi mi4c (отличный и недорогой смартфон на основе Snapdragon 880) существует добрых полтора десятка прошивок и сборок от нескольких известных команд. Проблема решена?
Для того, чтобы установить в телефон стороннюю прошивку, в большинстве случаев используются команды fastboot или сами по себе (через fastboot flash boot, system) или с целью прошивки области восстановления (custom recovery) через fastboot flash recovery, после чего дальнейшие манипуляции производится уже из более дружелюбного интерфейса.
Если на телефоне не активировано полнодисковое шифрование, через разблокированные загрузчик извлекается полный образ дискового пространства (в нём можно поискать удалённые файлы) или готовый образ файловой системы. С помощью маркеров аутентификации, извлечённых из «песочниц» приложений, можно получить доступ к учётным записям этих приложений – даже если активна двухфакторная аутентификация. Более того, если в системе установлено приложение Google Authenticator или подобное, то данные этого приложения также можно извлечь и использовать для генерации одноразовых паролей на другом устройстве: наши исследования подтверждают, что такие коды будут корректно работать.
Проблема одна: для получения доступа к памяти устройства необходимо отключить проверку цифровой подписи загрузчиком аппарата. Иначе говоря, разблокировать загрузчик. И если разблокирование загрузчика у сертифицированных Google производителей – вещь исключительная, то с китайскими аппаратами всё гораздо проще. Большинство устройств поставляется на рынок с открытыми для любых манипуляций загрузчиками прямо из коробки; меньшая часть – позволяет разблокировать загрузчик одной командой. Исключительное меньшинство или не позволяет разблокировать загрузчик вообще (как в новых устройствах Meizu), или, как Xiaomi, требует (в теории) запроса разрешения у производителя.
В случае со смартфонами Xiaomi к двум обычным состояниям загрузчика – «заблокирован» и «разблокирован» добавляется третье: «не заблокирован». Именно в таком незаблокированном состоянии большинство устройств поставляется с завода. Установка свежей официальной прошивки (через OTA или самостоятельно) приводит к немедленной блокировке загрузчика, что делается в целях безопасности. Разблокировать загрузчик после этого (привести к состоянию «разблокирован», что позволит устанавливать любые прошивки) можно через официальный запрос из учётной записи Mi Account. Стремление похвальное, но откат к более старой версии MIUI позволяет вернуть загрузчик в состояние «не заблокирован» даже без потери данных.
Итак, с возможными состояниями загрузчика мы разобрались. Почему мы акцентируем внимание на состоянии загрузчика? Всё просто: из устройства с незаблокированным загрузчиком данные можно извлечь практически моментально. Да, Android в целом не блещет безопасностью, и данные из смартфонов, к примеру, LG можно извлечь и так, с использованием специализированного ПО и сервисного режима. Да и у других производителей часто бывает доступен такой режим, который есть у большинства производителей мобильных чипсетов, включая Qualcomm, MTK, Spreadtrum и Allwinner. Но там злоумышленнику придётся постараться чуть больше, результат – не гарантирован, а если активировано шифрование – то не гарантирован совсем.
В китайских же устройствах данные будут доступны даже взломщику с минимальной квалификацией. Загрузка в TWRP, команда «Backup» — и данные извлекаются в течение минут. Никакой квалификации или специализированного ПО не нужно, следов взлома не останется. Единственное, что может помочь – активация шифрования раздела данных в настройках устройства.
Датчики отпечатков пальцев – быстрый и удобный способ аутентификации. К сожалению, безопасность этого способа в устройствах из Китая неочевидна. Необязательность сертификации Google позволяет китайским производителям изобретать самые изощрённые способы обхода систем безопасности Android. О безопасности дактилоскопической аутентификации мы напишем в отдельном материале. Вкратце ситуация обстоит следующим образом.
В Android 6.0 появился как API дактилоскопической аутентификации, так и обязательный для всех сертифицированных производителей устройств на Android набор требований по реализации такой аутентификации. Подробнее об этих требованиях мы поговорим в отдельной статье. Сейчас же нужно отметить, что Google требует точного следования спецификациям как в устройствах, которые выпускаются с Android 6.0 на борту, так и в устройствах, которые получают Android 6.0 в виде обновления. Слабые реализации не проходят сертификации, что явилось одной из причин, по которой ряд производителей отказался обновлять свои устройства до Android 6.0.
Как к этому относятся китайские производители? Напомним, сервисы Google запрещены в Китае. Телефоны, которые продаются на местном рынке, не проходят сертификации Google: ведь если сервисы Google в устройство не устанавливаются, то и сертификацию проходить не нужно. (К слову, это не касается китайских устройств, которые официально продаются на международных рынках).
В результате на выходе получается устройство, в котором датчик отпечатков пальцев (если он есть) реализован как угодно – на усмотрение производителя. Данные отпечатков где-то и как-то хранятся, вероятно – без шифрования. Телефон как-то разблокируется при прикладывании пальца. Жёсткие требования Google соблюдаться не будут. Соответственно, разблокировать такое устройство можно будет даже проще, чем перебором PIN-кодов.
Дело не только в датчике отпечатков. Начиная с Android 6.0, Google требует от производителей включать шифрование раздела данных «из коробки». Есть тонкости, касающиеся слабых устройств, но в целом данные должны шифроваться.
9.9. Full-Disk Encryption
For device implementations supporting full-disk encryption and with Advanced Encryption Standard (AES) crypto performance above 50MiB/sec, the full-disk encryption MUST be enabled by default at the time the user has completed the out-of-box setup experience.
Китайские производители эти требования с чистой совестью игнорируют: в нашу лабораторию не попадал ещё ни один смартфон из Китая (без сервисов Google), данные на котором были бы зашифрованы к моменту окончания настройки. Более того, в некоторых устройствах, выпущенных для китайского рынка (например, китайская версия Lenovo ZUK Z2) шифрование в штатной прошивке вообще невозможно активировать: соответствующая опция просто отсутствует в настройках.
Телефон с разблокированным загрузчиком – широко раскрытая дверь для потенциальных злоумышленников. В случае с китайскими аппаратами, которые не проходили сертификации Google, безопасность информации не отвечает минимальным требованиям. Шифрование, если оно доступно, поможет защититься от неквалифицированных атак и серьёзно осложнить квалифицированные, но замедлит работу устройства. В следующем выпуске мы рассмотрим технические способы, с помощью которых можно извлечь данные из устройств с разблокированным загрузчиком.