В недавнем обновлении iOS Forensic Toolkit мы добавили поддержку новых-старых версий ОС от Apple, работающих на ряде моделей с чипами, в которых существует уязвимость загрузчика checkm8. В список не вошёл ни один iPhone — просто потому, что Apple давно прекратил поддержку старых iPhone в новых версиях iOS. А вот старые iPad, Apple TV и HomePod получили и продолжают получать обновления. Об этом и о том, как извлечь данные из этих устройств — в сегодняшней статье.
В двух словах, checkm8 — это эксплойт уязвимости загрузчика, найденной в целом ряде моделей Apple. Эксплойт работает на нескольких поколениях чипов Apple вплоть до процессора A11 — на котором, напомним, были выпущены смартфоны iPhone 8, 8 Plus и iPhone X. Однако в список входят далеко не только iPhone: эксплойту подвержены и планшеты iPad, и приставки Apple TV, и колонки HomePod, и даже часы Apple Watch — разумеется, не все, а лишь те, в которых используются процессоры до A11.
Несмотря на свою «аппаратную» природу, checkm8 всё-таки не стал универсальным решением: один лишь checkm8 не позволяет перебирать пароли (для этого нужен отдельный эксплойт SEP), и из защищённых неизвестным паролем телефона по-прежнему невозможно извлечь данные. Более того, для устройств на процессоре A11 (то есть, iPhone 8/8 Plus/X) разработчики Apple применили дополнительный патч SEP, который не позволяет разблокировать диск, если на телефоне когда-либо был установлен пароль — даже если он известен и даже если на момент извлечения его уже удалили. То есть, сам checkm8 продолжает работать, но вот использовать его для извлечения данных из этих устройств уже не выйдет.
Ни одно другое устройство Apple подобной дополнительной защиты не получило, и из таких моделей, как iPad 6 и 7, iPad Pro 2, Apple TV HD и 4K первого поколения, а также колонок HomePod первого поколения данные можно извлекать независимо от того, какая версия ОС на них установлена. Всё-таки — универсальное решение, хотя бы для этих моделей? И снова — нет: в iOS 17 разработчики Apple изменили механизм работы с ключами, в результате чего снова перестало работать монтирование раздела данных несмотря на то, что сам эксплойт отрабатывал корректно. Нам потребовалось время на исследование этого механизма. Но в iOS 26 (и её производных iPadOS, tvOS и AudioOS) механизм снова изменился; над этим мы ведём работу прямо сейчас.
Отметим, что checkm8 работает и с часами Apple Watch вплоть до Series 3; для более новых моделей доступно только ограниченное логическое извлечение.
Картина, в которой крупные обновления iOS и её модификаций привязаны к моделям процессора насколько привлекательна, настолько и неверна. С одной стороны, новые версии iOS действительно выходят для новых моделей iPhone, но уже период времени, в течение которого поддерживаются разные модели iPhone на разных чипах, различно для разных поколений iPhone. До сих пор непонятно, будут ли отличаться сроки поддержки новыми версиями iOS для, к примеру, модель iPhone 15, в которой чип от предыдущего iPhone 14 Pro, или iPhone 16, который заимствовал SoC из iPhone 15 Pro.
Когда в игру вступают другие устройства экосистемы, теория и вовсе перестаёт работать. К примеру, iPad 6 и 7 построены на одном и том же процессоре А10, но первый получил лишь iPadOS 17, а для второго доступна и iPadOS 18. Кстати, для iPhone 7 на том же процессоре вышла всего лишь iOS 15, а для приставки Apple TV HD на ещё более старом SoC поколения A8 доступна последняя версия tvOS 26. Всё это, с одной стороны, немного запутывает, зато с другой — открывает интересные возможности по изучению внутренних механизмов разных версий операционных систем на чипах со слабой защитой.
В новой версии iOS Forensic Toolkit мы добавили поддержку checkm8 для 17 и 18 поколений iOS (точнее — для её вариантов iPadOS, tvOS, audioOS). С этими версиями ОС совместимы такие модели, как iPad 6 и 7, iPad Pro 2, AppleTV HD, AppleTV 4K (1 поколения) и оригинальная модель умной колонки HomePod. Обновление интересно в первую очередь тем, что позволяет извлекать данные из устройств длительного использования, которые часто можно обнаружить в доме подозреваемого. Приставки и умные колонки невозможно защитить кодом блокировки (что радикально упрощает извлечение), но они всё же участвуют в синхронизации iCloud, что позволяет получить доступ к части данных, синхронизированных с основного устройства пользователя. Кроме того, образы файловой системы из ОС 17-й и 18-й версий помогают исследовать внутренние структуры данных, которые меняются от версии к версии.
Про checkm8 для разных устройств мы писали неоднократно, поэтому здесь — только короткая шпаргалка («//» отбиты комментарии, их в состав команды включать не нужно).
Для начала переведите устройство в режим DFU и подключите его к компьютеру. Далее выполните команды:
./eift_cmd boot -w // загрузка устройства и запуск эксплойта
./eift_cmd loadnfcd // загрузка необходимых библиотек
./eift_cmd unlockdata -s // разблокировка данных
./eift_cmd ramdisk keychain -o {filename.xml} // извлечение и расшифровка связки ключей
./eift_cmd ramdisk tar -o {filename.tar} // извлечение и расшифровка образа файловой системы
./eift_cmd ssh halt // выключение устройства
Разблокировка раздела данных выглядит следующим образом:
А так выглядит извлечение связки ключей:
В условиях, когда старые устройства продолжают активно использоваться и поддерживаться производителям, нельзя недооценить важность комплексного подхода и необходимости осмотра и экспертизы всех доступных устройств. Старые устройства — такие, как Apple TV или оригинальный HomePod, — продолжают активно участвовать в синхронизации данных в облаке iCloud, не обладая при этом стойкой защитой, а старые модели планшетов iPad и вовсе могут содержать практически те же данные (синхронизированные через облако), что и самые современные iPhone. Даже старые эксплойты продолжают быть полезны для исследования как самих устройств, так и структур данных в новых версиях операционных систем Apple.