В постоянном стремлении улучшить безопасность своих устройств разработчики Apple постепенно закрывают лазейки, которые несколько лет назад можно было использовать для восстановления удалённых данных. В современных версиях iOS таких лазеек почти не осталось, но всё-таки они есть. В этой статье мы рассмотрим актуальные на сегодняшний день способы восстановления удалённых данных из iPhone.
В базах данных SQLite на iPhone хранятся многие типы данных от текстовых сообщений до списка закладок Safari. Что происходит, когда пользователь удалит сообщение из приложения Messages? Соответствующая ему запись удаляется из базы данных SQLite, но сами данные не будут немедленно уничтожены. Вместо этого запись помечается как «удалённая», а указатель на занимаемое записью место записывается в так называемый “freelist”. Анализ этих данных ранее позволял извлекать удалённые данные спустя значительное время.
С выходом iOS 12 три года назад ситуация изменилась: разработчики Apple изменили алгоритмы работы SQLite, зачищая удалённые данные в течение нескольких секунд после того, как запись была удалена из базы данных. Соответственно, в актуальных версиях iOS восстановить удалённые записи можно лишь при полном совпадении следующих условий:
Подводя итог: данный метод не сработает в свежих версиях iOS (начиная с iOS 12).
Ранее мы выяснили, что восстановить удалённые записи из баз данных SQLite в современных версиях iOS, скорее всего, не удастся. Однако у баз данных SQLite есть ещё одно свойство, которым можно попытаться воспользоваться в целях восстановления данных. Новые данные не сразу попадают в основной файл базы данных; первоначально они записываются в так называемый Write Ahead Log (WAL). Если такую запись удалить из базы до того, как она попадёт в основной файл в процессе консолидации, то её можно будет впоследствии восстановить (опять же, до момента, когда ОС проведёт консолидацию базы данных).
Этот подход требует совпадения следующих условий (за одним исключением, о котором ниже):
А теперь – о полезном исключении из правил. Метаданные медиа-файлов (фотографий и видео) можно извлечь с помощью Elcomsoft iOS Forensic Toolkit и без низкоуровневого доступа или джейлбрейка; при этом база данных извлекается вместе с файлами WAL. Таким образом можно восстановить метаданные удалённых фотографий (но, увы, не сами фотографии). Метод работает не только на iPhone или iPad, но и на таких устройствах, как Apple Watch и Apple TV.
Наиболее полное восстановление удалённых данных можно произвести, воспользовавшись ранее созданной резервной копией. Разумеется, для этого резервная копия должна, во-первых, быть, а во-вторых – создать её нужно до того, как удалять важные данные.
Официальный (и единственный поддерживаемый Apple) способ восстановления данных из резервной копии – это восстановление всей копии целиком на устройство Apple. Если у вас под рукой нет свободного iPhone, который можно использовать для этой цели, рекомендуем воспользоваться сторонней программой – например, Elcomsoft Phone Viewer. С её помощью можно извлекать и просматривать многие типы данных от фотографий до баз данных.
Обратите внимание: анализ резервных копий iTunes, которые защищены паролем, позволит получить доступ к большему количеству данных, чем анализ незашифрованных резервных копий. Если необходимость восстановить данные уже возникла, то пароль устанавливать уже поздно, однако на будущее рекомендуем это сделать как в целях безопасности, так и для того, чтобы обеспечить возможность наиболее полного восстановления данных.
Этот способ очень похож на предыдущий, с той разницей, что резервная копия хранится не на диске компьютера, а в облаке iCloud. Есть между локальными и облачными резервными копиями и другие различия. Например, Apple хранит в облаке две последних резервных копии (какое-то время назад их было три), а зашифровать данные в облаке паролем невозможно.
Есть и другие отличия. Так, при включении синхронизации фотографий в iCloud они перестают сохраняться в облачных резервных копиях (впрочем, этот момент можно изменить отдельной настройкой). Также не будут сохраняться при включении синхронизации и некоторые другие типы данных:
* Фактически, связка ключей хранится и в резервной копии, но записи при этом зашифрованы аппаратным ключом. Расшифровать данные можно только при восстановлении на то же физическое устройство.
** Сообщения попадают в резервную копию только в том случае, если не включена их синхронизация. Для фотографий доступен переключатель.
iOS позволяет синхронизировать многие типы данных между устройствами. Хранятся такие синхронизированные данные в облаке iCloud. Синхронизация должна работать в режиме реального времени, однако фактически время от времени возникают задержки. При удалении важных данных можно воспользоваться этим фактом, моментально отключив устройство от сети (включив «полётный» режим и отключив вручную функции Wi-Fi и Bluetooth, которые могут оставаться активными). Далее можно воспользоваться Elcomsoft Phone Breaker для доступа к синхронизированным данным.
Есть и приятные исключения. Для некоторых категорий (например, фотографий и заметок) удалённые данные хранятся в облаке в течение какого-то времени (обычно 2-3 недели) после того, как они были удалены из папки или альбома «удалённых». В течение этого времени их можно восстановить. Несколько лет назад такие данные и вовсе хранились в течение неограниченного времени; с тех пор ситуация изменилась.
Если у вас есть доступ к файловой системе iPhone, может возникнуть соблазн просканировать незанятые блоки с целью поиска удалённых файлов. Увы, этот подход не сработает. Начиная с iOS 4, Apple шифрует подавляющее большинство данных, а начиная с iOS 8 ключ шифрования завязан на код блокировки. Как только файл удаляется, уничтожается и его уникальный ключ шифрования, что делает восстановление невозможным.
На iPhone 4 дела обстояли следующим образом:
Начиная с iPhone 5s, оборудованного аппаратной подсистемой безопасности Secure Enclave, схема шифрования усложнилась. В упрощённом виде её можно изобразить следующим образом:
Не вдаваясь в детали, ситуация выглядит следующим образом.
При удалении файла метаданные из файловой системе удаляются; удаляется и ключ шифрования. После этого расшифровать его содержимое становится невозможным.
При сбросе устройства к заводским настройкам стирается содержимое флеш-памяти, в которой, в частности, хранится общий ключ, которым шифруются ключи шифрования файлов. Даже если забыть о том, что содержимое хранилища полностью очищается, уже одного уничтожения общего ключа достаточно, чтобы содержимое флеш-памяти стало недоступным.
Ещё раз отметим, что это описание сильно упрощённое. Есть некоторые нюансы. Например, какая-то (очень небольшая) часть данных не шифруется вовсе, или шифруется ключами, которые не зависят от кода блокировки. Также есть разница между режимами BFU/AFU, а также тот факт, что некоторые файлы доступны только при разблокированном текущем статусе (поэтому при низкоуровневом извлечении необходимо следить, чтобы экран устройства оставался разблокированным в течение всего процесса). В целом на возможность восстановления именно удалённых данных эти нюансы практически не влияют.
Итак, мы рассмотрели основные способы восстановления удалённых данных из iPhone. Неудивительно, что наиболее полный результат получается при восстановлении из ранее созданной резервной копии – локальной или облачной. В некоторых случаях могут оказаться успешными попытки восстановить удалённые данные из синхронизированных категорий. Можно попробовать исследовать WAL-файлы, полученные при извлечении медиа-файлов: в них могут содержаться метаданные удалённых фотографий (но, увы, не сами фотографии). Технологии восстановления с использованием низкоуровневого доступа с практической точки зрения малополезны.
Elcomsoft iOS Forensic Toolkit – специализированный инструмент для проведения криминалистического анализа устройств, работающих под управлением Apple iOS. Для анализа доступна вся пользовательская и системная информация, а также зашифрованные данные из системного хранилища (связка ключей).
Инструмент для криминалистов, извлекающий и расшифровывающий данные из резервных копий устройств iOS, Windows Phone и BlackBerry и соответствующих облачных сервисов. Доступ в iCloud по паролю либо маркеру аутентификации, извлечённому из компьютера пользователя. Поддержка двухфакторной аутентификации. Расшифровка Keychain и ускорение перебора паролей на видеокартах AMD и NVIDIA. Словарные атаки для ускоренного восстановления паролей.
Elcomsoft Phone Viewer – простой и компактный инструмент для просмотра информации, извлечённой из резервных копий устройств под управлением Apple iOS, облачных сервисов iCloud и Microsoft. При работе с данными iOS поддерживается восстановление и просмотр удалённых сообщений SMS и iMessage. Продукт позволяет просматривать контакты, сообщения, список звонков, данные заметок и календаря.