Физический анализ iOS. Джейлбрейк: риски и последствия

19 июня, 2019, Oleg Afonin
Рубрика: «Полезные советы», «Программное обеспечение», «Разное»
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Физический анализ – наиболее универсальный метод исследования содержимого устройств под управлением iOS. Подавляющее большинство технических средств, позволяющих провести физический анализ устройства российским правоохранительным органам, требует установки джейлбрейк (от английского “jailbreak”) – разработанного на основе найденных в устройствах уязвимостях программного обеспечения, позволяющего получить полный доступ к файловой системе устройств iPhone, iPad и iPod Touch.

Использование джейлбрейка для доступа к данным в процессе физического анализа – вынужденный шаг, который не обходится без последствий и связанными с ними рисков. В этой статье мы рассмотрим риски и опишем последствия использования джейлбрейка для извлечения данных из iPhone или iPad.

Для чего нужен джейлбрейк

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

Логическое извлечение

Доступ к данным посредством логического извлечения – самый простой, очевидный и безопасный способ извлечения пользовательских данных. В процессе логического извлечения создаётся свежая резервная копия устройства (iPhone, iPad или iPod Touch) или анализируется ранее созданная резервная копия. Важно отметить, что в резервных копиях, зашифрованных паролем (в отличие от резервных копий, созданных без пароля) можно получить доступ и к паролям пользователя из Связки ключей.

Кроме того, в процессе логического анализа извлекаются некоторые дополнительные категории данных, доступ к которым осуществляется по независимым протоколам. Так, параллельно с резервной копией из устройства можно извлечь медиа-файлы (фотографии и видеоролики), журналы crash & diagnostics logs, а также файлы приложений (shared files).

Требования: работоспособное устройство под управлением iOS (iPhone, iPad, iPod Touch); устройство не находится в защитном режиме USB restricted mode; устройство можно подключить к компьютеру и создать доверенные отношения (для этого эксперту потребуется разблокировать устройство и ввести код блокировки либо, если устройство заблокировано, использовать запись lockdown).

Обратите внимание: в резервную копию попадают не все данные приложений, а только те, для которых создание резервной копии разрешено разработчиком. Кроме того, часть данных может быть помечена атрибутом «this device only»; такие данные будут зашифрованы аппаратным ключом шифрования, и их восстановление возможно исключительно на то устройство, с которого была сделана резервная копия.

Резервная копия, извлечённая из устройства, может оказаться зашифрованной неизвестным эксперту паролем. В таком случае можно сбросить пароль (начиная с iOS 11) или взломать его методом атаки по словарю или полным перебором. Рекомендуем ознакомиться со статьёй Step by Step Guide to iOS Jailbreaking and Physical Acquisition, раздел “If you have to reset the backup password”.

Важно отметить, что сброс пароля к резервной копии также сбросит и код блокировки устройства. Это автоматически приведёт к уничтожению части данных – например, транзакций Apple Pay. Установка джейлбрейка является разумной и менее деструктивной альтернативой сбросу пароля к резервной копии.

Извлечение из iCloud

Дистанционный доступ к данным через облако iCloud – один из часто используемых способов анализа данных. Для доступа к данным необходимо выполнить ряд требований.

Требования: логин и пароль от учётной записи Apple ID; доступ ко второму фактору аутентификации (например, SIM-карта с доверенным телефонным номером) – если в учётной записи включена двухфакторная аутентификация; если требуется доступ к защищённым категориям данных (связка ключей iCloud Keychain, облачные сообщения iCloud Messages, Здоровье и т.д.), необходим код блокировки или системный пароль от одного из устройств, зарегистрированных в учётной записи. Доступ к синхронизированным данным возможен посредством двоичного маркера аутентификации (логин и пароль не требуются).

Дистанционный анализ позволяет получить доступ к облачным резервным копиям, синхронизированным данным и медиа-файлам. Если известен код блокировки устройства, возможен доступ к защищённым категориям данных (связка ключей iCloud Keychain, облачные сообщения iCloud Messages, Здоровье и т.д.)

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

Некоторые виды данных (например, резервные копии, фотографии, синхронизированные данные) доступны правоохранительным органам по запросу. Так же, как и в случае с самостоятельным извлечением по логину и паролю, доступны резервные копии, медиа-файлы и синхронизированные данные. В то же время связка ключей iCloud Keychain, облачные сообщения iCloud Messages, данные здоровья (Health) и другие данные, для доступа к которым требуется код блокировки устройства, по запросу не выдаются.

Так же, как и в случае с локальными резервными копиями в формате iTunes, в облачную резервную копию iCloud попадают далеко не все данные приложений. Сохраняются лишь те данные приложений, для которых резервное копирование разрешено разработчиком. Кроме того, часть данных может быть помечена атрибутом “this device only”; такие данные будут зашифрованы аппаратным ключом шифрования, и их восстановление возможно исключительно на то устройство, с которого была сделана резервная копия.

Физический анализ

Извлечение данных методом физического анализа требует низкоуровневого доступа к файловой системе устройства. Извлекается полный образ файловой системы, включая данные приложений, разработчики которых запретили резервное копирование. Извлекаются многие типы данных, которые никогда не попадают в резервные копии (например, сообщения Exchange, скачанная на устройства почта, кэш браузера и временные файлы). Извлекается и расшифровывается связка ключей Keychain, причём расшифровываются абсолютно все записи, включая те, которые защищены по высшему классу защиты.

Требования: физический анализ налагает самые жёсткие требования по сравнению с другими способами извлечения данных. В первую очередь необходимо выполнить требования, которые налагает логическое извлечение данных: устройство должно быть включено, разблокировано; должны быть установлены доверительные отношения с компьютером. Также необходимо, чтобы устройство работало под управлением такой версии iOS, для которой существует джейлбрейк. Для доступа к файловой системе потребуется установка джейлбрейка.

В сравнении с другими методами извлечения данных, физический анализ обеспечивает ряд преимуществ.

Доступ к файловой системе:

  • Базы данных, включая несинхронизированные транзакции (в частности, файлы WAL) и удалённые записи
  • Данные всех без исключения приложений, включая те, разработчики которых запретили резервное копирование
  • Доступ к защищённым чатам и сообщениям (включая Signal, Telegram и другие)
  • Сообщения электронной почты и данные Exchange
  • Системные журналы

Связка ключей:

  • Записи, защищённые атрибутом «this device only»
  • Пароль от локальной резервной копии в формате iTunes

Риск установки джейлбрейка

С момента выхода десятой версии iOS риски, связанные с установкой джейлбрейка, существенно уменьшились. Основным риском на сегодняшний день остаётся невозможность корректной установки джейлбрейка, но даже некорректная установка не приведёт к отказу устройства или невозможности загрузить систему. Риск «окирпичивания» устройства остался в прошлом вместе с джейлбрейками, модифицирующими ядро системы и пытающимися отключить подсистему безопасности iOS Kernel Patch Protection (KPP).

В современных джейлбрейках модифицируется либо системный раздел, либо и вовсе исключительно раздел данных (RootlessJB). В результате устройство всегда загружается в обычном режиме, а для получения прав суперпользователя на нём необходимо запустить утилиту джейлбрейка, повторяя процедуру каждый раз после перезагрузки.

В результате основными остаются следующие риски:

  1. Несанкционированный выход устройства в интернет. Установка некоторых джейлбрейков подразумевает соединение устройства с сетью (в частности, для проверки сертификата). Любой выход исследуемого устройства в глобальную сеть может привести к удалённой блокировке устройства владельцем, полному уничтожению данных по команде извне. Кроме того, устройство может синхронизировать данные с сетью, получив новые данные или удалив часть старых. Такие действия недопустимы в процессе исследования.Процесс установки джейлбрейка в лаборатории эксперта-криминалиста отличается от аналогичного процесса, проводимого исследователем или пользователем-энтузиастом. В частности, исследуемое устройство должно оставаться в режиме офлайн в течение всего процесса. Обращаем особое внимание на то, что подавляющее большинство имеющейся в сети информации и инструкций по установке джейлбрейка категорически неприменимо к области мобильной криминалистики.Рекомендуемые действия: минимизировать риски можно, ознакомившись с разработанной нами инструкцией: guide on iOS jailbreaking.
  2. Джейлбрейк не устанавливается. По определению, джейлбрейк работает в нештатном для устройства режиме. Утилита джейлбрейка использует недокументированные уязвимости (даже – цепочки уязвимостей) в коде ОС для неавторизованной эскалации привилегий. На любом из многочисленных этапов может возникнуть ошибка, которая приведёт к невозможности установки джейлбрейка.

    Рекомендуемые действия
    : с учётом того, что разные утилиты джейлбрейк имеют свои особенности, мы рекомендуем повторить попытку несколько раз с использованием разных утилит, перегружая устройство между попытками. В некоторых случаях имеет смысл повторять попытки даже с единственной утилитой. Также имеет смысл проверить наличие более свежей версии соответствующего джейлбрейка (в таких случаях стоит опасаться подделок в самом прямом смысле этого слова: на единственный сайт разработчиков каждого конкретного джейлбрейка приходится несколько сотен фишинговых сайтов, которые попытаются установить на устройство зловредное ПО или украсть личные данные. Если вы не знаете точно, на каком именно сайте находится нужный вам джейлбрейк, риск будет неоправданно высоким.)

Последствия установки джейлбрейка

Ни один джейлбрейк не обходится для устройства без последствий. После установки джейлбрейка устройство может утратить возможность корректной установки обновлений iOS, вероятна нестабильная работа на длительных промежутках времени. В то же время последствия установки некоторых джейлбрейков пренебрежимо малы. С чем связана такая разница?

В «классических» джейлбрейках, таких как Meridian, Pangu, TaiG, Chimera или Unc0ver, разработчики старались достичь несколько иных целей, чем требуется мобильным криминалистам. Основная цель классических джейлбрейков – дать пользователю возможность устанавливать приложения из сторонних, не контролируемых компанией Apple репозитариев. Для этого разработчикам приходится реализовывать способы отключения проверки цифровой подписи пакетов, устанавливать и обеспечивать корректную работу стороннего менеджера пакетов (к ним относятся приложения Cydia и Sileo). Для того, чтобы добиться этих целей, необходимо вмешательство в работу системы, требующее модификации файлов системного раздела устройства. Именно модификация системного раздела и приводит впоследствии к невозможности установки обновлений iOS.

В новом поколении джейлбрейков, получивших название rootless jailbreak, необходимости в модификации системного раздела нет. Пока единственный представитель данного типа джейлбрейков – утилита RootlessJB, доступная в исходных кодах. RootlessJB не модифицирует системный раздел и не перемонтирует файловую систему. С одной стороны, такой подход гарантирует целостность системы и сводит вмешательство в её работу к минимуму; с другой – получить доступ к корню файловой системы (папке “/”) не представляется возможным. Вместо этого джейлбрейк предлагает доступ к данным из папки “/var”, в которой содержатся пользовательские данные. В состав джейлбрейка входит сервис SSH, необходимый для работы инструментария Elcomsoft iOS Forensic Toolkit для физического извлечения данных.

С учётом того, что джейлбрейк данного типа не перемонтирует файловую систему и, соответственно, не вносит изменений в системный раздел, его установка не помешает установке OTA-обновлений, а удаление проходит безболезненно для дальнейшей работы устройства. Эти моменты являются одними из преимуществ rootless-джейлбрейков.

Мы опубликовали статью, в которой подробно описаны особенности и процедура установки rootless-джейлбрейков: iOS 12 Rootless Jailbreak.

Компании Cellebrite и GrayShift в своих решениях UFED и GrayKey не используют публично доступные джейлбрейки. Вместо этого решения этих компаний эксплуатируют уязвимости напрямую. В результате после работы решений этих компаний на устройстве практически не остаётся следов (за исключений записей в системных журналах).

Сравнение рисков и последствий установки разных типов джейлбрейков:

  Классический Rootless Прямая эксплуатация уязвимостей
Перемонтирование файловой системы Да Нет Нет
Модификация системного раздела Да Нет Нет
Модификация загрузочного раздела Нет (iOS 10+) Нет Нет
Записи в системных журналах Да Да Да
Совместимость с OTA обновлениями iOS Нет Да Да
Доступ к “/” Да Ограниченный Да
Доступ к “/var” Да Да Да
Keychain decryption Да Да Да
Repeatable results Нет Да Да

Рассмотрим вышеперечисленные пункты подробно.

Перемонтирование файловой системы

Для извлечения пользовательских данных необходимости в перемонтировании файловой системы нет. Перемонтирование файловой системы в режим чтения/записи не только несёт риск нестабильной работы iOS в результате неквалифицированного вмешательства, но и совершенно избыточно с точки зрения эксперта-криминалиста. Соответственно, перемонтирования файловой системы в процессе извлечения данных желательно избежать.

Модификация системного раздела

Так же, как и в предыдущем случае, модификация системного раздела не является необходимой для извлечения пользовательских данных. Классические джейлбрейки модифицируют системный раздел, чтобы обеспечить работу сторонних менеджеров пакетов (независимых магазинов приложений), которые не нужны эксперту-криминалисту. Модификация системного раздела приводит к невозможности обновления устройства «по воздуху», а корректная деинсталляция такого джейлбрейка будет затруднена. По возможности стоит использовать джейлбрейки, не модифицирующие системный раздел.

Модификация ядра

В ранних версиях iOS (до iOS 9 включительно) джейлбрейки модифицировали загрузочный образ (ядро) системы с целью получения привилегий суперпользователя на раннем этапе загрузки. Встроенный в iOS механизм KPP (Kernel Patch Protection) стал эффективным способом борьбы с такими джейлбрейками. Модификация ядра время от времени приводила к зависаниям устройств и невозможности их загрузки. В современных джейлбрейках (для iOS 10 и более новых) модификация ядра не используется.

Записи в системных журналах

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

Возможность получения обновлений «по воздуху» (OTA обновлений iOS)

Как правило, после извлечения данных эксперт должен вернуть устройство примерно в том же состоянии, в каком оно поступило в лабораторию. Нестабильная работа, невозможность получения обновлений «по воздуху» — типичные и неприятные последствия некорректной деинсталляции многих джейлбрейков. К невозможности корректной установки обновлений могут привести как модификации системного раздела, так и просто его перемонтирование в режиме чтение/запись даже после того, как джейлбрейк был удалён с устройства. В некоторых джейлбрейках пытаются обойти эту проблему, создавая точку восстановления системы (используя встроенный механизм файловой системы APFS). Корректно провести восстановление системы и удаление джейлбрейка – отдельная и нетривиальная задача. В то же время джейлбрейки класса rootless не перемонтируют и не модифицируют системный раздел; их удаление проходит просто и достаточно безболезненно для дальнейшего функционирования устройства.

Доступ к корню файловой системы “/”

Классические джейлбрейки открывают полный доступ к корню файловой системы, позволяя приложениям как читать, так и записывать файлы в том числе и в системный раздел. С точки зрения извлечения пользовательских данных доступ к корню файловой системы избыточен. Джейлбрейк класса rootless предоставляет доступ только к пользовательским данным (папка “/var”); этого достаточно для полноценного извлечения данных.

Доступ к пользовательским данным “/var

Абсолютно все джейлбрейки предоставляют доступ к информации, которая хранится в папке “/var”. Именно её извлекают инструменты физического анализа iPhone.

Доступ к связке ключей keychain

В связке ключей keychain хранятся как пользовательские пароли из браузера Safari, системных и сторонних приложений, так и маркеры аутентификации, позволяющие зайти на определённый ресурс без ввода логина и пароля. И если большая часть паролей сохраняется в облако и попадает в локальную резервную копию iTunes, если та защищена паролем, то маркеры аутентификации помечены атрибутом “do not sync”, который запрещает экспорт подобных записей. Физический доступ к устройству посредством джейлбрейка позволяет расшифровать в том числе и такие записи.

Надёжность и повторяемость результатов

Любой джейлбрейк использует цепочку недокументированных уязвимостей в защите операционной системы. Для корректной установки джейлбрейка необходимо успешно использовать каждую из последовательности уязвимостей. Чем длиннее цепочка, тем больше вероятность отказа на этапе установки джейлбрейка. Джейлбрейк класса rootless относится к самым простым; для его работы требуется более короткая цепочка уязвимостей в сравнении с классическими джейлбрейками; соответственно, вероятность его корректной установки выше. В силу менее глубоких модификаций системы в rootless джейлбрейке, его использование с большей вероятностью обеспечит повторяемость результатов.

Какой джейлбрейк выбрать?

В нашей лаборатории мы исследовали все публично доступные джейлбрейки для большинства версий iOS. В настоящее время широко представлены джейлбрейки для устройств под управлением iOS 11 всех версий и iOS 12 до версии 12.1.2 включительно.

По возможности рекомендуем в первую очередь воспользоваться джейлбрейком RootlessJB (поддерживает версии iOS 12.0 – 12.1.2). Этот джейлбрейк отличается отсутствием перемонтирования файловой системы и модификации системного раздела устройства; его легко установить и удалить.

Джейлбрейк Chimera позволяет самостоятельно выбрать эксплойт, посредством которого будет осуществляться попытка взлома устройства. Это может оказаться полезным в случаях, когда на совместимое устройство не устанавливается джейлбрейк.

Джейлбрейк Unc0ver автоматически выбирает уязвимость, которая будет использована. Unc0ver – единственный джейлбрейк для iOS 12, который поддерживает менеджер пакетов Cydia; остальные джейлбрейки предпочитают использовать более новый Sileo.

Наконец, Electra был первым джейлбрейком с поддержкой iOS 12 и Sileo.

Насколько нам известно, создание точки восстановления файловой системы поддерживают на сегодняшний день все описанные джейлбрейки за исключением RootlessJB (который не нуждается в откате файловой системы для корректного удаления).

Все описанные джейлбрейки поддерживают SSH (порт 12). Отличаются способы установки так называемых «твиков».

Более подробное сравнение джейлбрейков доступно в статье Should I jailbreak with Chimera, Electra, or unc0ver?

Проблема у всех утилит джейлбрейка одна: далеко не всегда установка срабатывает с первого раза; устройство уходит в перезагрузку. Самые же серьёзные проблемы мы наблюдали после установки сначала одного, а затем другого джейлбрейка. Связано это, в частности, с trusted cache, позволяющем выполнять сторонние приложения. Так, джейлбрейк rootlessJB по умолчанию не предоставляет возможности установки сторонних приложений. Тем не менее, это можно сделать, если самостоятельно отредактировать trusted cache. Если после этого установить другой джейлбрейк (в нашем случае им стал unc0ver), то утилиты из пакета Elcomsoft iOS Forensic Toolkit для предотвращения блокировки экрана и расшифровки связки ключей не запустятся.

Для работы iOS Forensic Toolkit нет необходимости в установке сторонних менеджеров пакетов Cydia или Sileo. Тем не менее, мы вынуждены отметить, что именно эти компоненты джейлбрейков чаще всего работают некорректно. Мы получали множественные сообщения об ошибках, ошибки обновления компонентов, ошибки, связанные с отсутствием тех или иных компонентов… Корректного решения этих проблем нет, в каждом случае приходится принимать решение на месте.

Заключение

Не приходится сомневаться в том, что использование джейлбрейка несёт риски и может иметь ряд немедленных и отложенных последствий. Современные джейлбрейки стали достаточно надёжными и безопасными в использовании. На сегодняшний день существует множество разных утилит джейлбрейков, поддерживающих одни и те же версии iOS и аппаратного обеспечения. Какой из них имеет смысл использовать? Надеемся, наша статья поможет вам сделать осознанный выбор.


  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
НАШИ НОВОСТИ