<<
>>

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

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

Журналы файловой системы

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

Общие сведения

Журнал Ext3 обычно использует индексный узел 8, хотя его местонахождение задается в суперблоке и находиться он может где угодно. Журнал относится к числу совместимых функций файловой системы, а при его использовании устанавливается соответствующий флаг в суперблоке. Кроме того, в суперблоке присутствует флаг несовместимой функции для журнального устройства. При установке этого флага файловая система использует внешний журнал, не сохраняя данные в локальном файле. Местонахождение устройства также задается в суперблоке.

В журнале сначала регистрируются предстоящие обновления, а после их завершения также создается соответствующая запись. Журнал может работать в двух режимах. В первом режиме в журнале регистрируются только обновления метаданных, а во втором — все обновления, включая блоки данных. Первая версия журнала использовала второй режим, но текущая версия предоставляет возможность выбора режима. По умолчанию регистрируются только изменения метаданных.

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

остальные блоки используются для хранения записей журнала.

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

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

Блоки метаданных файловой системы

Дескриптор              Блоки метаданных              Блок закрепления

Номер: 839              файловой системы              Номер: 839

Рис. 14.13. Журнал Ext3 с двумя транзакциями

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

Структуры данных и пример журнала приводятся в главе 16. В пакете TSK для вывода содержимого журнала используется программа jls. Пример ее вывода для образа файловой системы: jls -f linux-ext3 /dev/hdb2 JBlk              Description

0:              Superblock (seq: 0)

1:              Allocated Descriptor Block (seq: 295)

2:              Allocated              FS              Block              4

3:              Allocated              FS              Block              2

4:              Allocated              FS              Block              14

5:              Allocated              FS              Block              5

6:              Allocated              FS              Block              163

7:              Allocated              FS              Block              3

8:              Allocated Commit Block (seq:              295)

9:              Unallocated FS Block Unknown

[...]

В выходных данных j Is виден суперблок, дескриптор и блоки закрепления.

Транзакция 295 начинается в блоке журнала 1 и завершается в блоке 8. Также приводятся номера блоков файловой системы, которым соответствует каждый блок журнала. Для извлечения блоков из журнала можно воспользоваться программой jcat из пакета TSK.

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

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

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

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

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

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

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

В этом сценарии рассматривается система Linux, подвергшаяся внешней атаке. Образ был создан в день взлома, поэтому журнал может содержать полезную информацию. В процессе расследования мы находим каталог с различными программными средствами, использовавшимся в ходе атаки. Также обнаруживается удаленный файл с именем passwords.txt. Все это представляет интерес, и нам хотелось бы восстановить файл, но терпеливо отсеивать строковые данные в группах блоков как-то не хочется. Мы обращаемся к журналу.

Известно, что удаленный файл занимал индексный узел 488 650, находящийся в группе блоков 30. Первый индексный узел группы блоков имеет номер 488 641,

таблица индексных узлов начинается в блоке 943 044, а размер каждого блока составляет 4 096 байт. Следовательно, интересующий нас индексный узел хранится в записи 10 таблицы индексных узлов группы и соответствует первому блоку таблицы.

Мы запускаем jls для журнала и ищем сведения о блоке файловой системы 983 044: jls -f linux-ext3 ext3-8.dd 8 [...]

2293:              Unallocated Descriptor Block (seq: 136723)

2294:              Unallocated              FS              Block              983041

2295:              Unallocated              FS              Block              1

2296:              Unallocated              FS              Block              0

2297:              Unallocated              FS              Block              983044

2298:              Unallocated              FS              Block              983568

2299:              Unallocated              FS              Block              983040

2300:              Unallocated Commit Block (seq: 136723)

[...]

Журнал содержит несколько ссылок на блок 983 044; мы проанализируем различия между этими ссылками. Предыдущие записи относятся к созданию файла в индексном узле 488 650. В листинге присутствует обновляемая таблица индексных узлов, суперблок, дескрипторы групп, родительский каталог и битовая карта блоков.

Мы извлекаем таблицу индексных узлов из блока журнала 2297 и используем dd для перехода к десятому индексному узлу в таблице: jcat -f linux-ext3 ext3-8.dd 8 2297 | dd bs=128 skip=9 count=l | xxd

0000000: a481 0000 041f 0000 8880 3741 3780 3741                            7A7.7A

0000016: 3780 3741 0000 0000 0000 0100 1000 0000 7.7A

0000032: 0000 0000 0000 0000 1102 OfOO 1202 OfOO

0000048: 0000 0000 0000 0000 0000 0000 0000 0000

[...]

Это те данные, которые когда-то содержались в индексном узле 488 650; размер указан в байтах 4-7 и составляет 7940 байт (0xlf04). Байты 40-43 и 44-47 содержат два прямых указателя на блоки. Мы видим, что файлу выделены блоки 883 569 и 983 570. При просмотре содержимого этих блоков обнаруживается список паролей различных систем, взломанных злоумышленником.

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

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

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

  1. Категория прикладных данных
  2. Категория прикладных данных
  3. Категории данных
  4. Категория данных содержимого
  5. Категория данных файловой системы
  6. Методы анализа и категории данных
  7. Категория данных файловой системы
  8. Категория данных имен файлов
  9. Категория данных файловой системы
  10. Категория данных имен файлов
  11. Категория данных
  12. КАТЕГОРИИ ПРАКТИКИ И КАТЕГОРИИ АНАЛИЗА
  13. Методы поиска на прикладном уровне
  14. Глава 6 Прикладные исследования
  15. 2. ОСОБЕННОСТИ МЕТОДИКИ И ЭТАПОВ РАЗВЕРТЫВАНИЯ ПРИКЛАДНОГО ИССЛЕДОВАНИЯ
  16. II.       ПРОГРАММА ТЕОРЕТИКО-ПРИКЛАДНОГО СОЦИОЛОГИЧЕСКОГО ИССЛЕДОВАНИЯ
  17. 1.4.Выборочный метод в прикладной социологии