Блог Элкомсофт

«…Восстановление паролей, расшифровка данных,
мобильная и облачная криминалистика… »


Новый класс jailbreak для iOS 12: теперь rootless

Февраль 28th, 2019 by Oleg Afonin
  • 3
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
    3
    Shares

В конце прошлого года специалист Google Project Zero опубликовал информацию об уязвимости, присутствующей во всех версиях iOS 10 и 11 вплоть до 11.1.2. Сообщество разработчиков быстро использовало уязвимости для создания целого ряда джейлбрейков – Meridian, LiberIOS, Electra, Unc0ver… Чуть позднее появилась информация об уязвимости, обнаруженной и в последних версиях iOS 11 вплоть до самой последней iOS 11.4.1. Наконец, командой Google Project Zero были опубликованы уязвимости, обнаруженные в iOS 12.0 – 12.1.2. В двенадцатой версии iOS система безопасности претерпела заметные изменения, и полноценный джейлбрейк (с собственным магазином приложений и отключенной проверкой цифровой подписи) задерживался. А в феврале 2019 для iOS 12 выходит принципиально новое поколение джйлбрейк. Встречайте rootlessJB: без Cydia, без возможности устанавливать твики – но с полноценной поддержкой SSH и доступом к файловой системе.

Что такое rootless, чем отличается от полноценных джейлбрейков и как их использовать в целях криминалистического анализа iPhone? Попробуем разобраться.

Использование уязвимости в iOS для эскалации привилегий

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

Apple постоянно совершенствует механизмы защиты пользовательских данных. Так, для iPhone 4 нам удалось разработать механизм, позволяющий обойти все защитные меры устройства на уровне загрузчика, то уже для iPhone 4s нам потребовалось использовать джейлбрейк для доступа к данным. Тем не менее, даже для iPhone 5 и 5c был доступен способ физического извлечения данных посредством копирования всего раздела данных устройства целиком с его последующей расшифровкой. Ключ для расшифровки раздела данных также без проблем извлекался с jailbreak.

Ситуация изменилась с выходом iPhone 5s, оборудованного 64-разрядным процессором. В iPhone 5s (и всех более новых iPhone за исключением iPhone 5c) встроена подсистема безопасности Secure Enclave. Её использование делает невозможным извлечение криптографического ключа, посредством которого защищён раздел пользовательских данных. Из 64-битных iPhone всё ещё можно извлечь копию раздела данных, но расшифровать её уже невозможно.

Мы нашли выход из ситуации, использовав альтернативный подход. Теперь вместо извлечения раздела данных из устройства копируется образ файловой системы – все папки, файлы и symlink-и пользовательского раздела. Расшифровка данных осуществляется самим телефоном.

Разумеется, ни одно пользовательское приложение не может штатным образом получить доступ к «чужим» данным. Для этого предусмотрены механизмы, ограничивающие привилегии процессов. Каждое приложение (не только в iOS) выполняется в собственной «песочнице», «сбежать» из которой можно лишь с использованием недокументированных ошибок в операционной системе. Именно таким способом осуществляют копирование данных комплексы GrayKey и сервис Cellebrite.

Похожим образом работает Elcomsoft iOS Forensic Toolkit. Для работы iOS Forensic Toolkit требуется установка на устройство одной из совместимых утилит джейлбрейк.

Классические (так называемые «полные») джейлбрейки – вещь достаточно тяжёлая как в разработке, так и в использовании. Особенно это касается использования в рамках криминалистического анализа. Классический джейлбрейк предназначен в первую очередь для энтузиастов, которые хотят вмешаться в работу системы, модифицировать оболочку или установить на iPhone нелицензионное ПО минуя процесс покупки в App Store. Соответственно, в классическом джейлбрейке предусмотрены механизмы, отключающие проверку цифровой подписи; в составе дистрибутива распространяется ряд утилит, среди которых сторонний магазин приложений Cydia. Поддержка Cydia – сложный процесс: разработчикам джейлбрейков приходится обеспечивать совместимость с Cydia Substrate, обеспечивать возможность установки сторонних приложений и их последующую беспроблемную работу.

Все эти задачи – нетривиальны сами по себе. Просто получить привилегии суперпользователя недостаточно: в современных джейлбрейках используются длинные цепочки уязвимостей, что делает процесс их установки чрезвычайно капризным, а последующую работу – нестабильной.

Другой недостаток классических «полных» джейлбрейков с точки зрения эксперта-криминалиста – глубокое и перманентное вмешательство в работу операционной системы. Самый простой и одновременно самый «грязный» способ запустить неподписанное приложение в iOS – это разместить его в системном разделе. Для этого джейлбрейк перемонтирует файловую систему и модифицирует системный раздел, в котором содержатся файлы самой операционной системы. Модификация системного раздела исключает последующие обновления устройства «по воздуху». Невозможно становится полностью и бесследно удалить джейлбрейк из системы – даже несмотря на слепок файловой системы, который создают многие такие утилиты. Фактически, единственным способом восстановить нормальный функционал устройства после использования «полного» джейлбрейк становится сброс к заводским настройкам в процессе восстановления прошивки через iTunes. Повторить джейлбрейк будет невозможно: Apple активно работает над закрытием уязвимостей, а установить на iPhone можно лишь те версии iOS, которые разрешает компания.

Все эти проблемы решены в новом классе джейлбрейк, получившем название «rootless».

Что такое Rootless Jailbreak

Мы разобрались в том, что из себя представляют классические «полные» джейлбрейки. Что же такое rootless jailbreak?

Rootless jailbreak – своеобразная «облегчённая» версия классического джейлбрейк. В rootless jailbreak полностью отказались от перемонтирования файловой системы и модификации системного раздела; это позволяет, в частности, совершенно безболезненно устанавливать и удалять джейлбрейк без какого-либо вреда для системы.

Поскольку rootless jailbreak не использует перемонтирование системы, то и доступа к корню файловой системы «/» у него нет. Пользователям rootless jailbreak доступны файлы и каталоги исключительно пользовательских данных, начиная с уровня «/var». Именно эти данные интересуют криминалистов; системный образ операционной системы в процессе криминалистического анализа не нужен.

Безопасность rootless jailbreak

Утилиты класса rootless jailbreak намного безопаснее для устройства в сравнении с классическими, полными джейлбрейками. Rootless jailbreak не имеет и не предоставляет сторонним утилитам возможности записи в системный раздел.

Важным достоинством rootless jailbreak с точки зрения экспертов-криминалистов является его доступность в виде исходных кодов. Исследование исходных кодов позволяет определить и документировать файлы, которые были изменены самим джейлбрейком. Быстрый анализ показал, что после установки rootlessJB в системе изменяются как минимум следующие файлы:

  • /var/containers/Bundle/Application/rootlessJB – сама утилита джейлбрейк
  • /var/containers/Bundle/iosbinpack64 – дополнительные утилиты
  • /var/containers/Bundle/iosbinpack64/LaunchDaemons – системные службы запуска
  • /var/containers/Bundle/tweaksupport – эмуляция файловой системы для установки твиков и дополнительных приложений
  • Symlink-и: /var/LIB, /var/ulb, /var/bin, /var/sbin, /var/Apps, /var/libexec

Помимо прочего, следы rootless jailbreak останутся в некоторых системных журналах и логах, что является неизбежным в процессе использования джейлбрейка.

Установка rootlessJB

Начиная с iOS 10 процесс установки джейлбрейк был стандартизован. Джейлбрейк устанавливался на устройство с компьютера посредством Cydia Impactor, после чего пользователю нужно было подтвердить доверенный статус сертификата и запустить джейлбрейк на устройстве.

rootlessJB использует другой процесс: его можно установить без компьютера, просто открыв ссылку в браузере Safari непосредственно на телефоне. Вопросы безопасности такого процесса оставим за рамками этой статьи; если требуется установка джейлбрейка на телефон без связи с интернетом, пользователь может скачать исходные коды утилиты с https://github.com/jakeajames/rootlessJB3, скомпилировать собственный IPA файл, подписать его посредством учётной записи Apple ID, зарегистрированной в программе Apple для разработчиков и передать его на устройство. Мы же используем более простой способ, описанный ниже.

Обратите внимание: на момент публикации этой статьи rootlessJB доступен для iPhone 6s, SE, 7, 7 Plus, 8, 8 Plus и iPhone X. Поддержка iPhone 5s и 6 уже доступна, но работает нестабильно, а поддержка iPhone Xr, Xs и Xs Max находится в стадии разработки.

  1. На телефоне запустите браузер Safari и откройте ссылку app.ignition.fun.
  2. Выберите из списка rootlessJB by Jake James.
  3. Нажмите Get.
  4. IPA файл джейлбрейка будет скачан и установлен.
  5. Откройте настройки и подтвердите доверенный статус сертификата. Внимание: потребуется ввести код блокировки устройства (если он установлен). 
  6. Запустите rootlessJB.
  7. Оставьте опции iSuperSU и Tweaks выключенными и нажмите “Jailbreak”.
  8. После того, как утилита отработает, вам станет доступным содержимое файловой системы.

Извлечение данных

Для того, чтобы извлечь содержимое файловой системы, вам потребуется iOS Forensic Toolkit версии 5.0 или более новой.

  1. Запустите iOS Forensic Toolkit командой “Toolkit-JB”.
  2. Подключите iPhone к компьютеру при помощи кабеля. Вам потребуется разблокировать устройство и подтвердить запрос “Trust this computer?” (требуется ввести код блокировки).
  3. Порт SSH — 22.
  4. В первую очередь отключите блокировку экрана командой “D” (DISABLE LOCK). Это необходимо сделать для последующего извлечения данных.
  5. Для извлечения файловой системы используйте команду “F” (FILE SYSTEM).
  6. Когда приложение запросит пароль root@localhost, введите alpine. Пароль будет запрошен несколько раз.
  7. Образ файловой системы будет сохранён в формате TAR.
  8. По завершении процесса отключите устройство.

Расшифровка связки ключей keychain

Физический доступ к устройству — единственный способ расшифровать абсолютно все записи из связки ключей iOS keychain вне зависимости от класса защиты записей. Для расшифровки связки ключей используйте следующие шаги.

  1. Установите rootless jailbreak и запустите iOS Forensic Toolkit 5.0 или более новый командой “Toolkit-JB”.
  2. Порт SSH — 22, пароль суперпользователя — alpine
  3. Перед началом расшифровки используйте команду “D” (DISABLE LOCK) для исключения возможности самопроизвольной блокировки экрана в процессе работы.
  4. Введите команду “K” (KEYCHAIN). Содержимое связки ключей будет извлечено и экспортировано в файл в формате XML.
  5. Выберите версию iOS (второй вариант — iOS 9.x+).
  6. Пароль — alpine
  7. Содержимое связки ключей извлекается и расшифровывается.
  8. По завершении процесса отключите телефон от компьютера.

Обратите внимание: если вы видите следующее сообщение об ошибке, воспользуйтесь командой «D» для исключения самопроизвольной блокировки экрана устройства в процессе работы программы.

 

Анализ извлечённых данных

Для анализа образа файловой системы рекомендуем воспользоваться утилитой Elcomsoft Phone Viewer. Для просмотра содержимого связки ключей используйте приложение Elcomsoft Phone Breaker.

Заключение

Выход нового поколения джейлбрейк упрощает и облегчает процесс извлечения данных из устройств под управлением iOS 12.0 – 12.1.2, делая его более предсказуемым и безопасным в сравнении с использованием классических jailbreak. Rootless jailbreak более стабилен и надёжен в сравнении с предшественниками; его можно устанавливать и удалять без негативных последствий для устройства.


  • 3
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
    3
    Shares

Tags: , ,

Подписаться на рассылку о новостях и новинках компании ElcomSoft

Комментирование статьи отключено