Часть 2. Внутри пораженного диска
В статье «Аналитическая криминалистика. Часть 1», опубликованной в предыдущем номере журнала, было показано, как создать загрузочный компакт-диск с пакетом Penguin Sleuth Kit и получить с его помощью цифровую копию, или образ, пораженного жесткого диска. В этой статье мы рассмотрим, как провести криминалистический анализ такого образа с использованием пакета Penguin Sleuth Kit, размещенного на компакт-диске.
В состав Penguin Sleuth Kit входят две чрезвычайно полезные утилиты: Sleuth Kit, набор криминалистических инструментов командной строки, и Autopsy, внешний интерфейс на базе браузера для инструментария командной строки. Для хранения собранных данных и документирования в Sleuth Kit и Autopsy используется блокировщик свидетельств (evidence locker). Таким образом, для блокировщика свидетельств необходим внешний или пригодный для записи жесткий диск.
Криминалистический анализ отнимает много времени и ресурсов. Если необходимость в нем возникает часто, то рекомендуется использовать для анализа специализированную машину Linux. Но если анализировать приходится лишь изредка, то загружаемый CD-ROM можно запустить с рабочей станции, а не устанавливать Linux на выделенной машине, поскольку продукт работает на платформе Linux.
Приступаем к анализу. Для целей данной статьи предположим, что загружаемый CD-ROM вставлен в рабочую станцию Windows, загружен Knoppix, блокировщик свидетельств размещен на внешнем диске USB и создан криминалистический образ. Теперь систему можно перезапустить командой
root@ttyp1[/]# reboot
Penguin Sleuth Kit возвращается к начальному загрузочному приглашению, после чего следует ввести команду
knoppix lang=us desktop=twm
screen=800x600
и нажать клавишу Enter. Команда напечатана на двух строках, но ее нужно вводить одной строкой. То же самое относится к другим многострочным командам в статье. Данная команда загружает Tab Window Manager (TWM), графический интерфейс для Linux, требующий минимальных ресурсов. По умолчанию используется интерфейс K Desktop Environment (KDE), похожий на Windows, но для него требуется оперативная память большой емкости. Для работы нужен лишь браузер, поэтому необходимости в KDE нет. Следует открыть командную строку и ввести команду
knoppix@ttyp0[knoppix]$
konqueror &
чтобы запустить браузер Konqueror, который входит в пакет Penguin Sleuth Kit.
Предположим, что внешний диск USB имеет обозначение /dev/sda1 и содержит не только блокировщик свидетельств, но и образ пораженного диска. Необходимо подключить USB-диск и выполнить следующие действия:
- Смонтировать USB-диск командой
knoppix@ttyp0[knoppix]$
mount /dev/sda1 /mnt - Создать каталог /mnt/evidence_locker с помощью команды
knoppix@ttyp0[knoppix]$
mkdir /mnt/evidence_locker - Запустить команду Autopsy
knoppix@ttyp0[knoppix]$ autopsy
-d /mnt/evidence_locker - В браузере Konqueror нужно ввести URL, выданный командой Autopsy.
Иначе можно оставить утилиту Autopsy активной на рабочей станции, но вести криминалистический анализ через сеть с помощью другого браузера. Это полезно, если в компьютере не хватает оперативной памяти для работы даже через графический интерфейс TWM. Для альтернативного подхода необходимо знать IP-адрес рабочей станции (если установлено соединение через сетевой кабель). Если IP-адрес машины неизвестен, то его можно получить с помощью команды
knoppix@ttyp0[knoppix]$
/sbin/ifconfig
Затем следует заменить команду этапа 3 командой
knoppix@ttyp0[knoppix]$ autopsy
-d /mnt/evidence_locker
Port IPAddress
где Port — номер прослушиваемого порта, а IPAddress — IP-адрес рабочей станции.
Независимо от выбранного подхода, после ввода URL в браузер на экране появляется начальная страница Web-узла Autopsy с тремя ссылками: Open Case, New Case и Help. Следует выбрать New Case, так как исследование еще не начиналось. Программа просит ввести название проекта и имена пользователей, которые будут работать с Autopsy. После ввода этой информации следует щелкнуть на кнопке New Case. На следующей странице приведен список действий, предпринятых Autopsy для верификации. По щелчку на кнопке OK на экране появляется Case Gallery (экран 2). В Case Gallery перечислены все проекты. Поскольку создан только один проект, в списке будет лишь одна запись. Щелкните на кнопке OK.
Экран 2. Страница Case Galalery |
На следующей странице с названием Host Gallery вводится специфическая для Autopsy система именования. Каждое исследование основано на проекте (case), который может охватывать не один образ диска (или хост — host). Для простого исследования, такого как наше, система именования может показаться запутанной, но она полезна, когда приходится анализировать не один подозрительный компьютер. Чтобы добавить цифровой образ пораженного диска, следует выбрать функцию Add Host. Autopsy запрашивает имя хоста, описание, временную зону (вводится стандартная аббревиатура временной зоны, например, EST) и временное отклонение подозрительной машины. Временное отклонение — разница между часами компьютера и точным временем (временем на часах хост-компьютера). Временная зона и временное отклонение необходимы для точной временной привязки событий на компьютерах к внешним событиям.
И наконец, можно ввести пути к базам данных, которые содержат хеши или уникальные сигнатуры известных опасных файлов (например, «троянских коней») или безвредных файлов (например, стандартных программ Microsoft), чтобы уменьшить объем анализируемых данных. Полные (но не всеобъемлющие) базы данных можно получить в Национальном институте стандартов и технологии (National Institute of Standards and Technology, NIST) по адресу http://www.nsrl.nist.gov. Особенно полезна подготовленная NIST база данных известных «троянских коней» и инструментов взлома. Такие базы данных значительно упрощают диагностику компьютерных происшествий. В результате сравнения образа с базой данных Autopsy составляет списки Known Bad (известные вредные программы) и Known Good (известные легальные программы).
После ввода всей хост-информации следует щелкнуть на кнопке Add Host. Появится еще один экран верификации, на котором показаны действия Autopsy. Щелкнув на кнопке OK, следует вернуться к странице Host Gallery. Выбрав добавленный хост, нужно нажать OK и вывести на экран страницу Host Manager (экран 3).
Экран 3. Страница Host Manager |
По щелчку на кнопке Add Image в Host Manager Autopsy просит ввести полный путь к образу. Путь начинается со слэша (/). Затем необходимо выбрать способ импорта образа. Первый метод, Symlink to evidence locker, создает в блокировщике свидетельств символическую ссылку (или symlink) для образа. Symlink — Unix-аналог ярлыка для файла в Windows. Образ остается в первоначальном хранилище, но считывается из блокировщика свидетельств так, как будто находится в нем. Два других варианта — Copy (копирование) и Move (перемещение) — не требуют дополнительных пояснений. Я рекомендую задействовать Copy, за исключением тех случаев, когда ограничено время или пространство для хранения. Использование symlink может потенциально привести к порче исходного образа, поэтому копировать надежнее. А переместить файл бывает трудно из-за проблем с полномочиями Unix.
Autopsy просит указать тип файловой системы пораженного диска (например, FAT32, FAT16) и оригинальную точку монтирования, чтобы проще было отслеживать активность файловой системы в будущем. Для оригинальной точки монтирования следует ввести символьное обозначение (например, C:, D:). Наконец, нужно установить флажок Calculate Now, если требуется, чтобы Autopsy генерировала хеш MD5 для образа.
По щелчку на кнопке Add Image Autopsy добавляет образ и создает хеш MD5 (если выбран соответствующий режим). Добавленный образ можно увидеть на странице Host Manager. Располагая образом, можно использовать следующие пять кнопок, расположенные в нижней части страницы Host Manager: File Activity Time Lines, Image Integrity, Hash Databases, View Notes и Event Sequencer. Доступ к некоторым функциям открывается через ссылку details на странице Host Manager после добавления образа. Прежде чем приступить к рассмотрению остальных пяти вариантов, познакомимся со ссылкой details.
Страница Image Details
По щелчку на ссылке details образа на странице Host Manager на экране появляется страница Image Details (экран 4). Наряду с информацией, введенной пользователем при добавлении образа, данная страница располагает двумя функциями: Extract Strings и Extract Unallocated. В криминалистическом анализе используются обе эти функции.
Экран 4. Страница Image Details |
Extract Strings. По щелчку на кнопке Extract Strings, Autopsy выполняет поиск во всем файле образа любых строк, которые хотя бы отдаленно похожи на текст, пригодный для чтения человеком. Строки сохраняются в файле, указанном в текстовом поле File Name (в данном случае usbpart.dd.str). Сохранив строки, Autopsy показывает местонахождение файла в поле Strings File в верхней части страницы Image Details.
В данном случае это output/usbpart.dd.str. Если присоединить данный путь к каталогу, указанному в Host Directory, то можно просмотреть файл из командной строки с помощью такой команды Linux, как less. Команда less обеспечивает просмотр содержимого текстового файла из командной строки, без редактора. В файле содержатся строки данных следующего образца: 188120 The files have been extracted successfully. Число представляет собой логический адрес положения строки в образе; остальное — текстовая строка. Подозрительные строки можно искать по ключевому слову. Например, если в машине все в порядке, в ней вряд ли удастся обнаружить такие строки, как W1nd0ze r00tk1t 2.0. Подробное объяснение выходит за рамки данной статьи, но с помощью Sleuth Kit можно извлечь для дальнейшего анализа файл, содержащий определенную строку.
Extract Unallocated. По щелчку на кнопке Extract Unallocated, Autopsy извлекает нераспределенные сектора с пораженного диска и записывает их в файл для строкового анализа. Иногда внутри таких секторов обнаруживаются фрагменты удаленных файлов (и даже полные, хотя и удаленные файлы). В нераспределенные сектора не входит пространство, выделенное для файла, но не занятое им. Каждая файловая система выделяет дисковое пространство блоками байтов. Файл может не занимать всего выделенного пространства, но неиспользованные байты доступны для чтения криминалистическими программами и могут содержать информацию о файле, прежде занимавшем это место на диске. Например, если в файловой системе используются 8-килобайтные блоки и 6-килобайтному файлу выделяется один блок, то 2 Кбайт остаются свободными. В этом свободном пространстве могут сохраниться данные от прежнего файла. После того как Autopsy запишет информацию из таких секторов в файл, следует провести в нем поиск подозрительных строк с помощью функции Extract Strings.
Экран 5. Страница File Analysis |
В нижней части страницы Image Details находится кнопка File System. По щелчку на этой кнопке на экран выводится страница с информацией о файловой системе пораженного диска. Как показано на экране 5, страница File Analysis состоит из инструментальной линейки вверху и трех панелей. В левой панели перечислены файлы каталога, сгруппированные по секторам. Приводятся также удаленные файлы (или их остатки). По щелчку как на удаленном, так и на любом другом файле в нижней правой панели появляется ASCII-представление данного файла. В верхней части нижней правой панели приводится информация о типе файла (если он известен) и некоторые функции:
- ASCII (display — report)
- Strings (display — report)
- Export
- Add Note
ASCII display — стандартное представление файла в формате ASCII. Если щелкнуть на кнопке Strings display, то строки в просматриваемом файле появляются в нижней правой панели. По щелчку на кнопке ASCII report ASCII-данные заносятся в отчет по данному проекту. Следует обратить внимание, что при подготовке любого варианта отчета Autopsy использует данные из всех трех панелей (а не только из нижней правой панели), поэтому информация не отличается сжатостью.
Функция Export экспортирует весь файл во внешний файл на компьютере с Linux. Функция Add Note выводит на экран окно, в котором можно делать заметки о конкретном файле. В заметку вводятся данные о времени изменения Written, доступа Accessed и создания Created файла, показанные в верхней правой панели. Сопоставление этих данных поможет отследить маршрут атаки.
Помимо кнопки File Analysis, в панели инструментов в верхней части экрана 5 имеется несколько других элементов: Keyword Search, File Type, Image Details, Meta Data и Data Unit. Назначение функции Keyword Search очевидно. Пользователь может задать поиск в оригинальном образе или в нераспределенном пространстве, выбрав функцию Load Original или Load Unallocated соответственно. Для поиска можно задействовать регулярные выражения grep. По щелчку на grep cheat sheet можно быстро получить список возможных регулярных выражений. Информацию о регулярных выражениях grep можно получить также с помощью команды
man grep
Функция File Type сортирует все файлы образа по типу. Достаточно щелкнуть на кнопке Sort Files by Type, и на экране появляется несколько флажков, соответствующих различным операциям. Я рекомендую установить флажок Extension and File Type Validation, так как в этом случае Autopsy проверяет соответствие сигнатур типам файлов. Если файлы изображений (например, .jpg-файлы) переименованы в .doc, то, как правило, это сделано со злым умыслом. Для поиска в картинках можно применить функцию Thumbnail, которая экономит массу времени. Autopsy 1.75 выводит результаты такого поиска в альтернативном HTML-файле. Таким образом, чтобы увидеть результаты, необходимо скопировать предоставленный URL в браузер.
Функции Image Details, Meta Data и Data Unit предоставляют низкоуровневую информацию о файловой системе пораженного диска. Щелчок на кнопке Image Details на экране 5 не приводит к странице Image Details на экране 4, несмотря на одинаковые заголовки. Полезная информация, выдаваемая этими функциями, представлена в сложном для восприятия виде, и ее можно рекомендовать лишь опытным аналитикам. Поэтому перечисленные функции в данной статье не рассматриваются. Информацию об этих функциях можно найти по адресу http://www.sleuthkit.org.
Страница Host Manager
После анализа на уровне файловой системы пришла пора познакомиться с пятью функциями, представленными кнопками в нижней части страницы Host Manager.
Image Integrity. С помощью функции Image Integrity можно в любой момент проверить образы. Следует щелкнуть на кнопке Image Integrity, затем на кнопке Validate, расположенной рядом с файлом образа, который требуется проверить. Autopsy сравнивает первоначальный и текущий хеши MD5 для данного файла.
Hash Databases. Функция Hash Databases составляет список загруженных баз данных хэшей Known Good или Known Bad и мест, из которых они были загружены.
View Notes. Функция View Notes выдает список всех заметок, составленных для данного хоста.
Event Sequencer. Функция Event Sequencer обеспечивает простой метод объединения отдельных свидетельств в общую картину при исследовании нескольких машин. По щелчку на этой кнопке на экран выводится хронологический список исследования. Список дополняется любыми заметками, указывающими время записи, доступа или создания файла.
Event Sequencer помогает установить связь между событиями, составляющими нападение, но для этого на всех машинах должно быть выставлено точное время. Вместо того чтобы просто готовиться к неизбежному, лучше активно противодействовать нападению и ввести на предприятии точную методику согласования времени на разных машинах. Незначительное время, потраченное на установку сервера NTP (Network Time Protocol — протокол сетевого времени), обернется большими преимуществами.
File Activity Time Lines. Функция File Activity Time Lines строит полную временную шкалу данных о времени записи, доступа и создания всех файлов на пораженном диске. Она обеспечивает чрезвычайно подробное представление событий в исследуемой машине. И опять-таки очень важно знать точное время, но поскольку все показания времени взяты с одной машины, получить достоверные сведения о времени гораздо проще, чем с разных компьютеров (если только взломщик не нарушил ход системных часов).
По щелчку на File Activity Time Lines на экран выводится страница с новой панелью инструментов, на которой размещены четыре функции: Create Data File, Create Timeline, View Timeline и View Notes. Сначала необходимо щелкнуть на Create Data File, чтобы создать файл метаданных для Autopsy. Затем следует выбрать образ, для которого нужно построить временную шкалу и щелкнуть на кнопке OK. Вслед за этим нужно щелкнуть на Create Timeline, выбрать файл метаданных и указать начальную и конечную даты временной шкалы. Если вместо обеих дат выбран пункт none, то Autopsy выдаст отчет обо всех данных файловой системы. И наконец, необходимо указать путь к временной шкале и нажать OK.
По щелчку на кнопке View Timeline пользователь получает помесячное описание событий файловой системы. Щелкнув на кнопке Summary, можно получить список месяцев, лет и числа событий. Можно листать список со ссылками или перейти к определенному месяцу или году. Иногда данные становятся понятнее, если воспользоваться текстовым редактором, отличным от Autopsy. Файл данных находится в каталоге /evidence_locker_dir/case_dir/ host_dir_output/filename, где filename — имя, данное временной шкале.
Каждая строка временной шкалы содержит дату события, размер данных, тип ввода, режим (например, чтение, запись или выполнение), User ID (UID), group ID (GID), адрес метаданных и имя файла. UID и GID неприменимы к файловым системам FAT. Функция View Notes выводит на экран заметки, и пользователь может быстро добавить или просмотреть заметку, обнаружив что-то интересное.
Мощный инструментарий
Итак, мы познакомились со стандартными инструментами Autopsy. Их немного, но опытный аналитик с их помощью может добиться поразительных результатов. Труднее всего при криминалистическом анализе не использовать инструменты, а отыскать места, где находятся важные данные, и отсортировать огромный объем собранной информации. Эти инструменты не выполнят за исследователя непростую задачу криминалистического анализа, но, несомненно, укажут верное направление.
Матт Леско (matt@advancedatatools.com) — системный администратор компании Advanced DataTools в Аннандейле, шт. Вирджиния