С выходом iOS 16 процесс извлечения данных из многих устройств, для которых доступен низкоуровневый метод с использованием уязвимости загрузчика, стал более сложным из-за ряда изменений как в сопроцессоре Secure Enclave, так и в структуре файловой системы системного RAM-диска. Благодаря последним усовершенствованиям в iOS Forensic Toolkit нам удалось добавить поддержку этого поколения iOS в редакции для Linux и заметно улучшить работу в редакции для macOS.
Это стало возможным благодаря использованию нашей собственной разработки, позволяющей редактировать содержимое RAM-дисков в формате APFS. В редакции для Linux для совместимых устройств теперь поддерживается полное извлечение файловой системы и связки ключей из всех версий iOS 16 вплоть до 16.7.6 включительно. Так же, как и в редакции для macOS, в версии для Linux поддерживаются устройства на архитектуре A11 Bionic и более ранних процессорах, включая ряд моделей iPhone, iPad, Apple TV и Apple HomePod. Для моделей на процессорах A5/A5X (например, iPhone 4s) по-прежнему требуется аппаратный микроконтроллер Raspberry Pi Pico. Актуальная матрица совместимости — на инфографике:
При использовании низкоуровневого метода извлечения checkm8 наш продукт получает необходимую для загрузки устройства оригинальную прошивку (для этого пользователю нужно её скачать или вставить ссылку на скачивание), после чего модифицирует её RAM-диск для последующей загрузки в режим pwned DFU. В версиях iOS до 15 включительно в качестве файловой системы RAM-диска выступала HFS, несмотря на то, что на разделе данных уже давно (с iOS 10.3) использовалась APFS.
Ранее мы использовали собственную реализацию для работы с дисками HFS. Благодаря этому ни в macOS, ни в Linux проблем с монтированием прошивок в формате IPSW не возникало: в процессе работы наш продукт монтировал образ RAM-диска, вносил необходимые изменения и получал нужный для загрузки в pwned-режиме образ.
После обновления до iOS 16 мы столкнулись с изменением формата RAM-диска, в котором вместо HFS стала использоваться файловая система APFS. Старый подход перестал работать. На macOS мы изначально обошли проблему, использовав утилиту hdiutil: на компьютере пользователя возникал запрос, требующий подтверждения с последующей аутентификацией паролем или через Touch ID.
На других платформах подобных встроенных возможностей нет, а положиться на существующие сторонние решения мы не могли: даже если забыть о том, что большинство подобных решений могут работать только в режиме чтения, нет никакой гарантии, что собранный посредством таких утилит образ сможет корректно загрузить устройство. По этой причине мы не могли модифицировать содержимое RAM-диска в Linux, и вынуждены были выпустить Linux-версию iOS Forensic Toolkit без поддержки iOS 16 в checkm8.
Наконец, в последнем обновлении iOS Forensic Toolkit нам удалось полноценно решить эту проблему, разработав собственное решение, подобное тому, которое использовалось для RAM-дисков в формате HFS. В результате извлечение становится возможным как на компьютерах Linux, так и Windows (на последних, впрочем, по-прежнему не решена проблема перевода устройства в режим pwned DFU, поэтому релиз с полноценной поддержкой checkm8 для Windows откладывается), а на компьютерах с macOS более не будет отображаться всплывающее окно hdutil.
С этими нововведениями извлечение данных из iOS 16 с использованием checkm8 становится проще. checkm8 поддерживается на следующих устройствах:
С выходом iOS 16 разработчики Apple усложнили работу экспертов-криминалистов. Мы уже писали о патче сопроцессора Secure Enclave (SEP) для устройств на платформе A11 (это – iPhone 8, 8 Plus и iPhone X), который сделал невозможным доступ к разделу данных посредством эксплойта checkm8, если на устройстве хотя бы раз с момента начальной настройки устанавливался код блокировки экрана.
Важно понимать, что уязвимость загрузчика как такового не исправлена (исправить уязвимость именно загрузчика невозможно), но смонтировать раздел с пользовательскими данными уже не получится: сопроцессор Secure Enclave Processor (SEP) отвечает за хранение ключей и, собственно, шифрование, и получить доступ к зашифрованным данным не удастся, если на iPhone хоть раз с момента начальной настройки использовался код блокировки экрана. Если же iPhone 8, 8 Plus или iPhone X был настроен и использовался без кода блокировки, то доступ к данным по-прежнему возможен. Более старые устройства не получили ни патча, ни, собственно, iOS 16, поэтому на них это ограничение не распространяется. Нет его и на других устройствах на процессоре А11, поддерживающих iOS 16 — iPad, Apple TV и HomePod.
Elcomsoft iOS Forensic Toolkit – специализированный инструмент для проведения криминалистического анализа устройств, работающих под управлением Apple iOS. Для анализа доступна вся пользовательская и системная информация, а также зашифрованные данные из системного хранилища (связка ключей).