Полгода назад мы уже писали о лотерее с покупкой устройств из Китая, выигрыш в которой — сносно работающий смартфон за относительно небольшие деньги. Вроде бы мы потоптались на всех мозолях: и о гарантии поговорили, и о соответствии «бумажных» характеристик фактическим, и о копеечной экономии, и даже о вредоносных программах в прошивках, которые ставят китайские продавцы. Казалось бы, что тут еще можно добавить? Тем не менее нельзя считать тему мобильных устройств из Китая полностью раскрытой, не проведя исследование в еще одной немаловажной области: безопасности тех данных, которые хранятся в смартфоне.

 

Китай и блокировка загрузчика

На первый взгляд — ну какие могут быть варианты с загрузчиком? Он либо заблокирован, либо нет. Но не все так просто.

В Android с загрузчиками вообще разброд и шатание. Бывают (кроме производителей первого, второго и третьего эшелонов) устройства с полностью разблокированным загрузчиком: заходи, дорогой! Бывают такие, загрузчик у которых можно разблокировать официально, на свой страх и риск, с обязательным затиранием всех данных. В таких устройствах разблокирование загрузчика часто сопровождается потерей гарантии производителя (как в некоторых моделях Sony и Motorola), но есть варианты и без нее (как в устройствах линейки Google Nexus, OnePlus, некоторых моделях Motorola).

Встречаются устройства, загрузчик которых как бы и заблокирован, но загрузить неподписанное ядро командой fastboot boot boot.img без потери данных по какой-то причине они позволяют. К таким относятся, например, многие смартфоны и планшеты ASUS (кстати, это производитель второго или третьего эшелона?).

Чего точно не бывает у сертифицированных Google производителей, так это устройств, совершенно спокойно позволяющих разблокировать загрузчик без обязательного затирания данных. Разблокирование загрузчика всегда исключительная ситуация, к ней прибегают разработчики и продвинутые пользователи, которым хочется получить root-доступ и которые хорошо понимают (или должны понимать) связанные с этим риски.

А вот у подавляющего большинства китайских производителей разблокированный загрузчик — дело жизни и смерти. Дело в том, что в Китае сервисы Google официально запрещены и производители не устанавливают их в свои устройства, предназначенные для продажи на местном рынке. Что совершенно не мешает ушлым посредникам продавать такие смартфоны на международных торговых площадках. Но кто в здравом уме купит телефон без магазина Google и сопутствующих сервисов? Вот на этом месте и происходит установка продавцом «подвальной» прошивки. Из неизвестных источников китайские умельцы берут модифицированные прошивки, в которых установлены сервисы Google. Но добрых самаритян в «неизвестных источниках» не наблюдается, и затраты своего времени умельцы отбивают установкой в прошивку самого разнообразного мусора. В английской литературе для него используется термин potentially unwanted programs, мы же ограничимся стандартным определением «вредоносные программы».

Вирусами в классическом смысле слова эти программы не являются: заразить другой аппарат они не смогут. Удалять или шифровать твои файлы они тоже, скорее всего, не станут. А вот активироваться через неделю-другую после того, как ты настроишь телефон, скачать и установить в системную область (чтобы наверняка!) несколько приложений, которые будут показывать тебе самую откровенную рекламу в самые неожиданные моменты, — это за милую душу.

LeEco Le1 Pro: отличный смартфон за 150 евро с 4 Гбайт RAM, 64 Гбайт eMMC и Snapdragon 810. В прошивке — полный комплект троянов. Перепрошивка строго обязательна
LeEco Le1 Pro: отличный смартфон за 150 евро с 4 Гбайт RAM, 64 Гбайт eMMC и Snapdragon 810. В прошивке — полный комплект троянов. Перепрошивка строго обязательна

Так вот, для того чтобы установить в телефон стороннюю прошивку, в большинстве случаев используются команды fastboot или сами по себе (через fastboot flash system), или с целью прошивки области восстановления (custom recovery) через fastboot flash recovery, после чего дальнейшие действия ведутся уже из более дружелюбного интерфейса.

Проблема здесь, в общем-то, одна: для корректной работы всего этого хозяйства необходимо отключить проверку цифровой подписи загрузчиком аппарата. Иначе говоря — разблокировать загрузчик. Но в случае с китайскими аппаратами все гораздо проще. Большинство устройств поставляется на рынок с открытыми для любых манипуляций загрузчиками; меньшинство — позволяет разблокировать загрузчик одной командой. Совсем уж исключительное меньшинство или не позволяет разблокировать загрузчик вообще (как в новых устройствах Meizu), или, как Xiaomi, требует (по крайней мере, в теории) некоторых неочевидных манипуляций.

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

 

Особый загрузчик Xiaomi

В случае со смартфонами Xiaomi к двум обычным состояниям загрузчика — «заблокирован» и «разблокирован» — добавляется третье: «не заблокирован». Именно в таком незаблокированном состоянии большинство устройств поставляется с завода. Установка свежей официальной прошивки (через OTA или самостоятельно) приводит к немедленной блокировке загрузчика — в целях безопасности. Разблокировать загрузчик после этого (привести к состоянию «разблокирован», что позволит устанавливать любые прошивки) можно через официальный запрос из учетной записи Mi Account. Стремление похвальное, но откат к более старой версии MIUI позволяет вернуть загрузчик в состояние «не заблокирован» даже без потери данных. Разработчики из Apple наверняка кусают локти от зависти.

 

Чем плох разблокированный загрузчик

Итак, с возможными состояниями загрузчика мы более-менее разобрались. Из-за чего, собственно, весь сыр-бор и почему мы акцентируем внимание на состоянии загрузчика? Все просто: из устройства с незаблокированным загрузчиком данные можно извлечь на счет «раз». Да, Android в целом не блещет безопасностью, и данные из смартфонов, к примеру, LG можно извлечь и так, с использованием специализированного ПО и сервисного режима. Да и у других производителей часто доступен такой режим, который есть у большинства производителей мобильных чипсетов, включая Qualcomm, MTK, Spreadtrum и Allwinner. Но там злоумышленнику придется постараться чуть больше, результат не гарантирован, а если активировано шифрование, то не гарантирован совсем.

В китайских же устройствах твои данные подаются злоумышленнику на блюдечке с голубой каемочкой. Вот тебе телефон, вот тебе TWRP, подключай OTG-флешку и сливай на нее информацию. Никакой квалификации или специализированного софта не нужно, и даже следов не останется. Единственное, что здесь может помочь, — активация шифрования раздела данных в настройках устройства. Впрочем, не всегда: к примеру, в наборах системной логики Qualcomm Snapdragon обнаружена серьезная уязвимость, при использовании которой можно извлечь ключи шифрования из TrustZone. Подробнее об этом.


 

Что могут украсть

А что, собственно, можно украсть из телефона? Пароли там вроде бы не хранятся, все давно перешли на маркеры аутентификации... или как? Действительно, пароли не сохраняются, но и с помощью маркера аутентификации получить доступ к твоим учетным записям вполне возможно, не говоря уже о том, что все сохраненные на смартфоне данные также попадут в руки злоумышленнику. Более того, если ты используешь двухфакторную аутентификацию и у тебя установлено приложение Google Authenticator или подобное, то данные этого приложения злоумышленник может запросто извлечь и преспокойно использовать на другом устройстве: генерируемые коды работают, мы проверили.

 

Датчики отпечатков пальца

Еще один интересный и совсем не очевидный момент — то, как китайские производители реализуют аутентификацию пользователя по датчику отпечатков пальца (на эту тему — отдельная подробная статья в следующем номере). Если в двух словах, то биометрическая аутентификация в Android прошла через стадию «лучше бы ее не было» (отпечатки хранятся в виде BMP-файлов, доступных любому при подключении устройства к компьютеру через USB) к современному состоянию «пока не работает, но вы старайтесь!» (из новостей: «Полиция получила доступ к данным, разблокировав телефон отпечатком пальца, изготовленным на 3D-принтере»).

При этом винить разработчиков Google, главного локомотива Android, тяжело: в Android 6.0 появился как API, так и обязательный для всех сертифицированных производителей устройств на Android набор требований к реализации проверки по отпечаткам пальцев. Так что смартфоны на базе Android 6.0 от сертифицированных производителей просто обязаны использовать «правильный» механизм аутентификации по отпечаткам с надежным хранением самого отпечатка в памяти устройства.

Все хорошо, вот только эта самая сертификация нужна исключительно для того, чтобы производитель мог легально устанавливать на свои устройства сервисы Google. Не сам Android, а именно магазин Google Play, службы Google Services, карты Google и прочие приложения, без которых западный пользователь не представляет себе телефон на Android. А если сервисы Google (запрещены на территории Китайской Народной Республики) в устройство не устанавливаются, то и недешевую сертификацию проходить совсем не надо.

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

В результате ты получаешь устройство, в котором датчик отпечатков пальцев (если он есть) как-то прикручен. Сами отпечатки как-то хранятся, и телефон как-то разблокируется при прикладывании пальца. Жесткие требования Google соблюдаться не будут (зачем китайскому производителю, а тем более разработчику кастомной прошивки усложнять себе жизнь и тратиться на тестирование и сертификацию?). Соответственно, разблокировать такое устройство можно будет даже проще, чем перебором PIN-кодов.

Но дело не только в датчике отпечатков. Начиная с Android 6.0 Google требует от производителей включать шифрование раздела данных «из коробки». (Там есть тонкости, касающиеся совсем слабых устройств, но такие модели нас не интересуют.) А вот китайские производители эти требования с чистой совестью игнорируют.

 

Как взломать

Если к тебе в руки попал китайский аппарат, из которого — в чисто исследовательских целях! — ты собираешься извлечь данные, то алгоритм здесь довольно простой.

 

Шаг 1

Телефон включен или выключен? Если включен, попробуй его разблокировать. Удалось? Проверь, активировано ли шифрование. Если нет, то данные ты сможешь вытащить как с загруженной системы (если есть root-доступ), так и из рекавери (который, возможно, придется установить). Если ты работаешь в полиции, то я порекомендую на данном этапе сделать резервную копию данных через ADB. Для этого необходимо активировать режим USB Debugging в настройках для разработчика, подключить телефон к компьютеру и выполнить команду adb backup. Сама утилита ADB — это часть Android SDK и находится в папке путь/до/SDK/platfrom-tools.

Так ты получишь далеко не всю информацию, но этот шаг проделать придется — дальнейшие действия могут привести к модификации данных. После этого можно спокойно перегружать телефон в режим рекавери и переходить к следующему шагу. А вот если шифрование раздела данных включено (можно проверить через меню «Настройки -> Безопасность -> Зашифровать данные») — ни в коем случае не выключай телефон и не позволяй ему заблокироваться. Куй железо, пока горячо, и снимай образ раздела данных любой из множества соответствующих программ.

Запрос пароля при выполнении бэкапа
Запрос пароля при выполнении бэкапа
 

Шаг 2

Если же телефон был выключен или же ты убедился, что шифрованием в нем и не пахнет, то попробуй загрузить его в режим рекавери. Как правило, для этого достаточно выключить устройство, после чего включить его с зажатой кнопкой увеличения громкости (Vol+). Увидел заставку TWRP? Прекрасно! Вставляй OTG-флешку (или обычную флешку через OTG-переходник, или даже чистую SD-карту), монтируй ее с использованием кнопки Mount Storage, выбирай ее в качестве хранилища и делай резервное копирование (nandroid backup) командой Backup. Для твоих целей вполне достаточно копии раздела данных (он будет сохранен в обычном архиве формата tar.gz).

Содержимое nandroid backup из TWRP
Содержимое nandroid backup из TWRP

А если тебя встречает стоковый рекавери от производителя? Здесь несколько вариантов. Если загрузчик не заблокирован, то ты можешь попытаться прошить TWRP (twrp.img — специфичный для конкретной модели образ TWRP):

$ fastboot flash recovery twrp.img

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

$ fastboot boot twrp.img

Результат будет тот же.

 

Шаг 2, альтернативный

Что делать, если fastboot недоступен, а кастомный рекавери не грузится и не прошивается? Если аппарат китайский, то с большой вероятностью использоваться там будет чипсет от MediaTek (MTK). Данный чипсет очень дружелюбен к хакерам. Тебе потребуются драйверы VCOM от MediaTek, утилита SP Flash Tool и MTK Droid Tools. Подробно алгоритм работы с SP Flash Tool я расписывать не буду, в Сети их более чем достаточно (раз, два).

SP Flash Tool
SP Flash Tool

Этот подход может не сработать с устройствами А-брендов (Sony, LG), которые блокируют загрузчик. Заблокированный загрузчик не даст использовать универсальный загрузочный образ, с помощью которого SP Flash Tools выполняет операции над смартфоном.

 

Чипсет Spreadtrum

Если тебе попался телефон на базе Spreadtrum (второй по популярности и еще более дешевый китайский чипсет) — сочувствую. Ситуация с загрузчиками у него похожа на МТК, но дьявол кроется в деталях: там нет универсального загрузочного образа, как в SP Flash Tools. Это означает, что тебе придется искать загрузчик для конкретной модели (или дорабатывать имеющийся для сходной).

А если чипсет от Qualcomm? Попробуй перевести телефон в режим Qualcomm Download Mode (также известный под названиями firmware recovery mode 9006, Qualcomm MMC Storage (Diag 9006), Qualcomm HS-USB Diagnostics 9006, HS-USB QDLoader 9006, Qualcomm HS-USB 9006 или просто qhsusb 9006 в зависимости от устройства). Телефон попадает в этот режим, если его выключить, зажать кнопку уменьшения громкости (Vol-) и подключить к компьютеру через USB.

Если все прошло нормально, то в диспетчере устройств Windows появится неизвестное устройство, для которого тебе придется найти и установить нужный драйвер. После установки драйвера произойдет удивительное: в консоли diskmgmt.msc (Windows) появится несколько безымянных разделов. Монтировать их не получится: файловую систему (как правило, ext4 или F2FS) Windows не понимает. Так что HDD Raw Copy Tool или eMMC RAW Tool тебе в руки — и снимай дамп раздела данных! Надеюсь, мне не нужно объяснять, как смонтировать RAW-образ.

eMMC RAW Tool
eMMC RAW Tool

Самое сложное, что тебе может встретиться, — это зашифрованный раздел данных. В этом случае nandroid backup или дамп зашифрованного раздела ты сделать сможешь, но он принесет тебе мало пользы. Пароль можно обойти, но смысла в этом почти никакого: пароль для шифрования раздела данных шифруется паролем на телефон. Если загрузчик не заблокирован, то пароль можно попробовать взломать перебором с использованием дампа памяти с устройства и специализированного софта (например, UFED), но сделать это не так просто. Дополнительная информация.

 

Выводы

Как видишь, вытащить твои данные с китайского смартфона очень и очень просто. Что же теперь делать? Если мы говорим о защите от спецслужб и органов охраны правопорядка — смотреть в сторону китайских смартфонов точно не стоит. От квалифицированного хакера с доступом к специализированному софту и железу обычные методы тоже не спасут; здесь надо ориентироваться скорее на Android-смартфоны от BlackBerry. А вот от случайного гопника или кулхацкера Васи Пупкина обезопасить данные вполне можно.

Поможет комбинация из трех факторов: это защита PIN-кодом, отключенный Smart Lock и активированное шифрование. А вот такие вещи, как пароль на TWRP, не помогают совершенно: разблокированный загрузчик позволяет загрузить аппарат в любой другой recovery, который проигнорирует твой пароль. С другой стороны, если ты поставишь пароль на TWRP и заблокируешь загрузчик... скорее всего, получишь «кирпич», но к зашифрованным данным неквалифицированный хакер уж точно не подберется.

С защитой PIN-кодом все понятно: без него даже устройства от Apple оказываются совершенно незащищенными. Smart Lock — знатная диверсия и широкая дыра в безопасности, позволяющая разблокировать телефон на основе совпадения слабых с точки зрения безопасности факторов.

Шифрование — сильный аргумент, обойти который можно перебором PIN-кода, что требует специального оборудования, знаний и времени. Если загрузчик разблокирован — PIN-код возможно подобрать, если у тебя там не что-то вроде Q3#lFas4e#Ka0_wEj. Пароль подбирать придется брутфорсом по дампу или атакой в очень специальном рекавери, который даст возможность запустить атаку на самом устройстве в обход встроенных в Android ограничений безопасности.

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

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    2 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии