Задать вопрос юристу

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


К категории метаданных относятся данные, содержащие информацию о файлах и каталогах. В этом разделе рассказано, где UFS хранит данные и как организуется их анализ.
Общие сведения
В UFS, как и в ExtX, метаданные файлов и каталогов хранятся в индексных узлах.
UFS2 также дает возможность сохранить дополнительную информацию о файле в расширенных атрибутах. Мы рассмотрим эти структуры данных по отдельности.
Индексные узлы
Индексные узлы в UFS мало чем отличаются от своих аналогов в ExtX. Каждая группа цилиндров содержит таблицу индексных узлов; местонахождение таблицы задается в суперблоке. В UFS1 все индексные узлы инициализируются при создании файловой системы. В UFS2 используются динамические индексные узлы: они инициализируются по мере надобности, а пространство таблицы индексных узлов может использоваться для хранения содержимого файлов, если все остальные блоки файловой системы окажутся заполненными. Для каждого файла и каталога выделяется один индексный узел, в котором хранится адрес блоков, выделенных файлу, размер файла и временные штампы.
В индексных узлах UFS хранятся 12 прямых указателей на блоки и по одному косвенному указателю первого, второго и третьего уровня. Адрес в каждом указателе относится к полному блоку; исключение составляет последний указатель, который может ссылаться на один или несколько фрагментов. Количество фрагментов определяется размером файла. В UFS1 используются 32-разрядные указатели, а в UFS2 — 64-разрядные.
UFS поддерживает разреженные файлы, упоминавшиеся в главе 8. Если часть содержимого файла не определена или весь блок заполнен нулями, ОС обычно не выделяет блок из дискового пространства. Вместо этого в указатель заносится значение 0, а при чтении из файла передается блок, заполненный нулями.

Типы и разрешения доступа к файлам в UFS не отличаются от используемых в ExtX. В индексных узлах хранятся время последней модификации, обращения и изменения, но время удаления не поддерживается. С другой стороны, в UFS2 в индексные узлы добавлено время создания. Значения временных штампов хранятся в виде количества секунд, прошедших с 12:00 1 января 1970 года в формате UTC, а для повышения точности также хранится количество наносекунд. В UFS1 используются 32-разрядные временные штампы, а в UFS2 — 64-разрядные.
Каждому индексному узлу присваивается адрес, нумерация адресов начинается с 0. Обратите внимание: в этом отношении UFS отличается от системы ExtX, в которой нумерация начинается с 1. Индексные узлы 0 и 1 зарезервированы, но не задействованы ни для каких целей. Индексный узел 1 раньше содержал информацию о поврежденных блоках. Узел 2 зарезервирован для корневого каталога. Состояние выделения индексного узла определяется по битовой карте индексных узлов, хранящейся в дескрипторе группы. Чтобы определить, к какой группе принадлежит индексный узел, следует разделить его адрес на количество индексных узлов в группе, взятое из суперблока. Структуры данных индексных узлов UFS1 и UFS2 подробно описаны в следующей главе.
Расширенные атрибуты
Поддержка расширенных атрибутов была реализована в UFS2. В расширенных атрибутах хранятся дополнительные данные о файле или каталоге. Расширенный атрибут представляет собой пару «имя-значение»; в настоящее время расширенные атрибуты делятся на два «типа»: пользовательское и системное пространства имен. Атрибуты пользовательского пространства имен могут быть прочитаны всеми пользователями, которым разрешено чтение содержимого файла. С другой стороны, атрибуты системного пространства имен могут читаться только привилегированными пользователями.
В индексных узлах UFS2 расширенные атрибуты представлены тремя полями. В одном поле хранится размер, а в двух других — адреса блоков, в которых хранятся атрибуты. Блоки заполняются структурами данных переменного размера, состоящими из заголовка и значения атрибута. Пользователь назначает атрибуты командой setextattr, а приложения читают их вызовами специальных системных функций. Структура данных расширенных атрибутов описана в главе 17.
Тестовый образ
Далее приводятся выходные данные, полученные в результате выполнения istat для тестового образа файловой системы. Содержимое этого индексного узла подробно разбирается в главе 17, а сейчас я просто приведу вывод istat только для того, чтобы дать представление о доступной информации: istat -f openbsd -z UTC openbsd.dd 3 inode: 3 Allocated Group: 0
uid / gid: 0/0 mode: -rw-r-r- size: 1274880 num of links: 1

Inode Times:
Accessed:              Tue              Aug              3              14:12:56              2004
File Modified:              Tue              Aug              3              14:13:14              2004
Inode Modified: Tue Aug 3 14:13:14 2004
Direct Blocks:
288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 [...]
1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 Indirect Blocks:
384 385 386 387 388 389 390 391
Мы видим, что файл занимает 1 247 880 байт и для его хранения требуется более 2 8-килобайтных блоков. В нижней части листинга перечислены все фрагменты, выделенные для хранения файла. Ранее уже говорилось о том, что в индексном узле приводится только адрес блока, но istat приводит адреса всех фрагментов блока. Последняя строка секции Direct Blocks показывает, что используются только пять из восьми фрагментов блока 1576, а фрагменты 1581-1583 могут использоваться другими файлами. Также обратите внимание, что блок 384 используется для косвенной адресации, то есть содержит указатели на другие блоки.
Алгоритмы выделения
Документированный метод выделения индексных узлов в UFS совпадает с тем, который был описан ранее для ExtX. ОС может выбрать любой алгоритм, но на практике индексный узел для каталога обычно выделяется в новой группе цилиндров, число каталогов в которой меньше среднего, а количество свободных блоков — больше среднего. Индексный узел файла при наличии свободного места выделяется в той же группе цилиндров, в которой находится родительский каталог.
При поиске свободных индексных узлов в группах цилиндров применяется стратегия поиска первого доступного узла.
При выделении содержимое индексного узла стирается, а его М-, А- и С-время (а также время создания в UFS2) задаются равными текущему времени. Счетчик ссылок задается равным 1 для файлов и 2 для каталогов (с учетом записи «.» в каталоге).
При удалении файла системы BSD и Solaris стирают указатели на блоки в индексных узлах, очищают поля размера и режима. Следовательно, размер файла, его тип и местонахождение содержимого восстановить не удастся. Тем не менее содержимое блоков косвенных указателей не стирается, поэтому поиск таких блоков может оказать помощь при восстановлении. Вероятно, для поиска блоков, заполненных 32- или 64-разрядными адресами, потребуется специальная программа. Обратите внимание на различия между процедурой удаления в UFS и той, что мы видели в Linux/ExtX: в Linux поле режима не стиралось, но зато в ExtX терялось содержимое косвенных указателей.
Обновление временных штампов в OpenBSD 3, FreeBSD 5 и Sun Solaris 9 производится по тем же правилам, которые были описаны в разделе ExtX для Fedora Core 2. А именно, при создании файла все временные штампы синхронизируются
с текущим временем, а у родительского каталога обновляется М- и С-время. При перемещении у нового файла обновляется С-время, но М- и A-время остается прежним. При копировании файла обновляется A-время исходного файла, а у приемного файла обновляется М-, А- и С-время. При удалении файла обновляется М- и С-время.
Методы анализа
Анализ в категории метаданных направлен на поиск информации о файлах для последующей сортировки и получения дополнительной информации. Для этого необходимо иметь возможность найти индексные узлы, проверить их состояние выделения и обработать расширенные атрибуты (если они существуют).
Поиск индексного узла начинается с идентификации его группы; для этого молено разделить адрес индексного узла на количество узлов в группе. Затем индексная таблица группы ищется по начальному фрагменту группы и смещению индексной таблицы, указанному в суперблоке. В UFS1 также необходимо вычислить дополнительное смещение разброса для группы. Наконец, индексный узел находится в таблице вычитанием адреса индексного узла из адреса первого индексного узла в группе.
Обработка индексных узлов весьма прямолинейна. Прежде чем воспользоваться данными режима и времени, необходимо сначала декодировать и обработать эти данные. Содержимое файла ищется по адресам, хранящимся в 12 указателях на блоки. Если файл имеет больший размер, следует прочитать отдельные блоки и обработать их содержимое как список адресов блоков. Указатели со значением О обозначают разреженные блоки и соответствуют блокам, заполненным нулями. При обработке последнего указателя следует учесть размер файла. Последний блок может быть фрагментом, и следующий фрагмент может использоваться другим файлом.
Состояние выделения индексного узла проверяется по битовой карте индексных узлов группы, хранящейся в дескрипторе группы. Дескриптор находится по начальному адресу группы и смещениям в суперблоках. Если бит индексного узла равен 1, значит, индексный узел выделен.
Иногда бывает полезно проанализировать все свободные индексные узлы, потому что в них могут присутствовать врехменные штампы или прочая информация из удаленных файлов. Для этого в битовых картах ищутся индексные узлы, биты которых равны 0, после чего обрабатываются узлы, отличные от нуля. Индексные узлы, заполненные нулями, обычно ранее не использовались и находятся в инициализированном состоянии. />Расширенные атрибуты также могут содержать улики и скрытые данные, поэтому их необходимо проанализировать. Для этого следует прочитать блоки, перечисленные в индексном узле, и обработать все записи в них.
Факторы анализа
Большая часть факторов анализа метаданных ExtX в полной мере применима к UFS. В индексных узлах удаленных файлов стираются указатели на блоки, размер и режим, но UFS сохраняет состояние косвенных указателей. А это означает,

что программа восстановления может попытаться найти косвенный указатель и реконструировать файл. По М- и С-времени свободных индексных узлов иногда удается получить информацию о времени удаления соответствующих файлов. При извлечении данных можно воспользоваться информацией о стратегии выделения и сосредоточить внимание на отдельной группе узлов (вместо всей файловой системы).
Как было показано для ExtX, команда touch позволяет изменить М- и А-время любого файла. Следовательно, желательно иметь в распоряжении второй источник информации с временными данными для проверки надежности временных штампов. С-время файла обновляется при использовании команды touch. Временные штампы хранятся в формате UTC, поэтому для правильного вывода значений программе анализа должен быть известен часовой пояс, в котором находится компьютер.
Все протестированные мной системы BSD записывали нули на место неиспользуемых байтов в последнем фрагменте файла, также называемом резервным пространством. Следовательно, данные из удаленных файлов можно найти только в одном месте — в свободных фрагментах. К счастью, выделяется и стирается лишь относительно небольшое количество фрагментов. А это означает, что блок может содержать удаленные данные во фрагментах, которые еще не были выделены повторно. Впрочем, резервное пространство может содержать скрытые данные.
Расширенные атрибуты в файловой системе UFS2 могут использоваться для хранения небольших объемов скрытых данных. Их размер ограничивается двумя блоками, но вы должны проверить, отображает ли программа анализа их содержимое, и включается ли оно в поиск по ключевым словам.
Скрытые данные также могут храниться в динамических таблицах индексных узлов UFS2. ОС не инициализирует блоки записей индексных узлов в таблицах до момента их непосредственного использования. Таким образом, данные могут незаметно храниться в неиспользуемых областях до того момента, когда ОС их затребует и сотрет содержимое этих областей. 
<< | >>
Источник: Кэрриэ Б.. Криминалистический анализ файловых систем. 2007

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

  1. Категория метаданных
  2. Категория метаданных
  3. Категория метаданных
  4. Категория метаданных
  5. Файлы метаданных файловой системы
  6. КАТЕГОРИИ ПРАКТИКИ И КАТЕГОРИИ АНАЛИЗА
  7. Категория имен файлов
  8. Категория данных файловой системы
  9. Категории данных
  10. Категория прикладных данных
  11. Методы анализа и категории данных
  12. 2.6. КАТЕГОРИИ КУЛЬТУРЫ
  13. Капитал категории
  14. Категория прикладных данных
  15. Категория имен файлов
  16. МИР МОРАЛЬНЫХ КАТЕГОРИЙ
  17. Категория данных
  18. ГЛАВА 7 ЭКОНОМИЧЕСКИЕ КАТЕГОРИИ. ЗАРАБОТНАЯ ПЛАТА
  19. КАТЕГОРИИ ПОСТАВЩИКОВ