<<
>>

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

  Анализ данных в категории файловой системы направлен на определение конфигурации и строения файловой системы. В NTFS первым шагом должна стать обработка загрузочного сектора в первом секторе файловой системы, являющегося частью файла $Boot.
Из загрузочного сектора берутся сведения о начальном адресе MFT и размере каждой записи MFT. На основании этих сведений обрабатывается первая запись MFT, связанная с файлом $MFT. Из этой записи берется информация о местонахождении других записей MFT. Если какие-либо данные оказались поврежденными, но размер тома известен, можно найти средний сектор файловой системы и взять из него резервную копию первых записей MFT, хранящуюся в файле $MFTMirr.

После определения строения MFT можно переходить к поиску и обработке файлов метаданных файловой системы $Volume и $AttrDef. Из этих файлов берется информация о версии файловой системы, метке тома и определениях специальных атрибутов.

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

Категория данных файловой системы почти не содержит пользовательских данных. Загрузочный сектор находится проще всего и содержит только базовую структурную информацию. Остальные данные хранятся в одной из записей MFT, но найти ее «вручную», с помощью одного лишь шестнадцатеричного редактора, не так уж просто. Загрузочный сектор содержит ряд значений, не используемых NTFS, но Microsoft требует, чтобы некоторые из них были равны нулю. Я обнаружил, что Windows ХР отказывается монтировать файловые системы, у которых эти поля содержат ненулевые значения.

Небольшой объем данных можно скрыть внутри загрузочного сектора, но больше свободного места доступно в конце файла $Boot после загрузочного кода. Я обнаружил здесь несколько неиспользуемых секторов. Чтобы выявить резервное пространство тома или неиспользуемое пространство после файловой системы,

следует сравнить количество секторов в файловой системе с размером тома.

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

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

Файл $MFT может иметь произвольный размер, причем в Windows этот размер никогда не уменьшается. Конец файла может использоваться для хранения скрытых данных, однако этот способ весьма рискован, потому что данные могут быть стерты в ходе стандартных операций. Например, пользователь может создать множество файлов, в результате чего MFT вырастет до большого размера. Если после этого файлы будут удалены, в MFT останутся неиспользуемые записи, в которых могут размещаться скрытые данные.

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

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

В процессе расследования был обнаружен жесткий диск, с которого были сняты данные. К сожалению, диск содержал большое количество поврежденных секторов, включая первый сектор (в котором находится таблица разделов) и сектор 63 (где обычно начинается первый раздел). Следовательно, мы должны выяснить, начинается ли раздел с сектора 63, а также определить его тип и размер. Диск был взят из системы Windows ХР, и мы предполагаем, что на нем использовалась файловая система NTFS. Образ диска снят в низкоуровневом формате, а поврежденные секторы заполнялись нулями.

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

Для проведения поиска выбрана утилита sigfind, хотя вместо нее можно воспользоваться любой программой с возможностью поиска по шестнадцатеричному значению. sigfind -о 510 -1 АА55 disk5.dd Block size: 512 Offset: 510

Block

210809

(-)

Block

210810

(+1)

Block

210811

(+1)

Block

210812

(+1)

Block

210813

(+1)

Block

210814

(+1)

Block

210815

(+1)

Block

210816

(+1)

Block

318170

(+107354)

Block

339533

(+21363)

Block

718513

(+378980)

[...]

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

Проанализируем одну из копий и посмотрим, является ли совпадение ложным: dd if=disk5.dd skip=210809 count=l | xxd

0000000: еЬЗс              904d              5357              494e              342e              3100              0208 0100              .lt;.MSWIN4.1

0000016: 0200              0203              51f8              0800              1100              0400              0100 0000              ....Q

0000032: 0000              0000              8000              2900              0000              004e              4f20 4e41                            )....N0              NA

0000048: 4d45              2020              2020              4641              5431              3220              2020 33c9              ME FAT12              3.

[...3

Содержимое сектора не характерно для файловой системы NTFS; скорее, оно напоминает загрузочный сектор FAT12. Проверим совпадение в следующем секторе: dd i f=disk5.dd skip=210810 count=l | xxd

0000000: eb58              904d              5357              494e              342e              3100              0202 0800              .X.MSWIN4.1

0000016: 0100              0400              00f8              0000              1100              0400              0100 0000

0000032: 0000 0200 eOlf 0000 0000 0000 0000 0000

0000048: 0100 0600 0000 0000 0000 0000 0000 0000

0000064: 8000 2900 0000 004e 4f20 4e41 4d45 2020              NO              NAME

0000080: 2020 4641 5433 3220 2020 33c9 8edl bcf4 FAT32 3

[...]

Перед нами базовый шаблон загрузочного сектора файловой системы FAT32. Совпадение в секторе 210 811 соответствует базовому шаблону структуры данных FAT FSINFO, не содержащей значений. Похоже, эти совпадения не имеют отношения к нашему поиску загрузочного сектора NTFS; мысленно берем их на заметку и движемся дальше.

Чтобы уменьшить число ложных совпадений, проведем поиск строки «NTFS», начиная с байта 3 сектора; эта строка является частью поля OEM. Сравнение результатов поиска с предыдущими совпадениями поможет сузить круг поиска для нашей системы. Следует помнить, что строка «NTFS» не принадлежит к обязательным значениям загрузочного сектора NTFS, поэтому ее может и не быть. В шестнадцатеричном представлении строка «NTFS» имеет вид 0х4е544653; некоторые программы позволяют искать секторы, содержащие обе сигнатуры. sigfind -0 3 4е544653 disk5.dd

На этот раз количество совпадений оказывается гораздо меньшим. Сравнивая результаты, мы обнаруживаем, что секторы 1 0755 545,1 075 561 и 2 056 319 присутствуют в обоих результатах. Содержимое сектора 1 075 545 выглядит вроде бы подходящим, но общее количество секторов в нем равно 0. То же происходит в секторе 1 075 561; следовательно, эти данные бесполезны.

Скорее всего, они не принадлежат реальной файловой системе.

Сектор 2 056 319 содержит больше ненулевых значений, чем предыдущие два совпадения. Поле размера кластера в нем равно 1024 байт; количество секторов — 2 056 256, а начальный кластер MFT — 342 709. Если это действительно загрузочный сектор, возможны два сценария. Во-первых, это может быть копия, расположенная в первом секторе файловой системы; во-вторых, это может быть копия в секторе, следующем за концом файловой системы. Мы замечаем, что указанное

количество секторов файловой системы на 64 сектора меньше адреса, в котором мы нашли загрузочный сектор. Следовательно, это может быть резервный загрузочный сектор файловой системы, начинающейся в секторе 63.

Для проверки этой теории обратимся к MFT. В загрузочном секторе указано, что MFT начинается с кластера 342 709, что соответствует сектору 685 418 файловой системы и сектору 685 481 диска. Каждая запись MFT начинается с сигнатурной строки «FILE», и мы находим сигнатуру в положенном месте: dd if=disk5.dd skip=685481 count=l | xxd

0000000: 4649 4c45 3000 0300 4ba7 6401 0000 0000 FILE0...K.d

[...]

Чтобы убедиться в том, что мы действительно нашли первую запись MFT, мы возвращаемся на два сектора назад (поскольку размер каждой записи MFT равен 1024 байт) и видим, что сектор не начинается с сигнатуры «FILE»: dd if=disk5.dd skiр=685479 count=l | xxd

0000000: ffff OOff ffff ffff ffff ffff ffff ffff

[...]

Теперь можно с уверенностью сказать, что на диске могла существовать файловая система NTFS, которая начиналась в секторе 63 и имела размер 2 056 256 секторов. Мы создаем копию дискового образа и копируем резервную копию загрузочного сектора в сектор 63. Чтобы импортировать файловую систему в обычную программу анализа, можно либо извлечь 2 056 256 секторов из дискового образа, либо создать в секторе 0 образа простейшую таблицу разделов, содержащую раздел в секторах 63-2 056 318. 

<< | >>
Источник: Кэрриэ Б.. Криминалистический анализ файловых систем. 2007

Еще по теме Методы анализа:

  1. 4.4.2. Диагностический анализ инновационной среды организации по методу БУУОТ-анализа
  2. Методы анализа и категории данных
  3. 3.1. Количественные и качественные методы экономического анализа
  4. 3.5. Методы факторного анализа экономических показателей
  5. Методы анализа
  6. Методы анализа
  7. Методы анализа
  8. 3.3. Статистические и экономико-математические методы анализа
  9. 3.1. Количественные и качественные методы экономического анализа
  10. 3.6. Индексный метод факторного анализа
  11. 3.3. МЕТОДЫ АНАЛИЗА И ПРОГНОЗИРОВАНИЯ ФИНАНСОВЫХ ПОКАЗАТЕЛЕЙ.
  12. 4.2. Основные методы и виды анализа в системе маркетинга
  13. Методы анализа
  14. Методы анализа