Мобильный девайс, будь то смартфон или планшет, может рассказать о своем хозяине гораздо больше, чем его друзья, родные и близкие. Именно поэтому зачастую расследование правонарушения начинается с изучения данных, хранящихся на этих устройствах. Ты когда-нибудь задумывался о том, какую информацию могут извлечь правоохранительные органы, если к ним в руки попадет «яблочный» девайс? Нет? Ну тогда я тебе расскажу, а заодно и покажу, как извлечь информацию из iOS устройств.
Еще совсем недавно мы бы могли говорить лишь о компьютерной криминалистике и компьютерных преступлениях, но технологический прогресс прекрасно знает свое дело: с выходом и широким распространением смартфонов и планшетных устройств появилось и новое направление — мобильная криминалистика, которая в совокупности с компьютерной и сетевой стала называться цифровой криминалистикой. Разумеется, впоследствии и она отрастила свои ветви. Так, разделяют криминалистическое исследование Android, iOS, BlackBerry и некоторых других мобильных операционных систем. О криминалистическом исследовании i-девайсов мы с тобой сегодня и поговорим.
Все i-девайсы (iPhone, iPad и iPod Touch) работают под управлением операционной системы iOS. До третьей версии она называлась iPhone OS и была разработана специально для этого устройства. В ее основе лежит архитектура ее старшего брата — Mac OS X, что, разумеется, сказалось и на используемой ею файловой системе.
[ad name=»Responbl»]
Во всех i-девайсах используется файловая система HFSX — полная копия HFS+ с той лишь разницей, что первая позволяет работать в режиме с учетом регистра имен. Очень часто в цифровой криминалистике используется так называемый файловый карвинг — метод восстановления данных, основанный на анализе не метаданных, а содержимого файлов. Так, карверы, например всем известный (и довольно популярный в кругах криминалистов) Scalpel, восстанавливают файлы, опираясь на заголовки и расширения. Так называемый семантический карвинг берет за основу внутреннюю структуру файлов, что позволяет восстанавливать даже фрагментированные файлы. Именно этим способом криминалисты и восстанавливают данные из HFS и HFS+. Это касается OS X. А что же с iOS? Сейчас расскажу.
Все. Очень. Плохо. Apple использует технологию, именуемую Data Protection, чтобы защитить данные, хранимые в памяти устройства. При создании нового файла генерируется уникальный 256-битный ключ (File Key), он шифруется так называемым Class Key и хранится в метаданных файла, а те, в свою очередь, шифруются ключом файловой системы (EMF Key), который генерируется на основе UID устройства. Что это значит? Все просто: применение классического файлового карвинга не даст никаких результатов, так как все данные в свободной области файловой системы будут зашифрованы. Правда, некоторые исследователи утверждают, что сравнительным анализом файла каталога и журнального файла можно получить информацию об удаленных файлах, включая расположение их метаданных, временные метки и прочее. Таким образом можно восстановить удаленные файлы, найти их ключи и расшифровать их. Но это все теория. А ты наверняка знаешь, что в теории нет разницы между теорией и практикой, а на практике — она есть.
Так как на данный момент i-девайсов выпущено великое множество, одной из первоочередных задач оказывается начальная идентификация того или иного устройства. Для этого есть прекрасный инструмент — libimobiledevice. Libimobiledevice — это кросс-платформенная библиотека и набор инструментов, предназначенный для коммуникации с различными i-девайсами, включая iPhone, iPod Touch, iPad и Apple TV, по понятным им протоколам. С помощью libimobiledevice исследователь может получить доступ к файловой системе i-девайса, собрать информацию об устройстве, сделать резервную копию или восстановить из нее, управлять иконками на SpringBoard, инсталлированными приложениями и так далее. Данная библиотека находится в разработке с 2007 года, и главная ее цель — предложить инструмент для работы с i-девайсами в среде Linux.
Итак, libimobiledevice можно использовать для сбора информации. Для этого воспользуемся утилитой ideviceinfo. Если к компьютеру подключено только одно устройство, достаточно просто запустить утилиту из терминала:
# ideviceinfo -s
BluetoothAddress: 70:11:24:33:fa:4a
DeviceClass: iPad
DeviceName: Olegs iPad
EthernetAddress: 70:11:24:33:fa:4b
ProductName: iPhone OS
ProductType: iPad2,5
ProductVersion: 9.3.3
SerialNumber: F4KK3N4YF195
TimeZone: Europe/Moscow
UniqueDeviceID: d2c4466bbda5fc2cc87384dd9b64c054815c9cbb
WiFiAddress: 70:11:24:33:fa:49
Я намеренно не представил весь вывод — только данные, наиболее значимые с точки зрения мобильной криминалистики. «Зачем мне вообще вся эта информация нужна? Ведь я могу и по внешнему виду устройство идентифицировать!» — скажешь ты. И будешь не прав. Если ты еще не забыл, здесь мы говорим о цифровой криминалистике в целом и о мобильной криминалистике в частности, а значит, любое такое исследование может угодить прямиком в суд, а это, в свою очередь, означает, что идентификационные особенности того или иного i-девайса ты должен скрупулезно собрать и задокументировать.
[ad name=»Responbl»]
Теперь мы знаем, что за устройство мы исследуем: iPad 2,5, или iPad mini первого поколения. Пришло время извлечь данные из него. В мобильной криминалистике для извлечения данных из iOS-устройств используется три основных метода:
Извлечение данных на логическом уровне наиболее популярно, так как далеко не всегда находится возможность сделать джейлбрейк i-девайсов, чтобы извлечь данные на физическом уровне. И хотя недавно был представлен способ джейлбрейка устройств вплоть до версии 9.3.3, но выход iOS 9.3.4 закрыл эту возможность для криминалистического программного обеспечения, а с ним и для криминалистов. Хорошо, что под рукой у меня оказался мой старенький iPhone 4, который позволит продемонстрировать извлечение данных на физическом уровне.
Так как извлечение данных на логическом уровне — наиболее простой и в то же время наиболее распространенный способ (к тому же единственно возможный для нашего первого подопытного), начну я именно с него. А воспользуемся мы все той же libimobiledevice. Для создания резервных копий (а именно это позволяет криминалистам извлекать данные на логическом уровне) в нашем распоряжении имеются две утилиты: idevicebackup и idevicebackup2. Если исследуемое устройство работает под управлением iOS младше четвертой версии, следует использовать idevicebackup, если старше — idevicebackup2. Вернись к информации об устройстве, и ты увидишь, что на нашем девайсе iOS 9.3.3. Это явно больше четырех, поэтому idevicebackup2 — наш вариант.
Синтаксис очень прост: достаточно напечатать в терминале название утилиты (idevicebackup2), backup в качестве аргумента, а после указать директорию, в которую данные и будут извлечены. Как только ты нажмешь заветный Enter, процесс запустится:
# idevicebackup2 backup ~/Desktop/ForensicsBackup
В результате мы получили типичную для резервных копий i-девайсов директорию, название которой — UDID устройства, в нашем случае d2c4466bbda5fc2cc87384dd9b64c054815c9cbb
.
Если ты откроешь эту директорию, то увидишь четыре стандартных файла и массу файлов с именами длиной в 40 символов (см. рис. 2).
Начнем с четырех стандартных файлов:
Status.plist
— содержит сведения о том, удачно ли прошло резервное копирование.Manifest.plist
— описывает содержимое директории. Например, в нем ты найдешь список приложений, включая их версии, дату и время производства резервной копии, ее тип (шифрованная или нет), а также некоторую информацию об i-девайсе.Manifest.mbdb
— хранит описание всех файлов, входящих в состав резервной копии. Каждая запись содержит следующие параметры: Domain
— указывает, к какому домену относится элемент;Path
— содержит полный путь к элементу;Link Target
— указывает точку назначения элемента, если последний является символьной ссылкой;User ID
и Group ID
— указывают принадлежность к пользователю и группе;m. time
— дата последней модификации файла (временная метка в формате Unix Epoch);a. time
— дата последнего доступа к элементу;c. time
— дата последнего изменения файла или директории;File size
— размер файла в байтах;Unix file permissions
— права доступа к файлу;File hash
— хеш файла.Info.plist
— содержит информацию об устройстве, включая дату производства резервной копии, номер телефона, имя устройства, ICCID, IMEI, версию iOS, серийные номера.Что до всех остальных файлов — они и составляют непосредственно резервную копию. Почему у них такие странные имена? Все очень просто: эти 40 символов — хеш-сумма SHA-1, подсчитанная от полного пути к файлу, включая домен и субдомен. Что же это за домены такие? Рассказываю. Каждый файл, входящий в состав резервной копии, относится к одному из следующих доменов:
[ad name=»Responbl»]
Итак, с логическим извлечением разобрались, перейдем к физическому. Как я уже упоминал, у меня под рукой оказался старенький iPhone 4, который и получит свои пятнадцать минут славы.
Для физического извлечения я воспользуюсь тяжелой артиллерией — моим любимым iOS Forensic Toolkit от компании Elcomsoft. Данный набор инструментов доступен как для Windows, так и для OS X и представляет собой набор утилит, с помощью которого можно произвести любой тип извлечения данных, а также еще некоторые весьма полезные манипуляции, например подобрать или обойти пасскод. Я воспользуюсь своей любимой версией — для OS X.
Перед тем как начать извлечение данных, поговорим немного о структуре разделов iOS-устройств. Итак, NAND i-девайсов разделен на две части: системный раздел и раздел с данными. Первый расположен в /dev/disk0s1
или /dev/disk0s1s1
. Так как в системный раздел пользовательские данные не записываются, он сравнительно небольшой — 1–2 Гбайт, в зависимости от размера памяти устройства. Примечательно, что к этому разделу не применяется шифрование, правда и криминалистически значимой информации он не содержит. Второй раздел куда более интересен. Расположен он в /dev/disk0s2
или /dev/disk0s2s2
. Содержит он пользовательские данные и данные приложений, а монтируется в /private/var
. Разумеется, данные здесь хранятся в зашифрованном виде.
Так как главный интерес для нас как мобильных криминалистов представляет именно второй раздел, начнем мы с извлечения ключей шифрования, благо iOS Forensic Toolkit это умеет (см. рис. 3).
Для извлечения нужно выбрать четвертый пункт, после чего ввести пароль доступа к устройству (по умолчанию это alpine), а также ввести пасскод, если последний установлен. По результатам мы получим файл keys.plist
, который содержит все необходимое для расшифровки физической копии.
Самое время ее получить, для чего следует выбрать шестой пункт меню (см. рис. 4).
Как я и говорил, мы имеем два раздела: первый без применения шифрования, второй — с применением. Разумеется, нас интересует второй, так как именно он содержит пользовательские данные и данные приложений. Его и выберем. Нас спросят, куда сохранить образ, — по умолчанию это домашний каталог пользователя. В результате мы получим файл user.dmg
, который, в принципе, уже сейчас можно смонтировать в OS X и посмотреть иерархию каталогов. Вот только содержимое файлов увидеть не удастся. Помнишь, они же зашифрованы. Но у нас есть ключ, и сейчас самое время им воспользоваться. Для этого в iOS Forensic Toolkit предназначен седьмой пункт. Указываем путь к шифрованному физическому образу и ключевому файлу и запускаем дешифрацию (см. рис. 5).
После ее завершения мы получим файл user-decrypted.dmg
. Если мы его смонтируем, то увидим, что на этот раз мы имеем доступ не только к иерархии каталогов, но и к содержимому файлов (см. рис. 6).
Итак, расшифрованный образ готов, самое время заняться его криминалистическим анализом.
Проведем анализ данных, извлеченных на логическом уровне, так как этот способ в настоящее время наиболее распространен (к сожалению, не всегда у нас есть возможность извлечь данные на физическом уровне). Но все нижесказанное справедливо и в отношении анализа данных, извлеченных другими способами. Исследовать резервную копию возможно, например, при помощи бесплатного инструмента iBackup Viewer, не считая, конечно, огромного количества специализированных криминалистических комплексов, предоставляющих криминалисту возможность работать в режиме push button forensics.
[ad name=»Responbl»]
Временные метки — одни из главных помощников мобильного криминалиста. Чаще всего в i-девайсах можно встретить временные метки в формате MAC Absolute Time, которые представляют собой количество секунд, прошедших с 00:00:00 1 января 2001 года. Эти метки, например, очень часто встречаются в базах данных различных приложений, включая мессенджеры, которые обычно пестрят криминалистически значимой информацией (речь о них пойдет далее). Давай на них посмотрим. Откроем базу данных sms.db
, выберем таблицу message
и взглянем на столбец date
. В нашем случае временная метка первого сообщения — 414908416
. Это и есть временная метка в формате MAC Absolute Time. Теперь нам нужно перевести ее в понятный человеку вид. Разумеется, коммерческие форензик-сьюты способны делать это автоматически при разборе данных, но мы воспользуемся бесплатным инструментом от британцев из Digital Detective — DCode. Выбирай MAC Absolute, вставляй временную метку в соответствующее поле и жми Decode. Вуаля!
Обычно данные приложений в iOS хранятся в базах данных SQLite. С точки зрения мобильной криминалистики эти базы примечательны тем, что имеют списки свободных областей и нераспределенное пространство, в которые довольно часто попадают удаленная пользователем информация. Именно благодаря им у криминалистов есть возможность восстанавливать, например, удаленную переписку, даже несмотря на то, что в их распоряжении имеются лишь данные, извлеченные на логическом уровне. Провести анализ этих баз данных можно, например, при помощи SQLite Database Browser. А что же делать с удаленными записями? Для их восстановления есть отличный, а главное бесплатный инструмент — SQLite-Parser. Пользоваться им очень просто, достаточно открыть терминал, перейти в каталог со скриптом (который, кстати, написан на твоем любимом Python).
Если ты хочешь увидеть вывод в формате .tsv
, пиши:
sqlparse.py -f /путь/к/базе_данных.db -o report.tsv
Если же тебе по душе обычный текстовый файл, то пиши:
sqlparse.py -f /путь/к/базе_данных.db -r -o report.txt
Для ярых противников командной строки есть и GUI-вариант.
Лично я предпочитаю так называемый сырой вывод, а полученный текстовый файл анализирую с помощью hex-редактора. Если ты тоже откроешь полученный файл в hex-редакторе (или даже в текстовом), то увидишь, что текст сообщений тебе уже доступен, а временные метки не так и сложно обнаружить, проанализировав структуру оригинальной таблицы базы данных, в нашем случае message
. Очень скоро ты найдешь необходимые байты, которые будут прекрасно конвертироваться в уже привычную тебе временную метку.
Давай рассмотрим наиболее важные базы данных. Начнем мы с адресной книги. Пора отправиться в HomeDomain — тут в каталоге Library/AddressBook/
ты найдешь две базы данных: AddressBook.sqlitedb
и AddressBookImages.sqlitedb
. В первой базе имеются сведения не только о контактах телефонной книги, но и о контактах из других приложений, например WhatsApp. Что же хранится во второй базе? Ее название говорит само за себя: это изображения, присвоенные тому или иному контакту.
Теперь перейдем в WirelessDomain, а именно в Library/Call History
. Здесь мы найдем базу данных call_history.db
. Она хранит данные о последних ста вызовах, будь то входящие, исходящие или пропущенные. Старые записи удаляются, но ты же помнишь про списки свободных областей и нераспределенное пространство, верно?
Вернемся в HomeDomain, на этот раз в Library/SMS
. Здесь-то мы и обнаружим одну из наиболее значимых с криминалистической точки зрения баз данных — sms.db
. Кстати, в ней хранятся не только SMS-сообщения, но и iMessage!
Календарь также может включать значимые с криминалистической точки зрения события — поэтому Calendar.sqlitedb
из Library/Calendar/
не стоит упускать из виду.
Ты когда-нибудь записывал пароли от своих аккаунтов в «Заметки»? Нет? А вот некоторые имеют такую привычку, поэтому база данных notes.sqlite
из Library/Notes/
также достойна внимания криминалиста.
Теперь отправимся в RootDomain, где в Library/Caches/locationd/
нас ждет база данных consolidated.db
. В ней мы найдем геолокационные данные с временными метками, основанные на вышках сотовой связи и точках доступа Wi-Fi, доступных для соединения.
Хорошо, а теперь давай посмотрим на какое-нибудь популярное приложение, относящееся, к примеру, к социальным сетям, скажем VK. Для этого отправимся в AppDomain. Думал, твоя переписка в безопасности? Не тут-то было! База данных database3.db
отдаст ее всю, без остатка, а особенности SQLite позволят криминалистам извлечь из нее то, что ты тщательно стер. Также стоит отметить массу файлов с названиями вида http_xakep.ru_0.localstorage
в Library/WebKit/WebsiteData/LocalStorage/
. Это не что иное, как сайты, которые посетил пользователь с помощью приложения. Думаю, ты уже догадался, что извлечь данные можно не только из VK, но и из многих других приложений — подавляющее их большинство хранит свои данные в SQLite-базе.
[ad name=»Responbl»]
С этим форматом ты наверняка знаком еще с OS X (ведь так?). Plist-файлы чаще всего хранят информацию о конфигурациях и настройках, причем они могут быть как в XML-формате, так и в бинарном или просто текстовом. Если ты используешь OS X, то провести их анализ можно при помощи Xcode или встроенной утилиты plutil. Если же предпочитаешь работать с Windows, то можно, к примеру, воспользоваться PList Explorer.
Давай рассмотрим несколько значимых с точки зрения мобильной криминалистики файлов.
Хочешь узнать последний набранный вручную номер? Легко — достаточно взглянуть на com.apple.mobilephone.plist
из Library/Preferences
(HomeDomain). Нужна информация о последней SIM-карте, которая использовалась в устройстве? Добро пожаловать в WirelessDomain — Library/Preferences/com.apple.commcenter.plist
содержит эту информацию.
Нужны сведения о подключениях к Wi-Fi? Пора посетить SystemPreferencesDomain — в com.apple.wifi.plist
записано все, включая временные метки последних подключений.
А не посмотреть ли нам на последние поисковые запросы веб-браузера Safari? Перейдем в AppDomain и взглянем на файл com.apple.mobilesafari.plist
из Library/Preferences/
. Здесь мы их и найдем. Примечательно то, что, даже если пользователь очистит историю и кеш, записи в данном файле остаются нетронутыми.
Поговорим немного о картах. Допустим, нам необходима информация о последнем адресе, который пользователь искал с помощью приложения. Для этого у нас есть plist-файл com.apple.maps.plist
(AppDomain) — он-то и содержит эту информацию, включая сведения о широте и долготе.
[ad name=»Responbl»]
Отдельного внимания заслуживают базы миниатюр — именно они позволяют хоть как-то восстановить удаленные пользователем изображения, которые могут иметь ключевое значение с точки зрения криминалистики. Это файлы с расширением .ithmb
, которые расположены в CameraRollDomain, а именно Media/PhotoData/Thumbnails/
. Просмотреть миниатюры, которые в них содержатся, а также экспортировать их поможет iThmb Converter.
Как ты наверняка уже понял, лучшая антикриминалистическая мера — сброс к заводским настройкам: все ключи шифрования сотрутся, и восстановить какие-либо данные едва ли представится возможным.
Правда, если ты хранишь резервные копии любимого i-девайса на своем компьютере — ты все еще в опасности. Более того, если ты регулярно синхронизируешь устройство с компьютером, то криминалисты могут найти и так называемые lockdown-файлы, которые позволят им получить доступ к твоему устройству, даже если ты установил надежный пасскод.
[ad name=»Responbl»]
Как показывает практика, извлечь массу криминалистически значимой информации, даже не обладая дорогостоящим программным и аппаратным обеспечением, вполне возможно. Несмотря на нескончаемые заверения Apple о нерушимой безопасности их продуктов, даже пресловутая резервная копия позволяет извлечь массу информации о пользователе устройства, его привычках и действиях.
Кроме того вам будет интересно ознакомится как достать данные из других мобильных устройств:
Как взломать Blackberry, методы и подходы.
Как взломать механизм резервного копирования Android.
Взлом Windows резервных копий на компьютере, планшете, телефоне.
Чтобы взломать сеть Wi-Fi с помощью Kali Linux, вам нужна беспроводная карта, поддерживающая режим мониторинга…
Работа с консолью считается более эффективной, чем работа с графическим интерфейсом по нескольким причинам.Во-первых, ввод…
Конечно, вы также можете приобрести подписку на соответствующую услугу, но наличие SSH-доступа к компьютеру с…
С тех пор как ChatGPT вышел на арену, возросла потребность в поддержке чата на базе…
Если вы когда-нибудь окажетесь в ситуации, когда вам нужно взглянуть на спектр беспроводной связи, будь…
Elastic Security стремится превзойти противников в инновациях и обеспечить защиту от новейших технологий злоумышленников. В…
View Comments