Источник (англ.): Kim, H., Kim, S., Shin, Y., Jo, W., Lee, S., & Shon, T. (2021). Ext4 and XFS file system forensic framework based on TSK. Electronics, 10(18), 2310.
Файловая система Linux используется в различных операционных системах, таких как Debian, Red Hat, и Fedora, и использует Ext в качестве файловой системы по умолчанию. Кроме того, большинство смартфонов на базе Android и устройств Интернета вещей используют Ext в качестве базовой файловой системы. Недавно файловые системы Linux, такие как XFS, файловая система Open Zettabyte (OpenZFS) и Btrfs, были выпущены для больших файлов с улучшенной скоростью обработки и масштабируемостью.
Пользовательская и системная информация, следы использования, файлы и т.д. обычно хранятся в файловой системе, и данные могут быть удалены из-за непредвиденных ошибок, несчастных случаев или антиэкспертизы. Удаленные данные в файловой системе могут иметь значительную ценность с точки зрения цифровой криминалистики; следовательно, метод извлечения и восстановления файлов, хранящихся в файловой системе, активно изучался.
На основе существующих исследований файловых систем были разработаны коммерческие инструменты и открытые исходные тексты, которые могут использоваться в реальных исследованиях. Например, TSK, инструмент с открытым исходным кодом, разработанный в 2005 году, обеспечивает извлечение и восстановление файловых систем на основе метаданных. Однако TSK не может восстановить удаленные файлы, поскольку не предоставляет функцию восстановления с использованием области журнала файловой системы Ext4. Более того, он не поддерживает последнюю файловую систему (т.е. XFS); следовательно, извлечение и восстановление данных не могут быть выполнены.
Материалы этого документа заключаются в следующем:
В 2012 году было проведено аналитическое исследование Ext4 с точки зрения цифровой криминалистики с использованием методов ведения журнала. Был проведен подробный анализ структуры Ext4, и был предложен метод восстановления, учитывающий совместимость с Ext3. Однако полное восстановление файлов трудно понять, поскольку метод анализирует только метаданные файловой системы Ext4 и не показывает объективных результатов, таких как скорость восстановления.
В 2014 году было предложено восстановление файла, которое можно использовать даже при удалении указателя блока для файловой системы Ext2/3. К сожалению, файловой системой по умолчанию последней версии ядра Linux является Ext4, которая использует метод extent вместо метода сопоставления блоков. Этот метод, который может восстанавливать удаленные файлы только в ограниченной среде, трудно применять, поскольку он не подходит для файловой системы Ext4.
В 2019 году в исследовании по восстановлению файлов для файловой системы Ext4 была проанализирована область журнала, проиндексированы метаданные, относящиеся к удаленным файлам, и предложен метод восстановления на их основе. Однако основные обновления, такие как область контрольной суммы, были внесены в область журнала файловой системы Ext4. В результате сформулированный инструмент не может быть применен к этой файловой системе в данный момент.
С 2014 года проводятся судебные исследования на основе файловой системы XFS. Было проанализировано большинство структур файловой системы и предложены методы восстановления удаленных файлов. В 2014 году было проведено исследование структуры файловой системы XFS и восстановления удаленных файлов на основе файловой системы XFS v4. Для восстановления был найден индекс удаленного файла и использован адрес растрового блока или его сигнатура. Однако этот метод восстановления не может восстановить удаленный файл, если значение растрового блока было перезаписано.
Чтобы компенсировать вышеупомянутый случай, был рассмотрен метод восстановления файла с использованием области журнала файловой системы XFS. Восстановление удаленного файла достигается за счет использования функции, заключающейся в том, что информация, такая как размер и смещение удаленного файла, остается в области журнала файловой системы XFS. Однако это очень сложно применить, поскольку экспериментальная среда, которая может повлиять на метаданные файловой системы, не детализирована, а текущая версия XFS v5 новее, чем тестировалась.
TSK является открытым исходным кодом файловой системы судебно-инструмент, основанный на данных, методов экстракции на основе метаданных файловой системы Linux, предложенный Брайаном перевозчиком в 2005 году. Хотя этот инструмент предоставляет широкий спектр функций, ориентированных на различные файловые системы, у TSK есть ограничение: он сталкивается с проблемами при поддержке новейших файловых систем. Соответственно, используя преимущества проекта с открытым исходным кодом, криминалисты файловой системы провели исследования, направленные на преодоление ограничений TSK.
Инструменты извлечения и восстановления файлов, разработанные для определенных версий файловых систем, могут не работать нормально, если версия файловой системы была обновлена. Это связано с тем, что структура метаданных, используемая для извлечения и восстановления файлов, была изменена в результате обновления. В частности, TSK, хорошо известный инструмент судебной экспертизы файловой системы, не учитывает область журнала в файловой системе Ext4 и не имеет функции для восстановления удаленных файлов. В случае файловой системы XFS извлечение и восстановление файлов невозможно, поскольку она не поддерживается TSK.
В этом разделе представлен анализ журнала файловой системы Ext4 контрольная сумма v3 и файловой системы XFS v5 для выявления измененных структур метаданных и предложения платформы извлечения и восстановления файлов на основе TSK.
Файловые системы Ext4 используют область журнала. В общем случае, Ext4 использует транзакционный механизм, который записывает метаданные файловой системы Ext4 в область журнала для обеспечения целостности и восстановления. Таким образом, файл может быть восстановлен в его предыдущее состояние с помощью журнала.
Метаданные, используемые для извлечения файлов и восстановления файловой системы Ext4, включают индекс, запись каталога и журнал. В TSK, хотя анализ метаданных выполняется, анализ области журнала для восстановления удаленных данных не реализован. Соответственно, в этом разделе основное внимание уделяется восстановлению файлов с использованием области журнала.
Область журнала в основном выделяется в блоке с индексом 8, как можно проверить в суперблоке Ext4. Он состоит из журнала суперблока, блока дескрипторов журнала, блока данных журнала, блока отзыва, блока фиксации, и N транзакций. Каждая транзакция состоит из блока описания журнала, блока данных журнала и блока фиксации.
Суперблок журнала содержит основную информацию о журнале и начальной позиции журнала транзакций. Он также включает в себя заголовок блока журнала и начинается с магического числа 0xC03B3998. Заголовок блока журнала находится в начале каждого блока журнала, и значение поля типа записи идентифицирует блок.
Блок дескриптора состоит из массива тегов блока журнала, которые описывают местоположение блока данных. Тег блока журнала имеет различную структуру в зависимости от значения флага s_feature_incompat для суперблока журнала. Если для этого значения флага установлено значение JBD2_FEATURE_INCOMPAT_CSUM_V3 (0 × 10), тогда он в основном имеет ту же структуру, что и ext2fs_journ_dentry_V3; в противном случае он имеет ту же структуру, что и ext2fs_journ_dentry_V2.
Платформа восстановления удаленных файлов с использованием области журнала Ext4, предложенная в этом приложении, показана на рисунке 4. Сначала фреймворк находит значение поля s_feature_incompat в суперблоке журнала для восстановления удаленных файлов. Структура тега блока журнала в блоке дескриптора журнала меняется в зависимости от этого значения.
Затем блок данных журнала можно найти, проанализировав тег блока журнала всех блоков дескриптора журнала, существующих в области журнала, с номером блока удаленного индекса. Блок данных журнала хранит резервные копии индексных индексов удаленных данных, что делает возможным восстановление удаленных файлов.
В последней версии Linux, которая поддерживается версией xfs-progs 3.2.0-alpha1, обновленной в июле 2014 года, файловая система XFS обычно создается как файловая система XFS v5 по умолчанию. В случае файловой системы XFS версии 5 применение метода извлечения и восстановления файлов, выполняемого в файловой системе XFS версии 4, затруднено, поскольку метаданные были изменены.
Основные метаданные, используемые для извлечения файла из файловой системы XFS, включают суперблок, индекс, записи каталога и экстенты данных.
Суперблок содержит общую информацию о файловой системе; его структура представлена на рисунке 5. Суперблок хранит магический номер, размер блока, размер индекса, размер сектора и т.д. Файловой системы XFS. В файловой системе XFS версии 5 были добавлены поля для обеспечения целостности crc суперблока и uid метаданных.
В списке индексов хранится атрибутивная информация файла или каталога, сопоставленного к индексу и местоположению фактического файла. Он состоит из ядра inode и разветвления данных inode. В файловой системе XFS версии 5 были добавлены поля для обеспечения целостности, времени создания, исходного индекса и т.д., позволяющие более подробно отображать информацию о файле; размер файла был увеличен с 96 байт до 176 байт. Адрес списка индексов можно найти по номеру индекса, структура которого показана на рисунке 6.
Ядро inode содержит атрибутивную информацию файлов или каталогов сопоставлен с индексными индексами; его структура кратко представлена на рисунке 7. Структура разветвления данных inode, соответствующая значению поля di_format, отображается за ядром inode.
Записи каталога содержат имя и смещение индекса файла в каталоге; его структура кратко представлена на рисунке 8. Если поле di_format индекса равно 1, тогда разветвление данных inode состоит из структуры записей каталога. Записи каталога создаются в виде краткой формы, блока, узла, листа или дерева B+ в соответствии с количеством файлов, включенных в каталог, и глубиной каталога.
Экстенты данных содержат данные, относящиеся к месту хранения файла; структура показана на рисунке 9. Если поле di_format ядра inode равно 2, то разветвление данных inode состоит из структуры экстентов данных.
Платформа извлечения файлов с использованием метаданных XFS v5, предлагаемая в этой статье, показана на рисунке 10. Предлагаемая платформа выполняет поиск общей информации файловой системы в суперблоке: номер корневого индексного индекса, размер сектора, размер блока, размер индексного индекса, InopblkLog и agblkLog. Корневой номер индекса используется для нахождения адреса первого индекса, а InoblkLog и agblkLog используются для вычисления группы распределения, блока, inode, а также для определения адреса фактического файла.
Сравнение предложенной платформы извлечения и восстановления файлов на основе TSK в этой статье с существующими исследованиями, основанными на пяти критериях, показана таблица 1.
| Исследование | Анализ метаданных | Метод восстановления | Проверка | Инструмент | Окружающая среда | ||
|---|---|---|---|---|---|---|---|
| Ext4 | XFS | Журнал | |||||
| Фэрбенкс и др. [5] (2012, Ext4) | Индекс, Экстент | - | Блок данных журнала | Область журнала | Не поддерживается | Не поддерживается | Ubuntu 10.04 |
| Ли и др. [6] (2019, Ext4) | Индекс | - | Блок данных журнала | Область журнала | Не поддерживается | Не поддерживается | Ubuntu 14.04 |
| Ан и др. [7] (2014, XFS) | - | Суперблок, Ядро Inode, Разветвление данных Inode | Область журнала | Область журнала | Не поддерживается | Поддерживается | Slackware |
| Предлагаемая структура (Ext4) | Индекс | - | Суперблок журнала, Блок дескриптора журнала, Блок данных журнала | Область журнала | Поддерживается | Поддерживается | Ubuntu 20.04 |
| Предлагаемая структура (XFS) | - | Суперблок, Ядро Inode, Разветвление данных Inode | - | Индекс | Поддерживается | Поддерживается | Ubuntu 20.04 |
Для проверки инфраструктуры восстановления данных файловой системы Ext4 на основе TSK и извлечения файлов файловой системы XFS, предложенной в этой статье, были созданы наборы данных разделов объемом 1 и 100 ГБ для каждой файловой системы. Кроме того, для проверки функции извлечения и восстановления файловой системы был проведен эксперимент путем разделения изображений на изображения до и после удаления данных.
| Окружающая среда | Версия |
|---|---|
| ОПЕРАЦИОННАЯ СИСТЕМА | Ubuntu 20.04 (Bionic Beaver) |
| TSK | 4.6.4 |
| xfsprogs | 5.3.0 |
| e2fsprogs | 1.45.5 |
| Набор данных | JPG | DOCX | PPTX | |
|---|---|---|---|---|
| 1 GB_before | 25/100 | 25/100 | 25/100 | 25/100 |
| 1 GB_after | 13/52 | 13/52 | 13/52 | 13/52 |
| 100 GB_before | 25/100 | 25/100 | 25/100 | 25/100 |
| 100 GB_after | 13/52 | 13/52 | 13/52 | 13/52 |
Таблицы 4 и 5 перечислите результаты экспериментов для наборов данных Ext4 и XFS на основе скорости восстановления и точности в качестве показателей успешности восстановления и экстракции. Коэффициент восстановления относится к проценту от общего количества существующих файлов в наборе данных и количеству удаленных файлов, которые были восстановлены. Точность относится к проценту от точного количества существующих файлов и количества удаленных файлов.
| Набор данных | TSK | Предлагаемая платформа | UFS Explorer | R-Studio | ||||
|---|---|---|---|---|---|---|---|---|
| REC | ACY | REC | ACY | REC | ACY | REC | ACY | |
| 1GB_before | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 |
| 1GB_after | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 |
| 100GB_before | 79 | 79 | 85 | 77 | 56 | 56 | 100 | 52 |
| 100GB_after | 53 | 50 | 100 | 100 | 100 | 100 | 99 | 100 |
| Набор данных | TSK | Предлагаемая структура | UFS Explorer | R-Studio | ||||
|---|---|---|---|---|---|---|---|---|
| REC | ACY | REC | ACY | REC | ACY | REC | ACY | |
| 1GB_before | - | - | 100 | 100 | 0* | 94 | 0** | 0** |
| 1GB_after | - | - | 100 | 100 | 0* | 94 | 0** | 0** |
| 100GB_before | - | - | 52 | 52 | 0* | 97 | 0** | 0** |
| 100GB_after | - | - | 100 | 100 | 0* | 91 | 0** | 0** |
* значение хэша не совпадает. ** значение хэша и имя файла не совпадают.
В файловой системе Ext4 бывают случаи, когда резервное копирование метаданных не выполняется в области журнала; следовательно, скорость восстановления составляет 85% и 100% для разделов объемом 1 ГБ и 100 ГБ соответственно. Однако точность имеет тенденцию к снижению, поскольку также существуют случаи, когда область, в которой хранятся фактические данные, перезаписывается или созданный в резервной копии индекс не является самым последним файлом. В случае файловой системы XFS скорость восстановления разделов объемом 1 ГБ и 100 ГБ составила 52%. Когда файл удаляется из файловой системы XFS, все метаданные, относящиеся к файлу, инициализируются значением 0, что делает восстановление невозможным.
В этом исследовании мы проанализировали изменения метаданных в Ext4 journal checksum v3 и XFS v5. На основе анализа, мы обнаружили, что структура блока дескрипторов в файловой системе Ext4 была изменена в соответствии со значением поля s_feature_incompat суперблока журнала в области журнала. Далее мы обнаружили, что в XFS v5 добавлены новые поля для гарантии целостности (например, uuid и crc) в структурах метаданных, таких как индекс и суперблок.
Используя это, предлагается платформа извлечения и восстановления файлов на основе TSK. Набор данных использовался для сравнения скорости восстановления и точности предлагаемой платформы с существующими коммерческими инструментами. Результаты эксперимента показали, что функция восстановления с использованием области журнала файловой системы Ext4 не была реализована в исходной TSK, и скорость восстановления и точность не могли быть измерены, поскольку файловая система XFS не была поддерживаемой файловой системой.
Что касается предлагаемого фреймворка, восстановление файлов выполнялось на основе метаданных файловой системы, а скорость и точность восстановления были относительно высокими по сравнению с коммерческими инструментами. Однако в случае с файловой системой XFS предложенный метод не учитывал индекс Btree и область журнала. Таким образом, восстановить файлы размером в 100 ГБ было невозможно. Мы намерены исправить это и рассмотреть возможность реализации функции восстановления с использованием области журнала файловой системы Ext4, а также применения функции извлечения и восстановления файлов файловой системы XFS к открытому исходному коду TSK.
Файловые системы постоянно обновляются, и осуществляемые значительные изменения метаданных могут повлиять на успех или неудачу цифровых судебных расследований. Соответственно, была предложена методика анализа изменения метаданных в файловых системах Ext4 и XFS в соответствии с этой необходимостью, и был разработан фреймворк на основе TSK. Кроме того, мы сравнили его скорость восстановления и точность с существующими коммерческими инструментами и убедились, что он более эффективен. В частности, путем применения метода извлечения файлов файловой системы XFS к предлагаемому фреймворку было доказано, что неподдерживаемые файловые системы могут быть расширены.
Таким образом, было подтверждено, что это может быть полезно в судебных расследованиях файловой системы, представляя методологию извлечения файлов и восстановления с помощью анализа метаданных файловой системы до и после удаления данных. Таким образом, в будущих исследованиях судебно-медицинская экспертиза, нацеленная на среду файловой системы, применяется к реальным системам видеонаблюдения и серверам, и метаданные должны быть выполнены методологии анализа и восстановления для Btrfs и OpenZFS. Кроме того, следует рассмотреть возможность исследования интегрированной файловой системы на базе TSK, которая может быть использована настоящими следователями.