При низкоуровневом извлечении данных из устройств под управлением iOS с использованием эксплойта checkm8 иногда может потребоваться удалить (сбросить) код блокировки экрана. Сброс кода блокировки приводит к ряду нежелательных последствий; по возможности данной процедуры желательно избегать. В этой статье мы расскажем, при каких обстоятельствах требуется сбрасывать код блокировки экрана, когда этого можно избежать, к каким последствиям это приводит и почему даже сброс пароля не всегда помогает извлечь данные.
В iOS Forensic Toolkit версии 8.55 нам удалось обойти требование по сбросу кода блокировки для подавляющего большинства устройств, для которых оно ранее требовалось. В то же время для трёх устройств (iPhone 8, 8 Plus, iPhone X), работающих под управлением iOS 14 или 15, сбрасывать код блокировки экрана по-прежнему приходится, если требуется использовать checkm8 — но вовсе не обязательно, если использовать альтернативный метод извлечения данных.
checkm8 — эксплойт уязвимости, найденной в ряде моделей iPhone и других устройств Apple, позволяющий исполнять произвольный код независимо от того, какая версия iOS установлена на устройстве. Использование этой уязвимости в iOS Forensic Toolkit позволяет загрузить устройство в специальный образ, не использующий основной операционной системы, установленной на телефоне. Желаемый конечный итог — эскалация привилегий, извлечение образа файловой системы и расшифровка связки ключей.
Для большинства устройств, подверженных эксплойту, всё работает именно таким образом: устройство подключается к компьютеру с iOS Forensic Toolkit, загружается в нужный режим, после чего из него извлекаются все возможные данные. Но для некоторых устройств прямолинейный подход не срабатывает.
Несмотря на то, что уязвимость кроется в жёстко прошитом коде загрузчика в большом количестве моделей, выпускавшихся на протяжение многих лет, в последних поколениях iPhone, в которых присутствует уязвимость, разработчикам Apple удалось в большой степени нивелировать её эффект.
С выходом iOS 14 разработчики Apple усложнили работу экспертов-криминалистов, усилив защиту сопроцессора Secure Enclave (SEP) для устройств на платформах A10 и A11 (это – модели от iPhone 7 и 7 Plus до iPhone 8, 8 Plus и iPhone X). На тот момент защиту можно было обойти, удалив с iPhone код блокировки экрана; впоследствии для процессоров A10 появился дополнительный эксплойт SEP, который позволил обойтись без удаления кода блокировки на iPhone 7 и 7 Plus, работавших под управлением iOS 14 и 15 (iOS 16 для этих моделей не вышла). В то же время для iPhone 8, 8 Plus и iPhone X такого эксплойта не появилось, и для извлечения данных из этих устройств, если на них установлена iOS 14 или 15, по-прежнему нужно удалять код блокировки экрана.
С выходом iOS 16, доступной для iPhone 8, 8 Plus и iPhone X, доступ к разделу данных посредством эксплойта checkm8 стал невозможным, если на устройстве хотя бы раз с момента начальной настройки устанавливался код блокировки экрана. Важно понимать, что уязвимость загрузчика как такового не исправлена (исправить уязвимость самого загрузчика по-прежнему невозможно), но смонтировать раздел с пользовательскими данными уже не получится. Сопроцессор Secure Enclave Processor (SEP) отвечает за хранение ключей и шифрование данных, и получить доступ к зашифрованным данным не удастся, если на iPhone хоть раз с момента начальной настройки использовался код блокировки экрана. Если же iPhone 8, 8 Plus или iPhone X был настроен и использовался без кода блокировки (сценарий, мягко говоря, далёкий от реальности), то доступ к данным по-прежнему возможен. Более старые устройства не получили ни патча, ни, собственно, iOS 16, поэтому на них это ограничение не распространяется. Нет его и на других устройствах, которые получили iOS 16, но работают на более старых процессорах — таких, как ряд моделей iPad.
Таким образом, для извлечения данных через эксплойт загрузчика код блокировки экрана нужно сбрасывать в следующих случаях:
Однако не торопитесь сбрасывать код блокировки: сброс ведёт к целому ряду неприятных последствий, и в ряде случаев без него можно обойтись.
Сброс кода блокировки можно осуществить несколькими способами. Во-первых, это можно сделать через настройки: Settings, Face ID & Passcode, Turn Passcode Off. На устройствах с Touch ID, соответственно, используйте последовательность Settings, Touch ID & Passcode, Turn Passcode Off. В любом случае, вам потребуется оригинальный код блокировки экрана.
Второй способ сбросить код блокировки экрана — через функцию Reset All Settings (потребуется ввести оригинальный код блокировки экрана), однако для наших целей он избыточен и используется, в основном, в случаях, когда необходимо сбросить пароль к резервной копии.
Вполне возможно, что код блокировки вам удалить не удастся, даже если вы точно знаете оригинальный пароль. Политики безопасности и политики MDM, «полётный» режим устройства, ограничения «Экранного времени» и некоторые другие настройки могут запрещать удаление кода блокировки экрана. И если с паролем «Экранного времени» можно попробовать что-то сделать, то внешние политики безопасности могут быть вне вашего контроля. О возможных проблемах при сбросе кода блокировки экрана и способах их решения мы написали подробную статью — Удаление кода блокировки с iPhone: подводные камни и проблемы.
Удаление кода блокировки удалит и те данные, которые зависят от наличия на устройстве данной настройки безопасности. Сброс кода блокировки исключает iPhone из «доверенного круга устройств», которые могут синхронизировать в iCloud облачную связку ключей, данные «Здоровья», сообщения и некоторые другие данные. Кроме того, удаление кода блокировки приводит к тому, что с устройства удаляются скачанные сообщения Exchange (если они были) и обнуляется история транзакций Apple Pay. Наконец, после удаления пароля вы более не сможете сбросить или изменить с данного устройства пароль от Apple ID, если на вашей учётной записи активирована двухфакторная аутентификация (точнее, сможете это сделать через браузер, указав старый пароль и пройдя проверку двухфакторной аутентификацией).
По указанным причинам причине удаление пароля — крайняя мера, идти на которую стоит лишь после тщательной оценки всех «за» и «против». Если вы всё же вынуждены сбросить код блокировки экрана, убедитесь, что предварительно была сделана резервная копия устройства (даже если она защищена паролем), извлечены медиа-файлы по протоколу AFC и сохранены журналы диагностики и файлы приложений.
Итак, мы выяснили, что сброс кода блокировки может оказаться необходимым для извлечения данных через эксплойт загрузчика только для телефонов iPhone 8, 8 Plus и iPhone X на процессоре A11, работающих под управлением iOS 14 или 15 (поддержка iOS 16 для этих моделей весьма условна, поэтому сброс кода блокировки при данных условиях будет бесполезен). В то же время для тех же устройств может быть доступен альтернативный способ низкоуровневого анализа, не требующий сброса кода блокировки экрана.
Если исследуемое устройство работает на iOS 14, 15 или 16 (на текущий момент — до iOS 16.5.1 включительно), наиболее полным, эффективным и безопасным методом извлечения будет агент-экстрактор из комплекта iOS Forensic Toolkit. Агент-экстрактор не требует снятия кода блокировки.
Обратите внимание! Для следующих моделей iPad ранее требовалось сбрасывать код блокировки экрана, если они работали под управлением iOS 16:
С выходом iOS Forensic Toolkit 8.55 такой необходимости больше нет. Рекомендуем обновить версию iOS Forensic Toolkit, если у вас установлена более старая.
Нужно упомянуть, что альтернативные решения от наших конкурентов требуют сбрасывать код блокировки экрана в существенно большем диапазоне, чем это делает наше решение. В iOS Forensic Toolkit используются все актуальные эксплойты, включая эксплойт SEP для процессоров A10. Соответственно, при использовании наших продуктов сбрасывать код блокировки требуется исключительно в случаях, когда обойтись без этого даже теоретически невозможно.
Elcomsoft iOS Forensic Toolkit – специализированный инструмент для проведения криминалистического анализа устройств, работающих под управлением Apple iOS. Для анализа доступна вся пользовательская и системная информация, а также зашифрованные данные из системного хранилища (связка ключей).