На сколько безопасны китайские телефоны на базе Android
Увидел очередную рекламу небезызвестного бренда телефона в небезызвестном магазине, и вспомнил о хорошей статье...
Китай и блокировка загрузчика
На первый взгляд — ну какие могут быть варианты с загрузчиком? Он либо заблокирован, либо нет. Но не все так просто.
В Android с загрузчиками вообще разброд и шатание. Бывают (кроме производителей первого, второго и третьего эшелонов) устройства с полностью разблокированным загрузчиком: заходи, дорогой! Бывают такие, загрузчик у которых можно разблокировать официально, на свой страх и риск, с обязательным затиранием всех данных. В таких устройствах разблокирование загрузчика часто сопровождается потерей гарантии производителя (как в некоторых моделях Sony и Motorola), но есть варианты и без нее (как в устройствах линейки Google Nexus, OnePlus, некоторых моделях Motorola).
Встречаются устройства, загрузчик которых как бы и заблокирован, но загрузить неподписанное ядро командой fastboot boot boot.img без потери данных по какой-то причине они позволяют. К таким относятся, например, многие смартфоны и планшеты ASUS (кстати, это производитель второго или третьего эшелона?).
Чего точно не бывает у сертифицированных Google производителей, так это устройств, совершенно спокойно позволяющих разблокировать загрузчик без обязательного затирания данных. Разблокирование загрузчика всегда исключительная ситуация, к ней прибегают разработчики и продвинутые пользователи, которым хочется получить root-доступ и которые хорошо понимают (или должны понимать) связанные с этим риски.
А вот у подавляющего большинства китайских производителей разблокированный загрузчик — дело жизни и смерти. Дело в том, что в Китае сервисы Google официально запрещены и производители не устанавливают их в свои устройства, предназначенные для продажи на местном рынке. Что совершенно не мешает ушлым посредникам продавать такие смартфоны на международных торговых площадках. Но кто в здравом уме купит телефон без магазина Google и сопутствующих сервисов? Вот на этом месте и происходит установка продавцом «подвальной» прошивки. Из неизвестных источников китайские умельцы берут модифицированные прошивки, в которых установлены сервисы Google. Но добрых самаритян в «неизвестных источниках» не наблюдается, и затраты своего времени умельцы отбивают установкой в прошивку самого разнообразного мусора. В английской литературе для него используется термин potentially unwanted programs, мы же ограничимся стандартным определением «вредоносные программы».
Вирусами в классическом смысле слова эти программы не являются: заразить другой аппарат они не смогут. Удалять или шифровать твои файлы они тоже, скорее всего, не станут. А вот активироваться через неделю-другую после того, как ты настроишь телефон, скачать и установить в системную область (чтобы наверняка!) несколько приложений, которые будут показывать тебе самую откровенную рекламу в самые неожиданные моменты, — это за милую душу.Так вот, для того чтобы установить в телефон стороннюю прошивку, в большинстве случаев используются команды 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 требует от производителей включать шифрование раздела данных «из коробки». (Там есть тонкости, касающиеся совсем слабых устройств, но такие модели нас не интересуют.) А вот китайские производители эти требования с чистой совестью игнорируют.
Выводы
Как видишь, вытащить твои данные с китайского смартфона очень и очень просто. Что же теперь делать? Если мы говорим о защите от спецслужб и органов охраны правопорядка — смотреть в сторону китайских смартфонов точно не стоит. От квалифицированного хакера с доступом к специализированному софту и железу обычные методы тоже не спасут; здесь надо ориентироваться скорее на Android-смартфоны от BlackBerry. А вот от случайного гопника или кулхацкера Васи Пупкина обезопасить данные вполне можно.
Поможет комбинация из трех факторов: это защита PIN-кодом, отключенный Smart Lock и активированное шифрование. А вот такие вещи, как пароль на TWRP, не помогают совершенно: разблокированный загрузчик позволяет загрузить аппарат в любой другой recovery, который проигнорирует твой пароль. С другой стороны, если ты поставишь пароль на TWRP и заблокируешь загрузчик… скорее всего, получишь «кирпич», но к зашифрованным данным неквалифицированный хакер уж точно не подберется.
С защитой PIN-кодом все понятно: без него даже устройства от Apple оказываются совершенно незащищенными. Smart Lock — знатная диверсия и широкая дыра в безопасности, позволяющая разблокировать телефон на основе совпадения слабых с точки зрения безопасности факторов.
Шифрование — сильный аргумент, обойти который можно перебором PIN-кода, что требует специального оборудования, знаний и времени. Если загрузчик разблокирован — PIN-код возможно подобрать, если у тебя там не что-то вроде Q3#lFas4e#Ka0_wEj. Пароль подбирать придется брутфорсом по дампу или атакой в очень специальном рекавери, который даст возможность запустить атаку на самом устройстве в обход встроенных в Android ограничений безопасности.
В то же время шифрование в Android замедляет работу устройства и приводит к повышенной нагрузке на CPU и расходу заряда аккумулятора. Стойкость реализации шифрования в прошивках, не проходивших сертификацию Google, вызывает вопросы.