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

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

В сообществе джейлбрейкеров в последние годы дела обстоят неважно. Во многом это связано не с тем, что свежие версии операционных систем как-то особенно безопасны, а с тем, какие деньги платят компании за найденные ошибки. Новые уязвимости найти очень и очень непросто, а когда их находят — чаще всего продают самой 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, которое закрыло уязвимость. Впоследствии информация о ней и готовый исходный код были опубликованы.

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

Следует ли багхантерам публиковать информацию о найденных уязвимостях до выпуска заплаток?

Загрузка ... Загрузка ...

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

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

 

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

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

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

Просто создай свежую резервную копию данных при помощи iTunes. Обязательно задай пароль на резервную копию: даже если ты из тех, кому «нечего скрывать», наличие пароля на бэкапе позволит тебе восстановить все данные — в том числе и сохраненные пароли из связки ключей keychain, как на текущее устройство, так и на другой iPhone или iPad. А вот если ты пароль не установишь, то все ключи и пароли будут зашифрованы при помощи аппаратного ключа, в результате чего восстановить такую резервную копию в полном объеме ты сможешь только на тот же самый телефон или планшет, с которого создавал резервную копию. Если что-то пойдет не так, ты всегда сможешь восстановить телефон из бэкапа практически в том же виде, как и до джейлбрейка.

А вот сохранить блобы SHSH2 тебе, к сожалению, не удастся: Apple прекратила подписывать все прошивки, для которых доступны джейлбрейки. Исключение — старый iPhone 5 или 5c, для которого доступна (и до сих пор подписывается) iOS 10.3.3.

 

Установка

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

  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-файл будет подписан (сертификат действует всего семь дней!) и загружен в устройство. На этом еще не все; для того чтобы запустить файл, тебе нужно будет подтвердить, что ты доверяешь цифровой подписи.

  6. Чтобы подтвердить доверенность цифровой подписи, которой ты подписал IPA-файл в момент его загрузки на устройство, зайди в настройки Settings → General → Profiles → Profiles & Device management (если в системе установлен русский язык, то «Настройки → Основные → Профили» или «Профили и управление устройством»).



    Обрати внимание: для того чтобы подтвердить доверенный статус сертификата, тебе придется разрешить телефону выйти в интернет (как минимум — установить соединение с сервером ppq.apple.com). Подробно процедура описана здесь.

  7. Только после этого ты сможешь наконец запустить сам джейлбрейк. Если все пройдет успешно, телефон будет взломан и ты получишь доступ к файловой системе устройства.

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

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

Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи один материал

Заинтересовала информация, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для материалов, опубликованных более двух месяцев назад.


2 комментария

  1. RomanWAR

    06.03.2018 at 14:50

    Олег, прочитал статью, очень интересная, большое спасибо !
    Немного не понял оговорку, касательно джейлбрейка и использования спец софта от Элкомсофт: «Можно получить доступ к песочницам приложений — например, проанализировать переписку в Telegram, WhatsApp или Facebook Messenger. Можно просмотреть временные файлы браузера.»

    Я верно понял, если у юзера есть новенький iPhone X с последней iOS, он не ставил на телефон джейлбрейков, все оригинальное, то при физической потере телефона можно получить доступ к переписке всех мессенжеров и истории браузера ?
    Допустим юзер не пользуется синхронизацией с iCloud и синхронизация полностью выключена везде

    • Олег Афонин

      Олег Афонин

      14.03.2018 at 23:43

      Не совсем. Как минимум, нужно знать пароль блокировки. Без него ничего не вытащить, если телефон заблокирован (с оговорками).

Оставить мнение

Check Also

WWW: Carbon — сервис для создания идеальных скриншотов кода

В теории сделать скриншот кода, чтобы кому-то показать, — задача несложная. В реальности р…