Часы наизнанку. Извлекаем и анализируем данные Apple Watch

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


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

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

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

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

Почему Apple Watch?

В отличие от подробно исследованных смартфонов 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 можно извлечь из iPhone. Самый простой способ это сделать — создать локальную или облачную резервную копию iPhone, после чего проанализировать ее содержимое. Мы не будем подробно останавливаться на процедуре создания резервных копий (они многократно описывались на нашем сайте); отметим только, что для создания свежей резервной копии можно использовать iTunes или одну из сторонних программ, но мы воспользовались утилитой Elcomsoft iOS Forensic Toolkit(она же пригодится позже и для извлечения данных из часов, подключенных к компьютеру через переходник).

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

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

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

  • historySecureProperties.plist;
  • stateMachine-.PLIST;
  • activestatemachine.plist;
  • history.plist.

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

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

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

В папке HomeDomainLibraryDeviceRegistry лежит директория, имя которой включает GUID из файла stateMachine-<GUID>.plist: именно в этой директории хранятся данные из резервной копии AppleWatch.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Ideviceinfo.plist;
  • Applications.txt;
  • Applictions.plist.

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

Также в файле есть информация о свободном и общем объеме накопителя и размере системного раздела (атрибуты 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 Apple «Bug Reporting» for forensic purposes Маттиа Эпифани (Mattia Epifani), Хизер Махалик (Heather Mahalik) и Адриана Леонга (Adrian Leong, Cheeky4n6monkey). В статье рассказывается о том, как использовать профили sysdiagnose для извлечения данных из различных устройств Apple. Попробуем использовать тот же подход с часами.

Скрипты для анализа данных sysdiagnose можно скачать с GitHub. Наибольший интерес представляют следующие системные журналы.

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

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

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

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

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

Доступ к медиафайлам

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

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

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

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

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

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

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

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

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

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

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

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

В базе 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 только начинается.


Источник: www.bnetweb.org

Комментарии: