Итак, мы знаем, как найти кластер. Теперь необходимо определить, какие кластеры выделены, а какие остаются свободными. Состояние выделения кластера определяется по структуре FAT. Обычно FAT существует в двух копиях, и первая копия начинается после зарезервированной области файловой системы. FAT более подробно рассматривается в главе 10, но необходимую информацию я приведу здесь.

Структура FAT используется для многих целей, но базовая концепция проста: каждый кластер файловой системы представлен одной записью. Например, запись таблицы 481 соответствует кластеру 481. Каждая запись таблицы представляет собой одно число, максимальное значение которого зависит от версии FAT. В файловых системах FAT12 используются 12-разрядные записи, в FAT16 - 16-разрядные, а в FAT32 запись таблицы состоит из 32 разрядов (из которых используются только 28).

Если запись таблицы равна 0, кластер не выделен файлу. Если она равна 0xff7 для FAT12, 0xfff7 для FAT16 или OxOfff fff7 для FAT32, кластер помечен как поврежденный и не может выделяться файлам. Все остальные значения означают, что кластер выделен, а их интерпретация будет рассмотрена позднее, в разделе «Категория метаданных».

Алгоритмы выделения

При выделении кластеров ОС использует определенный алгоритм. Тестирование систем Windows 98 и Windows ХР показало, что в обоих случаях использовался алгоритм поиска следующего доступного кластера. Этот алгоритм ищет первый доступный кластер, начиная от предыдущего выделенного кластера. Предположим, кластер 65 выделен новому файлу, а кластер 62 свободен. Следующий поиск начнется с кластера 66, а кластер 62 на некоторое время останется свободным (рис.

9.6). Процесс выделения кластеров зависит от многих факторов, и идентифицировать точный алгоритм трудно.

Чтобы найти свободный кластер для выделения файлу, ОС сканирует FAT и ищет запись, содержащую 0. Вспомните, что в резервной области FAT32 хранится структура данных FSINFO с номером следующего свободного кластера, которым операционная система может руководствоваться при поиске. Если потребуется перевести кластер в свободное состояние, система находит соответствующую запись в структуре FAT и заполняет ее нулями. Большинство операционных систем не стирает содержимое кластеров при освобождении, если только эта операция не реализована как функция надежного удаления информации.

Рис. 9.6. Поиск свободного кластера начинается не от начала файловой системы, а с последнего выделенного кластера

Методы анализа

Анализ данных в категории содержимого выполняется для нахождения конкретного блока данных, проверки его статуса выделения и выполнения операций с содержимым. Найти конкретный блок данных в FAT сложнее, чем в других файловых системах, потому что адресация кластеров начинается не с начала файловой системы. При обращении к блоку данных, расположенному до начала области данных, необходимо использовать адрес сектора. Для блоков в области данных могут использоваться как адреса секторов, так и адреса кластеров.

Состояние выделения каждого кластера определяется по записи кластера в FAT. У свободных кластеров значение записи равно нулю, а у выделенных оно отлично от нуля. Если потребуется извлечь содержимое всех свободных кластеров, переберите все записи FAT и извлеките каждый кластер с нулевым значением в таблице. Блоки данных, расположенные до начала области данных, в FAT не представлены, следовательно, они не имеют формального состояния выделения, хотя большинство таких блоков используется файловой системой. Проверьте свои программы анализа и выясните, считают ли они свободными блоки, предшествующие области данных.

Факторы анализа

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

Поврежденные блоки данных необходимо анализировать в файловых системах любого типа, но Microsoft сообщает, что некоторые защищенные приложения хранят информацию в кластерах FAT, помеченных как поврежденные. По этой причине программа ScanDisk для Windows не проверяет, действительно ли повреждены помеченные секторы [Microsoft, 2004b]. Некоторые версии команды format для Windows сохраняют статус поврежденных кластеров при повторном форматировании файловой системы.

Размер области данных может оказаться некратным размеру кластера, поэтому в конце области данных могут располагаться секторы, не принадлежащие кластеру. Такие секторы используются для скрытия информации или содержат данные, оставшиеся от предыдущей файловой системы. На рис. 9.7 показан пример файловой системы с кластерами, состоящими из 2 секторов, и нечетным количеством секторов. Последний сектор, помеченный серым цветом, не имеет адреса кластера.

Рис. 9.7. Последние секторы области данных не образуют полноценного кластера, поэтому в них может храниться скрытая информация или данные от предыдущей файловой системы

Чтобы узнать, присутствуют ли в системе неиспользуемые секторы, вычтите адрес сектора для кластера 2 из общего количества секторов и разделите разность на количество секторов в кластере. Если деление выполняется с остатком, значит, неиспользуемые сектора присутствуют:

(общее количество секторов - адрес сектора для кластера 2) / (количество секторов в кластере)

Скрытые данные также могут храниться между концом последней действительной записи основной структуры FAT и началом резервной копии или же между концом последней записи резервной FAT и началом области данных. Чтобы вычислить объем неиспользуемого пространства, сравните размер каждой структуры FAT, указанный в загрузочном секторе, с размером, необходимым для хранения фактического количества секторов в файловой системе. Например, в файловой системе FAT32, которую мы ранее анализировали командой fsstat, каждой копии FAT было выделено 797 секторов. Каждая запись таблицы в файловой системе FAT32 занимает четыре байта, следовательно, каждый 512-байтовый сектор содержит 128 записей. В каждой таблице помещается 797 секторов * 128 (записей/сектор) = 102 016 записей

Из выходных данных fsstat видно, что количество кластеров равно 102 002, следовательно, в таблице имеется 14 неиспользуемых записей, а их общий размер составляет 64 байта.

Не каждому сектору тома ставится в соответствие адрес кластера, поэтому результаты поиска по логическому тому и логической файловой системе могут различаться. Протестируйте свои программы и определите, проводят ли они поиск в загрузочном секторе и областях FAT. Один из простых способов - проведите поиск строки «FAT» и посмотрите, будет ли найден загрузочный сектор (впрочем, сначала убедитесь в том, что загрузочный сектор содержит эту строку).

Сценарий анализа

Имеется файловая система FAT16, требуется найти первый сектор кластера 812. У нас есть только шестнадцатеричный редактор, не имеющий специальных функций поддержки файловой системы FAT.

Первым шагом станет просмотр загрузочного сектора, расположенного в секторе 0 файловой системы. В результате обработки сектора мы узнаем, что он содержит шесть зарезервированных секторов, две копии FAT и каждая копия FAT занимает 249 секторов. Каждый кластер состоит из 32 секторов, а корневой каталог содержит 512 записей.

Теперь нужно заняться вычислениями. Первая копия FAT начинается в секторе 6 и заканчивается в секторе 254. Вторая копия FAT начинается в секторе 255 и заканчивается в секторе 503. Далее следует корневой каталог. Корневой каталог содержит 512 записей; каждая запись (как будет показано далее) занимает 32 байта, поэтому каталог располагается в секторах 504-535, а область данных начинается в секторе 536.

Первый кластер области данных обладает адресом 2. Соответственно, искомый кластер 812 будет 810-м кластером области данных. Так как каждый кластер занимает 32 сектора, кластер 812 смещен от начала области данных на 25 920 секторов. Наконец, мы прибавляем начальный адрес области данных и определяем, что кластер 812 начинается в секторе 26 456 и продолжается до сектора 26 487. Структура диска показана на рис. 9.8.

Рис. 9.8. Структура диска в примере с поиском кластера 812

Категория метаданных

К категории метаданных относятся данные, описывающие файлы или каталоги: местонахождение содержимого, дата и время, права доступа. Эта категория данных будет использоваться для получения дополнительной информации о файле и идентификации подозрительных файлов. В файловой системе FAT эта информация хранится в структуре записи каталога. Структура FAT также используется для хранения метаданных, описывающих файлы и каталоги.

Адреса кластеров и секторов | Криминалистический анализ файловых систем | Записи каталога


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



Новости за месяц

  • Апрель
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31