Хабрахабр

Использование джейлбрейка для извлечения данных: риски и последствия

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

Здесь и доступ ко всему содержимому файловой системы, и расшифровка всех записей из Связки ключей (а это – пароли, включая, кстати, пароли к кошелькам криптовалюты и «секретным» чатам). Наверное, я никогда не устану говорить о преимуществах физического анализа. Тут извлечение данных из всех приложений (а не только тех, разработчики которых разрешили резервное копирование) и доступ к скачанным сообщениям электронной почты, чатам и перепискам в самых разнообразных приложениях, включая хорошо защищённые (помашем рукой пользователям Telegram и Signal).

Разумеется, нам нужен низкоуровневый доступ к данным, который невозможен без получения прав суперпользователя. Как добраться до самого интересного? Если вы – не работник полиции или спецслужб из США, Израиля или ЕС, то вариант один: установкой джейлбрейка. А как получить права суперпользователя? Сегодня я расскажу о рисках и последствиях физического анализа устройств, связанных с использованием джейлбрейка для извлечения данных.

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

Наверное, все знают, что такое джейлбрейк для iOS и чем он отличается от root для Android (подсказка: практически всем). Джейлбрейк – собирательное название класса приложений для операционной системы iOS, позволяющих путём эскалации привилегий получить на устройстве права суперпользователя. Эскалацию привилегий осуществляют с использованием ошибок в системе безопасности iOS. С учётом того, что разработчики Apple оперативно исправляют ошибки с выходом обновлений iOS, выход новых и новых утилит джейлбрейк – процесс непрерывный.

Для нас эти возможности излишни; всё, что нам нужно – это доступ к устройству через SSH, ну и, конечно же, полный доступ к файловой системе. Джейлбрейки используются как независимыми исследователями для анализа систем безопасности iOS, так и пользователями-энтузиастами, которые получают возможности модификации внешнего вида и поведения системы, а также установки приложений из сторонних источников помимо официального магазина Apple App Store.

Таким образом, у нас в лаборатории (а также в лабораториях экспертов-криминалистов) джейлбрейки используют для получения неограниченного доступа к файловой системе, извлечения данных из iPhone и iPad и расшифровки Связки ключей (паролей пользователя, сохранённых в браузере Safari, системных и сторонних приложений).

Использование джейлбрейка несёт следующие выгоды:

Образ файловой системы:

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

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

  • Помимо паролей пользователя, которые можно извлечь и из резервной копии с паролем, расшифровываются и записи, защищённые атрибутом this_device_only
  • В том числе извлекается пароль к резервным копиям iTunes

Использование джейлбрейка приносит не только выгоды, но и несёт ряд рисков.

Риски джейлбрейка

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

Более того, даже устройства с установленным джейлбрейк загружаются в обычном режиме; для получения прав суперпользователя джейлбрейк необходимо будет запустить ещё раз, уже после загрузки. У современных джейлбрейков (начиная с джейлбрейков для iOS 10) этот риск практически отсутствует: джейлбрейки не модифицируют ядро системы и никак не влияют на процесс загрузки (и, разумеется, не трогают KPP).

Эти джейлбрейки не только никак не модифицируют систему, но даже не перемонтируют системный раздел. К абсолютному минимуму этот риск сведён в джейлбрейках категории Rootless. Соответственно, как-либо повлиять на процесс загрузки системы такие джейлбрейки не в состоянии.

Перечислим. Какие же риски несёт установка джейлбрейка?

Выход устройства в интернет. В процессе установки джейлбрейка вам придётся получить цифровую подпись для пакета IPA, в котором и содержится джейлбрейк. 1. Цифровую подпись выдают серверы Apple; к ним необходимо обратиться за её получением. Неподписанные IPA не могут быть переданы на устройство и тем более не могут быть запущены на нём. Тем не менее, если вы разрешите устройству выход в интернет, вы рискуете: злоумышленник может дистанционно подать на устройство команду для его блокировки или уничтожения данных. Процесс автоматизирован: для него используется готовое и очень простое в использовании приложение Cydia Impactor с открытым исходным кодом.

Подробности в Пошаговом руководстве. Решение: эту проблему можно обойти, использовав сертификат для разработчиков (Apple Developer Program).

Джейлбрейк просто не установится. Да, второй по тяжести риск – это то, что джейлбрейк попросту не встанет на iPhone. 2. Увы, но ошибка на любом этапе приводит к тому, что джейлбрейк не установится, а вы окажетесь в лучшем случае с устройством без джейлбрейка, а в худшем – с устройством с перемонтированным системным разделом, но без джейлбрейка (о том, чем это плохо – ниже). Джейлбрейки используют не одну, а целую цепочку уязвимостей; найти и правильно использовать такую цепочку – тяжёлый труд.

Для iOS 12, например, мы насчитали как минимум 4 работоспособных джейлбрейка (на самом деле их больше). Решение: вообще говоря, джейлбрейков существует множество. Просто попробуйте другой; о них опять же в Пошаговом руководстве. Не сработал один джейлбрейк?

Последствия

С рисками разобрались, джейлбрейк установлен. Чем это может грозить?

Их всего два: обычные (классические) джейлбрейки, и rootless-джейлбрейк. Прежде, чем говорить о рисках джейлбрейка, разберёмся с их видами.

В системный раздел для этого записывается довольно много файлов, а сам системный раздел перемонтируется в режиме r/w. Классический джейлбрейк предоставляет пользователю, так сказать, «полный фарш»: отключается проверка цифровой подписи (можно устанавливать и запускать любые приложения), устанавливается сторонний магазин приложений (чаще всего это Cydia, но начали появляться и альтернативные варианты).

Хлам в системном разделе, который иногда невозможно полностью убрать в процессе удаления джейлбрейка (особенно если пользователь успел попробовать установку разных джейлбрейков). Что это означает на практике? Наконец, невозможность корректной установки OTA-обновлений. Потенциальную (а часто и реальную) нестабильность устройства. Не слишком приятно. Помогает только полное восстановление прошивки через iTunes, причём иногда нестабильность устройства сохраняется, и приходится делать сброс к заводским настройкам.

Этот джейлбрейк не снискал популярности своих классических собратьев по очевидной причине: он не устанавливает (и не поддерживает работу) сторонних магазинов (Cyida и подобных). Все эти вещи не происходят, если использовать джейлбрейк нового типа rootless, единственным представителем которого является RootlessJB. У обычного пользователя-энтузиаста в этот момент интерес пропадает, и он устанавливает классический джейлбрейк.

Дело в том, что исследуемый iPhone мы должны вернуть примерно в том виде, в каком он поступил на анализ. Между тем для наших целей RootlessJB представляет особую ценность. Именно эти возможности нам даёт RootlessJB. То есть, как минимум устройство не должно работать менее стабильно, чем до анализа, и не должно быть проблем с установкой OTA-обновлений. Более того, он и не может этого сделать: сам принцип работы этого джейлбрейка не предполагает перемонтирования системного раздела в режим r/w. Посудите сами: этот джейлбрейк не модифицирует системный раздел, не записывая в него ни одного лишнего файла.

Поскольку джейлбрейку RootlessJB не нужно поддерживать сторонний магазин приложений, нет и необходимости отключать проверку цифровой подписи (отдельные бинарники запускать можно, но пути к ним нужно вручную прописать в файл контроля разрешений). Дальше – больше. Системный раздел не требуется открывать на запись – можно пропустить эксплуатацию соответствующей уязвимости, что упрощает процесс установки и делает его более надёжным. Не нужно отключать проверку цифровой подписи – не нужно ничего записывать в системный раздел. Иными словами, для нас RootlessJB – буквально подарок.

Закончим статью таблицей, в которой сравним последствия использования джейлбрейков разных видов.

image

Заключение

Эта статья – первая из запланированных. Я планирую рассказать о том, как именно в лабораториях полиции и спецслужб как нашей страны, так и за рубежом получают доступ к информации в устройствах Apple. Оставайтесь с нами, будет интересно!

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть