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

Apple Watch – одна из самых популярных марок «умных» часов в мире. Последняя версия часов оснащена полным набором датчиков и процессором, мощность которого превосходит бюджетные (и даже не очень бюджетные) модели смартфонов. При помощи часов собираются огромные массивы данных. Что происходит с этими данными, где они хранятся и как их извлечь? Попробуем разобраться.

Статья написана в соавторстве с Маттиа Эпифани. Маттиа – основатель итальянской компании REALITY NET, консультант в сфере цифровой криминалистики и мобильной безопасности. Маттиа Эпифани является инструктором курсов SANS и соавтором книги “Learning iOS Forensics”.

За последние несколько лет популярность разнообразных трекеров и «умных» часов значительно возросла. В 2018 году был продан 141 миллион «умных» часов, что почти вдвое превышает результат предыдущего года. Среди всего разнообразия моделей выделяется линейка Apple Watch, продажи которых в 2018 году составили 22.5 миллиона единиц. На протяжении нескольких лет суммарная доля всех моделей Apple Watch лишь немного не дотягивает до половины глобальной рыночной доли.

Первая версия часов Apple Watch была выпущена в 2015 году. В следующем году на замену первого поколения часов пришло поколение Series 1, которое вышло одновременно с версией Series 2. На сегодняшний день актуальной моделью является четвёртая (по факту – пятая) версия Apple Watch 4. Все версии часов от Apple работают под управлением специализированной операционной системы WatchOS, код которой в свою очередь основан на мобильной системе iOS.

В отличие от подробно исследованных смартфонов iPhone и других устройств, работающих под управлением операционной системы iOS, часы Apple Watch заинтересовали лишь небольшое число экспертов. Первыми работами, описывающими структуру данных Apple Watch, стала публикация Heather Mahalik и Sarah Edwards, опубликованная в 2015 году (PDF). С тех пор сравнимых по масштабу исследований часов от Apple не проводилось.

Последние версии часов Apple Watch оснащены большим числом разнообразных датчиков. Здесь и датчик атмосферного давления, и шагомер, и датчик пульса, и чувствительные инерционные датчики, и датчик магнитного поля, и полноценный чипсет для определения координат по спутникам GPS, Glonass и Galileo, и даже датчик для снятия электрокардиограмм. Многие из этих датчиков работают постоянно, но некоторые включаются лишь периодически. Пример – датчик для определения местоположения, который активируется лишь в те моменты, когда WatchOS посчитает, что ты вышел на пробежку.

С учётом того, что часы оборудованы 8 ГБ встроенной памяти, логично было бы ожидать, что по крайней мере часть собранных данных сохраняется в часах. Часы ведут полноценные логи, формат которых совпадает с форматом аналогичных логов iPhone. Кроме того, на часах могут быть многочисленные циферблаты, на них можно устанавливать приложения (в том числе сторонние, из магазина), синхронизировать фотографии. Часы получают уведомления с телефона, причём в них может содержаться часть сообщения. С часов можно слушать музыку, можно зарегистрироваться на рейс и пройти посадочный контроль при помощи посадочного талона в виде QR-кода. Часами можно оплачивать покупки. На часах работает голосовой помощник Siri. Если же речь идёт о версии часов с LTE, то с часов можно и позвонить. Иными словами, часы Apple Watch могут делать многое из того, что может делать и обычный смартфон. Есть ли возможность добраться до всех этих данных?

Информацию из часов можно извлечь тремя разными способами. Во-первых, резервную копию Apple Watch можно извлечь из локальной или облачной резервной копии подключённого к часам iPhone. Во-вторых, часы можно подключить напрямую к компьютеру, используя переходник, после чего извлечь данные методом логического анализа. Наконец, некоторые данные можно извлечь из облака iCloud (в первую очередь речь идёт о данных «Здоровья» пользователя, которые собирают часы).

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

Способ первый. Анализ резервной копии iPhone

Часы Apple Watch независимо от поколения аппаратной платформы и версии WatchOS обладают возможностью создавать резервную копию данных. Тем не менее, WatchOS не позволяет использовать сервис для создания резервных копий ни сторонним приложениям, ни даже программе iTunes. Резервные копии часов создаются только и исключительно в подключённом к часам смартфоне iPhone.

Согласно документации Apple, содержимое Apple Watch автоматически копируется на сопряжённое устройство iPhone, чтобы данные Apple Watch можно было восстановить из этой резервной копии. К сожалению, нам неизвестен способ, посредством которого можно было бы форсировать создание свежей резервной копии часов в iPhone, за исключением одного: отсоединить часы от iPhone, разорвав пару. В статье Apple Резервное копирование данных Apple Watch подробно описано, что входит, а что не входит в состав резервных копий часов.

Вот что входит в резервную копию данных Apple Watch:

  • Данные (для встроенных программ) и настройки (для встроенных и сторонних программ).
  • Расположение программ на экране «Домой» и настройки циферблата.
  • Настройки панели Dock и основные системные настройки.
  • Медицинские данные и данные о физической активности.
  • Настройки уведомлений.
  • Плейлисты, альбомы и миксы, синхронизируемые на Apple Watch, и настройки музыки.
  • Настройка параметра Siri «Аудиоотзыв» для Apple Watch Series 3или более поздних моделей. 
  • Синхронизированный фотоальбом.
  • Часовой пояс.

Вот что не входит в резервную копию данных Apple Watch:

  • Записи сопряжения Bluetooth.
  • Данные кредитных или дебетовых карт для платежей Apple Pay, сохраненные на Apple Watch.
  • Код-пароль к часам Apple Watch.

(Источник: Резервное копирование данных Apple Watch)

Таким образом, резервную копию часов Apple Watch можно извлечь из iPhone. Самый простой способ это сделать – создать локальную или облачную резервную копию iPhone, после чего проанализировать её содержимое. Мы не будем подробно останавливаться на процедуре создания резервных копий (они многократно описывались на страницах нашего сайта); отметим только, что для создания свежей резервной копии можно использовать iTunes или одну из сторонних программ, но мы воспользовались утилитой Elcomsoft iOS Forensic Toolkit (она будет использована впоследствии и для извлечения данных из часов, подключённых к компьютеру через переходник).

Итак, резервная копия iPhone создана, осталось найти в ней резервную копию часов Apple Watch. Для этого мы воспользуемся двумя утилитами: iBackupBot (доступна для Windows и MacOS) и SQLite Expert для Windows.

Начнём с анализа спецификаций устройства. Для этого откроем резервную копию iPhone в приложении iBackupBot.

В папке \HomeDomain\Library\DeviceRegistry.state находятся следующие файлы:

  • plist
  • stateMachine-<GUID>.PLIST
  • plist
  • plist

В файле historySecureProperties.plist хранится серийный номер часов, уникальный идентификатор UDID (UniqueDeviceIdentifier), MAC-адреса адаптеров Wi-Fi и Bluetooth подключённых к телефону часов Apple Watch.

Файл stateMachine-<GUID>.PLIST хранит информацию о сопряжении с iPhone (обычно значение PairSuccess), версия операционной системы WatchOS и время сопряжения с телефоном (записанное в формате Apple Cocoa Core Data — https://www.epochconverter.com/coredata).

Файл activestatemachine.plist содержит информацию, подобную той, что содержится в файле stateMachine-<GUID>.PLIST, дополненной данными о версии WatchOS, установленной на часах в момент создания резервной копии.

В папке \HomeDomain\Library\DeviceRegistry содержится директория, имя которой содержит GUID из файла stateMachine-<GUID>.plist file: именно в этой директории содержатся данные из резервной копии AppleWatch.

Что же интересного есть в резервной копии часов Apple Watch? В первую очередь интерес представляют следующие данные.

В папке NanoAppRegistry содержится информация об установленных на часах приложениях. На скриншоте ниже можно увидеть информацию о приложении Facebook, включая данные Bundle Version, Display Name, Bundle Identifier и Bundle Name. К сожалению, данных приложения в резервной копии часов нет, только информация о приложении.

В базе данных NanoMail\Registry.sqlite содержится информация о почтовых учётных записях, которые синхронизируются с часами.

В частности, в таблице SYNCED_ACCOUNT можно найти записи Display Name и Email Address для каждого почтового аккаунта, который синхронизируется с устройством. Ни пароля, ни маркера аутентификации от почтовых аккаунтов в резервной копии нет.

В таблице MAILBOX можно просмотреть, как организована почта, пролистать папки и подпапки для каждой учётной записи (Входящие, Исходящие, Черновики, Архив и так далее).

Продолжая описание доступных баз данных, в базе NanoPasses\nanopasses.sqlite3 содержится список записей из приложения Wallet. Программа Wallet — универсальное хранилище кредитных, дебетовых и предоплаченных карт, а также карт магазинов, посадочных талонов, билетов в кино, купонов, бонусных карт, студенческих удостоверений и т. д. Записи Wallet синхронизируются с часами. В частности, часы можно использовать для отображения QR-кода посадочных талонов для их удобного сканирования при посадке на рейс. Для каждой записи доступны данные Type_ID, название организации Organization Name, дата Ingest Date (в формате Apple Cocoa Core Data) и описание Description.

В некоторых записях доступно поле “Encoded Pass”, в котором содержится двоичный файл plist с дополнительной информацией (например, описанный выше QR-код посадочного талона). Такие файлы можно извлечь из базы данных и открыть при помощи программы для работы с plist (например, plist Editor).

На следующем скриншоте можно увидеть запись брони гостиницы через Booking.com. Поле Encoded Pass можно открыть в SQLiteExpert и сохранить в виде файла.

Далее файл открываем в plist Editor и извлекаем информацию о брони, включая имя гостя, название и адрес гостиницы, даты заезда и выезда, стоимость и номер брони.

В папке NanoPreferencesSync хранятся различные файлы, отвечающие за настройки Apple Watch. Наибольший интерес здесь представляет папка \Backup\Files\, в которой содержится информация о циферблатах и их настройках, включая изображения.

Все эти файлы представляют собой обычные архивы в формате ZIP.

В каждом архиве содержатся:

  • Face.json с детальными настройками циферблата, включая дату его создания (как обычно, в формате Apple Cocoa Core Data)
  • В папке Resources содержится изображение циферблата в формате JPEG, а также файл Images.plist, в котором содержатся метаданные.

Анализ резервной копии: итоги

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

Извлечение данных из Apple Watch через адаптер

Более сложным способом извлечь информацию из Apple Watch является их подключение к компьютеру посредством специализированного переходника, правильное подсоединение которого к часам – поистине ювелирная работа. В любом случае, нужно будет выполнить все требования из списка:

  1. Нужно каким-то образом подключить часы к компьютеру. И если для Apple Watch S1, S2 и S3 есть готовые адаптеры IBUS, то для часов последней серии нужного адаптера мы не нашли.
  2. Когда часы подсоединятся к компьютеру, потребуется создать доверенное соединение – точно так же, как и с iPhone. И точно так же, как и в случае с iPhone, для этого нужно будет разблокировать часы кодом блокировки. Если этого не сделать, то связать часы с компьютером не получится.
  3. На часах нет доступного для сторонних приложений сервиса резервного копирования. Соответственно, на резервную копию рассчитывать нельзя.
  4. Джейлбрейка тоже не существует, так что и файловую систему извлечь не удастся.

И даже после всего перечисленного тебе не удастся извлечь образ файловой системы! Всё, что тебе будет доступно – это несколько  сервисов, через которые можно попробовать извлечь некоторые типы данных. С учётом всего этого неудивительно, что извлечением данных из часов Apple Watch мало кто занимается. Что же вообще можно извлечь из часов при прямом подключении? Доступны всего три типа данных:

  1. Информация об устройстве и список установленных приложений
  2. Файлы через протокол AFC (Apple File Conduit)
  3. Лог-файлы

Подключение к компьютеру

Нам удалось найти переходники для первых трёх поколений часов; для Apple Watch 4 такого адаптера нет. Диагностический порт в часах Apple Watch находится под креплением для ремешка; потребуется тонкая игла или скрепка для того, чтобы открыть крышку. Используемый нами адаптер носит название IBUS.

Правильно подсоединить адаптер к часам может быть сложно. Тем не менее, это возможно:

Так же, как и для iPhone, приложение iTunes запросит разрешение на создание доверенного соединения с компьютером:

iTunes отобразит информацию о часах (только версия ОС и уникальный идентификатор часов):

Теперь запускаем Elcomsoft iOS Forensic Toolkit:

Список приложений, установленных на часах, извлекается командой I (Device Info) и сохраняется в файл:

 

На диске (обычно в том же каталоге, куда установлен iOS Forensic Toolkit) создаётся три файла:

  • plist
  • txt
  • plist

В файле ideviceinfo.plist содержится вся доступная информация по Apple Watch, включая точный идентификатор модели Hardware Model, версия операционной системы WatchOS, серийный номер часов (Serial Number), UDID, название устройства (Device Name), MAC-адреса адаптеров Wi-Fi и Bluetooth, Time Zone и время на момент извлечения данных.

Также в файле содержится информация о свободном и общем объёме накопителя и размере системного раздела (атрибуты Total Disk Capacity, Total System Capacity, Total Data Capacity, Total Data Available). Наконец, атрибуты Language и Locale содержат информацию о выбранном языке и региональных настройках.

Список установленных на часах приложений сохраняется в файл Applications.txt. Сюда попадают такие данные, как Bundle Identifier (уникальный идентификатор приложения), Bundle Version и Bundle Display Name (название приложения в том виде, как оно отображается на часах).

Детальная информация о каждом установленном приложении доступна в файле Applications.plist (ты помнишь, какой утилитой его просмотреть). Здесь содержится информация о точном пути в файловой системе, по которому установлено приложение и пути к его «песочнице» (Application Path и Container соответственно). Обрати внимание: доступа к файловой системе часов у нас нет, так что доступа к данным из «песочницы» мы не получим. Так выглядит информация о приложении Uber:

Скопировать файлы системных журналов можно командой L (Logs):

Анализ лог-файлов часов

Итак, мы извлекли лог-файлы из часов. Более подробно почитать о лог-файлах iOS можно в статье “Using AppleBug Reportingfor forensic purposes” Mattia Epifani, Heather Mahalik и Adrian Leong (Cheeky4n6monkey). В статье рассказывается о том, как использовать профили sysdiagnose для извлечения данных из различных устройств Apple. Попробуем использовать тот же подход с часами.

Скрипты для анализа данных sysdiagnose можно скачать с GitHub https://github.com/cheeky4n6monkey/iOS_sysdiagnose_forensic_scripts.

Наибольший интерес представляют следующие системные журналы.

MobileActivation содержит информацию о версиях ОС и времени их установки, модели устройства и типа продукта. Здесь также хранится детальная информация об обновлениях WatchOS. На скриншоте ниже показана работа скрипта с журналом Mobile Activation.

 

MobileContainerManager представляет интерес тем, что содержит информацию об удалении приложений с часов. Проанализировав журнал, можно понять, какие приложения могли использоваться на часах в интересующий период времени. Ниже показана работа скрипта по парсингу журнала MobileContainerManager.

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

Но самым интересным, пожалуй, является журнал PowerLog. Здесь хранится информация о взаимодействии пользователя с часами. Часы лежали на зарядке? Их взяли в руки? Надели на запястье? Пользователь активировал экран? Именно этот журнал в первую очередь стараются проанализировать эксперты при расследовании автомобильных аварий. Если водитель отвлёкся на часы (или включил экран телефона, в нём тоже есть аналогичный лог) в момент аварии, это будет свидетельствовать против него (в США есть понятие Distracted Driving. Для информации: в результате distracted driving на американских дорогах в 2017 году погибло более 3,000 человек). В силу особой важности структура этой базы данных отлично изучена. Можно почитать, например, статью Sarah Edwards (PDF) или воспользоваться готовым инструментарием APOLLO. APOLLO работает примерно так:

Наконец, логи WiFi содержат список сетей, к которым подключались часы. Проще всего просмотреть содержимое файла com.apple.wifi.plist, в котором интерес представляют записи о SSID, BSSID и дате последнего подключения к данной сети. Особый интерес представляет параметр BSSID, который можно использовать для определения точного местоположения (радиус 15-25 метров) в момент подключения к сети. Для определения координат точки доступа Wi-Fi по её BSSID можно воспользоваться одним из сервисов reverse lookup, например, Wigle.

Доступ к медиа-файлам по протоколу AFC (Apple File Conduit)

О доступе к медиа-файлам стоит рассказать подробнее.

Извлечь медиа-файлы можно командой M (Media) (интерес представляют не столько сами фотографии, сколько база данных Photos.sqlite):

Практически единственный способ получить доступ к медиа-файлам из часов Apple Watch требует использования утилиты, работающей по протоколу AFC. При этом часы должны быть подключены к компьютеру, а между компьютером и часами должны быть установлены доверенные отношения (pairing).

Как было показано в предыдущей главе, медиа-файлы легко извлечь посредством команды M (Media Files) программы iOS Forensic Toolkit. Казалось бы, всё просто: медиа-файлы – это фотографии и, возможно, видеоролики; что интересного может оказаться в файлах с часов? Оказывается, интересного довольно много – и основной интерес представляют вовсе не сами фотографии.

Ниже показана структура папок, создаваемой после извлечения медиа-файлов по протоколу AFC:

Собственно изображения (в сильно уменьшенном по сравнению с оригиналами виде) попадают в папку DCIM; здесь без сюрпризов.

Несмотря на то, что изображения сильно уменьшены (странно было бы передавать на часы полноразмерные фотографии), система сохраняет в них метатеги EXIF, что позволяет определить такие параметры, как время точное съёмки и устройство, использовавшееся для фотографии.

В папке iTunes_Control\iTunes содержится весьма интересная база данных MediaLibrary.sqlitedb. Сюда же входят и соответствующие файлы SHM (Shared Memory) и WAL (Write Ahead Log). Сама база данных, как очевидно из названия, хранится в формате SQLite (как, впрочем, и все остальные базы данных на часах). В этой базе содержатся такие данные, как iCloud ID пользователя, а также список покупок в магазине iTunes (покупки музыки, фильмов и электронных книг). Что интересно, в этом файле хранится информация о покупках, совершённых со всех устройств пользователя, зарегистрированных в данной учётной записи.

В базе данных содержится 36 таблиц. Идентификатор пользователя iCloud ID хранится в таблице _MLDatabaseProperties.

Чтобы извлечь из базы данных какую-то осмысленную информацию, сформируем запрос SQL:

select
ext.title AS "Title",
ext.media_kind AS "Media Type",
itep.format AS "File format",
ext.location AS "File",
ext.total_time_ms AS "Total time (ms)",
ext.file_size AS "File size",
ext.year AS "Year",
alb.album AS "Album Name",
alba.album_artist AS "Artist",
com.composer AS "Composer",
gen.genre AS "Genre",
art.artwork_token AS "Artwork",
itev.extended_content_rating AS "Content rating",
itev.movie_info AS "Movie information",
ext.description_long AS "Description",
ite.track_number AS "Track number",
sto.account_id AS "Account ID",
strftime('%d/%m/%Y %H:%M:%S', datetime(sto.date_purchased + 978397200,'unixepoch'))date_purchased,
sto.store_item_id AS "Item ID",
sto.purchase_history_id AS "Purchase History ID",
ext.copyright AS "Copyright"
from
item_extra ext
join item_store sto using (item_pid)
join item ite using (item_pid)
join item_stats ites using (item_pid)
join item_playback itep using (item_pid)
join item_video itev using (item_pid)
left join album alb on sto.item_pid=alb.representative_item_pid
left join album_artist alba on sto.item_pid=alba.representative_item_pid
left join composer com on sto.item_pid=com.representative_item_pid
left join genre gen on sto.item_pid=gen.representative_item_pid
left join item_artist itea on sto.item_pid=itea.representative_item_pid
left join artwork_token art on sto.item_pid=art.entity_pid

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

Купленные файлы (на примере ниже это музыка) можно обнаружить в папке Purchases:

Интерес представляет и папка PhotoData, в которой хранятся метаданные синхронизированных фотографий. Наибольший интерес представляют база данных Photos.sqlite и папка Thumbnails.

В базе Photos.sqlite содержится информация о фотографиях, которые хранятся на часах. Детальное описание структуры базы доступно по ссылке https://www.forensicmike1.com/2019/05/02/ios-photos-sqlite-forensics/. Готовые запросы SQL можно скачать с https://github.com/kacos2000/queries/blob/master/Photos_sqlite.sql.

Наконец, в папке Thumbnails хранятся уменьшенные превью изображений на Apple Watch. Формат ITHMB можно преобразовать в привычный JPEG при помощи утилиты iThmb Converter.

Извлечение данных через переходник: итоги

Через переходник нам оказалось доступно даже меньше информации, чем при анализе резервной копии часов. Тем не менее, ценность этих данных несравнимо выше, чем данных из резервной копии: для получения доступа ко всей этой информации нам не нужен связанный с часами iPhone – вполне достаточно самих часов. Многие данные уникальны; особую ценность мы находим в логах часов вообще и в логах PowerLog в частности, а также талонах из приложения Wallet.

Можно ли извлечь больше? Да, можно, если для часов будет доступен джейлбрейк. Для актуальных версий WatchOS джейлбрейка сейчас не существует. Единственной попыткой было приложение jelbrekTime (именно в такой транскрипции) для WatchOS 4.0-4.1.

Ситуация может измениться в ближайшее время. Для WatchOS 4.0-5.1.2 анонсирован джейлбрейк Brenbreak, который обещают выпустить для всех актуальных версий часов до конца 2019 года. Мы с нетерпением ожидаем выхода джейлбрейка, чтобы снять, наконец, образ файловой системы часов и посмотреть, что там найдётся.

Доступ через облако

Что ещё можно извлечь из часов? С технической точки зрения из самих часов — ничего, но из облака iCloud можно извлечь часть информации, которую iPhone получает именно от часов Apple Watch. Речь о данных «Здоровье», в состав которых входит счётчик шагов, данные со встроенного в часы навигатора GPS, данные сердцебиения пользователя и снятые электрокардиограммы, а также другие типы данных, для получения которых могли использоваться сторонние приложения. Для доступа к информации необходим Elcomsoft Phone Breaker; инструкция: Download Health data from iCloud (извлекаются даже те данные, которые не отдаёт Apple по запросу от правоохранительных органов). Для просмотра данных можно воспользоваться Elcomsoft Phone Viewer:

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

Заключение

Извлечение и анализ данных часов Apple Watch – достаточно новая и малоизученная тема. В то же время ряд вещей (например, журнал PowerLog) представляют исключительный интерес для экспертов-криминалистов. Стали появляться факты успешного раскрытия преступлений, в процессе совершения которых преступник оставлял смартфон дома, но забывал снять часы или трекер, которые продолжали записывать информацию. К сожалению, в процессе исследования доступными для часов методами нам не удалось добраться до журнала с историей местоположения (часы Apple Watch оборудуются автономным датчиком GPS, который автоматически включается, если WatchOS считает, что пользователь начал тренировку). Не удалось получить доступ и к данным установленных на часах приложений. Отсутствие полноценной службы резервного копирования не позволяет создать свежую резервную копию часов иначе, чем отвязав их от смартфона iPhone (причём в момент, когда часы подключены к телефону через Bluetooth или Wi-Fi). Отсутствие в продаже адаптеров для подключения к компьютеру актуальной версии Apple Watch 4 делает невозможным извлечение жизненно важных журналов. Иными словами, исследование Apple Watch только начинается.

 

В устройствах 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.

Почему iPhone 7 работает быстрее Samsung Galaxy S7, а iPhone 8 – быстрее Galaxy S8? Если оставить в стороне оптимизацию (с которой у Samsung, честно говоря, просто беда), есть и различия в идеологии операционных систем, и байт-код JVM в Android. Действительно ли в конечном счете всё сводится к тому, что в Apple поддерживают ограниченный диапазон аппаратного обеспечения собственной разработки, что позволяет оптимизировать операционную систему до совершенства? Мы готовы поспорить с этим утверждением, приведя аргументы в пользу аппаратной начинки iPhone, одним из основных преимуществ которого были и остаются уникальные системы на чипе. Процессоры A10 и A11 заметно обгоняют в бенчмарках аналогичные предложения от Qualcomm в лице Snapdragon 820/821 и Snapdragon 835 соответственно. Почему так происходит? В чём заключается «магия Apple»? Оставив за бортом аргументы в стиле «Андроид лучше!», попробуем разобраться в причинах, которые привели к доминированию мобильных процессоров Apple над предложениями Qualcomm.

Фактор первый: исторический

Вспомним 2013 год. В арсенале Qualcomm – весьма удачные чипы Snapdragon 800, основанные на 32-разрядных ядрах Krait 400 собственной разработки. На этом чипе (и его последователе, Snapdragon 801) были выпущены десятки, если не сотни самых разнообразных моделей. На момент анонса у топового чипсета Qualcomm просто не было альтернатив: основанные на ядрах ARM Cortex A15 решения были прожорливы до чрезвычайности и не могли составить конкуренцию четырём кастомным ядрам Krait. Казалось бы, всё хорошо; Qualcomm – король горы, достаточно продолжать развивать удачную архитектуру. Казалось бы, что может пойти не так? (далее…)

В конце апреля в статье Быстрая зарядка: стандарты, особенности и проблемы совместимости мы уже писали о разнообразии стандартов быстрой зарядки, проблемах совместимости и ошибках в реализации протокола Power Delivery. С выходом линейки устройств Apple, поддерживающих быструю зарядку, ситуация только усложнилась. Первой ласточкой стал iPad Pro 12.9, выпущенный в 2015 году и поддерживающий быструю зарядку по протоколу USB Power Delivery при условии использования фирменного кабеля USB-C > Lightning. Новое поколение устройств, включающее в себя iPad Pro 10.5, iPad Pro 12.9 (2017), а также iPhone 8, 8 Plus и iPhone X, также поддерживает быструю зарядку через фирменный кабель. Подтянулись и сторонние производители, наводнившие рынок зарядными устройствами и кабелями USB-C > Lightning, рекламирующими поддержку данных устройств. Но что-то пошло не так. (далее…)

При запуске 32-разрядных приложений в iOS 10.3 пользователям выдаётся предупреждение о том, что приложение может замедлять работу устройства и может не поддерживаться в новых версиях системы. Таким образом Apple даёт понять, что 32-разрядные приложения уходят в прошлое. С высокой долей уверенности можно предположить, что в iOS 11 не будет поддержки как 32-битных приложений, так и 32-разрядных устройств (iPhone 5 и 5c). Кроме того, можно предположить, что новое поколение устройств под управлением iOS – будущие итерации iPhone и iPad – будут лишены самой возможности исполнять 32-битный код на аппаратном уровне. Что это может означать для индустрии и для нас, пользователей?

Выводы из отказа Apple поддерживать 32-разрядный код следуют очень интересные – разумеется, если компания будет последовательна в своих действиях. (далее…)

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

Какие же методы дистанционного извлечения данных из смартфонов iPhone и планшетов iPad доступны современному эксперту-криминалисту? Попробуем разобраться.

(далее…)

НАШИ НОВОСТИ