Три причины не выбрасывать старый айфон

f597a4261596638c4dfb633849bcaa35.JPG

Привет, Хабр! Меня зовут Виталий, в Positive Technologies я занимаюсь расследованиями инцидентов, произошедших с мобильными устройствами. Всего мобильной криминалистикой занимаюсь уже больше шести лет. За это время я исследовал много разных телефонов: от самых простых вариантов — без запароленного доступа к содержимому, до телефонов с разбитым экраном, поврежденным интерфейсным разъемом, утопленных, заблокированных и сброшенных. Много среди них было и айфонов.

Недавно, перебирая вещи в квартире, я наткнулся на свой старый айфон, который долгое время пылился на полке. Включив устройство, я увидел не слишком обнадеживающее сообщение: «iPhone отключен. Подключитесь к iTunes». Оно чаще всего говорит о том, что доступ к данным безвозвратно утерян.

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

На устройствах на базе процессоров А5–А11 (iPhone 4S — iPhone X) имеется аппаратная уязвимость, которая позволяет получить доступ к содержимому устройства в режиме BFU (Before First Unlock) с использованием эксплойта checkm8.

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

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

Исходные данные

Итак, у нас есть мобильный телефон iPhone 5s (А1533), доступ к памяти которого заблокирован после 10 неудачных попыток ввода пароля.

С помощью уязвимости checkm8 можно извлечь данные из связки ключей (keychain) и файловой системы в режиме BFU. Эта информация может быть получена с использованием различных инструментов: Elcomsoft iOS Forensic Toolkit, UFED 4PC и др.

Процесс анализа можно автоматизировать и использовать как платные инструменты (например, «Мобильный криминалист Эксперт Плюс», «UFED Physical Analyzer»), так и опенсорсные (например, «iLEAPP»). К сожалению, не всегда они позволяют обрабатывать все типы данных в автоматическом режиме, поэтому какие-то артефакты приходится просматривать вручную.

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

Что открывается исследователю

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

I. Артефакты мобильного устройства

  1. Информация об установленной версии iOS и номере сборки. Ее обычно можно посмотреть в следующих файлах:

    \private\var\installd\Library\MobileInstallation\LastBuildInfo.plist

    \System\Library\CoreServices\SystemVersion.plist

    \private\var\mobile\Library\Preferences\com.apple.locationd.plist

    В найденном мобильном устройстве была установлена iOS 12.4.3, сборка 16G130. Эта информация очень важна в контексте анализа артефактов мобильного телефона, поскольку в зависимости от версии ОС в извлеченных данных может содержаться разный объем сведений.

  2. IMEI устройства и номер телефона. Информация хранится в этом файле:

    \private\var\wireless\Library\Preferences\com.apple.commcenter.device_specific_nobackup.plist

    7938fad04639b0d44d3f3b514c34b408.jpg

    ReportedPhoneNumber хранит информацию о телефонном номере, который был зарегистрирован в системе.

    imei — уникальный идентификатор мобильного устройства.

    meid — то же, что и IMEI, но для устройств, работающих на CDMA-сетях.

    ReportedSubscriberIdentity — ICCID сим-карты.

  3. Информация о модели и сетевых подключениях устройства:

    \private\var\preferences\SystemConfiguration\NetworkInterfaces.plist

  4. Информация онастройках приложения Find My iPhone:

    \private\var\mobile\Library\Preferences\com.apple.icloud.findmydeviced.FMIPAccounts.plist

  5. Информация об устройстве, последней созданной резервной копии устройства на компьютере, настройках резервного копирования в iCloud:

    \private\var\root\Library\Lockdown\data_ark.plist

    5d8d6f2778f65a0c52b2321d1dd89841.jpg

    DeviceName —имя устройства.

    com.apple.mobile.data_sync-Contacts → AccountNames — информация о синхронизации контактов с iCloud.

  6. Информация о резервной копии устройства (создавалась локально или в iCloud), времени создания, ошибках:

    \private\var\root\Library\Preferences\com.apple.MobileBackup.plist

    67d99d40d4b000877939b10b3bb8c28e.jpg

    RetryAfte — дата и время, когда можно повторить попытку создания резервной копии.

    BackupIsDelayed —дата и время, когда резервное копирование было отложено.

    DrySpellFollowUpItem — дата и время, когда запланировано следующее резервное копирование.

    FailureCount — количество неудачных попыток резервного копирования.

  7. Информация об обновлениях устройства:

    \private\var\mobile\MobileSoftwareUpdate\restore.log

    fa688d46112ff60ac14ff7c4901c1ade.jpg

    targertOSVersion — устанавливаемая версия ОС.

    deviceClass — тип устройства.

    storageCapacity — объем памяти.

    currentOSVersion — текущая версия ОС.

    eventTime — время события.

    batteryLevel — уровень заряда аккумулятора при установке обновления.

    deviceModel — модель устройства.

    result — успешно ли было выполнено.

II. Данные, идентифицирующие пользователя

  1. Настройки сетевой конфигурации системы:

    \private\var\preferences\SystemConfiguration\preferences.plist

    f60a0a7f8732ca9e3bd42df7f445c824.jpg

    Model — модель устройства.

    Network LocalHostName — имя, присвоенное устройству в локальной сети, которое позволяет другим устройствам в этой сети идентифицировать его.

    System ComputerName — имя, отображаемое в настройках мобильного телефона в разделе «Об этом устройстве».

  2. IMEI устройства, номер телефона, настройки сети, идентификаторы сим-карты (ICCID, IMSI):

    \private\var\wireless\Library\Preferences\com.apple.commcenter.plist

    6bf0d5d45dc276406e6c9511f62d69f6.jpg

    mdn (Mobile Directory Number) — абонентский номер телефона.

    ts (Timestamp) — временная метка.

    label-id — уникальный идентификатор, который может использоваться для отслеживания или идентификации данной записи в системе.

  3. Информация о местоположении абонента (тут также можно посмотреть информацию о серийном номере устройства):

    \private\var\root\Library\Caches\locationd\consolidated.db

    dcfb3f7a5bbfa693f5b10dae2eb844b5.png
  4. Информацияо сим-картах (ICCID, MSISDN), которые использовались в устройстве, в том числе даты их последнего использования:

    \private\var\wireless\Library\Databases\CellularUsage.db

    0fcd6495ca9c927ea72151ce4e0edf51.png

    subscriber_id — ICCID устройства.

    subscriber_mdn — номер мобильного телефона.

    last_update_time — дата их использования в формате Unix.

  5. Информация об AirDrop ID устройства:

    \private\var\mobile\Library\Preferences\com.apple.sharingd.plist

  6. Информация с настройками и предпочтениями из приложения «Настройки» (Settings). Из интересного: здесь могут содержаться данные о кэшированной учетной записи пользователя в Apple ID:

    \private\var\mobile\Library\Preferences\com.apple.Preferences.plist

    a7ec91e96bf2048847b79ebda2f2e9f4.jpg

    cachediCloudTitle — имя пользователя.

    cachediCloudUsername —адрес электронной почты, связанный с учетной записью iCloud пользователя.

  7. Информация о подключенных и спаренных Bluetooth-устройствах:

    \private\var\containers\Shared\SystemGroup\GUID\Library\Database\com.apple.MobileBluetooth.ledevices.paired.db

    a9196e3a615139c7feaef9c5e49bd003.png

    Name — имя устройства.

    Address, ResolvedAddress — MAC-адрес устройства.

    LastSeenTime и LastConnectionTime — метки времени, указывающие, когда в последний раз было осуществлено обнаружение и подключение к устройству.

  8. Информация о конфигурации приложения «Сообщения» (Messages). В этом файле также может храниться информация об абонентском номере телефона:

    \private\var\mobile\Library\Preferences\com.apple.imservice.SMS.plist

    89adea12050b977867aca4c3e33a6aef.jpg

    DisplayName — отображаемое имя учетной записи.

    LoginAs — указывает, как пользователь входит в систему. В данном случае это номер телефона.

    OnlineAccounts, ActiveAccounts, Status — информация об идентификаторе учетной записи.

  9. Информация о точках Wi-Fi, к которым ранее подключалось устройство:

    \private\var\preferences\SystemConfiguration\com.apple.wifi.plist

    eda0ea47366629e5cff62b9ef311955c.jpg

    SSID_STR — имя сети.

    lastUpdated — дата и время последнего обновления информации.

    BSSID — MAC-адрес точки доступа.

  10. Информация об избранных контактах пользователя:

    \private\var\mobile\Library\Preferences\com.apple.mobilephone. speeddial.plist

    18eeb140e05f7d123f1ccdcc9b60107c.jpg

    Name — имя контакта из записной книжки.

    ABDatabaseUUID —уникальный идентификатор записи.

    Value — номер телефона контакта.

  11. Информация об учетных записях пользователя в приложении FaceTime:

    \private\var\mobile\Library\Preferences\com.apple.conference.plist

    39069ffd61e3c545de2ac0e17084789c.jpg

    phoneNumberRegistrationSubscriptionLabel — уникальный идентификатор.

    registration.savedAccountName — сохраненное имя учетной записи.

  12. Информация о заблокированных контактах пользователя:

    \private\var\mobile\Library\Preferences\com.apple.cmfsyncagent.plist

    47afe8c29d4e2d787d639823de829ca4.jpg

    _kCMFItemPhoneNumberCountryCodeKey — код страны.

    _kCMFItemPhoneNumberUnformattedKey — номер телефона.

  13. Информация об учетных записях, которые использовались на устройстве (iCloud, Apple ID и других):

    \private\var\mobile\Library\Accounts\Accounts3.sqlite

    b3359d394584535fb20c11a024ab7970.png
  14. Информация об учетной записи iCloud, используемой в Home Sharing. Home Sharing (домашний обмен) — это функция, доступная на устройствах Apple, которая позволяет пользователям делиться своей медиатекой (музыкой, фильмами, телепередачами и т. д.) с другими устройствами в одной сети:

    \private\var\mobile\Library\Preferences\com.apple.homesharing.plist

    94cbf415ac2a8958f8b3c68a3d8377b9.jpg

    homeSharingAppleID —Apple ID, используемый для домашнего обмена.

    homeSharingGroupID — идентификатор группы для домашнего обмена.

  15. Информация о кэшированных статусах аутентификации пользователя в Apple ID. Этот файл может быть использован для получения информации о том, когда такие приложения, как iMessage, FaceTime, впервые устанавливали связь с другими зарегистрированными Apple ID устройствами:

    \private\var\mobile\Library\Preferences\com.apple.identityservices.idstatuscache.plist

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

    0cdbb0b34368336782146eaaa80d0835.jpg

    tel — номер телефона.

    LookupDate — дата поиска.

    Чтобы проверить, не было ли устройство заражено шпионским ПО Pegasus, часто анализируют именно этот plist-файл: https://github.com/AmnestyTech/investigations/tree/master/2021–07–18_nso.

    Однако, стоит учитывать, что начиная с iOS 14.7.0 информация об аутентификации пользователей в этот файл не попадает.

  16. В файле с содержимым связки ключей (keychain) хранится информация об учетных записях пользователя, которая также важна для расследования. Стоит учитывать, что связка ключей пользователя шифруется. Чтобы ее проанализировать, нужно дешифровать содержимое.

    e0543bade08db953c657e26e096e5046.png

III. Используемые приложения

  1. Информация об особо важных контактах пользователя в приложении «Почта» (Mail) на iOS:

    \private\var\mobile\Library\Mail\VIPs.plist

    d6a5c466a89ed475196c0ca831655c97.jpg

    EmailAddresses — информация о почтовом ящике особо важного контакта.

  2. Очень интересный каталог \private\var\mobile\Library\Logs с различными файлами журналов устройства.

    ba15352e0fa8dd59cd5ce1b69c147621.png

    Файл \private\var\mobile\Library\Logs\mobileactivationd\mobileactivationd.log содержит информацию о процессе активации устройства, включая успешные и неудачные попытки активации, временные метки.

    c4106f6f9da81c7cbbac0cb61f051bdc.png

    Каталог \private\var\mobile\Library\Logs\CrashReporter содержит файлы журналов сбоев приложений (crash reports). Эти файлы создаются системой, когда приложение неожиданно завершает свою работу или сталкивается с ошибкой.

    868af0b5a7e0c0c1332b6b0f205e6813.png

    Файлы, расположенные в каталоге \private\var\mobile\Library\Logs\CrashReporter\WiFi\WiFiManager, хранят информацию о сбоях компонентов управления Wi-Fi.

    96b6dd76287ff5a2aa6f5a5fb2eeb7a3.png

    Из этих файлов можно получить сведения о геопозиции Wi-Fi-точки и приблизительном местонахождении устройства в указанный период времени.

    9c7eba469519bfc9067431a0b55afd1e.png
  3. Журнал \private\var\installd\Library\Logs\MobileInstallation\mobile_installation.log содержит информацию об установке приложений: в нем можно найти записи о процессе установки, обновления и удаления приложений.

    260f513a866a35967a94b034b6832f00.png
  4. Информация о разрешениях для приложений: доступ к камере, микрофону, местоположению, контактам:

    \private\var\mobile\Library\TCC\TCC.db

    34de80da7e479888841d08a07a9ac4e6.png

    service — тип разрешения.

    client — приложение.

  5. Информация оприложениях, использующих сервисы геолокации:

    \private\var\root\Library\Caches\locationd\clients.plist

    fd2b5590172ad989bf22f7f040c6c574.jpg

    ru.yandex.mobile.search — идентификатор пакета приложения.

    ReceivingLocationInformationTimeStopped — время, когда получение информации о местоположении было остановлено.

  6. Очень интересный каталог со всеми установленными приложениями \private\var\mobile\Containers\Data\Application.

    В этом каталоге был обнаружен подкаталог с GUID приложения WhatsApp. В нем содержится подкаталог \Library\Logs с информацией об изменении версии приложения (с 2.19.51 по 2.19.120), номере телефона пользователя, времени отправки и получения сообщений (без текста самих сообщений).

    e5fe9a49d1748cb3ff84b392a9380b43.png167ca6192aa4914d64692b51ad1263e5.pngc48c4303434b0939d54b53b8678bcd6b.png

     Подкаталог \Library\Caches\ChatMedia, содержащий папки с номерами телефонов абонентов, с которыми пользователь обменивался медиафайлами.

    03b9c1e6992ac6c9d489abac64b24af7.png

    В файле \private\var\mobile\Library\Assistant\CustomVocabulary\ net.whatsapp.WhatsApp\0000000000000000000000000000000000000000\ContactGroupNameType\SentVocabulary.plist содержится кэшированная информация о названиях групп в приложении WhatsApp.

    435094d1feeceb0a0ed677f35e55fbb8.jpg

    В файле \private\var\mobile\Containers\Data\Application\GUID Telegram\Library\SyncedPreferences\ph.telegra.Telegraph.plist хранится информация об учетной записи (используемом номере телефона) в мессенджере Telegram.

    31f59d519327ac371fb70da76b119fcc.jpg

     В каталоге \private\var\mobile\Containers\Data\Application\GUID Webkit\Library\WebKit\WebsiteData была найдена информация о веб-контенте приложения Safari: были получены сведения о ресурсах, на которые заходил пользователь.

    7f9a33e55b86ab859672d34fce83fbe5.png
  7. Интересный каталог \private\var\mobile\Media, используемый для хранения медиафайлов и других данных пользователя. В этом каталоге я обнаружил файл \Downloads\downloads.28.sqlitedb с информацией о загруженных файлах (тип файла, ссылка на ресурс, с которого осуществлялась загрузка).

    67eef7d35c0cbb3401347c93aed7a017.png

    В каталоге Purchases хранится содержимое файлов. В нашем случае это аудиофайл и обложка альбома в формате JPEG.

    9b4ee8337a495ef10ec01ba8d68766e3.png
  8. Каталог Recordings содержит подкаталоги с указанием даты и времени создания аудиозаписи в приложении «Диктофон».

    adaf714f9da22d4cecf046515967368b.png

Выводы

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

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

Таблица

Файл или каталог

Информация

\private\var\installd\Library\MobileInstallation\LastBuildInfo.plist

Установленная версия iOS, номер сборки

\System\Library\CoreServices\SystemVersion.plist

\private\var\mobile\Library\Preferences\com.apple.locationd.plist

\private\var\wireless\Library\Preferences\com.apple.commcenter.device_specific_nobackup.plist

IMEI устройства, номер телефона

\private\var\preferences\SystemConfiguration\preferences.plist

Настройки сетевой конфигурации системы

\private\var\wireless\Library\Preferences\com.apple.commcenter.plist

IMEI устройства, номер телефона, настройки сети, идентификаторы сим-карты (ICCID, IMSI)

\private\var\mobile\Library\Preferences\com.apple.preferences. datetime.plist

Настройки временной зоны мобильного телефона

\private\var\root\Library\Caches\locationd\consolidated.db

Местоположение абонента, информация о серийном номере устройства

\private\var\wireless\Library\Databases\CellularUsage.db

Сим-карты (ICCID, MSISDN), которые использовались в устройстве, в том числе дата их последнего использования

\private\var\mobile\Library\Preferences\com.apple.sharingd.plist

AirDrop ID устройства

\private\var\mobile\Library\Preferences\com.apple.Preferences.plist

Настройки и предпочтения приложения «Настройки» (Settings). Здесь может содержаться информация о кэшированной учетной записи пользователя в Apple ID

\private\var\preferences\SystemConfiguration\NetworkInterfaces.plist

Информация о модели и сетевых подключениях устройства

\private\var\containers\Shared\SystemGroup\GUID\Library\Database\com.apple.MobileBluetooth.ledevices.paired.db

Подключенные и спаренные Bluetooth-устройства

\private\var\mobile\Library\Preferences\com.apple.icloud. findmydeviced.FMIPAccounts.plist

Настройки приложения Find My iPhone

\private\var\mobile\Library\Preferences\com.apple.imservice.SMS.plist

Конфигурация приложения «Сообщения» (Messages). Здесь также может храниться информация об абонентском номере телефона

\private\var\preferences\SystemConfiguration\com.apple.wifi.plist

Wi-Fi-точки, к которым ранее подключалось устройство

\private\var\mobile\Library\Mail\VIPs.plist

Особо важные контакты пользователя в приложении «Почта» (Mail) на iOS

\private\var\mobile\Library\Preferences\com.apple.mobilephone. speeddial.plist

Избранные контакты пользователя

\private\var\root\Library\Lockdown\data_ark.plist

Информация об устройстве, последней созданной резервной копии устройства на компьютере, настройках резервного копирования в iCloud

\private\var\root\Library\Preferences\com.apple.MobileBackup.plist

Резервная копия устройства (создавалась локально или в iCloud), время создания, ошибки

\private\var\mobile\MobileSoftwareUpdate\restore.log

Обновления устройства

\private\var\mobile\Library\Preferences\com.apple.conference.plist

Учетные записи пользователя в приложении FaceTime

\private\var\mobile\Library\Logs\…

Файлы журналов устройства

\private\var\mobile\Library\Logs\mobileactivationd\mobileactivationd.log

Информация о процессе активации устройства, включая успешные и неудачные попытки активации, временные метки

\private\var\mobile\Library\Logs\CrashReporter

Файлы журналов сбоев приложений (crash reports)

\private\var\mobile\Library\Logs\CrashReporter\WiFi\WiFiManager

Информация о сбоях компонентов управления Wi-Fi. Из этих файлов можно получить сведения о геопозиции Wi-Fi-точки и приблизительном местонахождении устройства в определенный период времени

\private\var\installd\Library\Logs\MobileInstallation\mobile_ installation.log

Записи о процессе установки, обновления и удаления приложений

\private\var\mobile\Library\Preferences\com.apple.cmfsyncagent.plist

Заблокированные контакты пользователя

\private\var\mobile\Library\TCC\TCC.db

Выдаваемые разрешения для приложений (доступ к камере, микрофону, местоположению, контактам)

\private\var\root\Library\Caches\locationd\clients.plist

Информация оприложениях, использующих сервисы геолокации

\private\var\mobile\Library\Accounts\Accounts3.sqlite

Учетные записи, которые использовались на устройстве (iCloud, Apple ID, других приложений)

\private\var\mobile\Library\Preferences\com.apple.homesharing.plist

Информация об учетной записи iCloud, используемой в Home Sharing

\private\var\mobile\Library\Preferences\com.apple.identityservices. idstatuscache.plist

Информация о кэшированных статусах аутентификации пользователя в Apple ID. Начиная с iOS 14.7.0 информация об аутентификации пользователей в этот файл не попадает

\private\var\mobile\Containers\Data\Application\…

Установленные приложения. Очень интересный каталог, в котором может храниться большое количество артефактов

\private\var\mobile\Media\

Медиафайлы и другие пользовательские данные

Связка ключей (keychain)

Учетные записи пользователя

Хочу также поделиться ссылками на ресурсы SANS с полезными для проведения расследований ресурсами:

  • macOS and iOS Forensic Analysis

  • DFIR Advanced Smartphone Forensics

  • iOS Third-Party Apps Forensics Reference Guide Poster

К сожалению, единственный способ полностью защитить себя от эксплуатации этой уязвимости — это отказаться от использования устройств, которые ей подвержены (iPhone 4S — iPhone X). При отсутствии такой возможности, установите на айфон самые последние доступные обновления. Это поможет снизить риск утечки конфиденциальной информации и повысит общую безопасность ваших данных.

На этом все. Возможно, теперь кто-то из вас задумается, выбрасывать ли старый айфон после покупки новой модели.

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

До новый исследований!

© Habrahabr.ru