, Криминалистика файловой системы

Криминалистика файловой системы

Фергус Тулан

Университетский колледж полиции Норвегии
Баллина, Типперэри

 

Первая публикация на английском языке: Февраль 2025

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

Опубликовано John Wiley & Sons, Inc., Хобокен, Нью-Джерси.

Одновременно опубликовано в Канаде.

Никакая часть данной публикации не может быть воспроизведена, сохранена в поисковой системе или передана в любой форме или любыми средствами, электронными, механическими, фотокопированием, записью, сканированием или иным образом, за исключением случаев, разрешённых в соответствии с разделом 107 или 108 Закона США об авторском праве 1976 года, без предварительного письменного разрешения Издателя или разрешения посредством уплаты соответствующей платы за копию в Copyright Clearance Center, Inc., 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, факс (978) 750-4470 или на веб-сайте www.copyright.com. Запросы издателю на получение разрешения следует направлять в Отдел разрешений, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, факс (201) 748-6008 или через интернет по адресу http://www.wiley.com/go/permission.

Уполномоченным представителем производителя в соответствии с Общим регламентом ЕС по безопасности продукции является Wiley-VCH GmbH, Boschstr. 12, 69469 Weinheim, Germany, e-mail: Product_Safety@wiley.com.

Торговые марки: Wiley и логотип Wiley являются товарными знаками или зарегистрированными товарными знаками John Wiley & Sons, Inc. и/или её филиалов в США и других странах и не могут использоваться без письменного разрешения. Все другие товарные знаки являются собственностью их соответствующих владельцев. John Wiley & Sons, Inc. не связана ни с одним продуктом или поставщиком, упомянутым в этой книге.

Ограничение ответственности/Отказ от гарантии: Хотя издатель и автор приложили все усилия для подготовки этой книги, они не делают никаких заявлений или гарантий относительно точности или полноты содержания этой книги и, в частности, отказываются от любых подразумеваемых гарантий товарной пригодности или пригодности для определённой цели. Никакая гарантия не может быть создана или расширена торговыми представителями или письменными торговыми материалами. Советы и стратегии, содержащиеся в настоящем документе, могут не подходить для вашей ситуации. Вам следует проконсультироваться со специалистом, если это уместно. Кроме того, читатели должны знать, что веб-сайты, перечисленные в этой работе, могли измениться или исчезнуть между моментом написания этой работы и моментом ее прочтения. Ни издатель, ни авторы не несут ответственности за какую-либо потерю прибыли или любые другие коммерческие убытки, включая, помимо прочего, особые, случайные, косвенные или другие убытки.

Wiley также публикует свои книги в различных электронных форматах. Некое содержимое, которое появляется в печатном виде, может быть недоступно в электронных форматах. Для получения дополнительной информации о продуктах Wiley посетите наш веб-сайт по адресу www.wiley.com.

Библиотека Конгресса подала заявку на каталогизацию в публикации:

ISBN твёрдой копии: 978-1-394-28980-6

Дизайн обложки: Wiley

Изображение на обложке: © aleksandarvelasevic/Getty Images

Набор в 9.5/12.5pt STIXTwoText by Straive, Chennai, India

www.wiley.com

2025-03-04

 

Елене

Спасибо за всё!

 Содержание

Введение
Предисловие
Структура
Ресурсы
Признательности
Часть I. Начальные сведения
Глава 1. Введение
Что такое цифровая криминалистика?
Криминалистика файловой системы
Принципы цифровой криминалистики
Методология цифровой криминалистики
Подготовка
Локализация / Сохранение
Получение
Обработка
Анализ
Отчёт
Гарантия качества
Возврат доказательств
Об этой книге
Кто должен читать эту книгу?
Структура книги
Выводы
Упражнения
Библиография
Глава 2. Linux в качестве платформы криминалистики
Программное обеспечение с открытым кодом
Преимущества программного обеспечения с открытым кодом
Открытый код ≠ бесплатный
Программное обеспечение с открытым кодом в цифровой криминалистике
Что такое Linux?
Анатомия ОС Linux
Дистрибутивы Linux
Краткая (очень) история Linux
Применение Linux
Учётная запись пользователя
Базовые команды Linux
Навигация по определённой файловой системе
Получение подсказки
Просмотр / редактирование текстового файла
Управление каталогами
Перенаправление и конвейеры
Linux в качестве платформы криминалистики
Команды для цифровой криминалистики
Хэширование
Шестнадцатеричный просмотр
Архивирование / сжатие
Команда file
Команда strings
Поиск с помощью (e)grep
Выводы
Упражнения / вопросы для обсуждения
Библиография
Глава 3. Начальные сведения из математики
Биты и байты
Системы счисления
Соглашения об обозначениях
Десятичные
Двоичные
Шестнадцатеричные
Преобразование чисел
Преобразование чисел при помощи Bash
Отрицательные числа
Числа с плавающей точкой
Представление текста
ASCII
ISO-8859
Unicode
UTF-8
UTF-16
Представление времени
Время Linux
Команда date Linux
Порядок следования байт и сырые данные
Выводы
Упражнения
Библиография
Глава 4. Диски, разделы и файловые системы
Дисковое хранилище
Традиционные шпиндельные диски
Оптические носители
Флеш- диски
Твердотельные диски
Разделы
Создание разделов / файловых систем в Linux
Монтирование файловых систем в Linux
MBR
Таблица разделов GUID
Файловые системы
Понятия файловых систем
Сопоставление файловых систем
Получение данных файловой системы
Сопоставление логического и физического получения данных
Получение данных в Linux
Семейство dd
EWF
guymager
Анализ файловых систем
Комплект Sleuth
Определение компоновки раздела
Определение типа файловой системы
Список файлов
Восстановление метаданных файла
Восстановление содержимого файла
Прочие команды TSK
Вырезание данных
Выводы
Упражнения
Библиография
Часть II. Файловые системы Windows
Глава 5. Файловая система FAT
Структуры на диске
Компоновка
Загрузочная запись тома
FSINFO
Таблица размещения файлов
Записи каталога
Дата и время файла
Соотнесение кластеров секторам
Анализ FAT32
Создание файловых систем FAT32
Предлагаемые файлы образов FAT32
Анализ FAT32 вручную
Обработка VBR
Обработка каталога корня
Обработка подкаталогов
Восстановление метаданных / содержимого
Расширенный анализ FAT32
Удалённые файлы
Метка тома
Выводы
Упражнения
Библиография
Глава 6. Файловая система ExFAT
Структуры на диске
Загрузочная запись тома
Таблица размещения файлов
Записи каталога
Карта бит размещения (Type: 0x81)
Таблица в верхнем регистре (Type: 0x82)
Метка тома (Type: 0x83)
Файл (Type: 0x85)
GUID тома (Type: 0xA0)
Расширение потока (Type: 0xC0)
Расширение имени файла
Прочие записи каталога
Анализ ExFAT
Создание файловых систем ExFAT
Предлагаемые файлы образов ExFAT
Анализ ExFAT вручную
Шаг 1: Обработка VBR
Шаг 2: Обработка каталога корня
Шаг 3: Обработка подкаталогов
Шаг 4: Восстановление метаданных
Шаг 5: Восстановление содержимого
Расширенный анализ ExFAT
Длинные имена файлов
Удалённые файлы
Фрагментированные файлы и большие каталоги
Выводы
Упражнения
Библиография
Глава 7. Файловая система NTFS
Структуры на диске
$Boot
Индекс
Массивы адресных записей
Время в NTFS
Главная файловая таблица (MFT)
Структура записи MFT
Заголовок записи MFT
Атрибуты просмотра
$STANDARD_INFORMATION (0x10)
$ATTRIBUTE_LIST (0x20)
$FILENAME (0x30)
$OBJECT_ID (0x40)
$SECURITY_DESCRIPTOR (0x50)
$VOLUME_NAME (0x60)
$VOLUME_INFORMATION (0x70)
$DATA (0x80)
$INDEX_ROOT (0x90)
$INDEX_ALLOCATION (0xA0)
$BITMAP (0xB0)
$REPARSE_POINT (0xC0)
$EA_INFORMATION (0xD0) и $EA (0xE0)
Анализ NTFS
Создание файловых систем NTFS
Предлагаемые файлы образов NTFS
Анализ NTFS вручную
Обработка $Boot
Восстановление $MFT
Обработка каталогов
Восстановление метаданных файла
Восстановление содержимого файла
Расширенный анализ NTFS
Последующие сведения файловой системы
Удалённые файлы
Фрагментированные файлы
Альтернативные потоки данных
Большие записи MFT
Выводы
Упражнения
Библиография
Часть III. Файловые системы Linux
Глава 8. Файловая система EXT2
Структуры на диске
Суперблок
Таблица дескрипторов групп блоков
Таблица Inode
Режим / полномочия
Флаги Inode
Указатели блоков
Данные и соответствие бит Inode
Локализация Inode
Анализ ext2
Создание файловых систем ext2
Предлагаемые файлы образов ext2
Анализ ext2 вручную
Обработка суперблока
Создание соответствий групп блоков
Обработка Inode каталога корня
Обработка самого каталога корня
Обработка каталогов
Обработка файлов
Расширенный анализ ext2
Фрагментированные файлы
Ссылки
Удалённые файлы
Выводы
Упражнения
Библиография
Глава 9. Файловые системы ext3/ext4
Предлагаемые файлы образов
Файловая система ext3
Журнал ext
Индексация каталога HTree
Файловая система ext4
Большие Inodes
Метки времени
Хранилище данных ext4
Хранилище на основе экстентов
Внутреннее хранилище
Символические ссылки
Удаление файла в ext4
Расширенные атрибуты
Дескрипторы групп блоков ext4
Гибкие группы блоков
Выводы
Упражнения
Библиография
Глава 10. Файловая система XFS
Структуры на диске
Группы размещения
Адресация
Адресация Inode
Деревья B+ XFS
Суперблок
Локализация суперблоков
Подписи XFS
Inodes XFS
Каталоги
Экстенты
Время в XFS
Анализ XFS
Создание файловых систем XFS
Предлагаемые файлы образов XFS
Анализ XFS вручную
Обработка суперблока
Локализация каталога корня
Обработка каталога корня
Обработка подкаталогов
Восстановление содержимого / метаданных
Расширенный анализ XFS
Управление свободным пространством AG
Свободный список AG
Управление Inode AG
Удалённые файлы
Расширенные атрибуты
Ссылки
Журнал XFS
Выводы
Упражнения
Библиография
Глава 11. Файловая система Btrfs
Структуры на диске
Суперблок
Деревья Btrfs
Структура дерева Btrfs
Структура заголовка узла
Внутренняя структура узла
Ключи Btrfs
Элементы Btrfs
Время в Btrfs
Логическая и физическая адресация
Анализ Btrfs
Создание файловых систем Btrfs
Предлагаемые файлы образов Btrfs
Методология анализа Btrfs
Анализ вручную файловой системы единичного устройства
Обработка суперблока
Обработка CHUNK_ARRAY
Локализация CHUNK_TREE
Обработка CHUNK_TREE
Локализация дерева корня
Локализация FS_TREE
Обработка FS_TREE
Обработка каталогов
Восстановление метаданных
Восстановление содержимого файлов
Расширенный анализ Btrfs
Удаление файла
Анализ внутренних узлов
Конфигурация со множеством узлов
Подчинённые тома и моментальные снимки
Выводы
Упражнения
Библиография
Часть IV. Файловые системы Apple
Глава 12. Файловая система HFS+
Структуры на диске
Ветвления
Время в HFS+
Заголовок тома
B- деревья
Файл каталога
Предоставление прав HFS+
Кодирование текста
Файл переполнения экстентов
Файл размещения
Журнал HFS+
Анализ HFS+
Создание файловых систем HFS+
Предлагаемые файлы образов HFS+
Анализ HFS+ вручную
Обработка заголовка тома
Локализация файла каталога
Обработка каталога B- дерева
Сбор метаданных
Восстановление содержимого файла
Расширенный анализ HFS+
Удалённые файлы
Индексные узлы
Фрагментированные файлы
Ссылки
Выводы
Упражнения
Библиография
Глава 13. Файловая система APFS
Структуры на диске
Время в APFS
Объекты
B- деревья
Контейнеры и тома
Суперблок контейнера
Суперблок тома
Соответствия объектов
Относящиеся к файлам структуры
Ключи файловой системы
Inode
Запись каталога
Экстент
Контрольные точки
Прочие структуры APFS
Анализ APFS
Создание файловых систем APFS
Предлагаемые файлы образов APFS
Анализ APFS вручную
Обработка суперблока контейнера
Обработка карты объекта контейнера
Обработка суперблока тома
Обработка карты объекта тома
Обработка дерева файловой системы
Расширенный анализ APFS
Удалённые файлы
Восстановление контрольной точки
B- деревья со множеством уровней
Множество томов
Расширенные атрибуты
Ссылки
Выводы
Упражнения
Библиография
Часть V. Будущее
Глава 14. Задачи будущего в цифровой криминалистике
Задачи цифровой криминалистики
Том данных
Согласование множества источников
Новые файловые системы
Шифрование
Облачное хранилище
Нехватка ресурсов
Людские ресурсы
Ресурсы программного обеспечения
Ресурсы аппаратных средств
Проверка инструментов / наборы данных
Нехватка стандартизации
Наследуемые / научные задачи
Представление доказательств
Человеческая ошибка / предвзятость
Куда мы проследуем далее
Обучение / образование
FOSS (Free Open-Source Software, Бесплатное ПО с открытым кодом)
Установка очерёдности
Искусственный Интеллект (ИИ, AI)
Криминалистика реальных данных
Правовые решения
Разработка набора данных / тестирование инструмента
Стандартизация
Совместное использование сведений
Виртуализация
Выводы
Библиография
Указатель

 Предисловие

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

Целевая аудитория нашей книги — все, кто заинтересован в цифровых расследованиях и желает знать, как из файловых систем восстанавливать доказательства. В неё входят студенты университетов, изучающие модули или даже целые программы в области цифровой криминалистики и кибербезопасности, а также сотрудники правоохранительных органов (или прочие следователи), которым поручено восстанавливать информацию из файловых систем и объяснять её актуальность. Для обеих аудиторий основная цель данной книги — снабдить глубоким пониманием того, как восстанавливаются сведения из обычных файловых систем.

 Структура

Эта книга состоит из пяти отдельных частей. В первой части приведены необходимые всем экспертам в области цифровой криминалистики предварительные сведения. В частях II–IV представлена техническая часть согласно их названию. Эти части посвящены распространённым для каждой из наиболее популярных операционных систем (Windows, Linux и Mac OS) файловым системам . В части V обсуждается будущее криминалистики файловых систем и то, какие новые (а также ряд прежних) задачи стоят перед этой дисциплиной.

Часть I, "Начальные сведения", начинается с общего ознакомления с цифровой криминалистикой и обсуждает некоторые лежащие в основе этой области принципы. Данная глава также знакомит читателя с методологиями цифровой криминалистики и с тем, как они применяются для оптимизации расследования. В главе 2 описывается операционная система Linux и то, как её можно использовать для анализа файловой системы. В оставшейся части текста будут приведены примеры с использованием командной строки Linux, но от читателей не требуется следовать данному правилу. Глава 2 содержит введение в Linux для тех, кто хочет применять его в дальнейшем. Для тех же, кто не собирается пользоваться ею (или уже использует), эту главу можно и пропустить. Глава 3 обсуждает вопросы представления информации. Компьютеры способны обрабатывать и хранить только двоичные данные (единицы и нули). То, как эти единицы и нули интерпретируются в виде значимых сведений, имеет жизненно важное значение. В данной главе показано, как в вычислительных системах представляются числа, текст и время, а также как мы интерпретируем необработанные шестнадцатеричные данные, с которыми мы встречаемся при расследовании файловой системы. Заключительная глава этой части знакомит читателя с дисковым хранилищем, разделами и файловыми системами. В этой главе описываются используемые в настоящее время наиболее распространённые схемы разбиения на разделы, а также показано, как их можно расположить. Затем приводится описание файловой системы и существующие в рамках этой организационной структуры и различные понятия. Глава заканчивается введением в процесс выборки данных с диска – как мы получаем собственно файловые системы, которые позднее будем обрабатывать, – а также анализом этих файловых систем.

В части II представлено семейство файловых систем Windows, хотя более точно его можно было бы назвать семейством Microsoft. Сюда входят FAT (глава 5), exFAT (глава 6) и NTFS (глава 7). На протяжении многих лет стандартом для съёмных носителей служили варианты файловой системы FAT. Хотя по мере того, как доминирующей становится exFAT ситуация меняется, в ходе расследований по-прежнему обнаруживается большое количество устройств с файловой системой FAT. Это, в сочетании с относительной простотой файловой системы FAT, означает, что она является идеальным выбором для первой изучаемой в этой книге файловой системы. Впоследствии была введена файловая система exFAT. Хотя некоторые считают её ещё одним вариантом файловой системы FAT, она достаточно развита, чтобы заслуживать отдельной главы. На сегодняшний день это самая распространённая из применяемых в съёмных носителях файловая система. Как FAT, так и exFAT поддерживаются всеми основными операционными системами и, в качестве таковых, могут быть использованы во многих случаях. Последней файловой системой Windows в данном тексте является NTFS. Файловая система New Technology по умолчанию применяется во всех системах Windows, а раз так, очень часто используется в цифровых расследованиях.

Часть III знакомит с файловыми системами Linux. Она начинается с файловых систем семейства ext (главы 8 и 9). Многие могут задаться вопросом, насколько важны эти главы, поскольку Linux редко используется в цифровых расследованиях. Тем не менее, это одни из самых важных применяемых в наши дни файловых систем. Семейство ext - это используемые по умолчанию в телефонах Android файловые системы, а раз так, это одна из наиболее часто встречающихся при расследовании применяемых файловых систем. Знакомство с этими файловыми системами имеет жизненно важное значение для всех специалистов по криминалистике файловых систем. Файловые системы семейства ext широко используются во многих устройствах Интернета вещей. И, хотя они не часто применяются в домашних компьютерах, для аналитика они являются очень важными файловыми системами. В этой части книги также представлены две менее распространённые файловые системы Linux: XFS (глава 10) и BtrFS (глава 11). Данные файловые системы встречаются в некоторых дистрибутивах Linux, а также в крупномасштабных приложениях для хранения данных, например, в центрах обработки данных. По мере увеличения ёмкости хранилища устройств эти файловые системы будут становиться все более распространёнными и на домашнем рынке.

В части IV рассматриваются файловые системы Apple. В течение многих лет устройства Apple применяли файловую систему HFS+ (глава 12). С конца 2017 года устройства Apple начали пользоваться файловой системой APFS (глава 13). Это современная файловая система, которая способна действенно масштабироваться до размеров современных устройств. В связи с популярностью устройств Apple (телефонов, планшетов, компьютеров и т.д.) данная файловая система очень часто встречается в современных цифровых расследованиях. Заключительная часть нашей книги посвящена будущему и, в частности, рассматривает проблемы, с которыми сообщество столкнётся в ближайшие годы.

Каждая из глав о файловой системе (главы 5-13) организована схожим образом. Первоначально для всякой файловой системы приводится описание общего расположения и собственно присутствующих в этой файловой системе структур. Далее следует её анализ вручную, при котором читатель может ознакомиться со всеми необходимыми для восстановления содержимого файла и метаданных шагами. Наконец, каждая глава заканчивается подробными разделами для каждой файловой системы. Сюда всегда входят такие темы, как удалённые и фрагментированные файлы, а также соотносимые к каждой из рассматриваемых файловых систем вопросы.

 Ресурсы

Для демонстрации анализа вручную и более глубоких вопросов, на протяжении всей книги используются примеры файловых систем. Все эти сведения доступны через вебсайт поддержки данной книги. Эти данные можно обнаружить на https://www.fsforensics.com/book.

Обращайтесь ко мне с любыми исправлениями.

Ireland, June 2024

FERGUS TOOLAN

 Благодарности

Когда я приступал к данному проекту, я даже не представлял себе насколько сложно будет его завершить. Он никогда не был бы закончен без поддержки многих людей. Большое спасибо всем, кто принимал хоть какое-то участие в этом! Есть кое- кто, кого необходимо упоминать напрямую!

Прежде всего, тех, кто предварительно ознакомился с самим документом. Спасибо! Моим техническим редакторам Рэю Джину, Алану Брауну, Ивару Фрихайму и Ульфу Бергуму, которые проверили списки кодов и упражнения в книге. Большое спасибо за это! Мой отец До́наль прочитал каждое слово в рукописи и внёс бесчисленные исправления и предложения по улучшению.

Большое спасибо команде редакторов John Wiley & Sons Ltd. Виктории Брэдшоу, Вишалу Падучуру и Эйлин Сорри за всю вашу помощь в процессе публикации.

На протяжении многих лет мне посчастливилось работать с замечательными людьми из оотрасли цифровой криминалистики. В своей нынешней должности я являюсь частью замечательной команды учёных и сотрудников правоохранительных органов. Спасибо Карлоте, Джорджине, Нине, Руне, Саре и Ульфу. А также бывшим коллегам, в том числе Рэй, Кормак, Джерри, Курт-Хельге, Ив, Йорн Хельге и Александру. Я считаю замечательными руководителей отдела расследований в Университетском колледже Норвежской полиции: Ивара, Джона Стайла, Дога и Ингер. Вы все снабдили меня свободой в изучении тем, которые интересовали меня больше всего.

Эта книга начиналась как пособие для моих студентов. Я полагаю, это все, кого я учил на протяжении многих лет. Большая часть предоставленный в данной книге сведений основана на тех сложных вопросах, которые вы мне задавали. Надеюсь, эта книга ответит на часть из них!

В годы моего становления у меня было несколько замечательных преподавателей в Университетском колледже Дублина. Особо хочу отметить Джо Карти, Джона Данниона, Ника Кушмерика и Генри Маклафлина. У меня не было бы ни возможности, ни уверенности взяться за такой проект без вашего вдохновляющего обучения на протяжении многих лет.

Этот проект никогда бы не был завершён без постоянной веры и поддержки моей семьи. Спасибо моим родителям, До́налю и Анне, которые всегда поощряли меня к осуществлению моей мечты и во всем меня поддерживали.

В конце концов, когда я уже подумывал о том, чтобы отказаться от этого проекта, моя партнёрша Хелен подбодрила меня продолжать. Она всегда верила, что я смогу это сделать, даже в те дни, когда я сам в это не верил. Спасибо!

Fergus Toolan