Perfect Acquisition часть 5: идеальное извлечение для APFS

22 июля, 2025, Elcomsoft R&D
Рубрика: «Разное»
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Перед вами — пятая часть серии Perfect Acquisition о технологии «идеального извлечения». Если вы пропустили предыдущие части, рекомендуем ознакомиться с ними — в них описано, как мы пришли к «идеальному» извлечению. Сегодня же мы расскажем о том, как эта технология работает в случаях, когда на устройстве вместо файловой системы HFS установлена APFS.

Предыдущие статьи из серии:

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

В этой статье мы расскажем, как нам удалось преодолеть одно из из двух серьёзных ограничений технологии, добавив поддержку файловой системы APFS. Если вы знаете, как работали ранние версии iOS, необходимость поддержки APFS может показаться неочевидной: «идеальное извлечение» в текущем виде поддерживает только 32-разрядные устройства без SEP; при этом ни одного 32-разрядного iPhone, который использовал бы APFS, просто не существует. Единственное известное нам устройство Apple, которое использует APFS, но не имеет SEP — это самая первая модель часов Apple Watch, так называемые «Series 0», или S0.

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

Технология Perfect Acquisition работает со следующими устройствами:

  • Устройства с iOS и файловой системой HFS  — добавлена поддержка APFS!
  • Устройства iOS без SEP

На данный момент технология не поддерживает iPhone 2G, iPhone 3G, iPod Touch 1 и iPod Touch 2. Возможно, это когда-нибудь изменится.

Следующие устройства поддерживаются целиком и полностью:

  • iPhone 3Gs – iPhone 5c
  • iPod Touch 3 – iPod Touch 5
  • iPad 1 – iPad 4, iPad Mini 1
  • Apple TV 2 – Apple TV 3
  • Apple Watch S0 (только что добавлено!)

Apple Watch S0

Оригинальные часы под названием “Apple Watch” стали первой моделью умных часов от Apple. Устройство было выпущено в четырёх версиях: Apple Watch, Apple Watch Sport, Apple Watch Hermès и Apple Watch Edition. Внутреннее обозначение этих моделей было таким: Watch1,1 и Watch1,2; все версии поставлялись с watchOS 1.0, получив обновления до watchOS 4.3.2 включительно.

Не путайте первую модель часов Apple с линейкой “Apple Watch Series 1” (внутренний идентификатор Watch2,6 и Watch2,7), которая являлась вторым поколением часов и работала на том же чипе, который впоследствии был использован в часах Series 2. В профессиональных кругах оригинальная модель Apple Watch известна как “Apple Watch Series 0”, «нулевая модель» или “S0.” С потребительской точки зрения эта модель не представляет интереса, но с точки зрения криминалистики это бесценный клад: часы синхронизируются с iPhone, но при этом уровень их безопасности намного ниже, чем у iPhone, к которому они привязаны. Часы S0 работают на 32-разрядном чипе ARMv7k, у которого нет встроенного сопроцессора SEP, и при этом есть файловая система APFS (по крайней мере, в поздних версиях ОС).

Таким образом, эта древняя модель стала идеальным вариантом для изучения механизмов шифрования APFS — без необходимости вытаскивать ключи из SEP. Использовав часы S0, нам удалось заметно продвинуться в реализации поддержки APFS, что позволило нам добавить поддержку расшифровки и анализа данных из образов iOS/WatchOS с файловой системой APFS.

Поскольку технология Perfect Acquisition работает на очень низком уровне и требует глубокого понимания взаимодействия всех компонентов, превращение одной попытки ввода ключа в множество оказалось задачей элементарной. Именно поэтому мы реализовали и поддержку перебора код-пароля для Apple Watch S0.

К слову, Apple Watch не поддерживают сложные буквенно-цифровые пароли, а длина цифрового кода блокировки строго ограничена — максимум 10 цифр на современных моделях.

При скорости перебора 26 кодов в секунду (непосредственно на устройстве), время взлома кодов разной длины составляет примерно:

Длина Время
4 цифры 6 минут
5 цифр 1 час
6 цифр 10 часов
7 цифр 5 дней
8 цифр 1.5 месяца
9 цифр 15 месяцев
10 цифр 12 лет

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

Переходим к практике

С точки зрения пользователя между извлечением HFS и APFS посредством Perfect Acquisition много общего и мало различий. Большая часть команд не изменилась.

Шаг 1) Загрузите EIFT ramdisk:

./EIFT_cmd boot -w

Шаг 2) Снимите образ диска:

./EIFT_cmd ramdisk diskdump -o data.dmg

Шаг 3) Извлеките ключи BFU:

./EIFT_cmd ramdisk dumpkeys -n -o keys_bfu.plist

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

Шаг 4) Извлеките системную сумку ключей (system keybag):

./EIFT_cmd apfstool -i data.dmg -p /keybags/systembag.kb -e -o systembag.kb -k keys_bfu.plist --no-passcode

В старых версиях watchOS использовалась файловая система HFS. В этом случае вместо apfstool укажите hfstool — и это единственное различие в командах:

./EIFT_cmd hfstool -i data.dmg -p /keybags/systembag.kb -e -o systembag.kb -k keys_bfu.plist --no-passcode

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

Как определить: APFS или HFS?

Команда diskdump в EIFT отобразит эту информацию. Либо выполните команду:

./EIFT_cmd info

Пример работы:

[INFO] Commandline args: ramdisk diskdump -o data.dmg
[INFO] Got device:
Mode: [ramdisk]
CPID: 7002
BDID: 4
KernelVersionBooted: xnu-4570.70.24~1
PlatformUUID: <PUUID>
ProductType: Watch1,2
udid: <UUID>
Mounts:
[RW] (hfs) /dev/md0 -> /
[RW] (devfs) devfs -> /dev
APFS Volumes:
/dev/disk0s1s1 (Bahar13S661.N28aOS) [NONE]
	Snapshot: com.apple.os.update-740A86696B3644B57CC6DE4400FB720F0C55620E
/dev/disk0s1s2 (Data) [NONE]
[INFO] [*] APFS filesystem detected!
[INFO] Writing dump to 'data.dmg'
[INFO] Dumping full disk! (APFS)

Обращайте внимание на строки вида [INFO] [*] APFS filesystem detected! и списки контейнеров APFS. Если же APFS нигде не упоминается, то файловая система — HFS.

Шаг 5) Подберите код блокировки (если он неизвестен):

./EIFT_cmd ramdisk passcode -b systembag.kb -k keys_bfu.plist

Шаг 6) Извлеките полный набор ключей:

./EIFT_cmd ramdisk dumpkeys -k keys_bfu.plist -b systembag.kb -o keys.plist -p <PASSCODE>

Здесь <PASSCODE> нужно заменить на актуальный код блокировки (например, «0000»):

./EIFT_cmd ramdisk dumpkeys -k keys_bfu.plist -b systembag.kb -o keys.plist -p 0000

Если на часах код блокировки не установлен, опустите параметр -p.

Теперь у вас в руках — файл keys.plist, полный набор ключей для расшифровки.

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

Анализ дампа APFS

По меркам специалистов компьютерной криминалистики файловая система APFS считается относительно новой. В отличие от HFS+, которая существует почти 30 лет, APFS появилась в iOS только в конце 2017 года и с тех пор несколько раз менялась — причём некоторые изменения нарушали обратную совместимость.

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

Что досадно, ведь APFS — настоящая находка для экспертов: она поддерживает транзакции и механизм «copy-on-write», что позволяет восстанавливать недавно удалённые файлы, а иногда отслеживать историю последних изменений.

Тем не менее, пока не появятся полноценные инструменты с поддержкой APFS, доступ к данным всё равно нужен, и его нужно как-то получить. Поэтому мы разработали поддержку APFS на основе FUSE и включили его в состав EIFT. Он позволяет монтировать извлечённый так же, как самый обычный USB-накопитель, и работает на macOS, Linux и Windows (через macFUSE, FUSE и WinFSP соответственно).

Для монтирования образа:

./EIFT_cmd apfstool -i data.dmg -k keys.plist --mount

Можно монтировать и образы HFS (довольно полезно, особенно в Windows):

./EIFT_cmd hfstool -i data.dmg -k keys.plist --mount

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

Также вы можете извлечь связку ключей:

./EIFT_cmd tools keychain -i data.dmg -k keys.plist -o keychain.xml

Заключение

В этой статье мы представили Perfect APFS Acquisition — важное расширение методики «идеального извлечения» Perfect Acquisition, которое устраняет одно из оставшихся ограничений и добавляет поддержку Apple Watch S0.

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

Сама эта функция довольно давно реализована в EIFT, но ранее мы не объявляли о ней официально из-за того, что часы S0 крайне редко встречаются в реальной практике. Для чего мы делаем это сейчас? Мы готовим к выпуску обновление, которое устранит последнее оставшееся ограничение — поддержку перебора кодов блокировки внутри SEP.

Следите за нашими новостями — впереди ещё много интересного!


  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

REFERENCES:

Elcomsoft iOS Forensic Toolkit

Elcomsoft iOS Forensic Toolkit – специализированный инструмент для проведения криминалистического анализа устройств, работающих под управлением Apple iOS. Для анализа доступна вся пользовательская и системная информация, а также зашифрованные данные из системного хранилища (связка ключей).

Официальная страница Elcomsoft iOS Forensic Toolkit »

НАШИ НОВОСТИ