Шифрование файлов

  Содержимое файла может храниться в зашифрованном виде для защиты от постороннего доступа. Шифрование может выполняться приложением, создавшим файл, внешним приложением, которое читает незашифрованный файл и создает зашифрованный файл[5], или операционной системой при создании файла. Перед тем как записывать файл на диск, ОС шифрует его и сохраняет текст шифра в блоках данных. Информация, не относящаяся к содержимому файла (например, имя файла и время последнего обращения), обычно не шифруется. Приложение, записывающее данные, не знает, что данные хранятся в зашифрованном виде. Другой способ шифрования содержимого файлов заключается в шифровании целого тома[6]. В этом случае шифруются все данные файловой системы, не только содержимое файлов. Как правило, том с операционной системой не шифруется.
Шифрование данных создает проблемы при анализе, поскольку многие файлы оказываются недоступными, если эксперту неизвестен ключ шифрования или пароль. Еще хуже, если неизвестен способ шифрования. Существуют программы для подбора ключей и паролей простым перебором («атака методом грубой силы»), но если алгоритм неизвестен, они тоже оказываются неэффективными. Если зашифрованы только отдельные файлы и каталоги, иногда удается найти
копии незашифрованных данных во временных файлах или свободных блоках [Casey, 2002; Wolfe, 2004].
Методы анализа
Перейдем к анализу в категории метаданных. Метаданные могут использоваться для просмотра содержимого файлов, поиска значений и обнаружения удаленных файлов.
Поиск метаданных
Во многих случаях анализ метаданных выполняется потому, что мы нашли имя файла, ссылающееся на конкретную структуру метаданных, и хотим получить дополнительную информацию о файле. Таким образом, нужно найти запись метаданных и обработать ее. Например, при просмотре содержимого каталога мы обнаружили файл badstuff.txt и теперь хотим узнать его содержимое и дату создания. Многие программы автоматически выполняют такого рода поиск при составлении списков имен файлов в каталогах и позволяют отсортировать результаты по значениям метаданных.
Конкретная процедура поиска зависит от файловой системы, так как метаданные могут храниться в разных местах. В TSK для вывода структур метаданных используется программа istat. На рис. 8.13 изображена файловая система со структурами метаданных, обнаруженными в блоке 371. Программа читает блок данных и выводит содержимое двух записей метаданных. Одна запись представляет удаленный файл, а другая — существующий каталог.
Блок данных 371


101010101110
100000101011
010101010000
001101001011
101011111100


Удален

Тип

Размер

Время последней записи

Блок данных 1

Блок данных 2

Yes

File

1 389

Jan 03 2004 03:12:03

300140

0

No

Dir

315 668

Jan 03 2004 03:12:15

300 147

300 148

Рис. 8.13. Процесс просмотра содержимого записи метаданных


Просмотр логических файлов
После обнаружения метаданных можно просмотреть содержимое файла; для этого следует прочитать блоки данных, выделенные файлу. Обычно это делается при поиске улик в содержимом файла. Допустим, мы определили адрес блока данных файла badstuff.txt и теперь хотим ознакомиться с его содержимым.
Этот процесс работает как в категории метаданных, так и в категории данных содержимого. На рис. 8.14 перечислены блоки данных, связанные с записями метаданных 1 и 2. Многие графические программы объединяют эту процедуру
с перечислением имен файлов. Если выбрать файл, программа переходит к поиску блоков данных, указанных в метаданных файла.
В процессе поиска необходимо помнить о резервном пространстве, потому что последний блок данных может использоваться файлом лишь частично. Чтобы определить используемую часть последнего блока, вычислите остаток от деления размера файла на размер каждого блока данных.
В пакете TSK для просмотра содержимого блоков данных, выделенных структуре метаданных, используется программа icat. При запуске с ключом -s выводится информация о резервном пространстве, а с ключом -г программа пытается восстанавливать удаленные файлы.



Содержимое записи метаданных 2:
Рис. 8.14. Объединение информации из метаданных и блоков данных позволяет просмотреть содержимое файла
Поиск в логических файлах
Предыдущие методы подразумевают, что вам известен конкретный файл и вы хотите просмотреть его содержимое. Нередко возникает обратная задача — найти файл на основании его содержимого (например, найти все файлы, содержащие слово «forensics»). В таких ситуациях применяется поиск в логических файлах. Он основан на тех же принципах, что и просмотр логических файлов, но вместо просмотра содержимого в файле ищется конкретное значение.
Своим названием этот метод сильно напоминает поиск в логической файловой системе. Действительно, эти методы очень похожи, только в данном случае поиск в блоках данных производится в порядке их использования файлами, а не в порядке их следования в томе. На рис. 8.15 изображены две записи метаданных и выделенные им блоки данных. В данном случае поиск осуществляется в блоках 2, 3, 4 и 6 как в едином наборе. Преимущество такого вида поиска перед поиском в логической файловой системе состоит в том, что он находит данные, фрагментированные по блокам данных или секторам. Допустим, мы ищем слово «forensics», которое начинается в блоке данных 4 и заканчивается в блоке 6. При поиске в логической файловой системе оно найдено не будет, потому что оно не содержится в смежных блоках данных. Разновидностью этого вида поиска является поиск файла с известным хеш-кодом MD5 или SHA-1.

Не забывайте, что логические адреса файлов присваиваются только выделенным блокам данных. Это означает, что для поиска того же значения в свободных блоках данных следует провести поиск в логическом томе. Например, поиск в логических файлах на рис. 8.15 не затронет блоки 0 и 1, поэтому необходимо провести второй поиск, который включал бы блоки 0, 1, 7, 9, 10, 11 и т. д.
Присутствует ли
строка «forensics»              Чему              равен              хеш-код
в этом файле? или              MD5              файла?



2              3              4              6

Содержимое записи

ИДИ

ililllliiil!


SICS

метаданных 1:



foren


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


Обязательно выясните, включает ли ваша программа анализа резервное пространство файла при поиске в логическом файле; одни программы это делают, другие — нет. Для этой цели можно воспользоваться поиском по ключевым словам в тестовых образах на сайте DFTT.
Анализ свободных метаданных
Если поиск проводится в содержимом удаленных файлов, не ограничивайтесь именами удаленных файлов из содержимого каталога. Примеры будут приведены в разделе «Категория данных имен файлов», а пока достаточно сказать, что имя удаленного файла может быть использовано заново прежде, чем его структура метаданных.
Следовательно, ваши улики могут находиться в свободной записи метаданных, однако вы не увидите их, потому что эта запись не связана с именем. Многие программы анализа выводят список свободных записей метаданных для проведения поиска или просмотра. Для получения списка свободных структур данных в TSK используется программа Us.
Поиск и сортировка по атрибутам метаданных
На практике поиск файлов также нередко осуществляется по одному из их полей метаданных. Допустим, имеется система обнаружения вторжений (IDS, Intrusion Detection System) и вы хотите найти все файлы, созданные в течение ближайших двух минут с момента полученного предупреждения. А может быть, вы анализируете действия некоторого пользователя и хотите найти все файлы, в которые
ему разрешена запись. В общем случае на некоторой стадии расследования может возникнуть необходимость в поиске значений метаданных. Некоторые примеры будут рассмотрены в этом разделе.
Время обращения к файлу легко изменить в любой системе, но оно часто содержит полезную информацию. Предположим, мы проверяем гипотезу, что злоумышленник получил доступ к компьютеру в 20:13 и установил в системе вредоносный код; для этого можно провести поиск всех файлов, созданных между 20:13 и 8:23. Если за этот промежуток времени не будет найдено ни одного подозрительного файла или мы найдем посторонний файл, созданный в другое время, это означает, что неверно задано время создания файла или неверна наша гипотеза (а возможно, и то и другое).
Если вы столкнулись с компьютером, о котором вам мало что известно, возможно, вам поможет список последних обращений и созданий файлов. Эта информация даст представление о том, как использовался компьютер в последнее время. />Некоторые программы составляют временные диаграммы файловых операций. Как правило, количество точек данных на диаграмме для каждого файла совпадает с количеством временных штампов. Например, если в метаданных хранится время последнего обращения, последней записи и последней модификации, на диаграмме создаются три точки данных. В пакете TSK для построения временных диаграмм файловых операций используется программа mactime. Пример выходных данных mactime для каталога C:\Windows:
Wed Aug 11 2004 19:31:58              34528              .a. /system32/ntio804.sys
34392 .a. /system32/ntio412.sys
[...]
Wed Aug 11 2004 19:33:27              2048              mac /bootstat.dat
1024 mac /system32/config/default.LOG 1024 mac /system32/config/software.L0G
Wed Aug 11 2004 19:33:28              262144              ma.              /system32/config/SECURITY
262144 ma. /system32/config/default
В этом списке перечислены файловые операции по секундам. В первом столбце приводится временной штамп, во втором — размер файла, а в третьем — код операции (т — модификация содержимого, а — обращение к содержимому, с — изменение метаданных). В последнем столбце находится имя файла. Реальный вывод содержит гораздо больше информации, но он не поместится на странице книги.
Прежде чем пытаться увязывать временные штампы и записи журналов с разных компьютеров, необходимо понять, как файловая система хранит временные штампы. Некоторые временные штампы хранятся в формате UTC; это означает, что для определения фактического времени необходимо знать смещение часового пояса, в котором находится компьютер. Например, если я обращаюсь к файлу в 14:00 в Бостоне, штат Массачусетс, ОС зафиксирует, что обращение произошло в 19:00 в формате UTC, потому что Бостон смещен на пять часов назад по отношению к времени UTC. Когда эксперт будет анализировать файл, он должен преобразовать 19:00 к местному времени. В других файловых системах время хранится с учетом местного часового пояса, и в данном примере в них будет храниться значение 14:00. У некоторых программ также возникают проблемы с летним временем.

Еще одна стандартная задача — поиск файлов, в которые некоторому пользователю разрешена запись. Результат поиска покажет, какие файлы могли быть созданы подозреваемым (предполагается, что ОС соблюдает разрешения доступа, а подозреваемый не имеет прав администратора). Также возможно проведение поиска по идентификатору владельца. Обычно такие операции используются при расследовании действий конкретного пользователя.
Если ранее мы провели поиск в логической файловой системе и обнаружили интересные данные в одном из блоков, можно попытаться найти адрес этого блока в метаданных. Возможно, поиск покажет, какому файлу был выделен блок данных, после чего можно будет найти другие блоки данных, принадлежащие тому же файлу. Пример показан на рис. 8.16; улики были обнаружены в блоке данных 34. Поиск в метаданных показывает, что блок был выделен структуре 107 наряду с блоками данных 33 и 36. Если ОС не стирает адреса при удалении файлов, этот процесс также поможет найти освободившуюся запись метаданных. Программа ifind из пакета TSK выполнит эту работу за вас.
Структуры метаданных
Блоки: 03,04,05,10
Блоки: 38,39,40
Блоки: 30,33,34
Блоки: 36 32              33              34              35              36              37              38
Рис. 8.16. Поиск в структурах метаданных позволит узнать, какой из них был выделен заданный блок данных
Порядок выделения записей метаданных
Если потребуется узнать относительный порядок выделения двух записей, воз- можно, это удастся сделать с применением стратегии выделения, используемой вашей ОС. Это сложная задача, которая к тому же сильно зависит от ОС. Записи метаданных обычно выделяются по стратегии поиска первой доступной или следующей доступной записи. Полное описание этой методики анализа выходит за рамки книги, поскольку она зависит от прикладного уровня.
Проверка целостности данных
Проверка целостности метаданных может выявить попытки сокрытия данных. Также может оказаться, что образ файловой системы содержит внутренние ошибки, которые не позволяют получить полную информацию. Проверка целостности может выполняться только на основе необходимых данных, в том числе адресов блоков данных, размера и состояния выделения каждой записи метаданных.
Один из способов проверки заключается в том, чтобы проверить каждую выделенную запись и убедиться в том, что выделенные ей блоки данных действительно выделены. Также можно убедиться в том, что количество выделенных

блоков данных соответствует размеру файла. Как правило, файловые системы не выделяют больше блоков данных, чем это необходимо. В разделе «Проверка целостности данных» для категории содержимого описана проверка того, что на каждый выделенный блок данных ссылается ровно одна выделенная запись метаданных.
Также следует проверить, что записям специальных типов файлов не выделяются блоки данных. Например, в некоторых файловых системах создаются специальные файлы, называемые сокетами и используемые при обмена данных между процессами. Таким файлам блоки данных не выделяются.
Еще одна проверка целостности использует информацию из категории имен файлов и убеждается в том, что каждой выделенной записи каталога назначено имя, которое ссылается на эту запись. Существуют проверки диапазонов дат и других вспомогательных данных, но более точные проверки в таких случаях обычно неприменимы.
Методы надежного удаления
Метаданные могут уничтожаться при удалении файлов, чтобы затруднить их восстановление. Время, размер и адреса блоков данных заполняются нулями или случайными данными. Эксперт может выявить факт стирания, обнаружив обнуленные или другие недействительные записи между двумя действительными записями. Более разумная программа надежного удаления заполняет структуру метаданных действительными данными, не имеющими отношения к исходному файлу. Еще более надежная программа сдвинет оставшиеся записи, чтобы между ними не оставалось неиспользуемых. Впрочем, на такие сдвиги уйдет очень много времени. 
<< | >>
Источник: Кэрриэ Б.. Криминалистический анализ файловых систем. 2007

Еще по теме Шифрование файлов:

  1. Категория имен файлов
  2. Файловый хостинг
  3. Категория данных файловой системы
  4. Категория файловой системы
  5. Категория данных файловой системы
  6. Конкретные файловые системы
  7. Категория данных файловой системы
  8. Что такое файловая система?
  9. Категория данных имен файлов
  10. Категория данных имен файлов
  11. Файлы метаданных файловой системы