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

  содержимого Кластеры
Файл NTFS представляет собой совокупность атрибутов. Атрибуты делятся на резидентные и нерезидентные: содержимое резидентных атрибутов хранится непосредственно в записи MFT, тогда как для хранения содержимого нерезидентных атрибутов выделяются отдельные кластеры.
Кластером называется группа смежных секторов, количество которых равно степени 2 (то есть 1, 2, 4, 8, 16).
Каждому кластеру назначается адрес, начиная с 0. Нумерация начинается с первого кластера файловой системы, что создает гораздо меньше путаницы по сравнению со схемой нумерации FAT. Чтобы преобразовать адрес кластера в адрес сектора, достаточно умножить его на количество секторов в кластере:
СЕКТОР = КЛАСТЕР * секторов_в_кластере
NTFS не предъявляет жестких требований к строению файловой системы. Любой кластер может быть выделен для хранения любого файла или атрибута (за исключением файла $Boot, который всегда начинается с первого сектора). Компания Microsoft использует ряд общих схем устройства файловой системы; они будут рассмотрены в разделе «Алгоритм выделения». Если размер тома не кратен размеру кластера, некоторые секторы в конце диска не будут принадлежать ни одному кластеру. Общий размер этой зоны меньше размера кластера.

Файл $Bitmap
Состояние выделения кластера определяется при помощи файла метаданных файловой системы, хранящегося в записи MFT 6. Атрибут $DATA этого файла содержит один бит для каждого кластера файловой системы; например, бит О представляет кластер 0, а бит 1 представляет кластер 1. Если бит равен 1, значит, кластер выделен; если бит равен 0, кластер свободен. Подробное описание структуры битовой карты и анализ примера приводятся в разделе «Файл SBitmap» главы 13.
Информация о файле $Bitmap в файловой системе нашего тестового образа выглядит так: istat -f ntfs ntfsl.dd 6 [...]
Attributes:
Type: $STANDARD_INFORMATION (16-0)              Name: N/A Resident size: 72
Type: $FILE_NAME (48-2) Name: N/A Resident size: 80 Type: $DATA (128-1) Name: $Data Non-Resident size: 128520 514113 514114 514115 514116 514117 514118 514119 514120 514121 514122 514123 514124 514125 514126 514127 514128 [...]
Мы видим, что файл $Bitmap обладает стандартными атрибутами файлов, а его временные штампы совпадают с приводившимися ранее для других файлов метаданных файловой системы.
Файл $BadClus
NTFS отслеживает поврежденные кластеры, выделяя их атрибуту $DATA файла метаданных файловой системы $BadCLus (запись MFT 8). Атрибут $DATA, которому присвоено имя $BAD, хранится в разреженном формате; когда система обнаруживает поврежденный кластер, он добавляется в этот атрибут. Как говорилось в главе 11, разреженный файл экономит место за счет отказа от выделения кластеров, если они заполнены нулями. Указанный размер атрибута $Bad соответствует общему размеру файловой системы, но изначально ему не выделяется ни один кластер. Обнаруживая поврежденные кластеры, Windows добавляет их в атрибут $Bad, но многие жесткие диски выявляют поврежденные секторы еще до того, как это сделает файловая система.
Информация о файле $BadCLus в файловой системе нашего тестового образа выглядит так: istat -f ntfs ntfsl.dd 8 [...]
Attributes:
Type: $STANDARD_INFORMATION (16-0) Name: N/A Resident size: 72 Type: $FILE_NAME (48-3) Name: N/A Resident size: 82 Type: $DATA (128-2) Name: $Data Resident size: 0 Type: $DATA (128-1) Name: $Bad Resident size: 1052803072
Обратите внимание: файл содержит два атрибута $DATA, причем атрибут по умолчанию ($Data) является резидентным и имеет нулевой размер. Атрибут $DATA с именем $Bad является нерезидентным и имеет размер 1 052 803 072 байта, однако адреса кластеров не показаны, потому что файловая система не содержит
поврежденных кластеров. Размер атрибута совпадает с размером файловой системы, показанным в выходных данных fsstat.
Алгоритмы выделения
В этом разделе описаны мои наблюдения относительно стратегии, используемой Windows ХР при выделении новых кластеров NTFS. Как и в других файловых системах, стратегия выделения зависит от конкретной ОС, и в разных реализациях NTFS могут использоваться разные стратегии. Я заметил, что Windows ХР использует алгоритм оптимального подбора. Это означает, что данные размещаются таким образом, чтобы наиболее эффективно использовать доступное пространство, даже если это не первый или не следующий доступный блок. Следовательно, при небольшом объеме записываемые данные помещаются в кластеры, входящие в небольшую группу свободных кластеров — вместо большой группы, в которой могут храниться большие файлы. Например, в сценарии, показанном на рис. 12.1, для файла требуется выделить 10 кластеров. В системе существует три группы свободных кластеров. Первая группа находится в кластерах 100-199, вторая — в кластерах 280-319, а третья — в кластерах 370-549. Алгоритм оптимального подбора выделяет под новый файл кластеры 280-289, потому что это наименьшая из возможных групп кластеров, в которых поместится новый файл.
100 свободных              40              свободных              180 свободных
              кластеров              кластеров              кластеров
Ж



Память для 10 кластеров



Рис. 12.1. Алгоритм оптимального подбора выделяет 10 кластеров из наименьшего возможного свободного пространства
Структура файловой системы
Файловая система NTFS не обладает жестко заданной структурой, но при форматировании файловой системы Windows соблюдает ряд общих правил.
В большинстве версий NTFS структура различается, но существует целый ряд общих концепций.
К их числу относится концепция зоны MFT. Windows создает таблицу MFT минимального размера и расширяет ее только при необходимости добавления новых записей. Таким образом, выделение пространства за MFT для хранения файлов создает риск фрагментации таблицы. Чтобы этого не произошло, Microsoft резервирует часть файловой системы для MFT. Зоной MFT (MFT Zone) называется коллекция смежных кластеров, которые не используются для хранения содержимого файлов или каталогов до тех пор, пока не будет заполнен весь диск. По умолчанию Microsoft выделяет под MFT 12,5% файловой системы. После заполнения всей файловой системы используется зона MFT.

Все версии NTFS и Windows выделяют первые кластеры файлу $Boot Windows NT и 2000 размещают файлы метаданных файловой системы сразу же после файла $Boot и в середине файловой системы. Например, если в файловой системе используются 1-килобайтные кластеры, то первые 8 кластеров будут выделены файлу $Boot, а кластеры файла $MFT могут начинаться с кластера 16 или 32. Следующие 12,5% файловой системы попадают в зону MFT. Средний кластер файловой системы выделяется файлу $MFTMirr, за ним следуют остальные файлы метаданных файловой системы — такие, как $LogFile, $Root, SBitmap и $Upcase. Между Windows NT и 2000 обнаружилось одно различие: NT помещает файл $AttrDef в последнюю часть файловой системы, а в Windows 2000 он размещается перед файлом $MFT.
Эксперименты показали, что Windows ХР перемещает часть данных к точке, отмечающей треть файловой системы. Так, кластеры файлов $LogFile, $AttrDef, $MFT и $Secure выделяются от трети пространства файловой системы. Остальные файлы метаданных файловой системы размещаются от половины файловой системы. Только файл $Boot находится в нескольких начальных кластерах. Все кластеры между файлами метаданных файловой системы могут выделяться пользовательским файлам и каталогам. На рис. 12.2 показано местонахождение различных файлов метаданных файловой системы, отформатированной в Windows 2000 или ХР.
$MFTMirr, $LogFile $Root, $Bitmap

Рис. 12.2. Структура метаданных файловой системы, отформатированной в Windows 2000 и Windows ХР


Методы анализа
Анализ данных в категории содержимого обычно сопряжен с поиском конкретного кластера, определением его состояния выделения и обработкой содержимого тем или иным способом. Найти конкретный кластер несложно, потому что первый кластер находится в начале файловой системы, а размер кластера задается в первом секторе.
Чтобы проверить состояние выделения кластера, следует найти файл $Bitmap и обработать его атрибут $DATA. Каждый бит этого атрибута соответствует кластеру в файловой системе.
К числу стандартных приемов анализа принадлежит извлечение всего свободного пространства файловой системы. В NTFS эта задача решается анализом файла $Bitmap и извлечением содержимого всех кластеров с нулевыми битами. Админи
стративные данные файловой системы NTFS хранятся в файле, поэтому они не будут рассматриваться как свободные данные в этом процессе.
Факторы анализа
Не существует никаких особых обстоятельств, которые необходимо было бы учитывать при анализе категории содержимого NTFS (в отличие от других файловых систем). Адресация кластеров начинается с первого кластера, поэтому необходима только одна схема адресации. Microsoft обычно выделяет под файловую систему только реально используемое пространство, поэтому в конце файловой системы не должно быть секторов, не обладающих адресом кластера. С другой стороны, это означает, что после файловой системы и перед концом тома могут храниться скрытые данные.
При проведении поиска нет различий между поиском по логическому тому и поиском по логической файловой системе, потому что каждый сектор, используемый файловой системой, выделяется кластеру. Поскольку все данные категории файловой системы ассоциируются с файлами, в любом конкретном случае должно быть понятно, выделен кластер или нет. Для сравнения вспомните, что в системе FAT многие программы расходятся в отношении того, нужно ли рассматривать область FAT и зарезервированную область как выделенное пространство или нет.
Как и во всех современных системах, всегда проверяйте все кластеры, помеченные как поврежденные на уровне файловой системы. Как правило, диски заменяют поврежденные секторы еще до того, как об их существовании станет известно файловой системе.
Сценарий анализа
В этом примере мы найдем в файловой системе кластер 9 900 009. Первым шагом должно стать определение размера кластера. Мы читаем первый сектор файловой системы и определяем, что каждый сектор занимает 512 байт, а каждый кластер состоит из 8 секторов (4 096 байт).
Кластер 0 в NTFS начинается с сектора 0. Следовательно, адрес сектора искомого кластера вычисляется простым умножением адреса кластера на количество секторов в кластере. Умножение дает результат 792 000 072. Чтобы получить смещение в байтах, достаточно умножить адрес сектора на 512; произведение равно 40 550 436 864. Сравните, сколько действий пришлось бы выполнить в FAT для определения смещения или адреса сектора для кластера. 
<< | >>
Источник: Кэрриэ Б.. Криминалистический анализ файловых систем. 2007

Еще по теме Категория данных:

  1. Категории данных
  2. Категория данных содержимого
  3. Категория данных файловой системы
  4. Методы анализа и категории данных
  5. Категория данных файловой системы
  6. Категория прикладных данных
  7. Категория данных имен файлов
  8. Категория данных файловой системы
  9. Категория прикладных данных
  10. Категория данных имен файлов
  11. Категория прикладных данных
  12. КАТЕГОРИИ ПРАКТИКИ И КАТЕГОРИИ АНАЛИЗА
  13. 3. Защита прав на программы для ЭВМ и базы данных Регистрация программ для ЭВМ и баз данных
  14. Хранение и использование персональных данных работников. Передача персональных данных работников
  15. Понятие персональных данных работника. Обработка персональных данных работника
  16. Категория метаданных
  17. Категория метаданных
  18. Категория файловой системы