Эксплойт checkm8, появившийся несколько лет назад, произвёл переворот в мобильной криминалистике. Впервые специалисты получили верифицируемый доступ к файловой системе множества устройств Apple. В индустрии использование эксплойта загрузчика быстро стало стандартом низкоуровневого извлечения. На выходе получался архив tar с копией файловой системы устройства. Это удобно — с tar умеют работать почти все инструменты; но у этого метода есть недостатки. tar — довольно старый «ленточный» формат, разработанный задолго до появления современных файловых систем с их метаданными и разрежёнными файлами. Мы разработали более совершенный метод, который извлекает из устройства не копию файловой системы, а точный образ диска.
Perfect Acquisition возвращает нас к истокам цифровой криминалистики — физическому извлечению. Вместо обхода файловой системы и последовательного копирования файлов новый метод создаёт полный образ зашифрованного накопителя. Он извлекает и ключи, необходимые для расшифровки образа и последующего монтирования с расшифровкой «на лету». По сути, Perfect Acquisition создаёт точный и полный физический образ данных.
Perfect Acquisition работает с широким спектром оборудования Apple на уязвимых чипсетах. Процесс извлечения, включая полное побитовое копирование и восстановление кода блокировки (на устройствах, где он используется), на сегодня поддерживает следующие модели:
Извлечение отлично работает на всех перечисленных устройствах. Аналогичная реализация планируется и для других устройств, которые подвержены эксплойту. Разумеется, восстановление кода блокировки недоступно для устройств без блокировки паролем (например, Apple TV и HomePod) — там оно и не требуется.
Поскольку процесс извлечения работает на самом низком уровне, вам потребуется компьютер с macOS или Linux (можно использовать загрузочный USB с Live Linux). А вот анализ извлечённых данных после снятия образа и извлечения ключей шифрования будет доступен на любой операционной системе, включая Windows. Во всех редакциях iOS Forensic Toolkit есть встроенная функция монтирования образа; кроме того, мы разработали бесплатную утилиту для монтирования образов DMG с расшифровкой на лету.
Perfect Acquisition — уникальный метод извлечения, способный подобрать код блокировки на поддерживаемых методом устройствах. Стандартные реализации checkm8 требуют указания правильного кода блокировки (а в некоторых случаях его приходится удалять, что приводит к серьёзным изменениям на устройстве и уничтожению некоторых типов данных). Наш метод использует другой подход, позволяя инструменту перебирать комбинации на самом устройстве, в итоге восстанавливая правильный код блокировки и извлекая полный набор ключей дешифрования для монтирования пользовательского раздела.
Процесс особенно эффективен на устройствах с iOS 12.1 и более ранними версиями. В таких случаях метод позволяет восстановить пароль, даже если устройство заблокировалось после десяти неудачных попыток ввода — состояние, которое обычно делает невозможным штатную загрузку ОС. Скорость восстановления высокая: взлом 4-значного PIN-кода занимает около 6 минут, для 6-значного требуется около 10 часов. Этот функционал буквально «воскрешает» устройства, которые раньше считались безнадёжными, обеспечивая полный физический доступ там, где другие методы терпят неудачу. Для более новых (>12.1) версий iOS подбор кода блокировки тоже доступен, но скорость — непредсказуема: каждая попытка может занять от 11 секунд до 4 минут.
Важно отметить: мы не только восстанавливаем код блокировки (что само по себе малополезно для уже заблокированных устройств), но и даём возможность расшифровать извлечённые данные.
Perfect Acquisition блестяще справляется со сложными ситуациями, в которых другие методы извлечения не работают — при работе с частично неработоспособными («окирпиченными») или нестабильными устройствами. Независимо от причин нестабильности — неудачное обновление iOS, повлёкшее проблемы с Secure Enclave Processor (SEP), или предыдущая неудачная попытка извлечения с помощью других криминалистических программ (не будем показывать пальцем, но мы неоднократно видели такое у именитых вендоров) — результат часто один: файловая система отказывается монтироваться.
То же касается структурных повреждений внутри самой файловой системы — например, сбоев от внезапного отказа батареи или принудительного выключения. Когда способы извлечения, завязанные на файловую систему, сталкиваются с её повреждениями, они могут зависнуть, выдать ошибку или полностью пропустить какие-то данные. Побитовый образ совершенно равнодушен к логической целостности копируемых данных. Он последовательно считывает данные с накопителя со стабильной скоростью, копируя каждый блок независимо от того, что записано в файловой системе.
С практической точки зрения разница между полноценным образом диска и архивом tar колоссальна. Файл tar по своей сути — последовательный поток данных, предназначенный для записи на магнитную ленту; в нём нет ничего похожего на индекс или файловую систему, а значит, нет и простой возможности организовать произвольный доступ к данным. Чтобы извлечь файл в конце архива, программа должна пролистать все предшествующие данные. Разумеется, это можно обойти — существуют утилиты, которые монтируют tar и индексируют его содержимое, — но обойти тот факт, что для такого монтирования и индексирования нужно прочитать весь файл целиком — невозможно.
Образ диска (.dmg) в свою очередь работает как обычный виртуальный накопитель. При монтировании образа нашей утилитой FSTOOL, которая представляет его как обычный диск, можно получить произвольный доступ ко всей файловой системе. Специалисты могут просматривать структуру каталогов, открывать отдельные файлы и работать с цифровыми уликами так же, как на локальном жёстком диске, без задержек на извлечение или индексирование.
У tar есть и другие ограничения. Даже при монтировании сторонними инструментами навигация часто медленная — программа вынуждена анализировать поток в поисках нужных файлов или сканировать весь файл целиком для создания индекса. Попытка же распаковать архив на диск приводит к другой проблеме: стандартные утилиты и некоторые специализированные криминалистические инструменты могут некорректно обрабатывать метаданные, сбрасывая атрибут atime распакованных файлов на текущее системное время. Анализ таких распакованных данных уже не позволит создать надёжную привязку к временной шкале.
Точные, детальные временные метки необходимы для обнаружения угроз вроде шпионского ПО Pegasus, где мельчайшие расхождения между временем создания, изменения и доступа могут выдать факт внедрения вредоносного кода или выполнения несанкционированных скриптов. Более того, эти атрибуты служат основным маркером для выявления попыток противодействия криминалистике.
Файловая система Apple (APFS) оптимизирует хранение данных с помощью так называемых разрежённых файлов (англ. sparse file), в которых последовательности нулей заменены на информацию об этих последовательностях. Такие файлы могут казаться огромными, но физически занимают минимум места. Это довольно стандартная для современных файловых систем оптимизация (подобный механизм есть, например, в NTFS), но при стандартном извлечении на уровне файловой системы он превращается в серьёзное неудобство. Когда криминалистический инструмент пытается скопировать такие файлы, он может считать логический размер файла, а не его физический объём на диске. Затем инструмент запрашивает у файловой системы весь поток данных, заставляя ОС генерировать гигантские объёмы «пустых» данных для заполнения пробелов, фактически раздувая крошечный файл до гигантских размеров.
При возникновении такой ситуации размер извлечённых данных может превышать общую физическую ёмкость устройства. Пользователи крупных криминалистических платформ, включая Cellebrite и Oxygen, иногда сталкиваются с неудачными попытками извлечения именно из-за этой проблемы. Поскольку извлечение на основе файловой системы не учитывает особенности файловой системы, процесс просто копирует нули, впустую расходуя время и место на диске. Для более глубокого понимания механики этого процесса рекомендуем статью APFS: How sparse files work от ресурса Eclectic Light.
Perfect Acquisition обходит этот момент, игнорируя файловую систему и указанный в ней размер файлов. Поскольку метод создаёт точный образ раздела, а не файловой системы, то и данные копируются поблочно, а не в виде отдельных файлов. Наш метод не пытается интерпретировать отдельные файлы или папки — он просто копирует блоки данных. Это гарантирует, что из 64-гигабайтного iPhone получается образ размером ровно 64 ГБ независимо от внутренней логики файловой системы.
tar — реликт эпохи ленточных накопителей. Архивы tar не сохраняют атрибуты современных файловых систем, обычно фиксируя в лучшем случае атрибуты Modified и иногда Accessed. Более того, по умолчанию метаданные в tar обычно обрабатываются с точностью до секунды. И хотя секундная погрешность секунду вряд ли повлияет на расследование, это небольшое, но отличие копии данных от оригинала.
Perfect Acquisition — пример технического максимализма. Метод сохраняет все четыре временные метки: Birth, Modified, Accessed и Changed. Более того, APFS записывает эти события с наносекундной точностью — и именно с такой точностью мы извлекаем эти данные. Имеет ли значение, что подозреваемый открыл фотографию ровно в 14:02:05.123456789? Скорее всего, нет. В подавляющем большинстве случаев достаточно секундной или даже минутной точности. Тем не менее, если эти данные хранятся в файловой системе и есть возможность их извлечь — наш метод извлечёт и сохранит их с оригинальной точностью.
Мы отдаём себе отчёт в том, что значительная часть изложенного может показаться сугубо теоретической. Низкоуровневые детали файловых систем, с которыми вы можете никогда не столкнуться напрямую, или редко возникающие структурные аномалии — такова текущая объективная реальность отрасли. Можно бесконечно писать о критической важности точных временных меток или о проблемах разрежённых файлов, но эти «незначительные нюансы» так и останутся уделом теоретиков ровно до тех пор, пока крупные вендоры не сменят свои приоритеты.
Современный тренд диктует повсеместное и зачастую неоправданное внедрение искусственного интеллекта; в результате ресурсов на решение фундаментальных задач по сохранению доказательной базы просто не остаётся. Мы делаем свою часть работы: извлекаем данные настолько полно и безупречно, насколько позволяет современный уровень технологий. Однако, чтобы конечный специалист смог в полной мере реализовать потенциал такой точности, экосистеме аналитического ПО необходимо эволюционировать. Мы же продолжим оттачивать наши методы извлечения — в надежде, что рано или поздно индустрия и «большие» производители подтянутся к этому стандарту.
Elcomsoft iOS Forensic Toolkit – специализированный инструмент для проведения криминалистического анализа устройств, работающих под управлением Apple iOS. Для анализа доступна вся пользовательская и системная информация, а также зашифрованные данные из системного хранилища (связка ключей).