Реагирование на инциденты с буферами NTFS INDX — Часть 2: Внутренние структуры атрибута имени файла

Джефф Хамм и Уильям Баллентин

На прошлой неделе в M-Unition мы с Вилли опубликовали первую публикацию из серии NTFS INDX Buffers . В первом сообщении объяснялось, как извлечь атрибут INDX с помощью различных инструментов. Во второй части этой серии мы подробно рассмотрим двоичную структуру атрибута имени файла. Атрибут имени файла используется для отслеживания содержимого буфера INDX.

Часть 2: Внутренняя структура атрибута имени файла

Атрибут имени файла в файловой системе NTFS отслеживает метаданные, связанные с одним именем файла одного файла. Для любого файла может существовать несколько атрибутов имени файла — например, псевдоним короткого имени файла. Эти метаданные включают имя файла, временные метки, физический размер файла и логический размер файла. Атрибуты имени файла всегда находятся в $ MFT (главной таблице файлов) в качестве подструктуры записи файла $ MFT. Эти атрибуты имеют динамический размер в $ MFT, поскольку компоненты пути в NTFS варьируются от 1 до 255 символов.

Основная таблица файлов

Чтобы понять роль filename, нам сначала необходимо просмотреть структуру $ MFT. $ MFT — это специальный файл NTFS, который организует остальные файлы в файловой системе. Он состоит из метаданных и определяет отношения между всеми каталогами и файлами. В некотором смысле файл $ MFT является сутью файловой системы NTFS.

NTFS структурирует $ MFT на небольшие сегменты, называемые записями, каждый из которых описывает один файл или каталог. Когда эти записи соответствуют файлам, запись указывает, где найти содержимое данных файла. Когда эти записи соответствуют каталогам, запись отслеживает содержимое каталога. В обоих случаях запись $ MFT хранит метаданные в атрибутах.

Примеры атрибутов включают стандартные информационные атрибуты (тип 0x10), информационные атрибуты имени файла (тип 0x30) и атрибуты данных (тип 0x80). Хотя длина записи $ MFT составляет 1024 байта, размер атрибутов может варьироваться. Они располагаются последовательно внутри записи $ MFT.

Атрибуты имени файла

Атрибуты имени файла — это особый тип атрибута записи $ MFT. Они отслеживают информацию, связанную с одним именем файла для одного файла. В NTFS у файла может быть более одного имени файла. Например, большинство файлов имеют имя файла формата 8.3 (например, «DOCUME ~ 1») в дополнение к имени файла в формате Unicode (например, «Документы и настройки»). Это означает, что каждая запись $ MFT часто имеет более одного атрибута имени файла.

Атрибут хранит временные метки измененного, доступного, измененного и созданного/рождения (MACb), которые относятся к значению имени файла. Эти временные метки обновляются независимо от временных меток стандартных информационных атрибутов, которые меняются, когда пользователь обращается к содержимому файла или изменяет его. Временные метки атрибута имени файла изменяются при обновлении имени файла, например, когда пользователь переименовывает файл из «Секретные планы мирового господства.docx» в «Здесь нечего видеть.docx».

Экспертам-криминалистам рекомендуется просматривать данные атрибутов имени файла, поскольку они предлагают альтернативные и дополнительные точки данных для интересных файлов. Поскольку атрибут имени файла содержит собственный набор временных меток MACb, и может даже быть много атрибутов имени файла для одного интересного файла, исследователь может создать гораздо более надежную временную шкалу активно. «Удержание времени» или изменение информации о метке времени MACb для защиты от криминалистики легко для стандартных меток времени информационных атрибутов. Однако временные метки имени файла сложно убедительно изменить, поскольку Windows API не предоставляет необходимые функции. Эксперты-криминалисты часто рассматривают все временные метки как набор для выявления аномалий, и временные метки имен файлов имеют решающее значение в этом процессе.

Помимо меток времени и имен файлов, атрибут имени файла содержит смещение файла относительно записи $ MFT для файла содержащий каталог. Исследователь может использовать эти указатели для восстановления иерархии каталогов файловой системы. Например, оба метода analysisMFT.py (http://www.integriography.com/) и MFTINDX.py (https://github.com/williballenthin/INDXParse) используют этот метод для обработки $ MFT и сообщения о содержимом файловая система. На рис. 1 и в таблице 1 перечислены все данные, отслеживаемые в атрибуте имени файла.

На следующем рисунке приведена подробная двоичная структура атрибута имени файла. Источником этого фрагмента кода C является Sleuthkit (http://www.sleuthkit.org).

Заключение

Атрибуты имени файла представляют собой структуру NTFS, которая содержит криминалистически значимые метаданные. Исследователям следует использовать временные метки атрибутов имени файла, чтобы расширить свои временные рамки и выявить аномалии. Криминалистические инструменты мертвого ящика также используют эти атрибуты для восстановления структуры папок, с которыми взаимодействовал подозреваемый или жертва. Анализ и понимание бинарной структуры этих ключевых артефактов позволяет вам изучить существующие методы и потенциально разработать новые решения для поиска зла. Кроме того, индексы NTFS используют ту же структуру, что и атрибуты имени файла для хранения информации — мы переадресовываем это в четвертой части этой серии статей.

Обратите внимание, что мы обновили сообщение на прошлой неделе, чтобы включить четвертый инструмент, Mandiant Intelligent Response® (MIR). Агент MIR v.2.2 имеет возможность извлекать записи INDX изначально. Мы рекомендуем просмотреть исправленную публикацию, чтобы узнать, как использовать MIR с записями INDX.

Оцените статью
techsly.ru
Добавить комментарий