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

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


Jailbreak iOS 11: совместимость, установка, использование и удаление

Сентябрь 7th, 2018 by Oleg Afonin
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

В конце 2017 года специалист проекта Google Project Zero опубликовал информацию об уязвимости, присутствующей во всех версиях iOS 10 и 11 вплоть до 11.1.2. Как правило, подобные публикации ограничиваются исключительно информацией об уязвимости, но на сей раз специалист опубликовал всё до мельчайших деталей. Был создан и опубликован даже исходный код инструмента, который демонстрировал эксплуатацию этой уязвимости с целью эскалации привилегий. На основе этого кода были созданы как публично доступные jailbreak для указанных версий iOS, так и приватные эксплойты, которые используются в ряде криминалистических инструментов для получения доступа к файловой системе iOS. Чем грозит существование уязвимости (и работоспособных джейлбрейков) обычным пользователям и чем она может быть полезна для экспертов-криминалистов? Попробуем разобраться.

При чём здесь Google?

До публикации Google в сообществе разработчиков jailbreak в последние годы наблюдался некоторый застой. Во многом это связано не с тем, что последние версии операционных систем настолько безопаснее предшественников, а с тем, какие деньги платятся компаниями за найденные ошибки. Новые уязвимости найти очень и очень непросто, а когда их находят – информацию чаще всего продают или самой Apple, или компаниям, которые специализируются на скупке уязвимостей. Соблазн заработать 50-100 тысяч долларов велик, и редко какие уязвимости становятся достоянием общественности.

И вот на сцене появляется Google – злейший друг Apple. Да, Apple платит огромные деньги за возможность хранить данные iCloud на серверах Google (напомним, iCloud – это управляемая Apple комбинация «облачных» серверов, принадлежащих Google, Microsoft, Amazon и AT&T), и да, Google выпускает свой софт для устройств под управлением iOS – но это ничуть не мешает компании публиковать информацию об уязвимостях, найденных в лаборатории Google Project Zero.

Последняя найденная уязвимость также обнаружена сотрудником лаборатории Google Йеном Биром. Уязвимость, названная tfp0 (производное от “task_for_pid(0)”), позволила исследователю написать готовый код для эскалации привилегий во всех версиях iOS 10, некоторых версиях macOS и iOS 11.0-11.1.2.

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

Такой ход со стороны Google был встречен неоднозначно как простыми пользователями, так и в сообществе разработчиков. Многие пользователи посчитали, что Google перегибает палку; эта точка зрения не лишена оснований, особенно в свете того, что информацию об уязвимостях в ОС Microsoft сотрудники Google Project Zero публиковали ещё до того, как Microsoft успевала выпустить заплатки.

Неоднозначно встретили эту информацию и разработчики. Так, некоторые команды разработчиков выпустили свои версии джейлбрейков, просто использовав готовый код – даже не попытавшись интегрировать Cydia (доступную в виде исходных кодов). Джей Фримен (saurik) в интервью высказался откровенно негативно как по поводу желающих поскорее выпустить сырые джейлбрейки на основе готового кода (получите и распишитесь!), так и по поводу разработчиков, критикующих Cydia.

Тем не менее, какими бы они ни были, но джейлбрейки на основе кода от Google существуют. Рассмотрим процесс установки и проанализируем их различия между собой. Но прежде – внимательно подготовимся к процедуре взлома.

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

Почему-то практически ни один источник не рассматривает процесс, который должен предварять установку джейлбрейка. Между тем, если что-то пойдёт не так, легко можно оказаться в ситуации, когда придётся обновлять устройство на самую последнюю версию iOS и восстанавливать потерянные данные.

Итак, что нужно проделать перед тем, как пытаться взломать устройство?

Для начала создайте свежую резервную копию данных при помощи iTunes. Обязательно задайте пароль на резервную копию: наличие пароля на резервной копии позволит восстановить все данные – в том числе и сохранённые пароли из связки ключей keychain – как на текущее устройство, так и на другой iPhone или iPad. Если же пароль не установить, то все ключи и пароли будут зашифрованы при помощи аппаратного ключа, в результате чего восстановить такую резервную копию в полном объёме удастся только на тот же самый телефон или планшет, с которого была создана резервная копия.

В статьях, посвящённых установке jailbreak, часто дают рекомендацию сохранить блобы SHSH2, что позволяет переустановить ту же самую версию iOS даже после того, как Apple прекратит её подписывать. К сожалению, сохранить блобы уже не удастся: Apple прекратила подписывать все прошивки, для которых доступны джейлбрейки. Исключение – старый iPhone 5 или 5c, для которого доступна (и до сих пор подписывается) iOS 10.3.3.

Установка джейлбрейка

Внимание: для установки джейлбрейка на основе эксплойта от Google не нужно удалять код блокировки устройства или отключать сервис Find my iPhone! Если вы удалите код блокировки, то некоторые данные, которые можно было бы извлечь после взлома устройства (например, данные Apple Pay), будут уничтожены.

Краткая видеоинструкция:

На устройстве:

Рассмотрим процесс в деталях. Все новые джейлбрейки, основанные на обнаруженной в Google Project Zero уязвимости, устанавливаются совершенно одинаково. Перечень шагов простой.

  1. Скачиваем IPA-файл выбранного джейлбрейка и приложение Cydia Impactor.
  2. Подключаем iPhone к компьютеру и устанавливаем доверительные отношения, подтвердив запрос “Trust this computer?” (обратите внимание: для iOS 11 на этом этапе потребуется ввести пароль блокировки устройства; для iOS 10 пароль не требуется)
  3. Запускаем Cydia Impactor и перетаскиваем на него IPA-файл джейлбрейка.
  4. Cydia Impactor запросит Apple ID и пароль. Вводим Apple ID и пароль от любой активной учётной записи Apple (кстати, для взлома можно использовать и новый, одноразовый, только что созданный аккаунт).
  5. IPA-файл будет подписан (сертификат действует всего 7 дней!) и загружен в устройство. Для того, чтобы запустить файл, нужно будет подтвердить доверенность цифровой подписи.
  6. Чтобы подтвердить доверенность цифровой подписи, которой был подписан IPA-файл в момент его загрузки на устройство, зайдите в настройки Settings – General – Profiles – Profiles & Device management (если в системе установлен русский язык, то «Настройки» > «Основные» > «Профили» или «Профили и управление устройством»).Обратите внимание: для того, чтобы подтвердить доверенный статус сертификата, придётся разрешить телефону выйти в Интернет (как минимум – установить соединение с сервером https://ppq.apple.com).Подробно процедура описана здесь:
    https://support.apple.com/ru-ru/HT204460
  7. Только после этого возможен запуск утилиты джейлбрейка. Если всё пройдёт успешно, то телефон будет взломан, и вы получите доступ к файловой системе устройства.

Дальнейшее будет зависеть от конкретного джейлбрейка. Наличие (и возможность работы) Cydia, поддержка Cydia Substrate, возможность внедрения кода, обход защиты от запуска неподписанных приложений – все эти вещи могут присутствовать, а могут и не присутствовать в разных утилитах.

Общее для всех джейлбрейков – это ограниченное время их работы. После каждой перезагрузки устройства потребуется заново запускать утилиту джейлбрейка на самом устройстве (это связано с особенностями обхода KPP, Kernel Patch Protection), а раз в 7 дней – повторять весь процесс заново из-за того, что срок действия цифрового сертификата закончится. Исключение – наличие зарегистрированного аккаунта для разработчиков или корпоративного аккаунта с соответствующим Apple ID; впрочем, использовать такие аккаунты для подписи джейлбрейка – дело достаточно рискованное.

Утилиты для взлома iOS 11.0 – 11.1.2

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

  • LiberIOS (iOS 11.0-11.1.2)
  • Electra (iOS 11.0-11.3.1)

iOS 11.0-11.2: LiberIOS и Electra

Для iOS 11 существует по крайней мере два готовых джейлбрейка: LiberIOS и Electra. Оба джейлбрейка используют один и тот же код, эксплуатирующий одну и ту же уязвимость, однако подходы разработчиков кардинальным образом отличаются.

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

А вот разработчик Electra включил в состав джейлбрейка как сервис SSH, так и магазин приложений Cydia. Именно этот джейлбрейк мы рекомендуем к использованию.

Скачать LiberIOS: http://newosxbook.com/liberios/

Скачать Electra для iOS 11.0-11.1.2: https://coolstar.org/electra1112

iOS 11.2-11.3.1 (и iOS 11.4 beta 1-3)

Для iOS 11.2-11.3.1 используется новая уязвимость (точнее, две уязвимости, одна из которых может использоваться только при наличии учётной записи разработчика). Перед установкой Electra необходимо удалить скачанное обновление до iOS 11.4 из настроек устройства и убедиться, что оно не будет скачано вновь (для этого достаточно отключить Wi-Fi).

Скачать Electra для iOS 11.2-11.3.1: https://coolstar.org/electra/

Откат джейлбрейка и восстановление оригинальной версии iOS

Установка jailbreak вносит изменения как в данные пользователя, так и в системный раздел устройства. И если изменения в пользовательском разделе можно отменить при помощи штатной процедуры сброса к заводским настройкам, то изменения в системном разделе эта процедура не затронет. Таким образом, сброс устройства после взлома приведёт его в состояние «грязного» системного раздела. На устройство невозможно будет установить обновления через OTA, да и с повторной установкой jailbreak с большой вероятностью возникнут проблемы.

Если нет необходимости сохранить на устройстве оригинальную версию iOS (например, с целью повторного взлома), то удалить jailbreak достаточно просто: в режиме восстановления или режиме DFU достаточно залить на устройство последнюю сборку iOS через iTunes. Системный раздел будет полностью перезаписан, и устройство вернётся к «чистому» состоянию.

Если же требуется сохранить оригинальную версию iOS, то восстановление через iTunes – вариант неподходящий: установить получится только самую свежую (иногда – и предпоследнюю) сборку системы. Почему так получается?

Напомним, как на устройствах Apple работает обновление (или переустановка) iOS. Для того, чтобы iPhone смог установить прошивку, ему потребуется связаться с сервером Apple и получить цифровую подпись. Эта цифровая подпись будет действительна только для конкретного экземпляра устройства и только для конкретной версии iOS.

Если сервер компании откажется подписывать ту или иную версию прошивки, установить её на телефон или планшет Apple не удастся. Apple давно прекратила подписывать последнюю версию iOS, для которой работает джейлбрейк. На момент написания этой статьи установить можно либо iOS 11.4.1, либо свежую бета-версию iOS 12. Таким образом, при помощи штатных средств восстановить телефон можно только на текущую версию iOS либо свежую бета-версию, которую Apple подписывает в настоящий момент.

Если бы Apple подписывала iOS 11.1.2 (или 11.3.1) в настоящий момент, то можно было бы сохранить блобы SHSH2 по инструкции. Используя блобы SHSH2, можно было бы в любой момент восстановить iPhone на эту версию системы. Увы, но сохранение блобов возможно лишь в момент, когда Apple ещё подписывает нужную версию iOS.

И тем не менее, выход есть! Вместо блобов SHSH2 можно воспользоваться возможностью восстановления корневой файловой системы APFS. Точка восстановления файловой системы создаётся джейлбрейком Electra автоматически непосредственно в процессе взлома устройства. Восстановив устройство при помощи точки восстановления APFS после джейлбрейка при помощи соответствующей утилиты Rollectra, можно откатиться к заведомо работоспособной копии системы.

Как именно это делается, что такое «точка восстановления файловой системы» и где она создаётся?

Пользователи, не знакомые с особенностями реализации файловой системы Apple (APFS), полагают, что точка восстановления – это что-то вроде файла, который сохраняется в каком-то каталоге. Это не так. Ближайшей аналогией точки восстановления APFS будет точка восстановления Windows, информацию о которой можно найти в панели «Защита системы» Windows. Используя точку восстановления, вы можете восстановить системные файлы устройства по состоянию на момент создания этой точки восстановления.

Вот как работает Electra по информации от Coolstar, разработчика джейлбрейка Electra:

  1. Перед тем, как взломать устройство, джейлбрейк Electra RC 3.x или окончательная версия проверит состояние файловой системы устройства (если был установлен другой джейлбрейк или множество твиков, проверка не будет пройдена).
  2. Если файловая система окажется в «достаточно чистом» состоянии (джейлбрейк устанавливается на чистую систему или была установлена одна из предварительных сборок Electra – без твиков, модифицирующих системный раздел), будет создана точка восстановления корневой файловой системы APFS (/).
  3. Если же был установлен другой джейлбрейк или обнаружены другие потенциально опасные модификации файловой системы, Electra запросит подтверджения на продолжение процедуры взлома.

Итак, точка восстановления создана. Как им образом можно восстановить чистую ОС из этого образа, а заодно удалить «хвосты», оставшиеся от джейлбрейка?

Для этого необходимо воспользоваться инструментом Rollectra, разработка которого ведётся автором Twitter-канала pwn20wnd. Rollectra можно использовать как на взломанных устройствах с активным jailbreak, так и на устройствах, jailbreak на которых не был активирован или утратил работоспособность.

Для устройств с активным jailbreak достаточно установить Rollectra из репозитария Cydia https://cydia.hbang.ws/

Для устройств, jailbreak на которых не активен или неработоспособен, скачайте .ipa-файл Rollectra из репозитария github. В этом случае устанавливать Rollectra придётся при помощи уже знакомой утилиты Cydia Impactor — с вводом информации об учётной записи, подписью .ipa и подтверждением сертификата в настройках.

При запуске утилита выглядит следующим образом:

Внимание: при откате джейлбрейка все пользовательские данные будут удалены.

Ссылки по теме:

Технические особенности реализации джейлбрейка iOS 11

В утилитах для взлома iOS 11 применяется новый подход, названный KPP-less. KPP (Kernel Patch Protection) – механизм проверки целостности ядра, впервые использованный Apple в iOS 9. Этот механизм проверяет целостность ядра системы как в процессе загрузки, так и во время работы. Особенность механизма KPP в том, что очередная проверка может быть проведена в случайный момент времени. Если устройство взломано, а фоновая служба KPP обнаружит изменения в ядре системы – телефон просто перезагрузится. KPP был разработан Apple в первую очередь для защиты от джейлбрейка, но и против зловредного кода он тоже может помочь.

В классических джейлбрейках механизм KPP старались отключить. Этот подход назвали “KPP bypass”; именно он используется в джейлбрейках Pangu и Yalu.

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

Какие недостатки у нового способа? Он требует серьёзной переделки Cydia Substrate, который полагается на отсутствие проверок KPP. На сегодняшний день единственный джейлбрейк, реализовавший поддержку Cydia на iOS 11 – Electra.

Если вас заинтересовал механизм KPP и способы, которыми его обходят разработчики утилит для джейлбрека, о нём можно прочитать в статье How Kernel Patch Protection Works and How Hackers Bypass KPP

Чем это может грозить

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

Для того, чтобы воспользоваться уязвимостью и взломать устройство, нужно приложить сознательные усилия, проделать ряд нетривиальных телодвижений, разблокировать телефон и установить доверенное соединение с компьютером. Для установления доверенного соединения в iOS 11 потребуется не только разблокировать телефон, но и ввести пароль блокировки. А если известен пароль блокировки, то безо всяких уязвимостей можно создать резервную копию телефона (включая все пароли из браузера – например, пароли от социальных сетей туда, скорее всего, попадут); если же резервная копия была защищена паролем, то его можно сбросить буквально за несколько кликов. При помощи пароля блокировки можно сбросить или изменить пароль от iCloud, заблокировать или удалить данные со всех устройств, зарегистрированных в той же учётной записи Apple; наконец, можно легко отвязать телефон от iCloud, не зная пароля от Apple ID. Всё это мы уже описывали в статье «Что можно сделать с iPhone, зная пасскод».

Так какую дополнительную опасность представляет из себя найденная уязвимость? Если говорить об обычном пользователе, то, пожалуй, никакой. Более того: обычный пользователь, скорее всего, никогда с ней не столкнётся: все приложения в App Store модерируются, и программу, эксплуатирующую данную уязвимость, туда не пропустят.

Джейлбрейком может воспользоваться полиция для того, чтобы извлечь дополнительную информацию из устройства (физическое извлечение данных, к примеру, при помощи Elcomsoft iOS Forensic Toolkit). Более того, уязвимость активно эксплуатируется компаниями, предлагающими полиции продукты и услуги для извлечения данных из устройств iOS, в том числе попавшим в новостные ленты комплексом, закупленным Следственным комитетом.

Установить jailbreak на совместимую версию iOS теперь может любой. Есть ли смысл в такой манипуляции? Если сравнивать с тем, что можно извлечь из обычной резервной копии (с паролем), то физическое извлечение данных даст доступ к скачанным сообщениям электронной почты, системным логам и подробной истории местоположения устройства. Можно получить доступ к песочницам приложений – например, проанализировать переписку в Telegram, WhatsApp или Facebook Messenger. Можно просмотреть временные файлы браузера. Станут доступными транзакции Apple Pay.

Заключение

Мы рассмотрели ряд утилит для джейлбрейка смартфонов и планшетов, работающих под управлением iOS 11 (до версии 11.3.1 включительно). История их появления вызывает противоречивые чувства. Правильно ли поступает Google, публикуя информацию об уязвимостях и выкладывая, по сути, готовый код для взлома устройств? У нас не сложилось окончательного мнения по этому поводу, но конечный результат безусловно полезен для правоохранительных органов.


  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Tags: ,

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

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