Эксплойт сheckm8 для iOS-устройств, появившийся в сентябре 2019 года, открыл исследователям и криминалистам интересные перспективы в области изъятия (с последующим анализом) данных из подобных устройств. Можно ли извлечь информацию из повреждённого iPhone, подобрать PIN-код заблокированного устройства? Ответить на подобные вопросы стало проще.
- История разработки джейлбрейков на базе эксплойта сheckm8
- Краткий глоссарий
- Извлечение и анализ данных из iPhone с помощью Belkasoft Evidence Center
- 3.1. Почему Belkasoft?
- 3.2. Извлечение файловой системы и связки ключей
- 3.3. Анализ извлечённых данных
- Перспективы использования джейлбрейков на базе эксплойта сheckm8
- 4.1. Извлечение полной файловой системы
- 4.2. Извлечение связки ключей (keychain)
- 4.3. Разблокировка iPhone
- 4.4. Извлечение данных из заблокированных iPhone
- 4.5. Извлечение данных из повреждённых iPhone
- Выводы
История разработки джейлбрейков на базе эксплойта сheckm8
27 сентября 2019 года пользователь Twitter под псевдонимом axi0mX анонсировал эксплойт сheckm8 — средство использования уязвимости, которая ставила под удар информацию, находящуюся на миллионах устройств (от iPhone 4s до iPhone X), выпущенных компанией Apple. Свой пост он позднее удалил, но в интернете можно найти его копию.
Рисунок 1. Сообщение пользователя под псевдонимом axi0mX в социальной сети Twitter
После публикации этой информации некоторые компании, занимающиеся разработкой криминалистических программ для исследования мобильных устройств, и группы энтузиастов начали создание собственных джейлбрейков на основе данного эксплойта. Их исследования завершились успехом. Сегодня наиболее известными разработками на основе сheckm8 являются checkra1n и King. Кроме того, были разработаны приватные джейлбрейки, применяемые в платных криминалистических программных продуктах.
Краткий глоссарий
Для того чтобы читатель лучше понимал процессы, описанные в статье, разъясним некоторые термины.
Джейлбрейк (jailbreak) — это процедура, которая позволяет получить полный доступ к файловой системе устройства под управлением операционной системы iOS, а также программа, применяемая в этих целях. Джейлбрейк необходим, например, для установки приложений из сторонних источников. В криминалистике он может использоваться для извлечения полной файловой системы или связки ключей (keychain).
Привязанный джейлбрейк (tethered) — вариант реализации, где требуется делать процедуру джейлбрейка заново после каждой перезагрузки аппарата.
Связка ключей (keychain) — технология, позволяющая хранить в защищённом виде конфиденциальные данные пользователя: имена и пароли для веб-сайтов, параметры кредитных карт, сведения для подключения к беспроводным сетям, приватные ключи, сертификаты и т.п. Для защиты данных в связке ключей используется 256-битное шифрование по алгоритму AES.
SecureROM (BootROM) — область, содержащая код, который процессор запускает первым при включении питания или перезагрузке устройства. Обычно этот код приводит в действие загрузчик из памяти устройства или (если последнее находится в режиме DFU) данные, которые поступают по интерфейсу USB. Затем SecureROM переходит к проверке подписи загруженной программы с помощью встроенных криптографических алгоритмов. Данные в SecureROM доступны только для чтения.
Загрузчик (bootloader) — программа, запускаемая для загрузки и старта операционной системы при включении устройства. В iOS загрузчик играет важную роль в обеспечении её безопасности. Он, помимо прочего, отвечает за то, чтобы в устройство был загружен неповреждённый код и только то программное обеспечение, которое имеет цифровую подпись компании Apple.
AFU (After First Unlock) — режим, в котором находится устройство под управлением операционной системы iOS, когда введён правильный пароль пользователя после перезагрузки устройства или включения питания. Это — менее защищённый режим по сравнению с BFU, описанным далее. В устройстве, находящемся в режиме AFU, файлы не шифруются и могут быть извлечены программами для криминалистического исследования.
BFU (Before First Unlock) — режим, в котором устройство находится до момента ввода правильного пароля пользователя после перезагрузки устройства или включения питания. Другими словами, после того как вы перезагрузите или включите iPhone, ваше устройство переходит в режим BFU и остаётся в нём до тех пор, пока вы не введёте свой пароль. В этом режиме большая часть файлов остаётся зашифрованной.
DFU (Device Firmware Update) — процесс обновления прошивки iOS-устройств. Он позволяет пользователям вносить изменения в системное программное обеспечение. Это необходимо, например, при восстановлении работоспособности устройства, имеющего программные повреждения, или в случае необходимости понизить версию операционной системы. Также его можно использовать для джейлбрейка.
Процесс ввода устройства в режим DFU может быть очень капризным. От исследователя требуется чёткое соблюдение всех инструкций. Дополнительную сложность придаёт то, что в этом режиме устройство выглядит точно так же, как выключенное.
Сheckm8 — эксплойт для уязвимости в BootROM, т.е. в коде устройства, который отвечает за первоначальную загрузку. Сheckm8 позволяет получить права суперпользователя на всех устройствах Apple, выпущенных в период с 2011 по 2017 год (включая все модели с iPhone 4s по iPhone X), и для всех существующих версий операционной системы iOS. Данная уязвимость является неустранимой: для её исправления Apple нужно отозвать миллионы устройств по всему миру и заменить в них код BootROM.
Сheckm8 выполняет привязанный джейлбрейк, т.е. код эксплойта находится в оперативной памяти устройства (RAM) и после перезагрузки пользователь не увидит никаких явных следов того, что устройство подвергалось взлому. Существует несколько реализаций джейлбрейков на основе сheckm8 (например, описанный далее checkra1n), хотя некоторые разработчики пошли своим путём и разработали собственные уникальные джейлбрейки (такие как Cellebrite).
Подробный технический анализ эксплойта сheckm8 дан в статье «Technical analysis of the checkm8 exploit».
Checkra1n — полупривязанный джейлбрейк на основе сheckm8, разработанный группой энтузиастов. На сегодня он является одной из «топовых» программ для взлома iOS-устройств. Первоначально данный джейлбрейк был разработан только под macOS, потом — портирован под Linux. Сейчас предпринимаются попытки портировать его под Windows. После того как появилась версия checkra1n для Linux, энтузиасты смогли запустить его на устройстве под управлением операционной системы Android.
Рисунок 2. Джейлбрейк checkra1n, портированный под Android
Извлечение и анализ данных из iPhone с помощью Belkasoft Evidence Center
Почему Belkasoft?
При использовании джейлбрейков, разработанных на основе эксплойта сheckm8, исследователи столкнулись со следующими проблемами:
- Для использования джейлбрейка необходим аккаунт разработчика Apple. Его стоимость составляет 99 долларов США в год. Не каждый имеет бюджет, позволяющий потратить такую сумму.
- Первоначально джейлбрейки были разработаны для macOS. Не у всех есть возможность использовать устройства с macOS или виртуальные машины с ней.
- Джейлбрейки на базе checkm8 оставляют артефакты в файловой системе исследуемого устройства. Это позволяет установить факт взлома. Кроме того, подобные действия противоречат принципу неизменности исследуемого цифрового доказательства, принятому в криминалистике.
Интегрированный в Belkasoft Evidence Center джейлбрейк имеет следующие особенности:
- Данные извлекаются криминалистически правильно, без артефактов, указывающих на его применение на исследуемом устройстве.
- Поддерживается извлечение данных из iPhone 5s—X и из iOS 12.3—13.4.1 (на момент написания статьи). Для более ранних версий iOS Belkasoft Evidence Center использует другую уязвимость. В ближайшее время ожидается поддержка iPad, Apple TV и Apple Watch.
- Возможно функционирование в среде операционной системы Windows.
Извлечение файловой системы и связки ключей
При извлечении файловой системы и связки ключей из iOS-устройства исследователь должен учитывать, что разработанный метод доступен только при работе Belkasoft Evidence Center в среде операционной системы Windows 10. Подключать исследуемое устройство рекомендуется к порту USB 3.0, и на компьютере должен быть установлен пакет iTunes из магазина Microsoft.
Для того чтобы начать извлечение, создайте в Belkasoft Evidence Center новое дело. В разделе «Создать образ» выберите вкладку «Мобильное устройство» и в ней нажмите на иконку «Apple Checkm8».
Рисунок 3. Внешний вид опций во вкладке «Мобильное устройство»
В следующем окне укажите параметры исследуемого устройства, такие как версия установленной операционной системы iOS и модель аппарата. Переведите устройство в режим DFU по инструкции, приведённой в этом же окне. Состояние телефона отображается в правой части окна. Как только устройство перейдёт в режим DFU, это будет показано в окне программы. После этого надо указать путь, по которому будут сохранены извлекаемые данные, и нажать кнопку «Далее».
Рисунок 4. Окно, отображающее состояние устройства
Анализ извлечённых данных
По окончании извлечения Belkasoft Evidence Center предложит выбрать типы данных, которые необходимо проанализировать.
Рисунок 5. Выбор типов данных для анализа
После анализа пользователю будут показаны категории извлечённых сведений. Данные, полученные из связки ключей, представлены в категории «Пароли».
Рисунок 6. Категории извлечённых данных
Перспективы использования джейлбрейков на базе эксплойта сheckm8
Прошло уже достаточно времени для того, чтобы понять, какую пользу могут принести джейлбрейки на основе эксплойта сheckm8 специалистам, занимающимся криминалистическим исследованием мобильных устройств. Приведём возможные сценарии.
Извлечение полной файловой системы
В резервные копии iTunes попадает ограниченное количество данных. Так, в них отсутствуют сообщения из мессенджеров и информация об электронной почте. Не сохраняются системные файлы и журналы, на основе которых исследователь может понять, как функционировало устройство. Извлечение файловой системы решает все эти проблемы, так как аналитик получает полный доступ ко всем данным.
Извлечение связки ключей (keychain)
Связка ключей — это «Форт-Нокс» исследуемого устройства. Все самые важные конфиденциальные данные хранятся там. Извлечение этой информации поможет исследователю узнать пароли для доступа к сайтам и другие авторизационные данные пользователя устройства.
Разблокировка iPhone
Джейлбрейки на основе checkm8 оказались настолько хороши, что некоторые исследователи предприняли попытки использовать их для подбора PIN-кодов заблокированных iOS-устройств. И хотя в соответствии с политикой безопасности Apple десятая неуспешная попытка должна приводить к блокировке устройства (или удалению данных на нём), по каким-то причинам это происходит не всегда. Некоторые специалисты сообщали, что им удавалось подобрать пароль методом последовательного перебора (brute force attack). Другие предупреждали об опасности подобных действий. В нашей лаборатории воспроизвести эти результаты не удалось.
Рисунок 7. Предупреждение о том, что нельзя использовать UFED для осуществления атаки методом последовательного перебора PIN
На основе эксплойта сheckm8 может быть создана программа для восстановления PIN-кодов заблокированных iPhone 4s, iPhone 5, iPhone 5C. Однако информация о том, что на момент написания статьи такая программа уже существует, в открытых источниках отсутствует.
Извлечение данных из заблокированных iPhone
После блокировки iOS-устройства пользовательские данные в его памяти находятся в безопасности. Однако новые поступающие сведения (информация о вызовах, SMS-тексты, сообщения из мессенджеров и т.д.) уже не могут попасть в защищённую область аппарата. Все они, а также информация об аккаунтах пользователя (частично), история подключений к сетям Wi-Fi, данные о сопряжении с Bluetooth-устройствами, файл DataUsage.sqlite, системные журналы WhatsApp, информация об аккаунте Viber, список заблокированных контактов, plist-файлы и другие материалы доступны исследователю, у которого есть Belkasoft Evidence Center. Иногда их так много, что неопытный исследователь думает, будто он извлёк вообще все данные пользователя.
Более подробно о том, какие данные можно извлечь из заблокированного iPhone, рассказано в статьях Elcomsoft и Маттиа Эпифани (Mattia Epifani).
Извлечение данных из повреждённых iPhone
Джейлбрейки на основе сheckm8 могут быть использованы и для извлечения данных из iOS-устройств, имеющих программные повреждения. Типичным случаем, когда возникают такие неисправности, является следующий: при выполнении обновления операционной системы iOS на устройстве, где практически отсутствует или недостаточно велика свободная память, происходит программный сбой, который приводит к тому, что устройство перестаёт загружаться. В настоящее время известно очень много таких инцидентов для iPhone моделей 6 и 7.
Выводы
В Belkasoft Evidence Center реализован проприетарный джейлбрейк на основе эксплойта checkm8, с помощью которого можно извлекать полную файловую систему и связку ключей из исследуемого iOS-устройства. Это позволяет специалисту легко, криминалистически правильно и в привычной среде операционной системы Windows производить подобные манипуляции и изучать данные — в том числе работать с iOS-устройствами, которые ранее не подлежали криминалистическому анализу.