Android — это система, которая при выполнении ряда условий и грамотном использовании могла бы стать достаточно безопасной. В реальном же мире все портят производители. Сегодня мы рассмотрим защитные механизмы Android, призванные обеспечивать доверенную загрузку и охранять твои данные от злоумышленников, — а также изучим ошибки и не совсем ошибки производителей LG, Motorola и Samsung, сводящие пользу от этих механизмов на нет.

В предыдущем номере Евгений Зобнин опубликовал статью, продолжающую бесконечную дискуссию о безопасности мобильных операционных систем. По утверждению Евгения, «чистый» Android задумывался как достаточно безопасная система, а количество найденных в самой системе уязвимостей вполне сравнимо с числом уязвимостей ближайшего конкурента — Apple iOS.

Сегодня мы разберемся, о каких именно механизмах безопасности идет речь, и попробуем натянуть «сферический Android в вакууме» на глобус реального мира, представленный устройствами таких производителей, как Samsung, LG и Motorola (Lenovo).

Помимо технических, мы рассмотрим и политические аспекты защиты твоей информации в реальных устройствах. Если Apple не постеснялась судиться с государством за право не разрабатывать версию системы, которая могла бы использоваться спецслужбами для доступа к твоим данным, то как с этим обстоят дела у ближайшего конкурента — компании Samsung? (Спойлер: с точностью до наоборот.)

Но начнем мы все же с технологий.

 

Android и доступ к данным

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

С каждым поколением устройств и с каждой новой версией мобильных ОС смартфоны становятся все более безопасными. И это не иллюзия: и Apple, и Google прикладывают все усилия, чтобы свести к минимуму возможности неавторизованного доступа к информации. Разумеется, все их действия совершаются в рамках ограничений, заданных как самой платформой, так и конкретными устройствами на ее основе.

Давай рассмотрим некоторые из этих механизмов и то, как они способствуют защите от несанкционированного доступа.

 

Блокировка загрузчика

Прежде чем вдаваться в детали реализации шифрования, немного поговорим о встроенных в Android механизмах, которые призваны защитить твои данные от неразрушающих способов извлечения. Для нас представляют интерес три вещи: блокировка загрузчика (а точнее, все механизмы, способные предотвратить запуск неподписанного кода), шифрование раздела данных и пароль, который может быть установлен на смартфон.

В Android загрузчик (bootloader) — это первый код, который загружается со встроенного в телефон накопителя. Именно загрузчик содержит механизмы, с помощью которых устройство может проверить цифровую подпись и целостность загрузочного раздела, и именно загрузчик несет ответственность за загрузку телефона в систему или один из вспомогательных режимов fastboot или recovery.

Во время загрузки операционной системы загрузчик выполняет инструкции, которые передают управление ядру, записанному в раздел boot. Поскольку загрузчик — это первое, что запускается на смартфоне, именно он принимает решение о том, какой именно код будет выполняться, а какой — нет. Соответственно, защита (блокировка) загрузчика — важный элемент обеспечения безопасности цепочки загрузки.

Итак, загрузчик запускается прежде всех остальных компонентов операционной системы. Он проверяет целостность ядра, а также — если загрузчик заблокирован — аутентичность его цифровой подписи. (Разблокированный загрузчик все равно проверяет целостность и цифровую подпись ядра; просто подписать ядро можно будет не только производителю, но и сторонним разработчикам.) Если следующий компонент загрузки не проходит проверку целостности или безопасности, загрузка прервется, а пользователю будет выведено соответствующее уведомление (особенно жестко этот момент контролируется в версиях Android начиная с 7.0).

Если загрузчик заблокирован, пользователь не сможет вносить изменения в системные и загрузочные разделы, а также не сможет загрузить устройство командой fastboot boot xxx.img с помощью неподписанного образа (например, в стороннее recovery — TWRP и подобные).

Если же загрузчик разблокирован, то тебе будет доступно большинство команд из арсенала fastboot. В частности, ты сможешь загрузить устройство с использованием стороннего образа, модифицировать ядро системы или системный раздел. Именно поэтому разблокирование загрузчика — первое, что проделывают со своими устройствами разработчики и хакеры.

Казалось бы, разблокировка загрузчика — очевидный шаг для полицейского, который хочет покопаться в твоем телефоне. Но так может показаться только на первый взгляд. Во-первых, далеко не все производители позволяют разблокировать загрузчик, а те, которые позволяют, разрешают разблокировку не для каждой модели и не для каждой операторской версии. Некоторые производители предоставляют возможность официально разблокировать загрузчик только после запроса специального кода с их сайта, а некоторые (например, на устройствах линеек Nexus и Pixel, Nextbit Robin) — одной командой в fastboot.

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

 

Блокировка загрузчика в iOS

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

 

Защита от сброса к заводским настройкам

Допустим, тебе каким-то образом удалось обойти блокировку загрузчика (что само по себе маловероятно) или в твои руки попал телефон с уже разблокированным загрузчиком. Теперь-то можно запустить TWRP и скопировать раздел данных? Скорее да, чем нет, но не всегда и не на всех устройствах. В Android предусмотрен дополнительный механизм защиты — как раз для таких случаев.

Независимо от того, заблокирован или разблокирован загрузчик устройства, в большинстве моделей Samsung и Motorola есть еще одно неочевидное препятствие на пути доступа к информации.

С выходом Android 5.1 разработчики Google добавили механизм, направленный на предотвращение доступа к данным и сброса устройства к заводским настройкам в случае его кражи. Основное предназначение защиты от сброса к заводским настройкам (Factory Reset Protection, FRP) не в том, чтобы защитить устройство от сброса как такового, а в том, чтобы сделать его бесполезным для злоумышленников, предотвратив возможность его активации и использования после сброса.

При активированной защите FRP злоумышленник может удалить данные и сбросить устройство, но (по крайней мере в теории — на самом деле способов обойти эту защиту существует порядочно) воспользоваться им не сможет: система начальной настройки потребует ввести учетные данные того Google Account, который использовался перед сбросом устройства.

FRP активируется автоматически во время настройки устройства при выполнении двух условий: 1) используется безопасный экран блокировки: устройство защищено PIN-кодом, паролем, паттерном или другим способом; 2) пользователь добавляет хотя бы одну учетную запись Google Account. Соответственно, при выключении безопасного экрана блокировки или при удалении учетной записи Google из настроек устройства защита FRP так же автоматически отключается.

Итак, защита от сброса к заводским настройкам — отлично задуманная (но плохо реализованная) система. Но при чем тут она? Дело в том, что ряд производителей (в частности, Samsung и Motorola) пошли чуть дальше, реализовав дополнительный защитный механизм именно через систему FRP.

Что произойдет, если злоумышленник загрузит устройство в стороннее recovery и попросту обнулит раздел frp? Или же установит прошивку без приложений Google, обойдя таким образом защиту от кражи? С разблокированным загрузчиком это вполне возможно.

Именно для защиты от подобных сценариев используется дополнительная проверка. При активированной защите от сброса к заводским настройкам FRP устройство всегда будет вести себя так, будто его загрузчик заблокирован, — даже если была произведена процедура разблокировки. Загрузить неподписанный код (стороннее recovery или прошивку) не получится.

Таким образом, даже если загрузчик смартфона разблокирован (напомним, большинство пользователей этого не делает), его все равно не удастся загрузить в стороннее recovery, если:

  • в устройстве до сброса была настроена учетная запись Google Account;
  • был настроен безопасный экран блокировки (пароль, паттерн и подобное).

Совместно с защитой, предоставляемой блокировкой загрузчика, FRP способен вполне эффективно воспрепятствовать загрузке стороннего кода и извлечению данных.

 

Извлекаем данные из устройств с заблокированным загрузчиком

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

В теории — в том самом «сферическом Android в вакууме» — все хорошо: система безопасна, враг не пройдет. А вот на практике… На практике бывает разное.

Продолжение статьи доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все статьи на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта, включая эту статью. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи одну статью

Заинтересовала статья, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для статей, опубликованных более двух месяцев назад.


11 комментарий

  1. NullStreamer

    30.10.2017 at 13:45

    Спасибо за материал.

  2. Vit_vitov

    30.10.2017 at 14:04

    Что такого очень важного может быть у 90% пользователей в телефоне? Мне кажется ничего особенного. Коды запуска от ракет Пентагона чтоли? Номера кредитных карт и пароли к ним — наврятли. Фото/домашнее видео с бабами/мужиками ну и что здесь криминального. Менее 0,1% от всех пользователей действительно хранят в телефоне информацию уровня гостайны, а следовательно особой ценности ни один найденный или украденный телефон не представляет. Как и вся эта никому не нужная защита. Мне нечего скрывать от других людей, пожалуйста если потеряю телефон даже переживать не буду особо.

    • Vit_vitov

      30.10.2017 at 14:08

      Да и само наличие нескольких этапов защиты, уже сразу же наведёт на мысль что в этом телефоне что то есть, ни с проста же так защищён. Вот я например, ниразу даже сканер пальца не ставил на защиту, у меня обынчное 4-х значное число пин код разблокировки и всё. Вообще не парюсь и Вам не советую. Относитесь к этому проще, а самоё надёжное хранилище это голова и память. Тренируйте её

      • electro

        01.11.2017 at 04:06

        Тоже не хочу вам разжевывать… но надеюсь таких как вы, на планете все меньше и меньше.
        А вообще любопытно когда (я конечно же не вас имею ввиду) дурак, не осознавая что он дурак, советует другим людям быть тоже дураками…

    • Олег Афонин

      Олег Афонин

      31.10.2017 at 13:43

      Подробно даже отвечать лень 🙂 Но вы продолжайте — мы *очень* любим таких пользователей, как вы! Ваше существование упрощает нашу работу. К сожалению, подобных пользователей остаётся всё меньше, так что нам приходится искать разные способы, чтобы таки добраться до их данных. Интересны они или нет — решать теперь уже не вам, вы уже добровольно отказались от права на приватность 🙂

    • Themistocles

      05.11.2017 at 20:48

      Что вы тут делаете вообще? Зачем защищать телефон? Давайте тогда так, вы выложите сюда информацию о своих картах, личную переписку и пароли от почты. Ведь вам нечего скрывать?

  3. trashographer

    30.10.2017 at 14:47

    >> Теперь производители, выпускающие устройства с Android 6.0 (и более новых версий) на борту, должны активировать шифрование по умолчанию — иначе смартфон не пройдет сертификацию и не сможет получить доступ к Play Store и другим сервисам Google.

    А вот Huawei P10 lite, насколько я понимаю, имея на борту 7 андроид с момента продаж, вообще не имеет никаких настроек шифрования. При этом он однозначно сертифицирован гуглом, о чем имеется строчка в информации о телефоне.

    • Олег Афонин

      Олег Афонин

      31.10.2017 at 13:38

      По поводу шифрования P10 Lite: вариантов тут всего два. Или телефон зашифрован с помощью FDE (полнодисковое шифрование), или с помощью более совершенного FBE (пофайловое шифрование). Что в одном, что в другом случае никаких «настроек» шифрования быть не должно: устройство должно быть зашифровано по умолчанию, отключить шифрование нельзя. Если это не так — Huawei может получить серьёзные проблемы с Google.

  4. faster125a

    31.10.2017 at 06:01

    Спасибо за интересный материал, всегда с большим интересом читаю ваши статьи.

  5. 2016ruru

    05.11.2017 at 23:33

    Аналогично Xiaomi Mi6. Есть пункт меню Encrypt phone, что как бы говорит о том, что по умолчанию шифрование выключение. На борту 7.1.1

  6. Олег Афонин

    Олег Афонин

    07.11.2017 at 13:21

    Смартфоны Xiaomi, за исключением A1 (и ещё нескольких моделей, которые официально продаются в Европе — это буквально 3-4 смартфона, среди которых нет ни одного флагмана), не сертифицированы Google. Все их «глобальные» прошивки — китайская хитрость, когда для иностранцев туда, так и быть, встраиваются сервисы Google, взятые из непонятных источников. На это указывают следующие вещи, которые Google никогда в жизни не пропустил бы в процессе сертификации:

    1. Уже замеченная «особенность» с шифрованием: недопустимо согласно Android Compatibility Definition Document, где шифрование «из коробки» описано как «must»
    2. Неработоспособность Google Backup Transport, приводящая к невозможности создания «облачных» резервных копий в Google Drive и невозможности восстановить новое устройство из «облачной» резервной копии в Google Drive

    При этом в Xiaomi научились более-менее обманывать Google, из-за чего в Google Play некоторые версии их прошивок какое-то время показываются как сертифицированные. Потом Google обновляет Play Services, «сертифицированность» слетает, китайцы выпускают свежую версию прошивки, учитывающую этот момент — и история повторяется.

    Ещё раз отмечу, что всё описанное касается китайских моделей с «глобальными» прошивками. Существуют модели Xiaomi, которые официально продаются в Европе — для них, как правило, делается нормальная сертификация. Mi6, Mi5s, Mi5, Mi Mix, Mi Mix 2 и другие самые интересные модели к ним не относятся.

Оставить мнение

Check Also

Десятка быстрых. Выбираем консольный софт для повседневных нужд

И вновь на страницах нашего журнала рубрика «Кто самый большой гик на планете». В этот раз…