Большинство наших статей рассказывает о том, как взломать защиту и получить доступ к данным. Сегодня мы попробуем сыграть за другую команду, рассказав о том, как защитить свои данные.
Для кого написана эта статья? По статистике, почти половина пользователей не может назвать модель используемого ими смартфона. Многие ли из оставшихся смогут назвать версию Android, установленную в их телефоне, не говоря уже о версии патча безопасности? Именно оставшимся пользователям мы адресуем данный текст. В этой статье мы не будем давать набивших оскомину советов «включить код блокировки» или «обновиться до последней версии ОС» (такой совет прозвучит довольно цинично в свете политик обновления подавляющего большинства производителей). Вместо этого мы постараемся дать понимание всего спектра возможностей «тяжёлой артиллерии», которая может быть использована против владельца телефона как злоумышленниками, так и спецслужбами для извлечения данных.
Предыстория
Написать эту статью нас побудило просто огромное количество публикаций в самых разнообразных изданиях на одну и ту же тему: как обезопасить свой смартфон. Авторы прочитанных нами статей повторяют одни и те же советы, которые при самом тщательном выполнении не дают владельцу смартфона ничего, кроме ложного ощущения безопасности. «Используйте стойкий код блокировки», «включите датчик отпечатков» и предельно циничное «обновитесь на последнюю версию Android» — советы сами по себе логичные, но совершенно, абсолютно недостаточные. Очень редко среди советов попадается рекомендация отключить Smart Lock – тоже правильно и также недостаточно.
Какой смысл устанавливать длинный и сложный код блокировки, если в вашем смартфоне используется устаревшее шифрование FDE и вы не включили режим Secure Startup? Для многих моделей доступны загрузчики, которые расшифруют всё содержимое твоего устройства даже без перебора паролей: шифрование всё равно будет использовать фразу default_password. Отключение Smart Lock — необходимый, но недостаточный шаг. Уверены ли вы в безопасности используемой в вашем устройстве технологии сканирования лица (если телефон ей оборудован)? А известно ли вам, что, просто зайдя на ваш компьютер, можно извлечь из браузера все ваши пароли, после чего попросту зайти в облако и сменить код блокировки смартфона? (Работает, к счастью, не для всех устройств, но знать о такой возможности нужно.) Наконец, нужно отдавать себе отчёт, что если с компьютера будет получен пароль от облака Google Account, то сам телефон будет никому не нужен: все необходимые данные можно извлечь из облака (и, скорее всего, их там будет даже больше, чем в самом телефоне).
О правильном подходе к защите
От чего именно будем защищаться? В одной статье невозможно рассмотреть меры защиты от всех возможных угроз. Мы не будем рассматривать защиту от зловредного программного обеспечения и «шпионских» приложений и лишь мельком рассмотрим защиту учётной записи Google Account. Основные усилия мы приложим в направлении обеспечения безопасности данных при физическом и логическом анализе устройства.
Как будет действовать полиция, получив в руки смартфон? Самые сложные для работы экспертов случаи — обесточенный телефон, обнаруженный у безмолвного тела. Именно в таких обстоятельствах, как правило, начинается поиск всевозможных уязвимостей в программном и аппаратном обеспечении. В обыденных ситуациях полиция придёт домой к подозреваемому, проведёт анализ компьютера и извлечёт кэш паролей из почтовых клиентов и браузеров Chrome/Mozilla/Edge. Затем достаточно зайти в облако с найденным логином и паролем, после чего остальное тривиально. В ряде случаев на телефоне можно удалённо сбросить пароль блокировки (сегодня, правда, многие производители не предлагают такой возможности по умолчанию).
Интереснейшими возможностями обладают решения компании Cellebrite, включая недавно представленный продукт UFED Premium. Смартфон можно подключить к устройству (сейчас в его роли выступает обычный ноутбук с предустановленным ПО), при помощи которого эксперт скопирует раздел данных и расшифрует его через одну из известных разработчикам уязвимостей или с использованием «расшифровывающего загрузчика» (decrypting bootloader в терминах Cellebrite) независимо от длины пароля и наличия установленных обновлений. Для ряда устройств поддерживается перебор кодов блокировки экрана – порядка 20 минут на весь спектр паролей из 4 цифр.
Прочитав нашу статью, вы будете более полно осознавать возможности защитить свои данные и риски, которые останутся даже тогда, когда всё было сделано правильно.
Как будет действовать полиция
Если ваш смартфон попал в руки полиции или пограничного контроля в США, вас попытаются заставить разблокировать устройство. В случае успеха дальнейшее от вас не зависит; с экрана разблокированного смартфона следователь получит доступ:
- Ко всему содержимому /sdcard включая фото и видео.
- Почта, переписка в мессенжерах, текст SMS.
- Полный список паролей, сохранённых в Chrome (частенько там можно найти и пароль от вашего Google Account – кстати, проверьте, так ли это на вашем устройстве).
- Детализированная история местоположения за несколько лет.
- Данные Google Fit. Их можно экспортировать.
- Звонки, контакты.
Аналогичную информацию получит пограничный контроль Китая. Впрочем, китайские пограничники действуют грубо и предельно неряшливо: на смартфон устанавливается приложение-агент, которое и извлекает всю необходимую пограничнику информацию. Ситуация достигла полного абсурда тогда, когда китайские пограничники стали массово забывать удалить приложение-агента. Уважаемые китайские пограничники! Так делать нельзя! Пожалуйста, внимательно следуйте служебным инструкциям и не забывайте удалять приложение-агент с телефона туристов после того, как будут извлечены все необходимые данные!
Взлом кода блокировки экрана
Мне очень хотелось бы написать подробную статью о том, как и чем можно взломать заблокированный смартфон на Android, но, боюсь, это невозможно: на руках у пользователей тысячи разнообразных моделей, основанных на десятках чипсетов в сотнях вариаций. С учётом разнообразия прошивок, версий самого Android и доступности актуальных патчей безопасности (та самая проблема фрагментации Android) сложилась ситуация, в которой даже крупнейший производитель криминалистических продуктов не знает, с какими устройствами работает их комплекс. «Попробуйте подключить» — стандартный ответ на вопрос, поддерживает ли комплекс Х смартфон Y.
К примеру, простой вопрос: можно ли взломать код блокировки у конкретной модели смартфона, а главное – нужно ли это делать или можно обойтись и так (тот самый «расшифровывающий загрузчик»)? Многочисленные статьи по безопасности в один голос рекомендуют устанавливать стойкий код блокировки, умалчивая о том, что примерно для каждого второго смартфона это совершенно бесполезно. Как определить, имеет ли смысл терять в удобстве со сложным кодом блокировки или стоит подойти с другой стороны?
Ответ лежит в области используемого в конкретном устройстве алгоритма шифрования. Как известно, все смартфоны, вышедшие с завода с Android 6 и более поздними версиями, обязаны зашифровать пользовательские данные к моменту окончания процесса начальной настройки. Однако шифрование шифрованию рознь. В большинстве старых устройств используется так называемое дисковое шифрование Full Disk Encryption (FDE). В режиме FDE данные на пользовательском разделе зашифрованы посредством device credentials – ключа шифрования, который генерируется на основе некого аппаратного ключа и фразы “default_password”.
Да, именно так – “default_password” защищает все ваши данные. И что же, всё пропало? Любой желающий может взять и расшифровать информацию? Не совсем. Ключ шифрования генерируется внутри Trusted Execution Environment (TEE) в момент загрузки устройства; в качестве исходных данных участвует уникальный для каждого устройства ключ, который за пределы TEE не выходит. Если из телефона извлечь чип памяти и скопировать из него информацию, то расшифровать данные без ключа из TEE не удастся. Соответственно, для расшифровки информации потребуется не просто извлечь из телефона данные (например, через режим EDL, роль которого постепенно уходит в прошлое), но и взломать TEE или подменить загрузчик. В принципе, такие «расшифровывающие загрузчики» (decrypting bootloader) существуют, например, у Cellebrite для целого ряда моделей, а иногда и целых семейств моделей, объединённых общим набором системной логики. Тем не менее, для использования этой возможности нужно воспользоваться специальным комплексом, который и осуществит извлечение данных.
Даже если в вашем телефоне используется устаревшая защита FDE, надёжно защитить свои данные можно. Для этого достаточно включить режим Secure Startup (сделать это довольно просто: нужно сначала убрать код блокировки, а затем – установить новый; если телефон использует FDE, то система запросит, включить ли режим безопасной загрузки). В этом режиме ключ шифрования будет перешифрован данными аппаратного ключа и введённого кода блокировки (вместо “default_password”). Недостаток у этого метода тоже есть: телефон просто не загрузится вплоть до момента ввода кода блокировки; если ваш телефон случайно перезагрузится, то вы не сможете даже ответить на звонок, пока телефон не загрузится до конца (для чего требуется код блокировки). Кстати, на некоторых моделях пароль для Secure Startup может не совпадать с кодом блокировки экрана; если такая возможность есть, ей стоит воспользоваться.
Недостатки шифрования FDE с Secure Startup полностью устранены в новой пофайловой схеме шифрования, получившей название File Based Encryption (FBE). Устройства, зашифрованные FBE, используют user credentials (код блокировки) для шифрования большей части информации, в том числе всех персональных данных. При этом исполняемые файлы приложений, а также некоторые базы данных, необходимые для загрузки устройства, будут зашифрованы посредством device credentials (т.е. данных исключительно аппаратного ключа). Режима Secure Startup при использовании FBE нет за ненужностью.
Для расшифровки данных как устройств с FDE, использующих режим Secure Startup, так и устройств с FBE необходимо взломать код блокировки. Конкретные процедуры отличаются в зависимости от модели и набора системной логики, но общий принцип один: подключиться к USB порту и запустить процедуру перебора.
Разумеется, в телефонах есть встроенная защита от таких атак. Мы уже описывали Qualcomm TrustZone, в рамках которой работает Trusted Execution Environment (TEE). В ней могут запускаться только так называемые «трастлеты» (trustlets), своеобразные микро-приложения, подписанные ключом, который проверяется самой TEE. Именно здесь реализована проверка пасскода (через сервис GateKeeper). GateKeeper, в свою очередь, на аппаратном уровне ограничивает скорость перебора паролей; быстро перебрать даже код из 4 цифр не получится, а 6 цифр можно перебирать до бесконечности. GateKeeper не позволяет взломать телефон в ситуациях, когда включен Secure Startup или если используется шифрование FBE.
Пример из жизни. Смартфоны Samsung – пожалуй, самые популярные среди устройств на Android. Во всех моделях Samsung, выпущенных до 2019 года, используется устаревшее шифрование FDE. Для многих моделей смартфонов существуют так называемые «инженерные загрузчики», которые успешно «утекли» с завода-производителя. Поскольку подавляющее большинство пользователей не знает о существовании режима Secure Startup, инженерный загрузчик помогает экспертам загрузить код, посредством которого можно обойти пароль блокировки и расшифровать содержимое устройства.
Другой пример. Во время демонстрации UFED Premium компании Cellebrite код блокировки случайно взятого смартфона Samsung S8 одного из участников презентации был вскрыт в течение всего лишь 15 минут.
Современной системой шифрования FBE оборудованы лишь новые модели Samsung, выпущенные в 2019 году. К ним относятся, например, модели Galaxy S10 и S10+.
Экономическая целесообразность взлома защиты от физического анализа
Если есть защита, то будут и попытки её взломать. В частности, для процессоров Qualcomm до Snapdragon 821 включительно существует уязвимость, использование которой позволяет запустить на выполнение собственный «трастлет» и обойти ограничение на скорость перебора. В реальности же разработчики криминалистических комплексов относятся к этой уязвимости как к зубной боли: с одной стороны, уязвимость существует, она мозолит глаза; заказчики её хотят. С другой – воспользоваться ей очень трудно: для каждого устройства нужно писать свой код, подбирать смещения, тестировать… Если бы речь шла об iPhone, количество актуальных моделей которого можно пересчитать по пальцам одной руки – поддержка уязвимости такого уровня была бы реализована ещё вчера. Но сотни модификаций чипсетов, использующихся в смартфонах с Android (причём каждая модель, для которой нужно запускать процесс разработки, попадёт в руки полиции в единичных экземплярах) делают такую разработку экономически нецелесообразной.
Для флагманских смартфонов на процессорах Qualcomm возможность извлечь данные через уязвимости выглядит приблизительно так:
- Для старых устройств (до Snapdragon 821 включительно) с известными уязвимостями иногда можно взломать код блокировки, если не установлен Secure Startup (способов обнаружено множество).
- Для старых устройств с включённым Secure Startup либо с шифрованием FBE — скорость перебора ограничена GateKeeper. Атака на «холодное» устройство (после перезагрузки или включения) практически не реализуется за исключением единичных популярных моделей (проблема «неуловимого Джо»).
- Для устройств начиная с Snapdragon 835 недоступны эксплойты EDL, недоступен эксплойт TEE, и даже в редких случаях, когда используется шифрование FDE, расшифровать содержимое раздела данных в общем случае довольно непросто (но в отдельных случаях можно, уязвимости уже обнаружены).
- Наконец, для новых устройств (SD835 и новее), в которых используется шифрование FBE, никакие эксплойты не работают: ключ шифрования зависит от пароля, а перебор — достаточно медленный (GateKeeper).
Как защитить свой смартфон от взлома кода блокировки и физического извлечения данных
Для начала нужно узнать, какая система шифрования используется на конкретном устройстве. Для этого выполним через ADB следующую команду:
adb shell getprop ro.crypto.type
Если команда вернула слово “file”, то смартфон использует шифрование FBE.
Если используется пофайловое шифрование FBE:
- Установите код блокировки длиной 6 цифр (если позволяет устройство).
- Отключите отладочный режим USB Debugging.
Если используется FDE, включите режим Secure Startup. Для этого:
- Зайдите в настройки и удалите текущий код блокировки.
- Создайте новый код блокировки. В процессе ввода кода блокировки система запросит, включить ли режим безопасной загрузки. Подтвердите запрос.
- Не забудьте отключить отладочный режим USB Debugging.
Можно ли изменить тип шифрования с FDE на FBE? В общем случае – нет. Возможность перейти с FDE на FBE была лишь у некоторых устройств Google (например, в планшете Pixel C) в процессе разработки FBE. Для современных устройств такой возможности нет.
Безопасность Android
Какие рекомендации обычно дают статьи, посвящённые безопасности Android? Использовать код блокировки посложнее или паттерн подлиннее; отключить Smart Lock; обновить Android; включить двухфакторную аутентификацию. Советы звучат логично, но при этом исключительно поверхностно, в стиле «как перестать переживать об информационной безопасности и начать жить». Между тем, для каждого второго смартфона на Android длина кода блокировки никак не влияет на безопасность; отключение Smart Lock бесполезно, если пользователь включил (или забыл выключить) отладочный режим USB debugging, а проверять обновления Android бесполезно, если производитель устройства затягивает с обновлениями.
Для начала составим свой список рекомендаций, а потом пройдёмся по некоторым пунктам подробно. Итак:
- Код блокировки. Он нужен, и желательно – не короче 6 цифр. При этом нужно проверить, какой механизм шифрования используется в смартфоне – FDE или FBE (это можно сделать описанной выше командой через adb), и если FDE, то необходимо включить режим безопасной загрузки Secure Startup (для этого код блокировки нужно сначала убрать, а потом создать заново, согласившись с запросом системы на включение безопасной загрузки).
- Отключите отладочный режим USB debugging. Любые другие действия бессмысленны, если этот режим – включён.
- Наверное, все в курсе, что разблокированный загрузчик – зияющая дыра в безопасности? Мы не будем даже рассматривать устройства с уже разблокированным загрузчиком, но если в настройках для разработчика (Developer settings) телефона есть пункт OEM unlock, а вы не собираетесь в ближайшее время разблокировать загрузчик – отключите его.
- Если в вашем телефоне есть настройка режима, в котором устройство должно быть доступно при подключении к компьютеру, выберите режим “только зарядка” (Charge only). В противном случае даже из заблокированного телефона удастся скопировать всё содержимое /sdcard, включая фото и видео. Если такой настройки нет, то проверьте, что происходит при подключении. Как правило, в современных устройствах режим Charge only будет выбран по умолчанию. Если это так – всё в порядке; если же по умолчанию выбран File Transfer или MTP – на безопасности можно ставить крест.
- Конечно, последняя версия Android – это хорошо, а актуальные патчи безопасности – и вовсе вещь обязательная. Проблема в том, что подавляющее большинство производителей безобразно затягивает с обновлениями, оставляя найденные уязвимости незакрытыми на многие месяцы (а то и годы). Если ваш телефон – не актуальный флагман, то о быстрых обновлениях можно забыть, а с дырами в безопасности — смириться. Но обновления всё равно проверить стоит.
- SmartLock – абсолютное зло с точки зрения безопасности. Отключите все виды SmartLock, включая разблокировку по лицу (только в SmartLock; если ваш телефон оборудован стереоскопическим сканером с инфракрасной подсветкой – совет не актуален).
- Заодно отключите задержку блокировки телефона, если она настроена (настрой Settings > Security & Location > Automatically lock > Immediately).
- Про установку из неизвестных источников. Не стоит держать этот переключатель в активном состоянии, он действительно делает телефон уязвимым. Кстати, в Android 8 отдельной настройки нет; разрешение выдаётся отдельным приложениям, управлять настройкой можно через пункт настроек Special app access.
- Не так давно в средствах массовой информации появилась шокирующая новость: оказалось, что ряд приложений для iPhone записывает действия пользователя и передаёт в виде аналитики скриншоты экрана, включая персональные данные, номера паспортов и кредитных карт. В Android скандала не произошло: абсолютно любое приложение с разрешениями Draw over other apps или запущенное в виде сервиса Accessibility может проделать то же самое. Проверьте соответствующие категории в настройках и запретите все приложения, для которых лично вы не выдавали данных разрешений.
- Проверьте пункт Device admin apps. Приложения из этой категории могут использоваться для того, чтобы дистанционно сменить код блокировки, заблокировать или разблокировать устройство, осуществить сброс к заводским настройкам. Если это Google Find My Phone или Exchange Admin, установленный работодателем, то всё хорошо. Проверьте, чтобы в списке не оказалось лишнего.
- Про встроенные производителями backdoors мы уже писали. Многие производители встраивают в прошивки своих телефонов средства для сбора аналитики. Время от времени оказывается, что «аналитика» — это и ваши контакты с паролями. По большому счёту, поделать тут особо ничего нельзя. Можно попробовать ограничить доступ аналитики в интернет (например, приложением AdGuard, установленным, кстати, из сторонних источников – с сайта разработчика, а не из Play Store), но если у вас на руках такой аппарат, то все возможные данные уже давно утекли. Такое устройство никогда не будет безопасным.
- Наконец, о приложениях из Play Store. Многие из них затребовали (и, скорее всего, получили) самые неожиданные разрешения. Например, приложению Angry Birds пользователь мог дать доступ к камере, микрофону и контактам (зачем?), продвинутому калькулятору – доступ к местоположению, а красивой фотогалерее – разрешение на чтение и отправку SMS. Зайдите в список разрешений приложений; для большинства пользователей простой анализ выданных разрешений становится большим сюрпризом.
- Не храните пароль от Google Account в браузере Chrome. Его будут искать в первую очередь.
- Включите двухфакторную аутентификацию. Без комментариев; на эту тему мы писали не раз и не два.
Отложенная блокировка
Читать статью полностью: https://blog.elcomsoft.com/ru/2019/07/antikriminalistika-kak-zashhitit-smartfon-na-android/