В статье Извлечение данных из iPhone без джейлбрейка мы рассказали о том, как использовать программу-агента для доступа к файловой системе iOS. В этой статье упоминалось о том, что для работы агента необходима учётная запись Apple ID, зарегистрированная в программе Apple для разработчиков. В чём смысл этой регистрации, для чего эксперту-криминалисту нужно становиться «зарегистрированным разработчиком» и можно ли без этого обойтись? Попробуем разобраться.
Итак, в инструментарии Elcomsoft iOS Forensic Toolkit появилась дополнительная группа команд, позволяющая выполнить извлечение данных посредством специальной программы, так называемого агента-экстрактора. Новый функционал не требует установки джейлбрейка – это несомненный плюс. С другой стороны, для установки на устройство программы-агента нужна цифровая подпись, для которой можно использовать только такие учётные записи Apple ID, которые зарегистрированы в программе Apple для разработчиков.
Почему это так? Прежде, чем ответить на этот вопрос, необходимо разобраться, как именно сторонние приложения в целом и агент-экстрактор в частности могут быть установлены на устройство с iOS.
Агент-экстрактор поставляется в виде стандартного для iOS пакета – файла с расширением .ipa; в точно таком же виде распространяются и утилиты джейлбрейк. Пакет IPA – обычный архив в формате ZIP, в котором содержится двоичный исполняемый файл для операционной системы iOS. Пока – ничего необычного.
Для того, чтобы пакет IPA можно было установить на устройстве, система iOS потребует наличия актуальной цифровой подписи. В принципе, и здесь ничего нового нет: на смартфоны с Android тоже можно устанавливать исключительно подписанные APK. Разница же между iOS и другими операционными системами заключается в том, что цифровая подпись удостоверяет не только разработчика приложения, но и идентифицирует устройство или устройства, на которые может быть установлено приложение. Для того, чтобы подписать пакет IPA, требуется учётная запись Apple ID, которые могут быть одного из трёх типов.
Apple ID обычного пользователя
Подавляющее большинство учётных записей Apple ID принадлежит обычным пользователям. При использовании обычной учётной записи Apple ID для цифровой подписи пакета IPA подписанный пакет может быть установлен только и исключительно на то устройство, для которого была создана цифровая подпись. Более того, при установке такого приложения на устройство iOS потребует верифицировать цифровую подпись, для чего устройство придётся пустить в Интернет. Выход устройства в Интернет несёт потенциальные риски: возможность удалённой блокировки или уничтожения всех данных через функцию Find My (не говоря уже о синхронизации как самой системы, так и ряда сторонних программ). Соответственно, использование обычных Apple ID в рамках расследования – неоднозначное и рискованное мероприятие.
Корпоративные учётные записи
Штатный способ установки приложений на устройства под управлением iOS – скачивание приложений через магазин приложений App Store. В то же время кураторы App Store пропускают далеко не все приложения. Для корпоративных клиентов Apple обеспечивает альтернативный способ установки и распространения приложений – через корпоративные профили. Использование корпоративного профиля позволяет подписывать и распространять приложения среди сотрудников компании, минуя App Store. При этом каждое конечное устройство, на которое устанавливается такое приложение, также потребует верификации сертификата через Интернет. Более того; если Apple посчитает, что та или иная компания злоупотребила своим положением (или сертификат будет украден и использован на сайтах, подобных «альтернативному магазину приложений» ignition.fun), сертификат будет немедленно отозван.
Учётные записи разработчиков
Наконец, мы подошли к третьему типу учётных записей – учётной записи разработчика. Такие учётные записи занимают уникальное положение. Приложения, подписанные цифровыми сертификатами таких учётных записей, можно установить на устройство с iOS, при этом устройство не потребует дополнительной верификации сертификата. Соответственно, установка возможна в режиме офлайн, без связи с Интернет. Это – важнейшее преимущество учётных записей для разработчиков с точки зрения криминалистики. А что по поводу того, что цифровой сертификат в iOS выдаётся для каждого конкретного устройства? Всё правильно: с технической точки зрения идентификаторы всех устройств, на которые разрешена установка подписанных сертификатом приложений, сохраняются в самом сертификате. iOS проверяет наличие в разрешённом списке идентификатора текущего устройства, и если он найден – позволяет установить приложение.
Итак, мы рассмотрели три типа учётных записей Apple ID, которые потенциально могли бы использоваться для цифровой подписи агента-экстрактора. Почему же нельзя использовать учётную запись обычного пользователя?
Дело в том, что в ноябре 2019 Apple убрали возможность использовать обычные учётные записи для цифровой подписи приложений. Причины такого решения точно неизвестны. Возможно, таким образом в компании борются с возможностью установки джейлбрейков – однако наличие сторонних «магазинов приложений», готовых подписать любой пакет IPA одним из многочисленных украденных корпоративных сертификатов опровергает эту теорию. Дискуссию на эту тему можно увидеть в Twitter разработчика приложения Cydia Impactor:
https://twitter.com/saurik/status/1196888477830221824
В Elcomsoft iOS Forensic Toolkit используется похожий механизм установки, который также прекратил работать, если используется обычная учётная запись Apple ID. Таким образом, для установки агента-экстрактора потребуется использовать учётную запись разработчика.
Мы работаем над решением, которое позволит вернуть возможность цифровой подписи посредством обычных учётных записей. Решение для Mac в стадии тестирования; пользователям Windows придётся подождать.
Apple не была бы Apple, если бы не было подводных камней.
Первый подводный камень – двухфакторная аутентификация. Для всех учётных записей, участвующих в программе Apple для разработчиков, включение двухфакторной аутентификации является обязательным требованием. Для установки агента-экстрактора нужно ввести логин и пароль – но пароль не от основного Apple ID, а так называемый «пароль приложения», который необходимо предварительно создать в учётной записи. Использование такого пароля для подписи приложения позволяет обойтись без второго шага аутентификации.
Второе ограничение касается количества устройств, которые вы можете добавить в учётную запись разработчика. Ежегодное ограничение – сто устройств каждого типа: вы можете добавить сто iPhone и сто iPad в год. Вы можете удалить устройства из вашего профиля разработчика, но лимит на число устройств будет сброшен лишь в конце года.
Нужно знать и о ещё одной особенности. После того, как очередное устройство будет добавлено в ваш профиль разработчика, сгенерированный цифровой сертификат будет содержать полный список идентификаторов UUID всех устройств, которые присутствуют в профиле. Если вы хотите, чтобы этого не происходило, вам нужно будет вручную удалить из вашей учётной записи идентификаторы уже отработанных устройств и заново сгенерировать сертификат.
И последнее. Зарегистрироваться в программе для разработчиков Apple как организации – достаточно сложная и длительная процедура. Гораздо проще зарегистрировать учётную запись, оформленную на частное лицо. Стоимость такой регистрации эквивалентна $99 в год.
Можно ли обойтись без регистрации и не платить за участие в программе Apple для разработчиков? Многочисленные сторонние магазины приложений (AltServer, AppStore.io, AppEven, ignition.fun, Tutuapp, Pandahelper, App Valley, Desde tu iPhone, Tweakbox и прочие) предлагают бесплатно воспользоваться одним из оплаченных или украденных корпоративных сертификатов или сертификатов разработчиков. Помимо того, что такие сертификаты оперативно отслеживаются и блокируются Apple, использование стороннего магазина приложений часто приводит к серьёзным модификациям файловой системы и установке неожиданных «бонусов» в виде зловредного ПО.
Использование джейлбрейка checkra1n и эксплойта checkm8 не имеет прямого отношения к учётным записям для разработчиков, т.к. работает через Bootrom. В то же время, вполне логичен вопрос: можно ли обойтись без учётной записи для разработчиков в свете существования альтернативного способа извлечения?
Отметим, что у метода извлечения посредством джейлбрейка checkra1n либо напрямую с использованием эксплойта checkm8 есть ряд особенностей и ограничений.
Основное ограничение метода — совместимость. Из многих десятков iPhone и iPad, имеющихся в нашей лаборатории совместимыми оказались далеко не все: метод работает лишь для устройств iPhone 5s — 8/8 Plus/iPhone X. Более новые устройства, вышедшие в последние два года (а это — iPhone Xr/Xs/Xs Max и линейка iPhone 11) не поддерживаются. Более того, поддерживаются не все комбинации моделей устройств и версий iOS.
Вторая проблема метода — скорость и стабильность работы. Из 50 устройств, теоретически совместимых с checkm8, каждое третье устройство оказалось проблемным. Наш опыт подтверждают и пользователи, отмечающие длительное время работы метода. На англоязычных форумах обсуждаются устройства, процесс извлечения файловой системы которых продолжается в течение двух недель.
Наконец, имеет значение и лабораторная чистота метода с точки зрения криминалистики. Несмотря на то, что разные поставщики решений для мобильной криминалистики так и не смогли договориться о том, что подразумевается под «лабораторно чистым» извлечением, установка любого джейлбрейка (и даже прямое извлечение через checkm8) таковым однозначно не является.
Абсолютно все методы извлечения данных из устройств под управлением iOS оставляют следы. Даже один и тот же продукт, запущенный дважды подряд, выдаст два различных результата с несовпадающими контрольными суммами. В то же время метод, использующий агент-экстрактор, является максимально приближённым к «лабораторно чистому» извлечению. Единственные следы, остающиеся на устройстве после отработки агента — это несколько записей в системных журналах.
Является ли агент-экстрактор универсальным решением для iOS? Нет; у метода есть свои ограничения (впрочем, следующая версия Elcomsoft iOS Forensic Toolkit будет поддерживать устройства с iOS 13.0-13.3 на любых устройствах). Тем не менее, как надёжность, так и скорость работы агента при прочих равных условиях всегда существенно выше, чем у методов, основанных на checkm8/checkra1n. Кроме того, для его работы нужна учётная запись для разработчиков.
Учётная запись Apple для разработчиков – одна из необходимых инвестиций для лабораторий мобильной криминалистики. Только учётные записи этого типа обеспечивают возможность безопасной установки агента-экстрактора или джейлблейка на устройства под управлением iOS.
Elcomsoft iOS Forensic Toolkit – специализированный инструмент для проведения криминалистического анализа устройств, работающих под управлением Apple iOS. Для анализа доступна вся пользовательская и системная информация, а также зашифрованные данные из системного хранилища (связка ключей).