Статьи по ключевому слову ‘ios’

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

Для пользователя резервная копия – удобный и простой способ перенести данные на новое устройство или восстановить уже имеющееся после сброса к заводским настройкам. Для экспертов-криминалистов резервные копии iOS — не менее удобный, универсальный и простой способ извлечь из хорошо защищённого хранилища устройства копию данных. В резервные копии попадает множество важной информации: и данные большинства приложений, и логины с паролями, которые пользователь сохранил в браузере Safari и сторонних приложениях, и пароли к Wi-Fi, и резервные копии часов Apple Watch, и данные об активности пользователя (шаги, сердцебиение в заданный момент времени). Попадают в резервные копии и многие другие вещи, жизненно необходимые для расследования преступлений. В руках злоумышленника резервная копия превращается в опасное оружие. Логины и пароли из Связки ключей позволяют получить доступ к учётным записям, переписке и финансам пользователя. Чтобы этого не произошло, Apple позволяет пользователю установить пароль на резервные копии.

Пароли к резервным копиям iOS

Если пароль установлен, вся резервная копия целиком будет зашифрована стойким ключом, который генерируется на основе пароля. Шифрование происходит внутри устройства; если пароль установлен, то незашифрованные данные просто не покидают телефон. Соответственно, какую бы программу для снятия резервной копии вы ни использовали, результат будет один: зашифрованная резервная копия.

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

До выхода iOS 11 длинный и сложный пароль на резервную копию был абсолютной защитой; никакой возможности удалить или поменять пароль, не введя предварительно старый, в старых версиях системы не существовало. В iOS 11 ситуация изменилась.

Первая рекурсия: сброс пароля на резервную копию

Если злоумышленнику известен пароль блокировки экрана, он сможет использовать его для сброса пароля к резервной копии. После сброса можно подключить телефон к компьютеру и извлечь все данные, а также расшифровать все пароли из связки ключей. На сайте Apple даются подробные инструкции, как нужно действовать для сброса пароля на резервную копию:

В iOS 11 или более поздней версии можно создать зашифрованную резервную копию устройства, сбросив пароль. Чтобы сделать это, нужно выполнить следующие действия.

  1. На устройстве iOS выберите «Настройки» > «Основные» > «Сброс».
  2. Нажмите «Сбросить все настройки» и введите пароль ОС iOS.
  3. Следуйте инструкциям по сбросу настроек. Это не затронет данные или пароли пользователей, но приведёт к сбросу таких настроек, как уровень яркости дисплея, позиции программ на экране «Домой» и обои. Пароль для шифрования резервных копий также будет удалён. (В скобках: на этом этапе устройство потребует ввести код блокировки экрана).
  4. Снова подключите устройство к iTunes и создайте новую зашифрованную резервную копию.

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

На устройстве с iOS 10 или более ранней версии сброс пароля невозможен. 

Вторая рекурсия: защита от попыток сброса пароля на резервную копию

Лёгкость, с которой злоумышленник может обойти самый сложный и длинный пароль на резервную копию, всего лишь введя код блокировки экрана, неприятно поражает. Однако от этой угрозы можно уберечься. Механизмом защиты здесь станут Ограничения родительского контроля (iOS 11) или пароль Экранного времени (iOS 12 и более поздние).

Допустим, ваш iPhone попал в руки злоумышленника. Предположим, злоумышленнику удалось подсмотреть ваш код блокировки; теперь он пытается отвязать телефон от облака, а заодно извлечь  копию данных, получив доступ к паролям из Связки ключей. Защититься от такого развития событий можно при помощи пароля Экранного времени. Подробно о возможностях контроля Экранного времени можно почитать в статье Apple Использование родительского контроля на устройствах iPhone, iPad и iPod touch ребенка. Нас же сейчас интересует другая возможность этой системы: защитить телефон от сброса пароля на резервную копию.

Как ни странно, ограничить возможность сброса пароля к локальной резервной копии iOS достаточно просто: всё, что нужно сделать, это установить пароль Экранного времени как таковой. Сложность такого пароля невелика: единственный доступный вариант – это PIN-код из 4 цифр. Тем не менее, такая защита в целом достаточно надёжна. Поскольку этот пароль используется очень редко и отличается от кода блокировки устройства, его невозможно случайно подсмотреть. Этот код понадобится в исключительно редких случаях, когда вы захотите изменить настройки или отключить ограничения. Вы можете установить случайный код, записав его на оставленной дома бумажке – и это будет вполне безопасно.

Что произойдёт, если теперь попытаться сбросить пароль на резервную копию? На первом шаге – никаких отличий: система запросит пароль блокировки устройства. А вот сразу после этого будет запрошен дополнительный 4-значный пароль Экранного времени. Эта мера безопасности вполне способна не только отвадить любопытных, но и защитить iPhone от целенаправленных попыток взлома.

Рекурсия третья: как узнать пароль Экранного времени

Пароль Экранного времени сохраняется на самом устройстве. Подобрать его за разумное время невозможно: невеликое пространство из 10,000 комбинаций защищается системой прогрессирующими задержками между попытками ввода. После нескольких неудачных попыток система ограничит скорость перебора паролей Экранного времени, вводя прогрессивные задержки в 1, 5, 15 и 60 минут. После 10 неудачных попыток каждая следующая попытка может быть предпринята не ранее, чем через час после предыдущей; перезагрузка устройства не поможет ускорить процесс. Таким образом, все 10,000 комбинаций можно перебрать за 416 дней.

Однако есть и более интересные способы. Сразу оговорюсь: первый из них работает только тогда, когда пароль на резервную копию не установлен или известен, а второй – если на iPhone можно установить джейлбрейк (включая аппаратный — checkra1n).

Способ 1: извлечь из резервной копии

В iOS 7-11 этот пароль (там он носит название Restrictions) хранится в виде хэша. Алгоритм относительно стойкий (pbkdf2-hmac-sha1, но количество итераций относительно невелико). С учётом того, что пароль этот состоит всегда и только из 4 цифр, полный перебор хэша на компьютере занимает несколько секунд. Сам хэш хранится в файле com.apple.restrictionspassword.plist, который попадает в бэкап. Соответственно, пароль Restrictions можно вскрыть, если у нас есть (одно из):

  • резервная копия iOS без пароля
  • резервная копия iOS с паролем, плюс пароль от него

В iOS 12 (здесь это пароль Экранного времени, или Screen Time) хранится в открытом виде. Нет, безопасность от этого хуже не стала: пароль переместили в Связку ключей. Тем не менее, класс защиты паролю Экранного времени назначили минимальный: он не привязан к устройству. Минимальный класс защиты назначен умышленно. Сделано это для того, чтобы при восстановлении нового iPhone из бэкапа пароль Экранного времени устанавливался автоматически (таким образом Apple закрыли потенциальную возможность снять пароль Экранного времени путём создания резервной копии, сброса устройства и последующего восстановления из резервной копии). Записи Связки ключей с более высокими классами защиты не попадают в резервные копии или попадают, но защищаются аппаратным ключом устройства (то есть, могут быть восстановлены только на то же самое устройство).

Чтобы достать пароль Экранного времени, нужно:

  • резервная копия iOS с паролем плюс пароль от него

Способ 2: через джейлбрейк

Очевидно, что первый способ сработает лишь тогда, когда пароль на резервную копию не установлен или известен. Если же пароль на резервную копию установлен, но неизвестен, то единственный оставшийся способ узнать пароль Экранного времени – получить доступ к Связке ключей (keychain). Для старых версий iOS нужна копия файловой системы.

Для iOS 7-11 нужно:

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

Для iOS 12:

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

Нужно ли это делать? Не уверен: если удалось установить джейлбрейк, то, во-первых, все пароли можно извлечь и так, без посредника в виде резервной копии. Во-вторых, пароль на резервную копию можно узнать, расшифровав Связку ключей: пароль на резервную копию (так же, как и пароль Экранного времени) хранится там в открытом виде. Впрочем, если цель – снять ограничения Экранного времени, то такой подход вполне годится.

One more thing

Что интересно, пароль Экранного времени хранится также и в облаке iCloud, но только в том случае, если вы включили двухфакторную аутентификацию и активировали опцию Screen Time “Share across devices”. Сам ключ при этом не попадает в Облачную связку ключей, а хранится отдельно (примерно в том же виде, что и ключ восстановления доступа к зашифрованным томам FileVault 2). Извлечь его из iCloud (и просмотреть) можно посредством Elcomsoft Phone Breaker. Для этого вам понадобится всё перечисленное ниже:

  • логин и пароль от Apple ID (iCloud) пользователя
  • код блокировки экрана устройства
  • доступ ко второму фактору аутентификации (им является само устройство, если известен код блокировки; впрочем, достаточно и SIM-карты с доверенным телефонным номером)

А вот сценарий со сбросом устройства и последующим восстановлением его из «облачной» резервной копии мы не проверяли, поэтому я не могу точно сказать, активируется ли пароль Экранного времени, если создать резервную копию в iCloud, сбросить iPhone и восстановиться из облака.

Рекурсия четвёртая, последняя: как защитить доступ к паролю Экранного времени

Вот мы и подошли к последнему пункту. Если ваша цель – максимально обезопасить устройство, то в ваших интересах сделать так, чтобы пароль Экранного времени ни сбросить, ни узнать было нельзя.

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

Опасаться можно сценария, когда украденное устройство (с известным злоумышленнику кодом блокировки) будет положено на полку в ожидании появления джейлбрейка, либо если для вашего телефона (iPhone 8, 8 Plus, iPhone X или более старое поколение) есть аппаратный джейлбрейк checkra1n. Здесь, однако, может помочь стандартная «Стереть [устройство]», выполненное в портале Find my iPhone. Дело в том, что для установки джейлбрейка требуется сначала подписать IPA-файл, а потом и подтвердить цифровую подпись непосредственно на самом iPhone. Подтверждение цифровой подписи происходит на сервере Apple; то есть, злоумышленнику придётся разрешить украденному у вас iPhone выйти в интернет. В этот момент с большой вероятностью сработает команда на стирание устройства.

Злоумышленники могут решить эту проблему, используя специальные конфигурации роутера, в которых будет запрещён доступ к узлам, ответственным за функционал Find My iPhone. Кроме того, вместо обычного сертификата для подписи джейлбрейка могут использовать сертификат разработчика, который не требует выхода iPhone в сеть для подтверждения цифровой подписи.

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

Мы разработали способ, позволяющий разблокировать смартфоны моделей iPhone 5 и iPhone 5c, защищённые неизвестным кодом блокировки экрана. Наш метод взлома кода блокировки основан на атаке через режим DFU, для проведения которой вам потребуется компьютер под управлением macOS. Реализация метода — полностью программная; разборка устройства или дополнительное аппаратное обеспечение не требуются. Для разблокировки телефона вам потребуется инструментарий iOS Forensic Toolkit версии 6.40 или более новой, компьютер Mac и обычный кабель USB-A — Lightning. В этом руководстве описаны шаги по разблокировке смартфонов iPhone 5 и 5c.

Виды кодов блокировки

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

Перебор кодов блокировки возможен исключительно на самом смартфоне; при этом разработчики Apple предприняли все возможные шаги для затруднения и замедления перебора. В современных устройствах для защиты от перебора используется аппаратный сопроцессор Secure Enclave, который вводит прогрессирующие задержки между неудачными попытками. Прогрессирующие задержки есть и в старых устройствах, основанных на 32-разрядных процессорах; сюда входят и модели iPhone 5 и 5c. Защита на этих устройствах, однако, реализована на программном уровне – что позволило нам её обойти программным же способом. Точно таким же образом мы отключили и опцию стирания данных после 10 неудачных попыток.

В результате скорость перебора паролей достигла максимально возможной цифры в 13.6 паролей в секунду (аппаратный предел платформы).

В версиях iOS, которые поддерживаются на моделях iPhone 5 и 5c, доступны следующие варианты кодов блокировки экрана:

  • PIN-код, состоящий из 4 цифр
  • PIN-код, состоящий из 6 цифр
  • PIN-код, состоящий из произвольного количества цифр (кроме четырёх и шести)
  • Буквенно-цифровой пароль

Взлом PIN-кодов, состоящих из 4 или 6 цифр

Скорость атаки в 13.6 паролей в секунду позволяет полностью перебрать все комбинации 4 цифр за 12 минут.

Пароли, состоящие из 6 цифр, перебираются в течение 21 часа, однако реальное время разблокировки может быть значительно меньше, если пользователь установил один из распространённых паролей. В процессе атаки инструментарий в первую очередь опробует самые часто используемые пароли (к примеру, 123456, 000000, 343434 и т.п.), во вторую – пароли, в которых может быть закодирована дата (день рождения пользователя или одного из членов семьи – весьма распространённый цифровой пароль). Лишь в том случае, если не сработает ни одна из этих атак, время отработки которых составляет примерно полтора часа, программа включит режим полного перебора.

Буквенно-цифровые пароли

Скорости в 13.6 паролей в секунду достаточно для взлома паролей, состоящих только из цифр (до 6 включительно). Сложность буквенно-цифровых паролей такова, что взломать их за разумное время не представляется возможным. Соответственно, в настоящий момент перебор буквенно-цифровых паролей нашим инструментарием не поддерживается. Мы рассматриваем возможность добавления атаки по словарю в следующих версиях продукта.

Требования

Для проведения атаки на код блокировки вам потребуется следующее.

  1. macOS (под Windows эта функция недоступна).
  2. Прямое соединение телефона с компьютером без использования USB хаба
  3. Если на Маке есть только порты USB-C, используйте адаптер-переходник с USB-C на USB-A и кабель USB-A – Lightning. Не используйте кабели USB-C – Lightning.
  4. Устройство должно быть заряжено как минимум до 20%.
  5. iOS Forensic Toolkit версии 6.40 или более новой.

Шаги по разблокировке iPhone 5c

В первую очередь — установите инструментарий iOS Forensic Toolkit и прочтите важную информацию по установке джейлбрейка checkra1n:

  1. Скачайте Elcomsoft iOS Forensic Toolkit. Вставьте аппаратный ключ в свободный порт USB (ключ корректно определяется и при использовании USB-хабов).
  2. Ознакомьтесь с инструкцией по установке инструментария на macOS: How to Install and Run iOS Forensic Toolkit on a Mac. Обратите внимание на особенности установки на macOS Catalina.
  3. Установите инструментарий в соответствии с инструкциями.
  4. Ознакомьтесь с особенностями установки checkra1n:
    1. Только прямое подключение телефона к компьютеру (без хабов)
    2. Используйте только кабели USB-A — Lightning (кабели USB-C — Lightning официально не поддерживаются, хотя и могут работать; при необходимости используйте переходник с USB-C на USB-A)
    3. Телефон должен быть заряжен хотя бы до уровня 20%.

Выберите пункт ‘P’ для доступа к функционалу взлома кода блокировки.

Вам будут доступны следующие варианты действий:

[1] Put device in DFU mode (перевести телефон в режим DFU)
[2] Exploit device (произвести эксплойт)
[3] Break 4-digit passwords (взломать пароль из 4 цифр)
[4] Break 6-digit passwords (взломать пароль из 6 цифр)
[5] Reboot device (перезагрузить устройство)

На первом шаге необходимо ввести устройство в режим DFU. Сделать это можно только вручную. Первая опция [1] поможет вам произвести нужные шаги. Существует несколько вариантов, но мы рекомендуем такую последовательность:

  • Начальное состояние: телефон должен быть выключен и не подключён к компьютеру.
  • Нажмите кнопку Home (единственную/центральную на лицевой панели), и удерживая её, подключите кабель Lightning. Отпустите Home, когда на экране устройства появится картинка «Подключитесь к iTunes».
  • Одновременно нажмите Home и Sleep/Power (кнопка блокировки на верхнем торце устройства) и удерживайте их 8 секунд (на некоторое время на экране появится логотип Apple).
  • Отпустите кнопку Sleep/Power, но продолжайте удерживать Home ещё 8 секунд

Если всё сделано правильно, экран аппарата останется чёрным, а в iTunes или Finder (в зависимости от используемой версии macOS) телефон появится как iPhone in recovery mode (режим восстановления). Всё готово к следующим шагам, которые уже автоматизированы.

Когда устройство находится в DFU-режиме, выберите вторую команду для эксплойта устройства путём загрузки в оперативную память специальной версии прошивки, использующей уязвимости. Процесс абсолютно безопасен, не затрагивает пользовательские данные и не оставляет следов на устройстве. Но в зависимости от ряда факторов (включая такие, как качество кабеля), эта операция не всегда бывает успешной. Просто повторите попытку. Вам понадобится сначала перезагрузить устройство в обычном режиме путём нажатия и удерживания обоих кнопок в течение примерно 8 секунд, после чего пройдите все шаги заново, начиная с выключения устройства. Пример сообщения об ошибке:

Ещё одна распространённая ошибка — сообщение Failed to upload iBSS. Если вы столкнулись с этим сообщением, просто повторите попытку. Иногда может потребоваться до пяти попыток. При каждой попытке вам придётся заново вводить устройство в режим DFU. Данная проблема не связана с нашим инструментарием; её возникновение говорит скорее о качестве драйверов или особенностях аппаратного обеспечения. Исправить эту проблему при помощи нашего ПО невозможно.

Если операция эксплойта прошла успешно и смонтирован пользовательский раздел (об этом будет выведено сообщение), можно приступить к взлому пароля. Выберите один из доступных вариантов (4 или 6 цифр).

Атака займёт максимум 12 минут (4-значные PIN) или 21 час (6-значные PIN), обычно существенно быстрее. Перебор алфавитно-цифровых паролей произвольной длины в настоящий момент не поддерживается.

После успешного нахождения пароля перезагрузите устройство в обычном режиме путём выбора последней команды.

Заключение

iPhone 5 и 5c появились более 7 лет назад, но в лабораториях (а в некоторых странах — и на руках у пользователей) до сих пор хранится множество необработанных устройств. Первый способ разблокировать эти модели стоил больше миллиона долларов. Сегодня же мы предлагаем быстрое, удобное, а главное — чисто программное решение.

Джейлбрейк checkra1n — уникальное явление в экосистеме Apple, эксплуатирующее аппаратную уязвимость в загрузчике ряда устройств. К сожалению, процесс установки джейлбрейка checkra1n не так прост и прямолинеен, что часто приводит к ошибкам. В то же время чёткое следование инструкциям позволяет добиться успеха почти в ста процентах случаев. О правилах и особенностях установки checkra1n мы поговорим в этой статье.

Для чего нужен checkra1n

Нужно ли устанавливать джейлбрейк в процессе извлечения данных? Ответ на этот вопрос зависит только от вас. Если известен код блокировки устройства, вам могут быть доступны другие варианты извлечения данных — от логического анализа до скачивания из облака (через сброс пароля к iCloud). В то же время работа через джейлбрейк позволяет извлечь полный образ файловой системы, включая рабочие базы данных различных защищённых программ мгновенного обмена сообщениями, которые практически никогда не попадают в резервные копии.

Даже если вы приняли решение об установке джейлбрейка, вовсе не обязательно пользоваться именно checkra1n. Для ряда устройств и версий iOS доступен альтернативный вариант — джейлбрейк unc0ver; ещё один джейлбрейк (Odyssey) на подходе.  Между этими вариантами есть существенная разница, о которой мы писали в англоязычной части нашего блога в статье checkra1n & unc0ver: How Would You Like to Jailbreak Today. Вкратце, основными преимуществами checkra1n является поддержка самых свежих версий iOS, которые не поддерживаются другими джейлбрейками, и возможность работы с «холодными» устрофствами в режиме BFU (Before First Unlock, или «до первой разблокировки») даже в тех случаях, когда код блокировки устройства неизвестен. Ещё одним немаловажным преимуществом checkra1n является то, что для его установки не нужно подписывать файл-установщик (IPA) через AltStore или с использованием учётной записи Apple для разработчиков.

Совместимость и интерфейс командной строки

checkr1n совместим с моделями iPhone от 5s до iPhone X включительно, многочисленными моделям iPad, а также Apple TV 4 (Apple TV HD) и Apple TV 4K. Поддержка версий iOS заявлена в промежутке от iOS 12.3 до 13.5.

В то же время разработчики предусмотрели возможность установки checkra1n и на тех версиях iOS, которые не поддерживаются официально. Для этого достаточно активировать режим “Allow untested versions”, как показано на скриншоте. Мы успешно опробовали checkra1n на устройствах с iOS 13.5.1 и 13.6. В то же время со старыми версиями iOS (12.3 и ниже) успеха мы не добились.

При установке checkra1n рекомендуем воспользоваться интерфейсом командной строки вместо режима GUI; по нашим наблюдениям, в режиме командной строки установка работает более надёжно. Важно отметить, что при работе с устройствами, которые находятся в режиме BFU с неизвестным кодом блокировки экрана и заблокированным портом USB, режим командной строки — единственный доступный.

Требования к компьютеру

В отличие от подавляющего большинства других джейлбрейков, checkra1n устанавливается только с компьютера под управлением macOS или Linux. Версии для Windows нет, однако существуют различные способы обхода этого ограничения — например, эмуляторы и загрузочные флеш-накопители. Если в вашем распоряжении только компьютер под управлением Windows, воспользуйтесь одним из решений Ra1nUSB, Bootrain или ra1nstorm.

Кроме того, существует вариант установки через Raspberry Pi, однако по информации от разработчиков он работает недостаточно стабильно (в особенности — на устройствах Raspberry Pi Zero и Raspberry Pi 3).

Таким образом, для установки checkra1n имеет смысл воспользоваться именно компьютером под управлением macOS. Мы не проверяли работу установщика на Big Sur, но в macOS Catalina он функционирует без проблем.

Требования к коннектору и кабелю

Основное правило: используйте сертифицированный кабель формата Lightning to USB Cable (с коннектором USB Type-A), но ни в коем случае не кабель с коннектором USB Type-C. О причинах пишут разработчики checkra1n:

Кабели Lightning с разъёмом USB-C проблематичны в использовании. В частности, некоторые из них не могут быть использованы для перехода в режим DFU, и мы ничего не можем с этим поделать. В число неработоспособных входят как собственные кабели USB-C от Apple, так и некоторые сторонние кабели. В то же время ряд сторонних кабелей оказался работоспособным, однако сказать заранее, какой кабель сработает, а какой — нет, не получается. Если конкретный кабель не работает, рекомендуем использовать кабель USB-A, при необходимости — в сочетании с адаптером USB-A-C.

Техническое объяснение:

BootROM перейдёт в режим DFU только в том случае, если обнаружит напряжение на разъёме USB. В свою очередь, определение напряжения на разъёме сводится к проверке того, установлен ли определённый вывод из чипа Tristar. Tristar делает это на основе «идентификатора аксессуара» кабеля. Очевидно, что кабели USB-A и USB-C имеют разные идентификаторы аксессуаров, а некоторые кабели USB-C заставляют Tristar не устанавливать вывод напряжения USB.

Наконец, воздержитесь от использования USB-хабов (вариант с переходником с USB-C на USB-A допустим).

Другие особенности

Одной из неочевидных особенностей при установке checkra1n является уровень заряда аккумулятора телефона. Убедитесь, что устройство не находится в режиме Low Power, а заряд аккумулятора заметно превышает 20%.

Ещё одна рекомендация от разработчиков checkra1n: при попытке установить checkra1n на несколько телефонов подряд, успешной будет только первая попытка. Обойти проблему можно, перезапустив checkra1n после каждой попытки.

Со своей стороны добавим, что, возможно, вам придётся перезапустить компьютер с macOS. Похоже, драйвер USB driver или какой-то другой компонент системы перестаёт нормально работать после попытки установить checkra1n; при этом самый простой способ восстановить работоспособность — перезагрузить компьютер, отключить iPhone, подключить его заново и снова ввести в режим DFU.

Если вам всё ещё не удаётся установить checkra1n, вы можете оформить запрос в checkra1n issue tracker, максимально подробно описав проблему и убедившись, что её решение не опубликовано ранее.

Ближайшее будущее

Заработает ли checkra1n с новыми версиями iOS, включая iOS 14? Для iOS 13.6 ответ положительный. Что же касается iOS 14, мы протестировали работу последней версии checkra1n (0.20.2) с iOS 14 beta 2 на ряде устройств от iPhone 6s до iPhone X, обнаружив, что на данный момент ни одна из протестированных конфигураций не поддерживается. В то же время, одному из наших партнёров удалось успешно установить checkra1n на одно из тестовых устройств.

Вероятно, checkra1n получится адаптировать для работы с будущими версиями iOS, но полной уверенности в этом нет. Apple работает над усилением безопасности экосистемы; по слухам, извлечение в режиме BFU на устройствах iPhone 7, iPhone 8 и iPhone X заметно ограничат или сделают невозможным (iPhone 6s в этот список не входит). В то же время, если код блокировки экрана вам известен, то установить checkra1n вы сможете, но только после того, как код блокировки будет с устройства удалён. Обратите внимание, что снятие кода блокировки приводит к ряду негативных последствий в том, что касается содержимого устройства и доступа к iCloud.

Какие существуют способы для извлечения максимально подробных данных из устройств iPhone, iPad, Apple TV и Apple Watch, и каким из множества способов стоит воспользоваться? Ответ на этот вопрос — многомерная матрица со множеством сносок и отступлений. О них мы и поговорим в этой статье.

Вопрос совместимости

Первые два измерения матрицы — совместимость различных способов извлечения с версией программного обеспечения и аппаратной платформой устройства. На создание таблицы совместимости ушло много времени и усилий; при этом время, в течение которых эти данные будут оставаться актуальными, ограничено циклом выхода новых версий соответствующих операционных систем. В таблице отсутствуют модели планшетов iPad; это упущение связано с тем, что совместимость соответствующих моделей iPad практически полностью совпадает с совместимостью моделей iPhone, работающих под управлением аналогичных версий операционной системы (версии iOS и iPadOS  синхронизированы).

Расшифровка сокращений:

  • Backups — локальные резервные копии в формате iTunes или в iCloud
  • iCloud Sync — данные, синхронизированные в облаке iCloud
  • Media/Shared/Logs — мультимедиа-файлы (изображения и видео), файлы некоторых приложений и журналы диагностики
  • FFS — Full File System, полный образ файловой системы устройства
  • Keychain — Связка ключей (извлечение и расшифровка)
  • FFS & keychain — полный образ файловой системы и расшифровка Связки ключей

Рассмотрим возможные подводные камни.

По типу устройства

iPhone и iPads (iOS/iPadOS)

Для iOS (и iPadOS) доступно максимальное разнообразие методов извлечения данных. Всё, что вам потребуется — это кабель Lightning или USB Type-C (для моделей iPad Pro и Apple TV 4). Впрочем, для извлечения через checkra1n мы рекомендуем использовать кабель USB-A — Lightning (пример), но не USB-C — Lightning, т.к. при использовании последнего часто возникают проблемы (в частности, с переводом устройства в режим DFU).

Apple TV (tvOS)

В случае с Apple TV 4 всё достаточно просто: устройство оборудовано разъёмом USB Type-C. В новой модели 4K порт убрали; вам потребуется переходник, позволяющий подключиться к скрытому порту Lightning. Мы написали об этом в статье Jailbreaking Apple TV 4K.

Если вы предпочитаете использовать checkra1n вместо unc0ver (например, если версия tvOS не поддерживается unc0ver), обратите внимание: вам потребуется дополнительный кабель-прерыватель для перевода устройства в режим DFU.

Без джейлбрейка можно извлечь мультимедиа-файлы и метаданные плюс некоторые журналы диагностики.

Apple Watch (watchOS)

В данном случае адаптер нужен всегда, см. Apple TV and Apple Watch Forensics 01: Acquisition. Нужные адаптер носит название «IBUS». В настоящее время подобные адаптеры существуют для поколений часов S1/S2/S3, но не для S4 или S5. В то же время, часть данных (в основном Здоровье), которые собираются часами, синхронизируются с подключённым телефоном iPhone и через него — с облаком iCloud. Отдельных резервных копий часов в облаке нет, но часть данных Apple Watch хранится в резервных копиях iPhone.

По методу извлечения

Логическое извлечение данных — самый быстрый, простой, безопасный и совместимый метод сбора данных. Да, этот метод предоставляет ограниченный объем данных; тем не менее, мы рекомендуем воспользоваться в первую очередь именно им. Обратите внимание:

  • Существуют различия в данных между локальными и облачными резервными копиями.
  • Также существуют различия между локальными резервными копиями с и без пароля (см. The Most Unusual Things about iPhone Backups); больше данных содержат именно резервные копии с паролем.
  • Извлечь резервную копию из облака может оказаться сложнее, чем кажется (и это не только вопрос двухфакторной аутентификации).

Имейте в виду, что резервные копии — лишь часть информации, доступной в рамках логического извлечения. Можно извлечь мультимедиа-файлы с метаданными, даже если резервная копия защищена паролем, а пароль неизвестен. Кроме того, можно извлечь некоторые файлы приложений (обычно документы, но иногда и другие пользовательские данные от фотографий до баз данных, включая например менеджеры паролей) и журналы диагностики, которые могут помочь в восстановлении истории использования устройства. Этот метод — единственный, который работает на устройствах Apple TV без джейлбрейка и на устройствах Apple Watch от S1 до S3.

Полный образ файловой системы содержит намного больше данных, чем даже резервная копия с паролем. С образом файловой системы вы получаете все данные, включая данные из «песочниц» приложений и системные базы данных с точками местоположения, информацию об использовании устройства и многое другое.

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

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

Наконец, извлечение из облака iCloud (честно говоря, наша любимая тема). У этого метода так много преимуществ, что о них стоит написать отдельную статью. Устройство — не нужно! А вот код блокировки от него (не говоря о пароле к учётной записи) понадобится для расшифровки некоторых данных, защищённых в облаке сквозным шифрованием (не совсем корректный термин, извините). Через облако можно получить доступ к текущим и удалённым данным, а также к данным с других устройств пользователя, подключённых к той же учётной записи.

По версии ОС

Для логического анализа, включая извлечение файлов мультимедиа и журналов диагностики, версия операционной системы не имеет значения. Логический анализ доступен для всех версий ОС: от древней iOS 4 до предварительной бета-версии iOS 13.6 (последняя версия, доступная на момент написания этой статьи); результат будет примерно одинаков. Первая бета-версия iOS 14 выходит на следующей неделе, и мы практически уверены, что логический анализ заработает сразу и без проблем.

К сожалению, в случае с джейлбрейками и нашим собственным агентом-экстрактором дела обстоят иначе. Как джейлбрейки, так и наш агент-экстрактор базируются на обнаруженных исследователями уязвимостях. Такие эксплойты существуют для большинства версий iOS вплоть до iOS 13.5 включительно, но некоторые конкретные версии системы охвачены не полностью. Например, для iOS 12.3–12.4.7 из iPhone 5s и iPhone 6 мы можем извлечь только образ файловой системы, но не связку ключей. Аналогичным образом обстоят дела с устройствами под управлением iOS 13.3.1–13.4.1. Наконец, хотя для iOS 13.5 и доступен джейлбрейк, позволяющий извлечь как файловую систему, так и связку ключей, вам придётся самостоятельно устанавливать джейлбрейк; наш агент-экстрактор для этой версии не сработает. Для iOS 13.5.1–13.6 beta 2 можно использовать checkra1n (только для совместимых моделей).

С tvOS ситуация значительно хуже. Эксплойты существуют и для Apple TV (точнее, для tvOS), но джейлбрейки доступны только для очень ограниченного числа версий в диапазоне tvOS 9-12. Только tvOS 13 полностью поддерживается джейлбрейком checkra1n, включая (в теории) и последнюю бета-версию 13.4.8, которую мы однако ещё не проверяли. Мы в состоянии добавить поддержку агента для более старых версий tvOS, но конкретных планов пока нет. Обратите внимание, что Apple по умолчанию обновляет tvOS автоматически, поэтому на приставке Apple TV, как правило, будет установлена ​​последняя версия tvOS.

Что касается watchOS, то об извлечении файловой системы можно забыть независимо от версии watchOS. Несмотря на то, что watchOS уязвима для эксплойта checkm8, общедоступных джейлбрейков для watchOS 5.2 и более поздних версий просто не существует; текущей же версией является watchOS 6.2.8 beta 2. С другой стороны, бОльшая часть информации, собранной Apple Watch, доступна либо с iPhone, с которым он связан, либо из облака. Если у вас есть адаптер IBUS, вы сможете извлечь медиа-файлы и метаданные (для часов серии S1-S3).

Заключение

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

День ото дня специалисты Apple работают над тем, чтобы осложнить жизнь эксперта-криминалиста. Усложняется работа с облаком iCloud, вводятся новые условия и ограничения. С выходом iOS 13.4 и macOS 10.15.4 работа экспертов станет ещё немного труднее. Посмотрим, что нового появилось в последних версиях операционных систем от Apple (и как изменилась при этом работа продуктов Элкомсофт).

iOS 13

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

Неожиданное появление синхронизации данных о звонках вызвало волнение общественности и неоднозначную реакцию специалистов по безопасности. В ответ от Apple мы получили лишь стандартную отговорку. Тем удивительнее выглядит решение Apple отказаться от синхронизации звонков (кстати, есть ещё Continuity).

Есть и другая неоднозначная новость. Пользуетесь приложением Apple Maps? Данные Карт теперь хранятся в защищённом хранилище, использующем (по терминологии Apple) «сквозное шифрование». Аналогичным образом хранятся данные Связки ключей (пароли пользователей), Облачные сообщения (SMS, iMessage), данные приложений Здоровья и Экранного времени. Теперь этот список пополнился и данными Apple Maps. Соответственно, для их извлечения нужно будет ввести код блокировки экрана от одного из устройств пользователя, зарегистрированных в учётной записи.

К слову, о приложении Экранное время. Наши пользователи обратили внимание, что в приложении Elcomsoft Phone Breaker извлекается лишь небольшая часть данных Экранного времени – пароль, информация о семейном доступе, ограничения и так далее. При этом не извлекаются статистические данные об использовании устройств. Причина в том, что эти данные, похоже, не попадают в «облако», а синхронизация происходит напрямую между устройствами. Это можно проверить самостоятельно, активировав в настройках Экранного времени функцию Share across devices и просмотрев статистику сначала на оригинальном устройстве, а потом на одном из тех, куда данные синхронизировались. Удивительно, но данные будут разительно отличаться. Более того, многие пользователи жалуются на непредсказуемое поведение этой настройки: данные временами синхронизируются, временами – нет, а иногда пропадают вовсе:

Всё это может означать, что синхронизация напрямую работает не лучшим образом. Трудно сказать, где ошибка – в iOS 12/13 или в iCloud, но мы решили не тратить время на попытки извлечь эту информацию из облака. К слову, в iOS 13 информация, относящаяся к Экранному времени, защищена лучше, чем остальные данные: для доступа к ней недостаточно одних привилегий суперпользователя.

На днях вышла свежая бета-версия iOS 13.4.5; мы будем разбираться, какие изменения Apple внедрили в новую версию iOS.

macOS

Файлы lockdown используются для упрощения доступа к доверенным (ранее подключенным) устройствам под управлением iOS. Если такой файл был создан на компьютере, то при подключении к нему доверенного iPhone или iPad система не будет запрашивать код блокировки. В последней версии macOS доступ к файлам lockdown был ограничен.

Точнее, ограничен доступ был ещё раньше – с выходом macOS 10.12. В этой версии macOS для доступа к файлам lockdown необходимо было выполнить в терминале следующую команду:

sudo chmod 755 /private/var/db/lockdown

В последней версии macOS 10.15.4 этот способ работать перестал:

Можно ли обойти новое ограничение? Да, для этого достаточно просто отключить SIP (System Integrity Protection), загрузившись в режим Recovery (+R во время загрузки), запустить Terminal и выполнить следующую команду:

csrutil disable

После перезагрузки доступ к папке lockdown будет восстановлен, и вы сможете произвести логическое извлечение данных из iPhone посредством iOS Forensic Toolkit.

iCloud

В облаке iCloud в очередной раз изменился механизм аутентификации. Он стал работать надёжнее? Нет. Безопаснее? Нет. Просто изменился. Не буду вдаваться в детали, опишу лишь изменения в механизме работы маркеров аутентификации в Elcomsoft Phone Breaker. Для начала рекомендую ознакомиться со статьёй Accessing iCloud With and Without a Password in 2019; ниже – об актуальном положении дел.

На системах с Windows токены (маркеры аутентификации), извлекаемые из приложения iCloud  for Windows 7.0 и более новых версий, работают исключительно для учётных записей без двухфакторной аутентификации. Такие токены могут быть использованы для доступа к очень ограниченному набору данных. Доступны следующие категории: iCloud Photos и некоторые синхронизированные данные (контакты, календари, заметки, история браузера Safari и некоторые другие, за исключением данных, защищённых «сквозным шифрованием» — Связка ключей, Здоровье, Экранное время, Облачные сообщения и карты Apple Maps). Что же касается резервных копий в iCloud, они доступны лишь для старых версий iOS до 11.2.

На системах с macOS ситуация несколько лучше. На версиях macOS от 10.13 до 10.15 можно получить такой же ограниченный токен для учётных записей без 2FA. Токены для учётных записей с 2FA привязаны к устройству, на котором они были созданы. В результате использовать такой токен в Elcomsoft Phone Breaker можно только в том случае, если наш продукт запускается на том самом компьютере Mac, на котором был создан токен. Объём данных, которые можно извлечь из iCloud (независимо от типа токена и учётной записи) совпадает с тем, что можно извлечь в Windows: некоторые категории синхронизированных данных и резервные копии iCloud для устройств с iOS до 11.2. Полноценные «отвязанные» токены для учётных записей с 2FA доступны только в macOS 10.12 и более старых.

Достаточно запутанно? Изложу вкратце:

  • Токен аутентификации для учётных записей без 2FA можно получить всегда, на любой системе
  • Для учётных записей с 2FA, токены из большинства современных систем с Windows совершенно бесполезны. Аналогичные токены, извлечённые из современных систем macOS, можно использовать только на том же самом компьютере.
  • Токены позволяют доступ к ограниченному числу категорий данных в iCloud.

И последнее. Apple пытается обезопасить и учётные записи без двухфакторной аутентификации. Теперь такие учётные записи могут быть заблокированы после ввода единственного неправильного пароля.

Заключение

Для того, чтобы извлечь всю доступную в iCloud информацию, вам потребуются Apple ID и пароль пользователя, доступ к дополнительному фактору аутентификации, а также код блокировки экрана или системный пароль от одного из устройств пользователя. Если у вас под рукой вся необходимая информация, вы сможете извлечь из облака практически всё содержимое, включая некоторые данные, которые отсутствуют на самом устройстве. Обратите внимание: Elcomsoft Phone Breaker остаётся единственным продуктом на рынке, который работает со облачными данными для всех версий iOS (включая и 13.4.5), поддерпживает все методы двухфакторной аутентификации, и может извлечь все доступные в учётной записи пользователя данные от резервных копий до категорий, защищённых сквозным шифрованием.

Совсем недавно мы представили новый способ извлечения данных из устройств iPhone и iPad. Агент-экстрактор — быстрый, безопасный и не требующий установки джейлбрейка способ извлечь полный образ файловой системы устройства и расшифровать все записи из Связки ключей. В свежей версии Elcomsoft iOS Forensic Toolkit мы существенно расширили список устройств, с которыми совместим агент-экстрактор. В новой версии инструментария агент-экстрактор доступен на устройствах iPhone и iPad поколений A9-A13, работающих под управлением всех версий от iOS 11.0 до iOS 13.3. Для старых моделей (iPhone 5s и 6) доступна поддержка iOS 11, 12-12.2 и 12.4. В этой статье приводится полная матрица совместимости моделей iPhone и iPad с новым методом извлечения данных.

Совместимость

Агент-экстрактор совместим со следующими комбинациями устройств и версий iOS:

  • iPhone 6s до iPhone X, iPad 5 и 6, iPad Pro 1 и 2 поколений: iOS/iPadOS 11.0 — 13.3
  • iPhone Xr, Xs, Xs Max, iPad Mini 5, iPad Air 3, iPad Pro 3, iPod Touch 7: iOS/iPadOS 12.0 — 13.3
  • iPhone 11, 11 Pro, 11 Pro Max: iOS 13.0 — 13.3

Следующие модели поддерживаются, если работают под управлением iOS 11-12.2 и iOS 12.4:

  • iPhone 5s, 6, 6 Plus
  • iPad Mini 2 и 3
  • iPad Air 1

Мы протестировали более 50 комбинаций устройств и версий iOS. К сожалению, некоторые комбинации аппаратного и программного обеспечения нам не удалось протестировать ввиду их отсутствия в лаборатории. В частности, работу агента на устройствах iPad Mini 4 и iPad Air 2 мы смогли протестировать с iOS 11 и iOS 12 — 12.2. В нашей лаборатории не нашлось устройств этих моделей, которые работали бы под управлением iOS 12.3, 12.4.1 и 13.

Требования

Требования достаточно просты: убедитесь, что устройство и версия iOS поддерживаются агентом-экстрактором и зарегистрируйтесь в программе Apple разработчиков (для чего это нужно). Разумеется, вам также потребуется свежая версия iOS Forensic Toolkit. Приложение достаточно просто в использовании; как его использовать с максимальной эффективностью, можно узнать, записавшись на тренинг.

Преимущества агента-экстрактора

Основное преимущество метода — его широкая совместимость с различными моделями iPhone и iPad. В будущем список поддерживаемых устройств планируется расширить как вперёд (в сторону более новых версий iOS), так и назад, в сторону iOS 10 и более старых.

Ещё одно преимущество агента-экстрактора — надёжность и безопасность. Принцип работы агента таков, что агент просто не может повредить работоспособности устройства. Худшее, что может случиться по вине агента-экстрактора — это перезагрузка устройства или ошибка при извлечении данных (справиться с ошибками поможет информация из секции «Возможные проблемы»). В редких случаях, когда агент не срабатывает с первого раза, рекомендуем просто повторить попытку.

Что насчёт лабораторной чистоты метода? Ответ зависит от того, что понимать под «лабораторной чистотой». Стандартное определение подразумевает, что лабораторно чистое извлечение данных позволяет использовать полученную информацию в качестве улик и доказательств в суде. Если пользоваться таким определением, то агент-экстрактор — действительно лабораторно чистый метод.

В то же время гарантировать абсолютную неизменность данных не может НИ ОДИН существующий метод, работающий на современных 64-разрядных устройствах iOS несмотря ни на какие заявления производителей соответствующих продуктов. Следы работы остаются всегда, как минимум — в виде записей в системных журналах.

Важное преимущество метода — скорость работы, достигающая на современных моделях iPhone 2.5 ГБ/мин. Такой скорости удалось добиться, отказавшись от использования SSH и перейдя на прямую передачу данных через порт USB.

Наконец, простота использования. Нет, это всё ещё не «решение одной кнопкой»; таких в настоящее время просто не существует. Мы постарались максимально упростить и автоматизировать процесс, и продолжаем работать в этом направлении.

И последнее. Агент-экстрактор позволяет расшифровать все записи из Связки ключей без исключения — в отличие от других методов, основанных на расшифровке резервных копий в формате iTunes, способных вернуть лишь часть записей. Просмотреть записи из Связки ключей можно при помощи Elcomsoft Phone Breaker:

Преимущества в сравнении с использованием джейлбрейка

Извлечь образ файловой системы и расшифровать Связку ключей можно и посредством джейлбрейка, в том числе для последних моделей iPhone и свежих версий iOS.

Установка джейлбрейка — небезопасный процесс, который может привести к блокировке устройства и невозможности загрузки. Кроме того, джейлбрейк модифицирует данные на устройстве, даже если это джейлбрейк rootless.

Недостатки агента в сравнении с джейлбрейком? Их нет — разумеется, если агент совместим с требуемой версией iOS. Единственное потенциальное исключение — джейлбрейк checkra1n, о котором ниже.

В iOS 13 доступ к некоторым файлам и папкам невозможен, если используется tar через ssh. У агента-экстрактора такой проблемы не возникает.

Наконец, мы сделали агент-экстрактор совместимым и с бета-версиями iOS 11-13.3, для которых джейлбрейки, как правило, не работают.

Преимущества в сравнении с извлечением через checkm8

Возможность извлечения данных с использованием уязвимости checkm8 представляет интерес, но дьявол кроется в деталях.

Во-первых, checkm8 совместим с ограниченным количеством устройств и версий iOS. Поддерживаются iPhone 5s — iPhone X и версии iOS от 12.3 и выше. Соответственно, работа с устройствами iPhone Xr, Xs, 11 и 11 Pro (и соответствующими поколениями iPad) невозможна. Кроме того, несмотря на то, что эксплуатируется аппаратная уязвимость, джейлбрейк checkra1n (и все актуальные реализаци извлечения через checkm8) не поддерживают iOS 12.2 и более старые версии.

Во-вторых, джейлбрейк checkra1n не является стопроцентно надёжным. Несмотря на огромное количество поддерживаемых в теории устройств, их число на практике оказывается значительно меньшим. Если возникает ошибка, с ней невозможно бороться. Скорость работы? Зачастую чрезвычайно низкая из-за использования ssh и некоторых других вещей. В некоторых случаях процесс извлечения безрезультатно работал неделями.

Преимущества? Их два. Использование checkra1n/checkm8 не требует регистрации Apple ID в программе для разработчиков; доступно частичное извлечение в режиме BFU (Before First Unlock, до первой разблокировки) для устройств с неизвестным паролем. Мы поддерживаем джейлбрейк checkra1n в iOS Forensic Toolkit для частичного извлечения файловой системы из заблокированных устройств.

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

Ознакомьтесь с инструкцией к iOS Forensic Toolkit и двумя статьями из нашего блога:

Работать с инструментарием достаточно просто. Мы описали процесс в статье Извлечение данных из iPhone без джейлбрейка (iOS 11-12):

  • Переведите устройство в режим полета и подключите его к компьютеру с EIFT.
  • Установить доверительные отношения (потребуется подтвердить запрос на телефоне).
  • Установите агент-экстрактор через EIFT. Вам нужно будет ввести Apple ID и пароль приложения для учетной записи, зарегистрированной в программе Apple для разработчиков; затем — TeamID. Обратите внимание, что для подписи агента требуется подключение к Интернету на вашем компьютере (но не на устройстве iOS, которое должно всегда оставаться в автономном режиме).
  • После установки агента отключите все подключения к Интернету на компьютере, на котором выполняется работа.
  • Настройте агент-экстрактор на устройстве iOS и оставьте его работать в качестве активного приложения.
  • Извлеките Связку ключей и создайте образ файловой системы. Во время извлечения Связки ключей вам нужно будет ввести пароль на устройстве.
  • Удалите агент.

В случае возникновения ошибки (например, сообщения «Can’t connect to device on specified port» в EIFT), просто перезагрузите устройство. Перед тем, как запустить агент-экстрактор, подождите как минимум одну минуту после загрузки устройства.

Пароль – один из самых старых, классических способов аутентификации. Почтенный возраст паролей не мешает им оставаться основным способом убедиться в том, что пользователь – именно тот, за кого себя выдаёт. Несмотря на множество недостатков, у паролей есть и несомненные достоинства: при должном контроле они могут быть как достаточно безопасными, так и вполне запоминаемыми. В экосистеме Apple используется четыре (или пять, если считать паролем одноразовый код) разных, но тесно связанных между собой паролей. Что это за пароли и как они взаимосвязаны? Попробуем разобраться.

Какие бывают пароли?

Что важнее, безопасность или запоминаемость? Вопрос не такой однозначный, каким кажется. Ещё в 2017 году было проведено исследование, согласно которому у самого обычного пользователя было порядка 20 учётных записей. У среднего офисного работника использовалась 191 учётная запись – и это только те пароли, которые вводятся в окно браузера. К началу 2020 года среднее число паролей пользователя достигло 207, при этом в среднем каждый пароль используется без изменений в 3.9 учётных записях. Статистика не указывает, какое количество паролей пользователи используют в разных учётных записях с минимальными изменениями (например, password, Password, password1, Password2010 и т.п.) По нашим данным, количество уникальных паролей, которые невозможно угадать, подсмотрев остальные пароли пользователя, в среднем не превышает 5-7 штук на пользователя.

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

  1. Код блокировки экрана (это PIN-код или пароль, которым вы разблокируете iPhone)
  2. Пароль от iCloud (он же – пароль от учётной записи Apple ID)
  3. Пароль от резервной копии iTunes (с его помощью будет зашифрована резервная копия iPhone, если создать её на компьютере)
  4. Пароль Экранного времени (позволяет защитить перечисленные выше пароли от сброса, а также устанавливать ограничения на использование устройства)
  5. Одноразовый код двухфакторной аутентификации (будем считать его «половинкой» пароля; используется только в учётных записях, на которых включена двухфакторная аутентификация)

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

В этой статье описаны все известные нам взаимосвязи и взаимозависимости между паролями, актуальные для всех версий iOS 12 и 13, а также способы, посредством которых можно сбросить один пароль, если известен другой.

Код блокировки экрана

Код блокировки – самый важный пароль (а точнее, кодовая фраза), который пользователи iPhone используют чаще всех остальных вместе взятых. Этот пароль используется в процессе настройки iPhone. По умолчанию система предлагает установить код блокировки, состоящий из 6 цифр. Также можно использовать и более простой PIN-код, состоящий из 4 цифр. Можно выбрать и более сложный код блокировки, состоящий из произвольного количества цифр (как в Android) или из буквенно-цифровой последовательности произвольной длины.

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

Скачать список таких «простых» паролей можно с GitHub.

При настройке кода блокировки будет установлено соединение с iCloud; это необходимо для того, чтобы добавить устройство в доверенный круг, участники которого могут безопасно синхронизировать такие данные, как пароли (облачная Связка ключей), Здоровье, сообщения и Экранное время. Соответственно, ни одна из этих категорий не будет синхронизирована, если пользователь не настроит код блокировки. Кроме того, без кода блокировки не будет работать платёжная система Apple Pay.

В нашем блоге есть две статьи на тему кода блокировки экрана: Protecting Your Data and Apple Account If They Know Your iPhone Passcode и Passcode vs. Biometrics: Forensic Implications of Touch ID and Face ID in iOS 12.

Если код блокировки утрачен

У обычного пользователя, который забудет код блокировки, не так много возможностей. Можно сбросить устройство через режим Recovery. Для настройки сброшенного устройства потребуется ввести пароль от iCloud.

Если телефон регулярно подключали к компьютеру, то на компьютере может сохраниться файл lockdown. С его помощью можно установить соединение и сделать резервную копию телефона перед тем, как его сбросить (работает только в том случае, если телефон разблокировали хотя бы раз после последнего включения или перезагрузки). Если резервная копия защищена паролем от резервной копии iTunes, то из неё можно извлечь пароль от iCloud, посредством которого можно будет активировать сброшенный телефон. А вот если такого файла нет или срок его действия истёк, то подключить телефон к компьютеру не получится: начиная с iOS 11 для подключения к новому компьютеру нужно ввести код блокировки экрана.

У работников правоохранительных органов в некоторых странах есть возможность запустить перебор кодов блокировки (именно поэтому усиленно не рекомендуется использовать 4-значный PIN). Впрочем, шанс на успех при использовании даже шестизначного цифрового кода блокировки невысокий.

Итак, если код блокировки утрачен:

  • Можно сбросить iPhone через Recovery. Это сбросит код блокировки экрана, но для настройки устройства потребуется ввести пароль от iCloud.
  • Если вы работаете в правоохранительных органах, вам может быть доступен вариант с перебором кодов блокировки.
  • Подключить iPhone к новому компьютеру не удастся (для установления доверенного соединения требуется ввести код блокировки экрана).
  • Если есть доступ к файлу lockdown, а телефон был разблокирован хотя бы раз с момента последней перезагрузки или включения, то существует возможность извлечения локальной резервной копии. Если резервная копия защищена паролем от резервной копии iTunes, то из неё можно будет извлечь пароль от iCloud, посредством которого можно активировать сброшенный телефон.

Если код блокировки известен

Если же код блокировки известен, с телефоном можно проделать множество разных вещей:

  • Разблокировать устройство даже после холодной загрузки
  • Подключить к новому компьютеру или аксессуарам USB (обход блокировки USB)
  • Создать свежую резервную копию в формате iTunes
  • Сбросить пароль от iCloud и изменить доверенный номер телефона для получения кодов двухфакторной аутентификации (только для учётных записей с двухфакторной аутентификацией; одноразовый код для этого не нужен)
  • Сбросить пароль от резервной копии iTunes (если не установлен или известен пароль Экранного времени), создать резервную копию с новым паролем и узнать из неё пароль от iCloud
  • iOS 13: установить или изменить пароль от резервной копии iTunes
  • Обновить версию iOS
  • Сбросить устройство к заводским настройкам, отключить iCloud lock
  • Просматривать пароли из Связки ключей
  • Получить доступ к некоторым типам данных в iCloud (потребуется указать пароль от iCloud и одноразовый код двухфакторной аутентификации – оба из которых можно сбросить и настроить заново при помощи кода блокировки экрана). В список входят такие данные, как облачная связка ключей (пароли от учётных записей пользователя, заполненные формы в Safari), данные Здоровья и Экранного времени, сообщения (SMS, iMessage).
  • Сменить или удалить код блокировки экрана (при его удалении станут недоступными некоторые данные как в самом iPhone, так и в облаке iCloud)

Подводные камни

  • Установленный неизвестный пароль Экранного времени не позволит сбросить пароль от резервной копии iTunes.
  • Если пользователь установил ограничения на изменения в учётную запись Apple ID и защитил ограничение паролем Экранного времени, то сбросить пароль от iCloud не удастся.
  • При смене кода блокировки экрана iOS потребует установить соединение с iCloud. Это нужно для добавления iPhone в круг доверенных устройств, которые будут синхронизировать защищённую часть данных (пароли из облачной связки ключей, Здоровье, сообщения, Экранное время).

Выглядит достаточно запутанно? Мы только начали!

Пароль от iCloud

Так же, как и код блокировки экрана, учётная запись в iCloud не является обязательной. Впрочем, так же, как и в случае с кодом блокировки, без учётной записи в iCloud вы не сможете полноценно пользоваться устройством. Пароль от iCloud совпадает с паролем от учётной записи Apple ID, а без учётной записи Apple вы не сможете не только синхронизировать данные в и создавать резервные копии в iCloud, но и загружать приложения, даже бесплатные, из магазина App Store, слушать музыку и совершать покупки в Apple Music и так далее. Мало кто покупает iPhone исключительно для звонков и просмотра веб-страниц через встроенный браузер, поэтому большинство пользователей заводит себе учётную запись Apple ID.

В Apple контролируют минимальную сложность пароля к iCloud; слишком простой пароль установить не получится, равно как и пароль, совпадающий с одним из тех, которые использовались ранее.

Пароль от iCloud защищает доступ к онлайновой части доступных пользователю сервисов Apple (например, к фотографиям, которые хранятся в iCloud, к данным календарей, заметок, облачным резервным копиям и так далее). Кроме того, пароль от iCloud используется для защиты iPhone от сброса к заводским настройкам (а точнее – от возможности его после этого активировать и использовать), а также для удалённой блокировки, отслеживания или стирания данных с украденных устройств.

В то же время пароль от iCloud – далеко не всё, что нужно для доступа ко всем данным в iCloud. Так, некоторые данные будут сохраняться в облако только после включения двухфакторной аутентификации (соответственно, для их извлечения понадобится одноразовый код двухфакторной аутентификации), а некоторые данные (пароли из облачной связки ключей, Здоровье, сообщения, Экранное время) дополнительно защищены ещё и кодом блокировки экрана.

Частный случай пароля от Apple ID в случаях, когда используется двухфакторная аутентификация – пароль приложений. Пароль приложения можно создать в учётной записи Apple ID; он будет сгенерирован автоматически (а не установлен пользователем). Использовать пароль приложения можно в ряде сценариев, когда то или иное приложение не поддерживает двухфакторную аутентификацию. Примеры таких приложений – некоторые сторонние почтовые клиенты или утилита Cydia Impactor для установки сторонних (не из App Store) приложений на устройство с iOS. Кроме того, пароль приложения требуется создать и в том случае, если вы используете агент-экстрактор из состава Elcomsoft iOS Forensic Toolkit с для извлечения образа файловой системы.

Можно ли обойти пароль и всё равно получить доступ к данным из облака? Да, но набор доступных таким образом данных будет ограничен; подробности – в статье Accessing iCloud With and Without a Password in 2019.

Если пароль от iCloud утрачен

Пароль от iCloud используется значительно реже кода блокировки экрана; соответственно, забывают его пользователи гораздо чаще. Для его восстановления Apple опубликовали подробную инструкцию (https://support.apple.com/ru-ru/HT201487) в статье Если вы забыли пароль учётной записи Apple ID.

Пароль от iCloud можно сбросить с доверенного устройства (собственного iPhone пользователя); для этого достаточно указать код блокировки экрана, но требуется, чтобы в учётной записи была включена двухфакторная аутентификация (одноразовый код не потребуется). Пароль от iCloud можно сбросить и с другого устройства Apple или через веб-браузер (в этом случае потребуется ввести одноразовый код двухфакторной аутентификации).

Кроме того, пароль от iCloud можно узнать, проанализировав пароли, сохранённые в браузере на компьютере (Chrome, IE, Edge, Firefox) при помощи Internet Password Breaker (Windows), либо извлечь из связки ключей macOS при помощи Password Digger. Наконец, можно проанализировать зашифрованную резервную копию iOS при помощи Phone Breaker.

Итак, если утрачен пароль от iCloud, вы сможете:

  • Сбросить его с вашего iPhone или другого устройства из экосистемы Apple (потребуется код блокировки экрана, должна быть включена двухфакторная аутентификация, одноразовый код не потребуется)
  • Сбросить с чужого устройства из экосистемы Apple (код блокировки экрана, должна быть включена двухфакторная аутентификация, нужно ввести одноразовый код)
  • Сбросить через браузер (процесс различается для учётных записей с 2FA и без; потребуется доступ к ящику электронной почты, привязанному к данному Apple ID, одноразовый код двухфакторной аутентификации для учётных записей с 2FA; под может быть доставлен посредством SMS, отправленной на доверенный номер телефона – который, напомним, можно сменить при помощи кода блокировки экрана).

Если пароль от iCloud известен

Как ни странно, если известен пароль от iCloud и только он, сделать можно не так и много. Перечислим:

  • Заново настроить устройство, если был утрачен код блокировки экрана (сброс через Recovery, настройка с нуля, ввести пароль от iCloud для отвязки от iCloud).
  • Подтверждать покупки в App Store и iTunes Store (альтернатива – биометрическая аутентификация, для настройки которой, впрочем, всё равно потребуется ввести пароль от iCloud).
  • Подтверждать обновление приложений (пароль запрашивается не всегда; закономерности выявить не удалось).
  • Логин в App Store (если включена двухфакторная аутентификация, потребуется одноразовый код)
  • Извлекать ограниченное количество данных из iCloud (если двухфакторная аутентификация не включена).
  • Извлекать чуть больше данных из iCloud (только если двухфакторная аутентификация включена и доступен одноразовый код).
  • Извлекать ещё чуть больше данных из iCloud (пароли облачной связки ключей, пароль Экранного времени, сообщения, Здоровье; только если двухфакторная аутентификация включена, доступен одноразовый код и код блокировки экрана).
  • Отвязать iPhone от iCloud, отключить Find My iPhone, осуществить сброс к заводским настройкам.
  • Войти в учётную запись Apple из браузера (если включена двухфакторная аутентификация, потребуется одноразовый код).
  • Дистанционно стереть или заблокировать iPhone при помощи сервиса iCloud Find (одноразовый код не нужен даже для учётных записей с двухфакторной аутентификацией).
  • Сменить пароль от Apple ID/iCloud.
  • Добавление учётной записи на устройствах Apple; устройство становится доверенным (если включена двухфакторная аутентификация, потребуется одноразовый код).

Подводные камни

  • Пароль от iCloud не получится сбросить или изменить, если на устройстве настроено ограничение Экранного времени на действия с учётной записью (а пароль Экранного времени неизвестен)
  • Уже по списку «если пароль известен» видно, что сам по себе пароль от iCloud практически бесполезен, если в учётной записи включена двухфакторная аутентификация. Имея доступ ко второму фактору, можно легко сбросить пароль от iCloud. А вот добавить или изменить дополнительный фактор аутентификации, имея только пароль от iCloud, невозможно. Существующая официальная процедура восстановления учётной записи не даёт гарантированного результата (в нашей лаборатории мы смогли восстановить лишь каждую вторую учётную запись). Похоже, дополнительный фактор аутентификации в настоящий момент имеет больший вес, чем пароль от iCloud.

Пароль от резервной копии iTunes

Этот пароль такой же опциональный, как и предыдущие два. Более того, если не установить пароль на резервную копию, то для неискушённого пользователя не изменится, по большому счёту, ничего: все возможности как устройства, так и облачных сервисов будут доступны точно так же, как и с паролем. В статье The Most Unusual Things about iPhone Backups мы описали некоторые особенности паролей от резервной копии.

Для чего вообще нужен этот пароль? Очевидно, для шифрования резервной копии, которую можно создать в iTunes. Нужно ли задавать этот пароль, если вы никогда не создавали резервные копии в iTunes и не собираетесь этого делать? Да, нужно, потому что резервную копию злоумышленник может создать за вас, после чего получит доступ практически к полному содержимому телефона, включая все ваши пароли к учётным записям, которые вы использовали в браузере Safari. Помешает ли этот пароль злоумышленнику, если он получит ваш iPhone и узнает его код блокировки? Нет, не помешает, но вы сможете дополнительно (и достаточно надёжно) защитить его паролем Экранного времени.

Насколько вообще безопасен пароль от резервной копии iTunes? Если в руки злоумышленника попадут только файлы резервной копии, зашифрованные неизвестным паролем, то вам повезло: скорость перебора будет исключительно низкой. Даже на профессиональном оборудовании с использованием аппаратного ускорения и распределённых вычислительных сетей скорость перебора на одном компьютере не превышает 100 паролей в секунду. Это – очень низкая скорость; пароль из случайного набора букв и цифр длиной хотя бы в 6 символов не будет вскрыт и за сотню лет.

Ситуация меняется на свою полную противоположность, если в руки злоумышленника попадёт ваш iPhone, а код блокировки экрана подсмотрят или узнают иным способом. Используя код блокировки экрана, пароль от резервной копии iTunes можно сбросить буквально за пару шагов (вместе с ним удаляется и код блокировки телефона). Если же цель – узнать оригинальный пароль, то на телефон можно установить джейлбрейк (для ряда устройств это возможно независимо от версии iOS), после чего пароль извлекается из скрытой записи Связки ключей.

Наконец, если на iPhone запущена iOS 13, то для установки или смены пароля от резервной копии также потребуется ввести код блокировки экрана. Подытожим:

Если пароль от резервной копии iTunes утрачен

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

Если пароль от резервной копии iTunes известен

Известный пароль от резервной копии (при наличии самой резервной копии) позволит:

  • Восстановить из резервной копии как оригинальное, так и новое устройство с iOS, включая восстановление Связки ключей с паролями.
  • Проанализировать содержимое резервной копии (включая пароли из Связки ключей).
  • Узнать пароль Экранного времени (только для iOS 12) или пароль ограничений (для iOS 11). Приложений для этого существует достаточно много; отобразить пароль Экранного времени в состоянии, к примеру, Elcomsoft Phone Viewer.
  • Узнать пароль от iCloud/Apple ID (об этом подробнее – чуть ниже).

Подводные камни

  • Пароль от iCloud не всегда можно найти в резервной копии. Точную зависимость установить не удалось.
  • Пароль Экранного времени можно узнать только для старых версий iOS. В резервных копиях, созданных iOS 13 и более свежими сборками, пароль Экранного времени получил более высокий класс защиты и не может быть расшифрован из резервной копии.
  • Если вам пришлось сбросить пароль от резервной копии iTunes через настройки телефона, то код блокировки экрана также будет сброшен. Это приведёт к удалению с устройства данных обо всех транзакциях Apple Pay, писем и данных Exchange. Вы потеряете возможность сбросить пароль от iCloud; будет утрачен доступ к облачной связке ключей и другим защищённым данным в облаке. Впрочем, доступ к «облачным» данным можно восстановить, задав код блокировки заново и позволив системе добавить устройство в список доверенных.

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

com.apple.account.AppleIDAuthentication.password

apple.account.iTunesStore.password и apple.account.AppleAccount.password (устаревшие записи, в которых всё ещё может оказаться пароль)

Пароль от iCloud можно обнаружить и в следующих записях, принадлежащих браузеру Safari:

  • appleid.apple.com
  • www.icloud.com
  • idmsa.apple.com
  • id.apple.com
  • store.apple.com
  • apple.com

Пароль Экранного времени

Экранное время – представленная в iOS 12 система, позволяющая отслеживать и ограничивать время использования устройства. Установленные ограничения пользователь может защитить код-паролем, состоящим из 4 цифр.

Если пользователь установил пароль Экранного времени, то система будет запрашивать его при попытке изменить настройки как собственно ограничений, установленных в разделе Экранного времени, так и некоторых других системных настроек. В частности, система потребует ввести пароль Экранного времени (в дополнение к коду блокировки экрана) при попытке сбросить настройки (Reset All Settings) с целью сбросить пароль от резервной копии iTunes.

Пользователи могут установить и собственные ограничения. Например, может быть установлено ограничение на действия с учётной записью, после чего iOS не позволит сбросить пароль от iCloud посредством ввода кода блокировки. Ещё одно ограничение может запретить установку на устройство приложений, что не даст установить на устройство джейлбрейк и извлечь из него образ файловой системы. А вот защитить пароли в Связке ключей таким образом не получится: их всегда можно просмотреть, даже если установлен пароль Экранного времени.

Если пароль Экранного времени утрачен

  • Невозможно отключить или обойти установленные ограничения Экранного времени, убрать или сменить пароль
  • Невозможно включить функцию Экранного времени “Share across devices” («Учёт на всех устройствах»), благодаря которой пароль Экранного времени попадает в облако iCloud и может быть оттуда извлечён
  • Невозможно сбросить настройки для удаления пароля к резервной копии iTunes
  • В зависимости от установленных пользователем настроек, могут быть и другие ограничения: на сброс пароля от iCloud, установку приложений и другие.
  • iOS 12: пароль Экранного времени можно извлечь из локальной резервной копии с паролем (если пароль от резервной копии iTunes известен).
  • iOS 12 и 13: пароль Экранного времени можно извлечь из iCloud, если известны пароль от iCloud, есть одноразовый код двухфакторной аутентификации и известен код блокировки устройства (не обязательно данного конкретного устройства, но хотя бы одного устройства из доверенного круга); функция Экранного времени “Share across devices” («Учёт на всех устройствах») должна быть уже включена.

Если пароль Экранного времени известен

Если пароль Экранного времени известен, вы сможете:

  • Настраивать и отключать ограничения Экранного времени.
  • Сменить или удалить пароль Экранного времени.
  • Если известен код блокировки устройства, сменить пароль от резервной копии iTunes.

Подводные камни

  • iOS 12: для того, чтобы извлечь пароль Экранного времени из локальной резервной копии, необходимо, чтобы локальная копия была зашифрована паролем, а сам пароль от резервной копии iTunes – известен.
  • iOS 13: пароль Экранного времени хранится с повышенным классом защиты и не может быть извлечён из резервной копии. Вместо этого можно использовать извлечение из iCloud.
  • Из облака iCloud пароль Экранного времени можно извлечь лишь при условии, что пользователь включил функцию Экранного времени “Share across devices” («Учёт на всех устройствах»). Если эта функция включена, то в качестве кода блокировки можно использовать код блокировки экрана или системный пароль любого устройства Apple, входящего в «доверенный круг» (т.е. они зарегистрированы в том же Apple ID и на них также включена функция Экранного времени «Учёт на всех устройствах»).
  • Функция «Учёт на всех устройствах» работает исключительно в учётных записях с двухфакторной аутентификацией. Соответственно, потребуется ввести одноразовый код двухфакторной аутентификации.

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

  • How To Access Screen Time Password and Recover iOS Restrictions Password (link)
  • How to Extract Screen Time Passcodes and Voice Memos from iCloud (link)

Одноразовый код двухфакторной аутентификации

Итак, мы рассмотрели четыре пароля, которые защищают различные аспекты экосистемы Apple. Однако если в случае с iPhone даже слабого пароля может быть достаточно просто в силу того, что к телефону нужно ещё получить физический доступ, то защита онлайновой учётной записи одним лишь паролем давно показала свою несостоятельность. Яркий пример – Celebgate, событие, которое заставила Apple поторопиться и выпустить сырую версию двухфакторной аутентификации под названием Two-Step Verification.

Сегодня Apple использует гораздо более технически продвинутую и безопасную схему, которая называется просто и бесхитростно – Two-Factor Authentication, или двухфакторная аутентификация. В этой системе есть возможность настроить любое устройство Apple (и только Apple) в качестве доверенного «второго фактора». Кроме того, пользователю обязательно придётся добавить хотя бы один доверенный телефонный номер на тот случай, если единственное устройство Apple будет утеряно или украдено.

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

Нравится вам это или нет, но двухфакторную аутентификацию вам придётся включить, если вы хотите получить доступ к любому из перечисленных ниже сервисов:

Купив новое устройство с iOS 13 и зарегистрировав свежий идентификатор Apple ID, вы просто не сможете настроить его без двухфакторной аутентификации. Раз включив, отключить её уже не получится: прецеденты единичны, и каждый случай требовал персонального обращения в поддержку Apple и длительного периода ожидания.

О том значении, которое придаёт Apple двухфакторной аутентификации, говорит тот факт, что посредством второго «дополнительного» фактора легко можно сбросить пароль от Apple ID/iCloud. А вот если потерять доступ ко всем носителям «дополнительного» фактора (включая устройства Apple и доверенный телефонный номер – что на самом деле легко, если вы в заграничной поездке), то получить доступа к собственной учётной записи не получится. Точнее, это можно будет проделать, заполнив заявку, и после длительного (несколько недель) периода ожидания с пятидесятипроцентной вероятностью доступ к учётной записи может быть (а может и не быть) предоставлен.

Если доступ ко второму фактору аутентификации утрачен

Если доступа ко второму фактору аутентификации нет, наступят следующие последствия:

  • Доступ к учётной записи Apple ID и к iCloud невозможен, даже если пароль от iCloud известен. Исключения – функция Find My и отвязка сброшенного телефона от iCloud; в обоих этих случаях достаточно одного лишь пароля от iCloud.
  • Возможно, вам удастся восстановить доступ к учётной записи Apple через официальную процедуру. Процесс длительный (несколько недель), а результат не гарантирован.
  • Второй фактор аутентификации лучше не терять.

Если доступ ко второму фактору аутентификации имеется

Если же у вас есть доступ ко второму фактору аутентификации, можно проделать следующие вещи:

  • Сбросить пароль от iCloud/Apple ID с доверенного устройства (оно выступает в роли второго фактора)
  • Восстановить доступ к учётной записи Apple ID и сбросить пароль от iCloud при помощи одноразового кода двухфакторной аутентификации (с чужого устройства Apple)
  • После сброса пароля от iCloud войти в учётную запись и извлечь из неё данные (часть данных будет дополнительно защищена кодом блокировки экрана)
  • Восстановить из облачной резервной копии новое или актуальное устройство Apple
  • При восстановлении из облачной резервной копии существующего устройства (именно того, с которого была ранее создана резервная копия) будут восстановлены и пароли из Связки ключей (даже если вам неизвестен код блокировки экрана, который необходим для скачивания синхронизированной «облачной связки ключей»).

Подводные камни

  • Даже в случае утраты доступа ко второму фактору аутентификации будут доступны функция Find My и отвязка сброшенного телефона от iCloud. Для их работы достаточно одного лишь пароля от iCloud.
  • Связка ключей из облачной резервной копии может быть восстановлена исключительно на то же самое физическое устройство, с которого была создана резервная копия. Для доступа к Облачной связке ключей необходимо ввести код блокировки экрана от одного из предыдущих устройств.

Пароли и политики безопасности

Политики безопасности, ограничивающие использование слишком простых паролей, различаются для всех четырёх (с половиной) паролей.

  • Код блокировки экрана: официальной политики нет. По умолчанию система предлагает использовать код, состоящий из 6 цифр, но по желанию пользователь может выбрать и 4-значный PIN, а также цифровой пароль произвольной длины либо буквенно-цифровой пароль произвольного размера. У Apple есть база данных самых часто используемых паролей; если пользователь попытается установить именно такой пароль (например, 0000, 1111 или 1234), то система предупредит о небезопасности такого кода блокировки – но всё же позволит его установить. Просмотреть список небезопасных паролей можно по ссылке GitHub.
  • Пароль от iCloud: минимальная длина – 8 знаков. Требуется использовать по крайней мере одну строчную и одну заглавную букву, а также по крайней мере одну цифру. При смене пароля не позволяется установка ранее использованных паролей.
  • Пароль от резервной копии iTunes: ограничения отсутствуют. В iOS 13 установка или смена пароля от резервной копии требует ввода кода блокировки экрана.
  • Пароль Экранного времени: всегда ровно 4 цифры.
  • Двухфакторная аутентификация: доверенными устройствами могут стать только устройства из экосистемы Apple (iPhone, iPad, компьютер Mac). Требуется наличие хотя бы одного доверенного телефонного номера, при этом допускается наличие в одной учётной записи нескольких доверенных телефонных номеров из разных стран, что может быть удобно в поездках.Одноразовый код двухфакторной аутентификации всегда состоит из 6 цифр, а время действия ограничено 30 секундами. Получить его можно в виде push-сообщения на доверенное устройство (требуется доступ в Интернет, устройство необходимо разблокировать), а также в виде SMS или телефонного звонка на доверенный телефонный номер. Кроме того, при наличии разблокированного устройства одноразовый код можно получить и без доступа к Интернет из настроек устройства.

Реакция на попытку перебора

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

  • Код блокировки экрана: iOS будет увеличивать задержку между попытками ввода. Через определённое количество неудачных попыток устройство будет перманентно заблокировано: на экране появится сообщение “Connect to iTunes”, но подключить устройство к компьютеру не удастся из-за активированного режима защиты USB. У пользователя есть некоторая степень контроля: так, в настройках можно включить функцию “Erase after 10 attempts” setting, которая сбросит устройство к заводским настройкам после 10 неудачных попыток.
  • Пароль от iCloud: попытка подобрать пароль приведёт к временной блокировке учётной записи. Точное количество доступных попыток не разглашается. Важный момент: если вы попытаетесь подобрать код блокировки экрана устройства, посредством которого защищается доступ к Облачной связке ключей (а также паролю Экранного времени, данным Здоровья и сообщениям), то система удалит защищённые данные (ту самую Облачную связку ключей и далее по списку) после 10 неудачных попыток.
  • Пароль от резервной копии iTunes: никаких ограничений. Ломайте на здоровье!
  • Пароль Экранного времени: увеличивающаяся задержка между попытками ввода; после 10 попыток, задержка между попытками составляет ровно час.
  • Одноразовые коды двухфакторной аутентификации: у пользователя есть ограниченное число попыток для ввода кода двухфакторной аутентификации. Если код подобрать не удалось, то будут применяться правила для защиты от попытки подбора пароля к iCloud.

Заключение

В статье мы попытались разобраться в запутанных взаимоотношениях между четырьмя (с половиной) паролями Apple. Если вам кажется, что после этой статьи вы понимаете меньше, чем до неё – это совершенно нормально: о том, каким образом одни пароли влияют на другие, могут уверенно рассуждать разве что работники Apple, которое эту систему проектировали. С нашей точки зрения как экспертов по безопасности созданная Apple система кажется не до конца продуманной и местами нелогичной. Самыми нелогичными решениями Apple нам представляются возможности сброса пароля от резервной копии iTunes и пароля от iCloud посредством одного лишь кода блокировки экрана. Система безопасности, созданная Google, представляется нам гораздо более стройной и логичной (о ней мы обязательно напишем в будущем).

Создаётся ощущение, что ряд правил и возможностей вводились компанией либо под давлением пользователей («Как мне сбросить пароль от резервной копии? Что, совсем никак? Ну, вы…»), либо при попытке быстро закрыть обнаруженную дыру в безопасности. Такой подход не позволяет нам искренне похвалить созданную в Apple систему безопасности пользовательской экосистемы. В то же время, понятны и причины, по которым компании пришлось пойти на компромиссы.

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

В статье Извлечение данных из iPhone без джейлбрейка мы рассказали о том, как использовать программу-агента для доступа к файловой системе iOS. В этой статье упоминалось о том, что для работы агента необходима учётная запись Apple ID, зарегистрированная в программе Apple для разработчиков. В чём смысл этой регистрации, для чего эксперту-криминалисту нужно становиться «зарегистрированным разработчиком» и можно ли без этого обойтись? Попробуем разобраться.

Как работает установка сторонних приложений в iOS

Итак, в инструментарии 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

Использование джейлбрейка 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.

Рутинная процедура изъятия. У подозреваемого – Apple iPhone. Аппарат изымается, проверяется на предмет блокировки экрана, извлекается SIM-карта, телефон выключается и передаётся в лабораторию. Казалось бы, что может пойти не так? В описанном выше сценарии «не так» — буквально каждая мелочь. Результат – телефон, с которым эксперту будет сложно или и вовсе невозможно работать. В чём состоят ошибки и как их избежать? Об этом – в нашей статье.

Выключение питания

Самая распространённая ошибка, которая повторяется из раза в раз – выключение изъятых устройств. Как правило, устройство отключают для того, чтобы не дать ему подключиться к беспроводным сетям, получить дистанционную команду на удаление данных.

Фактически же сотрудник, выключающий изъятое устройство, заметно осложнит работу эксперта. И вот почему.

  • Устройство переводится из состояния AFU* в состояние BFU* со всеми вытекающими последствиями.
  • Ключи шифрования пользовательского раздела хранятся в оперативной памяти устройства. При его выключении ключи исчезают, а восстановить их можно исключительно вводом корректного пароля (кода блокировки экрана).
  • Если возникнет необходимость подобрать код блокировки, то скорость атаки после выключения или перезагрузки устройства будет почти на порядок медленнее.
  • Перестанут работать записи lockdown; логическое извлечение станет невозможным.
  • Если код блокировки неизвестен, извлечение данных придётся проводить в режиме BFU.

* Что такое состояния AFU и BFU? AFU – режим After First Unlock, «после начальной разблокировки». Он означает, что пользователь хотя бы раз разблокировал телефон паролем после перезагрузки. В режиме AFU расшифрованы пользовательские данные, их можно попытаться извлечь. Скорость перебора кодов блокировки в этом режиме высокая (порядка нескольких минут на PIN-код, состоящий из 4 цифр).

Режим BFU – Before First Unlock, или режим холодного старта. Устройство было перезагружено или выключено; ключей шифрования пользовательских данных в памяти нет, а сами данные – надёжно зашифрованы.  Скорость перебора паролей низкая; на полный перебор 4 цифр PIN-кода может уйти до нескольких дней, а перебор 6-значного цифрового пароля теряет смысл.

Как делать правильно? Мы описали корректную процедуру в статье The Art of iPhone Acquisition.

Извлечение SIM-карты

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

Извлечение SIM-карты приводит к печальным последствиям, сравнимым с отключением телефона. Если iPhone работает под управлением iOS 11, 12 или 13, извлечение SIM-карты будет иметь следующие последствия:

  • Экран телефона блокируется
  • Биометрические датчики Touch ID и Face ID временно блокируются; разблокировать экран можно только паролем
  • Включается режим ограничений USB

Подробнее об этом можно почитать в наших статьях: Passcode vs. Biometrics: Forensic Implications of Touch ID and Face ID in iOS 12; о режиме ограничений USB: USB Restricted Mode Inside Out (обновления: iOS 12 Enhances USB Restricted Mode и USB Restricted Mode in iOS 13: Apple vs. GrayKey, Round Two).

Иными словами, не извлекайте SIM-карту из iPhone.

“Не держите его таким образом”

Фраза, высказанная Стивом Джобсом в ответ на критику iPhone 4, давно стала крылатой. Однако для новых iPhone, оборудованных системой распознавания лиц Face ID, эта фраза несёт и второй смысл. Достаточно взглянуть на телефон, и одна из пяти попыток разблокировки по лицу будет утрачена. Именно это случилось на сцене во время анонса iPhone X: YouTube.

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

Сброс пароля к резервной копии

Во многих случаях (за исключением возможности установки джейлбрейка через уязвимость checkm8), логическое извлечение с использованием резервных копий iTunes является основным источником данных. Мы подробно рассказывали о резервных копиях iPhone в статье The Most Unusual Things about iPhone Backups.

Одной из основных проблем, которые могут возникнуть в процессе логического анализа, является пароль на резервную копию. Если резервная копия защищена паролем, атака на уже созданную резервную копию будет чрезвычайно медленной (за единичным исключением конкретной версии iOS 10). Тем не менее, во всех версиях iOS начиная с iOS 11 и более новых существует возможность сбросить пароль: iOS 11 Makes Logical Acquisition Trivial, Allows Resetting iTunes Backup Password.

Проблема в том, что все пароли в iOS взаимосвязаны сложными и неочевидными способами; мы писали об этом в статье Four and a Half Apple Passwords. Соответственно, попытка сбросить один пароль неизбежно повлияет и на другие.

В iOS 11, 12 и 13 сброс пароля к резервной копии осуществляется командой “Reset all settings” (почти все пользовательские данные и пароли остаются нетронутыми). Ключевое слово здесь – «почти». При использовании этой команды будут сброшены пароли к Wi-Fi, история транзакций Apple Pay, скачанные сообщения Exchange и некоторые другие данные. Однако самым важным будет тот факт, что сбрасывается в том числе и код блокировки экрана. Почему это важно? В статьях iOS 11 Horror Story: the Rise and Fall of iOS Security и Protecting Your Data and Apple Account If They Know Your iPhone Passcode мы подробно описали, что именно зависит от наличия кода блокировки. Сюда входят, в частности, такие вещи, как доступ к зашифрованным данным в iCloud (облачная связка ключей, сообщения в iCloud, данные приложения «Здоровье» и т.д.)

Логический анализ iOS

Казалось бы, совершить ошибку в процессе логического анализа iOS достаточно сложно. Логический анализ – это резервная копия iTunes, но не только. Впрочем, даже в процессе создания резервной копии можно совершить несколько ошибок, которые могут привести к печальным последствиям.

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

Резервная копия без пароля. Резервную копию легче проанализировать, если пароль не установлен? С одной стороны, действительно, легче. С другой – iOS использует пароль для шифрования таких данных, как Связка ключей (пароли пользователя), «Здоровье», с недавнего времени – история браузера Safari и журнал звонков. Если же пароль не установлен, все эти и некоторые другие данные будут зашифрованы аппаратным ключом, и расшифровать их в процессе логического анализа не удастся. Если есть возможность, всегда задавайте известный пароль перед началом извлечения.

Что-то упущено. Резервная копия – далеко не всё, что можно извлечь из iPhone в процессе логического анализа. Логический анализ позволяет извлечь и медиа-файлы (фото и видео, включая EXIF, а также метаданные), журналы диагностических событий (полезны для реконструкции активности пользователя), данные приложений (iTunes shared data). Все эти данные можно извлечь независимо от того, установлен ли пароль на резервную копию. Более того, некоторые типы данных можно извлечь и из устройств Apple Watch и Apple TV при использовании Elcomsoft iOS Forensic Toolkit.

Заключение

Я перечислил лишь наиболее часто встречающиеся ошибки, которые относятся к анализу Apple iPhone. В то же время, возможностей совершить ошибку современная техника оставляет множество. Точное следование инструкциям, подробное документирование каждого шага, повторяемость и возможность верификации результатов – важнейшие составляющие процесса. Уследить за постоянно меняющимся рынком мобильных устройств нелегко. В помощь органам охраны правопорядка мы предлагаем учебные курсы как по мобильной, так и по компьютерной криминалистике.

В устройствах Apple, работающих под управлением операционной системы iOS (а это – и смартфоны iPhone, и планшеты iPad, и даже приставки Apple TV и часы Apple Watch) встроен ряд специальных режимов, представляющих особый интерес для специалистов, работающих в области мобильной криминалистики. Использование таких режимов, как режим восстановления (recovery mode) и режим обновления прошивки (DFU) позволяет как извлекать информацию, так и взламывать некоторые устройства. Специальный режим экстренного вызова SOS, напротив, способен затруднить работу специалиста. Сегодня мы расскажем о том, как работают, для чего используются и как могут повлиять на работу специалиста режимы обновления прошивки, восстановления и экстренного вызова.

Режим восстановления: recovery mode

Режим восстановления (в англоязычных источниках – iOS recovery mode) – самый простой для понимания. Согласно информации Apple, этот режим используется для восстановления доступа к устройству через компьютер (имеется в виду приложение iTunes) в случае, когда что-то пошло не так.

Данный режим имеет смысл использовать в следующих ситуациях:

  • Компьютер не распознает устройство или сообщает, что оно находится в режиме восстановления.
  • Устройство не загружается. На экране уже несколько минут отображается логотип Apple без индикатора хода выполнения или отображается экран режима восстановления. Такая ситуация довольно часто встречается при попытке обновить устройство при недостатке свободного места или при обновлении устройства, работающего на очень старой версии iOS. Так, недавно нам принесли устройство, пользователь которого попытался обновить на актуальную версию iOS3 телефон iPhone 7, всё это время проработавший на iOS 9.
  • Пользователь забыл код блокировки и хочет сбросить устройство к заводским настройкам. При этом будет активирована защита в виде iCloud lock: для активации устройства потребуется ввести пароль от учётной записи Apple ID, к которой было привязано устройство перед сбросом.

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

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

  1. Принудительно перезагрузите подключенное устройство, следуя инструкциям. Не отпускайте кнопки, когда появится логотип Apple, — дождитесь, пока откроется экран режима восстановления.
  2. На моделях iPad с Face ID: нажмите и быстро отпустите кнопку увеличения громкости. Нажмите и быстро отпустите кнопку уменьшения громкости. Нажмите верхнюю кнопку и удерживайте ее, пока устройство не начнет перезагружаться. Продолжайте удерживать верхнюю кнопку, пока устройство не перейдет в режим восстановления.
  3. На iPhone 8 или более поздних моделей: нажмите и быстро отпустите кнопку увеличения громкости. Нажмите и быстро отпустите кнопку уменьшения громкости. Затем нажмите и удерживайте боковую кнопку, пока не появится экран режима восстановления.
  4. На iPhone 7, iPhone 7 Plus и iPod touch (7-го поколения): одновременно нажмите и удерживайте верхнюю (или боковую) кнопку и кнопку уменьшения громкости. Продолжайте удерживать их, пока не появится экран режима восстановления.
  5. На iPad с кнопкой «Домой», iPhone 6s или более ранних моделей и iPod touch (6-го поколения) или более ранних моделей: нажмите и удерживайте одновременно кнопку «Домой» и верхнюю (или боковую) кнопку. Продолжайте удерживать их, пока не откроется экран режима восстановления.

 

(Источник: https://support.apple.com/ru-ru/HT201263)

Для чего используется режим восстановления

Режим восстановления (recovery mode) может быть использован в следующих целях.

  1. Переустановка или обновление iOS (установить можно только актуальную версию iOS, которая подписывается Apple на момент установки). Как правило, данные пользователя при этом сохраняются.
  2. Переход с бета-версии на актуальную версию iOS. В этом случае данные сохраняются не всегда.
  3. Сброс устройства. Часто используется пользователями, которые забыли пароль, а также пользователями, устройство которых заблокировано с индикацией «Подключите устройство к iTunes». Данные пользователя также будут сброшены.
  4. Частичное извлечение данных через режим recovery mode. Для работу потребуется свежая версия iOS Forensic Toolkit (EIFT10 или более новая).

Данные, которые можно извлечь в режиме восстановления

Режим восстановления позволяет извлечь лишь ограниченное количество информации об устройстве. Доступны следующие данные:

Device Model: iPhone8,1
Model: n71map
ECID: XXXXXXXXXXXXXXXX
Serial Number: XXXXXXXXXXX
IMEI: XXXXXXXXXXXXXXX
MODE: Recovery

Пояснения:

  • Device model и Model: идентификация модели устройства в двух разных представлениях. К примеру, iPhone7,2 (n61ap), iPhone10,6 (d221ap) и т.п.
  • ECID (UCID): XXXXXXXXXXXXXXXX. Идентификатор ECID (Exclusive Chip Identification) или Unique Chip ID (UCID) уникален для каждого конкретного устройства (а точнее, установленного в нём процессора).
  • Serialnumber: серийный номер устройства в формате XXXXXXXXXXX (или N/A)
  • IMEI: XXXXXXXXXXXXXXX (или N/A). Обратите внимание: как правило, информация об IMEI устройства системой не выдаётся даже тогда, когда в него вставлена SIM-карта.
  • Mode: индикация режима, в данном случае – Recovery, режим восстановления.

Выход из режима восстановления

Процедура вывода устройства из режима восстановления также различается для разных поколений устройств. Общие для всех устройств шаги:

  • Отсоедините кабель USB.
  • Зажмите и удерживайте кнопку питания до отключения устройства.
  • Чтобы включить устройство, продолжайте удерживать комбинацию кнопок или отпустите, а потом снова зажмите указанные кнопки.
  • Отпустите кнопки. Устройство начнёт загружаться.

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

  • iPhone 6s и более старые модели, модели iPad с Touch ID: зажмите и удерживайте кнопки «Домой» и кнопку выключения питания, пока устройство не перезагрузится.
  • iPhone 7 и iPhone 7 Plus: удерживайте кнопку выключения питания и уменьшения громкости до перезагрузки.
  • iPhone 8 и более новые: короткое нажатие Громкость+, короткое нажатие Громкость-, затем удерживать кнопку отключения питания до перезагрузки.

Использование режима восстановление в целях мобильной криминалистики

С точки зрения эксперта-криминалиста, режим восстановления обладает ограниченной ценностью.

  • Можно узнать информацию об устройстве, не зная пароля.
  • Режим блокировки USB не влияет на результат.
  • Для новых устройств, основанных на процессоре A12 и более новых, возвращает больше информации, чем режим DFU.

Интересный момент: при установке джейлбрейка checkra1n с использованием встроенной утилиты установки программа сначала переводит устройство в режим восстановления, а потом выдаёт инструкции для переключения устройства в режим DFU. Этот промежуточный шаг можно пропустить, если устанавливать checkra1n из командной строки.

Режим обновления прошивки DFU

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

Режим DFU – часть загрузочного процесса, которая прошита в устройства Apple на аппаратном уровне. Прошивка на аппаратном уровне не позволяет компании обновлять соответствующий код. Уязвимость, обнаруженная в устройствах, основанных на процессорах поколений A7 — A11, позволяет взломать устройство и извлечь часть данных даже тогда, когда код блокировки устройства неизвестен. Подробности в статье BFU Extraction: Forensic Analysis of Locked and Disabled iPhones.

Ниже приводится информация о переводе в режим DFU ряда устройств, для которых нам удалось найти соответствующие инструкции. Обратите внимание: в режиме DFU экран устройства останется чёрным; никакого визуального подтверждения перехода в режим DFU вы не увидите. Ресурс iPhone Wiki содержит актуальную информацию по переводу устройств в режим DFU.

Apple TV

  1. Подключите устройство к компьютеру кабелем USB.
  2. Принудительно перезагрузите устройство, зажав кнопки «меню» и «вниз» на 6-7 секунд.
  3. Зажмите кнопки «меню» и «проигрывание» сразу после перезагрузки. Продолжайте удерживать кнопки, пока в iTunes не появится сообщение о том, что обнаружено устройство Apple TV в режиме восстановления.

Устройства с процессорами A9 и более старые (ряд моделей iPad, iPhone 6s и более старые, iPhone SE и iPod touch 6 и более старые)

  1. Подключите устройство к компьютеру кабелем USB.
  2. Зажмите кнопки «Домой» и питания.
  3. Ровно через 8 секунд отпустите кнопку питания, продолжая удерживать кнопку «Домой».
    • Если на экране появилось «яблоко» Apple, вы удерживали кнопку питания слишком долго. Повторите попытку.
  4. При успешном входе в режим DFU экран остаётся чёрным. В iTunes отобразится сообщение о том, что обнаружено устройство в режиме восстановления.
    • Если экран устройства не чёрный, вероятно, устройство загружено в режиме восстановления, а не DFU. Повторите попытку.

Альтернативный способ 1:

  1. Удерживайте кнопку питания 3 секунды
  2. Продолжая удерживать кнопку питания, удерживайте кнопку «Домой» (15 сек)
  3. Отпустите кнопку питания. Продолжайте удерживать кнопку «Домой» (10 сек)
  4. Устройство должно перейти в режим DFU

Альтернативный способ 2:

  1. Подключите устройство к компьютеру и запустите iTunes. Выключите устройство.
  2. Удерживайте нажатой кнопку блокировки и кнопку «Домой» ровно 10 секунд, затем отпустите кнопку блокировки.
  3. Продолжайте удерживать кнопку «Домой», пока iTunes на вашем компьютере не покажет сообщение о том, что устройство в режиме восстановления было обнаружено.

Экран устройства останется полностью черным.

Устройства с процессором A10 devices (iPhone 7 и iPhone 7 Plus, iPad 2018, iPod touch 7)

  1. Подключите устройство к компьютеру с помощью USB-кабеля.
  2. Нажмите и удерживайте боковую кнопку и кнопку уменьшения громкости.
  3. Через 8 секунд отпустите боковую кнопку, продолжая удерживать нажатой кнопку уменьшения громкости.
  4. Если появляется логотип Apple, боковая кнопка удерживалась слишком долго.
    • Если устройство успешно перешло в режим DFU, экран остаётся чёрным. iTunes выведет сообщение, что обнаружено устройство в режиме восстановления.

Если на экране устройства отображается сообщение о подключении устройства к iTunes, повторите процедуру.

Устройства с процессором A11 и более новые (iPhone 8 и новее, iPad Pro 2018, iPad Air 2019, iPad Mini 2019)

  1. Подключите устройство к компьютеру с помощью USB-кабеля.
  2. Нажмите и сразу отпустите увеличения громкости.
  3. Нажмите и сразу отпустите кнопку уменьшения громкости.
  4. Удерживайте боковую кнопку, пока экран не станет черным, затем нажмите боковую кнопку и кнопку уменьшения громкости одновременно.
  5. Ровно через 5 секунд отпустите боковую кнопку, продолжая удерживать нажатой кнопку уменьшения громкости.
    • Если появляется логотип Apple, боковая кнопка удерживалась слишком долго. Повторите процедуру.

Если устройство успешно перешло в режим DFU, экран остаётся чёрным. iTunes выдаст сообщение, что обнаружено устройство в режиме восстановления.

Если на вашем устройстве отображается экран с сообщением о подключении устройства к iTunes, повторите процедуру.

Дополнительная информация: iphonewiki и другие источники.

Информация, доступная в режиме DFU

Если не учитывать джейлбрейк checkra1n, то режим DFU возвращает ещё меньше информации даже в сравнении с режимом восстановления.

Device Model: iPhone8,1
Model: n71map
ECID: XXXXXXXXXXXXXXXX
Serial Number: N/A
IMEI: N/A
MODE: DFU

Режим DFU поддерживает iOS Forensic Toolkit 4.10 и более новые версии.

  • Devicemodel и Model: идентификация модели устройства в двух разных представлениях. К примеру, iPhone7,2 (n61ap), iPhone10,6 (d221ap) и т.п.
  • ECID (UCID): XXXXXXXXXXXXXXXX. Идентификатор ECID (Exclusive Chip Identification) или Unique Chip ID (UCID) уникален для каждого конкретного устройства (а точнее, установленного в нём процессора).
  • Serialnumber: в режиме DFU недоступен.
  • IMEI: в режиме DFU недоступен.
  • Mode: индикация режима, в данном случае – DFU, режим обновления прошивки.

Выход из режима DFU

Процесс выхода из режима DFU также различен для разных устройств.

Для устройств с физической кнопкой «Домой» (вплоть до iPhone 6s и iPhone SE включительно): удерживайте кнопку «Домой» и кнопку блокировки до перезагрузки устройства.

Для iPhone 7 и iPhone 7 Plus: удерживайте боковую кнопку и кнопку уменьшения громкости, пока устройство не перезагрузится.

Для iPhone 8 и iPhone 8 Plus, iPhone X: нажмите кнопку увеличения громкости, затем кнопку уменьшения громкости, после чего нажмите и удерживайте боковую кнопку, пока устройство не перезагрузится.

Значение режима DFU для мобильной криминалистики

Несмотря на скудность доступной в режиме DFU информации, он имеет неожиданные последствия. Значение режима обновления прошивки для мобильных криминалистов сложно переоценить. В зависимости от модели устройства, вам может быть доступен вариант с установкой джейлбрейка checkra1n даже тогда, когда пароль от устройства неизвестен. Для устройств iPhone, iPod Touch и iPad на базе процессоров Apple поколений от A5 до A11 (это устройства iPhone от iPhone 4s до iPhone 8, 8 Plus и iPhone X включительно, а также соответствующие модели iPad) была обнаружена аппаратная уязвимость в загрузчике. Эту уязвимость невозможно исправить, т.к. её код прошит в режиме «только для чтения». Уязвимость позволяет устанавливать джейлбрейк checkra1n независимо от установленной версии iOS. В своб очередь checkra1n позволяет извлекать ограниченный, но существенный объём данных в режиме DFU, даже если пароль неизвестен.

  • Все устройства: позволяет получать информацию об устройстве без пароля
  • Все устройства: позволяет обойти ограниченный режим USB (доступно ограниченное количество информации)
  • Устройства iOS с уязвимостью checkm8 (поколения от A5 до A11): доступно значительно больше информации по сравнению с режимом восстановления.

Известно, что преступники используют эту уязвимость для снятия блокировки активации (iCloud lock) с уязвимых устройств, работающих под управлением старых версий iOS. Несмотря на то, что эта возможность была исправлена Apple в iOS 13.3, вскоре появились решения как для iOS 13.3, так и для 13.3.1. Похоже на то, что защита от кражи iPhone (iCloud Lock) стала неэффективной для устройств Apple вплоть до моделей iPhone 8, 8 Plus и iPhone X включительно.

Из уязвимых устройств удаётся извлечь следующую информацию:

  • Ограниченное извлечение файловой системы: список установленных приложений, некоторые данные Wallet, список подключений Wi-Fi, некоторые мультимедийные файлы, уведомления (в них могут содержаться некоторые сообщения чатов, одноразовые пароли и другие полезные данные) и множество точек местоположения.
  • Записи из Связки ключей с атрибутами kSecAttrAccessibleAlways и kSecAttributeAccessibleAlwaysThisDeviceOnly.
  • Кроме того, набор программ Oxygen Forensic Detective извлекает дополнительные данные из таких файлов, как /private/var/wireless/Library/Databases/DataUsage.sqlite (сетевая активность приложений), /private/var/preferences/ (сетевые интерфейсы) или /private/var/mobile/Library/Voicemail/ (голосовые сообщения).

Дополнительная информация: BFU Extraction: Forensic Analysis of Locked and Disabled iPhones и iOS Device Acquisition with checkra1n Jailbreak.

Различия между режимами восстановления и DFU

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

Режим восстановления загружается посредством загрузчика iBoot, и работает посредством команд, исполняемых загрузчик. Загрузчик, в свою очередь, является частью операционной системы и может быть обновлён компанией Apple, если последняя обнаружит в нём какие-либо уязвимости. Режим восстановления позволит прошить только подписанные образы, поэтому возврат к прошивке, которая больше не подписывается Apple, невозможен. Когда устройство находится в режиме восстановления, пользователь получает чёткую индикацию на устройстве.

Режим обновления прошивки DFU (Device Firmware Upgrade) также позволяет восстанавливать устройства, однако способен проделать это из любого состояния, даже если повреждён сам загрузчик. DFU раз и навсегда прошивается в устройство как часть SecureROM. В результате DFU не может быть обновлён; в нём невозможно исправить ошибки и уязвимости, его нельзя и отключить. В результате Apple не в состоянии исправить широко известную уязвимость в bootrom и соответствующий эксплойт checkm8. Это позволяет экспертам извлекать определённые данные из уязвимых устройств, обходя при этом защиту паролем и ограничения USB.

Впрочем, установить неподписанный образ через DFU не удастся: в этом режиме также принимаются только подписанные прошивки. Однако, в отличие от режима восстановления, вы можете свободно понижать или повышать версию iOS при условии, что выбранный вами образ подписывается Apple. Ещё одно отличие состоит в том, что при работе DFU нет никакой индикации на экране устройства. Всё время работы в DFU экран устройства остаётся чёрным.

Режим восстановления был разработан для того, чтобы им могли воспользоваться обычные пользователи продуктов Apple. Режим DFU не предназначен для конечного пользователя. Вход в режим восстановления прост; любой пользователь может успешно воспользоваться режимом. Войти в DFU не только значительно сложнее, но и потребует некоторой сноровки и внимания со стороны эксперта. Стоит передержать или недодержать кнопку во время любого шага, и устройство перезагрузится.

Режим экстренного вызова S.O.S.

Последний специальный режим iOS, о котором мы хотим рассказать, носит название SOS. Режим SOS (режим экстренного вызова) можно активировать вручную; на сайте Apple есть вся необходимая документация.

Вход в режим SOS

Для iPhone 8 и более поздних моделей переход в режим SOS выполняется следующим образом:

Нажмите и удерживайте боковую кнопку и одну из кнопок регулировки громкости до тех пор, пока не появится ползунок «Экстренный вызов — SOS».

Для iPhone 7 и более ранних моделей:

Быстро нажмите боковую (или верхнюю) кнопку пять раз. Появится ползунок «Экстренный вызов — SOS». (В Индии потребуется нажать кнопку только три раза, после чего iPhone автоматически наберёт номер служб экстренной помощи.)

Обратите внимание: переход в режим SOS временно блокирует биометрическую аутентификацию; для разблокировки экрана необходимо ввести пароль. Кроме того, использование режима SOS активирует режим ограничений USB.

Выход из режима SOS

Для выхода из режима SOS просто нажмите «Отмена» на соответствующем экране. Для разблокировки экрана необходимо будет ввести пароль.

Значение режима SOS для мобильной криминалистики

В отличие от режимов восстановления и DFU, режим способен доставить криминалистам лишь неудобства.

  • Устройство переводится в состояние BFU (Before First Unlock), ключи шифрования удаляются из памяти. Извлечение данных в режиме AFU (After First Unlock) становится невозможным даже для устройств со старыми (до 11.4 включительно) версиями iOS.
  • Биометрические способы аутентификации (Touch ID и Face ID) временно блокируются. Устройство должно быть разблокировано паролем.
  • Отключается передача данных через порт USB (активируется режим ограничения USB). Фактически, таким образом Apple пытается защитить пользователя от решений для перебора кодов блокировки, предлагаемых такими компаниями, как Cellebrite и GrayShift.
НАШИ НОВОСТИ