Инструментальные средства обеспечения безопасности

Наборы инструментов, помогающие при судебном анализе

Разбить на страницы
Показывать лекцию целиком

В лекциях "Коммерческие наборы инструментов для судебного дублирования" и "Некоммерческие наборы инструментов, предназначенные для судебного дублирования" мы рассматривали инструментальные средства, с помощью которых можно выполнить судебное дублирование исходного жесткого диска. Получение копии - это первый шаг в двухступенчатом процессе успешного судебного расследования. Вторая фаза - это аналитическая составляющая расследования. В этой лекции обсуждаются инструментальные средства, используемые для анализа данных, которые мы получили ранее. Все наборы инструментов, предназначенные для судебного анализа, которые мы рассматриваем, способны импортировать несколько форматов судебного изображения. Наиболее полезный формат, в котором изображение создается утилитой dd, может использоваться со всеми этими инструментальными средствами, и так как эта утилита имеет открытый исходный код, то создание копии ничего не стоит (кроме вашего времени).

Forensic toolkit

Судебный комплект инструментов ) помогает аналитику, сокращая большие наборы данных до поднабора, содержащего важную информацию. FTK - коммерческий продукт. Он продается компанией AccessData. До конца прошлого года FTK поставлялся вместе с программой SnapBack, являющейся коммерческим инструментом судебного дублирования (см. лекцию "Коммерческие наборы инструментов для судебного дублирования").

Внимание. Для работы FTK требуется защитная заглушка ( dongle ). Если у вас нет защитной заглушки, вам нужно связаться с компанией AccessData, и это может задержать ваше расследование.

FTK может автоматически извлекать документы Microsoft Office, электронной почты, отслеживать деятельность, связанную с интернетом, и пр. Поскольку инструмент делает это автоматически, он экономит время, чтобы аналитик мог приступить сразу к анализу важных данных. Инструмент FTK полностью индексирует данные, поэтому поиск по ключевым словам происходит почти мгновенно. При работе с изображением жесткого диска в несколько гигабайт это свойство может сэкономить часы, проведенные за судебным компьютером.

Инструмент FTK анализирует только файловые системы Microsoft Windows. Поэтому, если система, которую вы расследуете, относится к системам Unix, то для ее анализа нужно использовать другие инструменты: EnCase или комплект инструментов Coroner.

Реализация

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

Мы создадим новое дело, а затем импортируем туда наши исходные файлы улик. Эти файлы улик были созданы с исходного диска, с помощью инструмента судебного дублирования EnCase (см. лекцию "Коммерческие наборы инструментов для судебного дублирования"). Когда мы выбираем опцию Start A New Case, появляется экран, позволяющий описать специфику нашего дела.

Следующий экран позволяет задать параметры нашего дела. Аббревиатура KFF означает known-file filter (фильтр известных файлов). Эта опция отфильтровывает файлы, которые, предположительно, являются безопасными. Для корректной работы операционная система Windows требует сотни стандартных системных файлов. Эти файлы, если они не были изменены, в большинстве сценариев дадут аналитику очень узкую информацию. Опция KFF позволяет уменьшить количество файлов, которые требуется анализировать. Следовательно, при проведении расследования эта опция может сэкономить время, деньги и ресурсы.

Если вы предполагаете, что может потребоваться поиск по ключевым словам, то отметьте опцию Full Text Index (Индексирование всего текста). Процесс импорта займет значительно больше времени, но цена будет оправдана, если вы выполните поиск более одного раза.

На следующем экране, FTK просит, чтобы мы добавили к делу улики. Уликами могут быть файлы, созданные с помощью инструмента EnCase или файлы изображений, созданные в dd. Файлы улик, создаваемые в EnCase были описаны в лекции "Коммерческие наборы инструментов для судебного дублирования", а получение копии жесткого диска с помощью dd рассматривалось в лекции "Некоммерческие наборы инструментов, предназначенные для судебного дублирования".

Когда мы выбираем Add Evidence (Добавление улик), нам предоставляются несколько опций, касающихся типа улик, которые нужно добавить.

Мы можем импортировать файл улик, анализировать локальный диск, содержание каталога или индивидуальный файл. Обычно, нам требуется импортировать файл улик (опция Acquired Image Of Drive ), но стоит рассмотреть также и другие методы анализа. Например, нам нужно подключить диск к судебному компьютеру вместо ввода в FTK файла улик (опция Local Drive ). Если мы имеем только логическую копию зависимой машины, нам может понадобиться проанализировать содержание каталога, и этот каталог мог бы содержать логическую копию интересующей нас машины (опция Contents Of A Folder ). Или у нас может быть единственный очень большой файл, который требуется проиндексировать для дальнейшего поиска (опция Individual File ).

Поскольку чаще всего используется импортирование файлов улик, то в этой книге мы обсуждаем именно этот метод. Мы создали копию, используя инструмент EnCase (лекция "Коммерческие наборы инструментов для судебного дублирования"). Теперь добавьте эти файлы к недавно созданному делу, выбрав Continue (Продолжение) на последнем экране.

Затем мы выбираем любые окончательные опции и вводим информацию, характеризующую улики этого конкретного элемента, в дело:

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

Если вы готовы, то щелкните на Next (Далее). Начинается импорт.

Когда обработка закончена, появляется главный навигационный экран FTK. Вкладки, расположенные вдоль верхней части экрана, позволяют нам выбирать анализ различных частей улик. Однако, вкладка Overview (Обзор) дает очень точный краткий обзор информации, найденной в уликах. Кроме того, эта вкладка является наиболее эффективным средством быстрого рассмотрения улик. Каждую из кнопок, расположенных под пунктами File Items (Элементы файла), File Status (Статус файла) и File Category (Категория файла) можно активизировать щелчком. Когда вы щелкаете на этих кнопках, файлы представятся аналитику в нижней половине экрана FTK.

Нажатием кнопки Evidence Items (Элементы улик) перечисляются файлы улик, которые мы импортировали для анализа. Для файла улик Tag1 имеются две строки. Третий столбец показывает, что каждая строка представляет отдельный раздел, который был обнаружен в Tag1.

Кнопка Total File Items (Общее число файлов) перечисляет все файлы, обнаруженные в пределах файла улик. Этот экран дает следователю отличный краткий обзор файлов, существующих в системе подозреваемого.

Возможно, следователь хочет быстро увидеть макет всех изображений, присутствующих в уликах. Щелкнув на Other Thumbnails (Другие макеты), можно увидеть изображения в системе и искать любую контрабанду.

Выделение электронной почты является одной из трудоемких задач для компьютерных криминалистов. Инструмент FTK старается уменьшить это бремя с помощью кнопки From E-mail (Исходящая почта). По щелчку на этой кнопке отображается вся электронная почта, которая была послана с этого компьютера, как показано на следующей иллюстрации.

Почти в каждом случае подозреваемый удаляет файлы. По щелчку на кнопке Deleted Files (Удаленные файлы) отображается список файлов, которые были удалены из системы.

Кнопка Slack/Free Space (Резервное/Свободное пространство) отображает список всего нераспределенного и резервного пространства, показанного на следующей иллюстрации. Хотя обычно вы и не ищете это пространство вручную, выбрав эту опцию, вы получите такую информацию. Однако, как вы увидите позже, имеются автоматизированные способы поиска этого пространства в файловой системе.

При большинстве расследований, особенно в процессе поиска улик для судебных дел, полезно воспроизводить все документы, имеющиеся на анализируемой машине. Кнопка Documents (Документы) демонстрирует следователю все документы. Документами являются файлы, созданные в Microsoft Office, текстовые файлы, файлы HTML и др.

Обратите внимание, что пользователь этого компьютера, очевидно, читал Web-сайты о Колумбии, Южной Америке.

Любые общие сообщения электронной почты можно найти, щелкнув на кнопке E-mail Messages (Почтовые сообщения).

Другие вкладки позволяют нам получить более детализированное представление данных. Вкладка Explore дает интерфейс, подобный Windows Explorer (Проводник), для просмотра содержимого улик.

Пропустив несколько вкладок, находим вкладку Search (Поиск), обеспечивающую такие функциональные возможности, которые делают FTK великолепным инструментом. С применением к данным полной индексации текста, поиск будет происходить почти мгновенно. Например, введем ключевые слова Johnson и Colombia, поскольку далее они будут иметь отношение к разделу "Пример из жизни". В поле Composite Search (Расширенный поиск), выбираем опцию Only Count Files With Hits On ALL Files (Учитывать только файлы с полным совпадением). Это значение указывает логическое отношение AND между всеми ключевыми словами поиска. Раскрывающийся список обеспечивает также возможность поиска с оператором OR.

Если ваши ключевые слова не приводят ко многим совпадениям, можете использовать опции расширенного поиска инструмента FTK, которые видоизменяют ключевые слова, чтобы найти слова не идентичные, но близкие к вашему критерию. Первоначально, однако, следует отключить эти опции, чтобы увидеть более узкое представление результатов.

По окончании поиска результаты будут отображены на панели, подобной показанной ранее.

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

Все действия, произведенные с уликами, будут зарегистрированы в FTK. Меню Tools (Сервис), расположенное на панели главного меню, позволяет просматривать и добавлять комментарии к файлу регистрации текущего дела.

Из-за способности инструмента FTK быстро извлекать важные данные, он представляет собой великолепный набор инструментов судебного анализа для тех, кто только начал изучать криминалистику или не имеет времени для вложения значительных ресурсов.

EnCase

EnCase представляет собой широко используемый набор инструментов судебного анализа. Его используют многие следователи правоохранительных органов. Он также широко используется в финансовых учреждениях, оказывая помощь при внутренних расследованиях. EnCase, подобно набору Forensic Toolkit приспособлен для аналитиков, которые не углубляются в знание деталей, касающиеся жестких дисков и структур данных операционной системы. Кроме того, EnCase включает в себя как инструментальные средства получения данных, так и средства их анализа, превращая его в самодостаточный комплект для успешного завершения почти любого расследования. EnCase - коммерческий набор инструментов и стоит (приблизительно) от $2000 до $4000, в зависимости от того, являетесь ли вы представителем правоохранительных органов или коммерческим клиентом. Чтобы использовать аналитическую часть комплекта, для EnCase, подобно FTK, требуется защитная заглушка (dongle).

Примечание. Руководство пользователя EnCase включает общий судебный учебник для начинающих, который необходимо прочесть прежде, чем вы начнете пользоваться этим инструментом.

компании Guidance Software.

Реализация

EnCase имеет графический интерфейс пользователя и не требует командных строк. Запуская EnCase, вы щелкаете на кнопке New (Создать), расположенной в верхней части инструментальной панели, для создания нового дела. Затем EnCase просит вас указать каталоги для экспорта документов и хранения любых временных файлов. Мы настоятельно рекомендуем, чтобы вы изменили заданные по умолчанию каталоги на уникальные каталоги, предназначенные для текущего дела, над которым вы работаете. Это позволит хранить отдельно данные от разных дел, улучшая, таким образом, целостность документов.

Как только дело создано, сохраните файл дела. Это можно сделать, используя опцию Save (Сохранить), расположенную на инструментальной панели.

После того, как вы сохранили файл дела в первый раз, пришло время добавить к нему ваши улики. Щелкните на кнопке Add (Добавить), находящейся на инструментальной панели. Затем введите соответствующую информацию.

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

Когда процесс проверки завершен, результаты отображаются на экране истории улик. Вы можете рассматривать специфику загруженных файлов улик, выбирая Case (Дело) в верхнем левом углу и рассматривая вкладку Evidence (улики) внизу окна EnCase. Каждая строка представляет загруженный файл улик, и информация, касающаяся проверки контрольной суммы, отображается для ссылки на нее в будущем.

Прокрутите экран вправо, чтобы увидеть больше информации.

Кроме того, EnCase (версия 3) может открывать файлы изображений, созданные инструментом dd. Так как файлы изображений, созданные с dd, может получить почти любой человек, то такие дополнительные функциональные возможности увеличивают мощь EnCase.

Первое действие, которое обычно необходимо выполнить с загруженными уликами в EnCase - это проверить контрольную сумму и соответствие сигнатур всех обнаруженных логических файлов. Это можно сделать, щелкнув на Search (Поиск) на инструментальной панели EnCase, чтобы отобразить экран Search.

Как правило, нужно выбирать опции The Entire Case (Все дело), Verify File Signatures (Проверка сигнатур файлов) и Compute Hash Value (Вычисление хэш-значения). С этими параметрами настройки будут вычислены хэш-значения для каждого файла в деле. Кроме того, EnCase исследует верхние (header) и нижние (footer) колонтитулы каждого файла и назначает сигнатуру файла. Например, документы Microsoft Office содержат известные верхние и нижние колонтитулы, и в этом процессе будет назначена сигнатура "Microsoft Word Document" к файлу file.txt, если будет обнаружен верхний колонтитул. Это очень полезно в случае, если сюжет дела содержит переименование расширений файлов, чтобы ввести в заблуждение следователя.

На следующем экране показаны контрольные суммы MD5, вычисленные для произвольных файлов в уликах, которые мы добавили к нашему делу в начале этого раздела. Они отображаются под заголовком столбца с названием Hash Value (Хэш-значение).

Второе действие, которое нужно начать, как только улики будут добавлены к делу, состоит в восстановлении папок, которые были удалены с диска. Для этого вы должны искать по всему диску комбинации "." и "..", которые представляют входы в каталог. Как только EnCase их найдет, он поместит эти папки в папку с названием Recovered Folders (Восстановленные папки), расположенную под теми дисками, в которых они были обнаружены. Чтобы запустить этот процесс, щелкните правой кнопкой мыши на диске и выберите Recover Folders (Восстановление папок). Процесс запустится, обновляя свое состояние на панели заголовка.

Другая функция ).

Когда сценарий, который вы хотите выполнить, загружен, щелкнете правой кнопкой мыши на названии сценария и выберите Run Script (Выполнить сценарий). Если вы выбирете сценарий Internet History, вас попросят указать каталог, в котором вы хотите сохранять сообщения. В нашем примере мы выбрали каталог C:\Evid\Export\. Как только выполнение сценария закончится, мы можем указать каталог C:\Evid\Export и дважды щелкнуть на файле index.htm. Этот файл будет содержать индексную страницу для отчета, как показано ниже.

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

Примечание. Даты посещения этих сайтов могут быть важны для следователя!

Два других полезных сценария восстанавливают записи INFO2 и графические файлы, записанные в форматах JPG, GIF и EMF. Записи INFO2 являются файлами, которые содержат информацию о файлах, удаленных в Recycle Bin (Корзина) в операционных системах Windows. Они могут помочь подтвердить время удаления и содержимое файлов, которые пользователь преднамеренно удалил. Графические файлы в форматах JPG и GIF обычно используются на Web-страницах. Фрагменты этих Web-страниц, включая контрабанду (например, порнографию) могут все еще существовать на диске. Файлы EMF-формата представляют собой задания по выводу на печать в операционных системах Windows; любые напечатанные файлы могут быть найдены, чтобы помочь вам в доказательстве вашего дела. Эти сценарии размещают результаты в папке Bookmarks (Закладки), в папках с названиями Recovered Recycle Bin Records (Восстановленная корзина) и Recovered Graphics Files (Восстановленные графические файлы), соответственно. Сам язык программирования не является темой этой книги, поэтому для получения дополнительной информации вы должны проконсультироваться на онлайновых ресурсах, предусмотренных для скриптов EScripts на сайте http://www.encase.com. Следующий образец экрана показывает результаты открытия графического файла с помощью скрипта EScripts.

Ранее мы обсуждали способность EnCase создавать сигнатуру каждому файлу в зависимости от его расширения и содержания. Так как EnCase не может рассматривать (изначально) каждый существующий файл, можно связать внешнее средство просмотра с различными типами файлов. Новое внешнее средство просмотра можно установить, выбрав Tools (Сервис), а затем Signatures (Сигнатуры). Появится экран File Signature (Сигнатуры файлов).

В этом месте вы можете рассматривать "верительные грамоты" для всех идентифицируемых типов сигнатур. На вкладке Viewers (Средства просмотра) вы можете добавлять различные средства просмотра типа Quickview Plus (который подробно обсуждается в лекции "Средства просмотра файлов и редакторы общего назначения"). После того, как было добавлено средство просмотра, всякий раз, когда вы сталкиваетесь с файлом, который хотите рассмотреть с помощью внешнего средства просмотра, щелкнете на файле правой кнопкой мыши, выберите Send To (Отправить) и выберите средство просмотра, которое вы установили.

EnCase поддерживает несколько режимов просмотра. Представление Gallery (Коллекция) отображает все графические файлы в каталоге. Представление Table (Таблица) дает подробный список файлов, который включает такие атрибуты, как метки даты и времени, размер файла и так далее. Представление Timeline (Временной график) показывает диаграмму временных меток создания, изменения и доступа для выбранных файлов.

Представление Report (Отчет) перечисляет детали файла улик, который содержит данные. Любой файл или фрагмент файла, который следователь отметил, выбрав правой кнопкой мыши селектор Bookmark (Закладка), появится в отчете (если только он не был специально опущен). Если вы щелкнете правой кнопкой мыши в пределах отчета, то сможете экспортировать его в формате RTF, чтобы можно было вырезать и вставлять в вашу следовательскую документацию подходящие данные.

Другой функцией, часто использующейся аналитиками, является функция поиска по ключевым словам, которая позволяет аналитику отыскать номера кредитных карточек, контрабандный материал или другую информацию. EnCase обеспечивает механизм для выполнения этой задачи в фоновом режиме, так что аналитик может возвратиться к работе. Теперь в нашем примере мы хотим добавить новое ключевое слово для поиска. Мы будем искать в уликах ключевые слова Kevin Johnson. Ключевое слово можно добавить, щелкнув на вкладке Keywords (Ключевые слова) в верхнем левом углу экрана. Щелкните правой кнопкой мыши на Keywords и добавьте новое ключевое слово в диалоговом окне New Keyword (Новое ключевое слово).

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

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

Чтобы начать поиск, щелкните на OK. Во время поиска вы будете видеть индикатор прогресса в верхней части поля состояния. Результаты будут помещены на вкладку Bookmarks в папке Search (Поиск).

Результаты включают файл (если есть файл), в котором расположено ключевое слово и некоторые данные, расположенные до и после ключевого слова в уликах. Затем вы можете рассматривать этот файл так, как вы рассматривали бы любой другой файл. Теперь мы прокрутим экран направо, чтобы показать другие поля.

Выбрав определенный файл, показанный на иллюстрации, мы переключимся назад на вкладку Case (Дело), расположенную в левом верхнем углу, и сможем полностью увидеть файл, который содержал ключевое слово. Разумно было бы для дальнейшего анализа скопировать этот файл на диск. Этот конкретный, выбранный нами файл, является почтовым контейнером; поэтому, мы хотим скопировать его на наш локальный диск и проанализировать его, используя инструментальные средства, описанные в лекции "Инструментальные средства, помогающие реконструировать деятельность, связанную с интернетом". Чтобы скопировать файлы (или папки), отметьте соответствующие флажки. Мы выбрали весь каталог почтового контейнера. Щелкните правой кнопкой мыши на этих файлах и выберите Copy Folders (Копировать папки).

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

В данном случае, мы выберем каталог C:\Evid\Export в качестве папки-адресата для экспорта интересующих нас файлов (теперь вы знаете, почему мы предложили вам использовать разные каталоги для экспорта файлов из разных дел!). Затем мы щелкнем на Begin Copying (Начать копирование); когда процесс завершится, интересующие нас файлы будут доступны для дальнейшего просмотра на локальном компьютере.

Другая полезная функция, которую предоставляет EnCase аналитику, заключается в способности использовать хэш-таблицы. Хэш-таблицы содержат контрольные суммы MD5 для многих известных файлов, типа системных, которые можно быстро идентифицировать. Они помогут уменьшить количество файлов, которые аналитик должен исследовать, потому что известные файлы не нужно исследовать. Хэш-таблицы могут также использоваться для поиска известной контрабанды или инструментальных средств взлома. Результаты хэш-анализа появятся в Hash Category (Хэш-категория) в представлении, дающем детальную информацию о файлах.

Примечание. Опция Hash Category в EnCase подобна опции KFF в комплекте FTK.

Вы можете вводить хэш-таблицы в дело, щелкая на Tools/Options. Появится диалоговое окно Hash Set Organizer (Организатор хэш-таблиц), которое позволит вам импортировать хэш-таблицы, если вы выбирете Import Hashkeeper Sets (Импортировать хэш-таблицу). Отличное место для загрузки хэш-таблиц находится на сайте http://www.hashkeeper.org.

Примечание. Во время публикации этой книги hashkeeper.org был отключен с сообщением, извещающим о том, что он будет снова включен в будущем.

Новая функция в EnCase (версия 3) дает возможность рассматривать файлы, которые могут содержать более углубленную информацию. Например, файлы системного реестра Windows являются закрытыми файлами (собственность компании), для адекватного анализа которых по существу требуется выполняющаяся первоначальная система. EnCase может теперь автономно рассматривать файлы системного реестра, что реально экономит время и энергию аналитика. Файлы системного реестра обычно располагаются в каталоге system32\config. После того, как файл системного реестра найден, правой кнопкой мыши выбирете View File Structure (Просмотр файловой структуры), чтобы увидеть восстановленную структуру.

Мы рассматриваем структуру системного реестра для файлов hwinfo.dat и system.dat.

Системный реестр внутри EnCase принимает структуру псевдофайла; мы можем делать поиск в этой структуре и рассматривать ключи. Более глубокие ключи системного реестра действуют в EnCase как более глубокие каталоги.

The Coroner's Toolkit

Практически существует только один вариант программного обеспечения для судебного анализа, которое имеет открытые исходные коды (то есть бесплатно). Он называется - The Coroner's Toolkit или TCT. Инструмент TCT отличается от FTK и EnCase тем, что он автоматизирует анализ файловых систем Unix (UFS, FFS, EXT2 и так далее). Инструмент TCT можно выполнять на работающей системе, которая, как вы подозреваете, была взломана, или на судебном изображении, созданном с помощью dd (подробно описан в лекции "Некоммерческие наборы инструментов, предназначенные для судебного дублирования").

Инструмент или http://www.porcupine.org/forensics/.

Внимание. При работе с TCT требуется лучшее понимание компьютерной криминалистики, чем при работе с EnCase или FTK.

Реализация

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

forensics# make

По окончании компиляции перечисленные здесь инструментальные средства будут доступны в каталоге bin или в lazarus. В эти каталоги включено много инструментальных средств, но здесь мы не будем рассматривать все. За деталями обратитесь к документации в каталоге doc.

  • Graverobber. Утилита graverobber автоматизирует большинство команд, которые обсуждались в лекции "Создание и использование комплекта инструментов "живого ответа" для Unix". Когда она выполняется в "живом" режиме, то собирает всю информацию о состоянии процессов, сетевых подключениях и параметрах, и важные системные файлы конфигурации. graverobber можно также вызвать для выполнения автономного анализа. Если вы создали изображение нужного вам жесткого диска с помощью dd, то graverobber сможет его проанализировать.
  • Mactime. Утилита mactime получает время последнего обращения к файловой системе и ее модификации, а также время ctimes (последняя модификация файловой структуры такого типа, как права доступа к файлу). Утилиту mactime можно вызвать напрямую, или выполнять, как часть анализа, который выполняется утилитой graverobber.
  • Unrm. Утилита unrm выгружает нераспределенное пространство из изображения, созданного инструментом dd. По умолчанию данные посылаются на экран, но обычно их переадресовывают в файл, используя оператор ">".
  • Lazarus. Утилита lazarus собирает детали расследования судебной копии. Она содержит инструментальные средства, с помощью которых можно попытаться реконструировать удаленные файлы. lazarus обычно вызывается для обработки набора данных, созданных утилитой unrm, построения HTML-отчета о файлах, которые она попыталась восстановить.
  • В следующих разделах обсуждаются эти инструментальные средства.

    Graverobber

    Утилита graverobber собирает важную, не удаленную информацию с нужной системы. Ее можно вызвать в двух различных состояниях: для сбора информации с "живой" системы (системы, которая в настоящее время запущена) и для сбора информации с автономной системы. Для анализа автономной системы вам необходимо иметь доступ к интересующему вас жесткому диску или его представлению, сделанному с помощью dd. Мы начнем с рассмотрения состояния, в котором собираются "живые" данные, а затем рассмотрим анализ автономной системы.

    Утилита graverobber является инструментом, который управляется из командной строки, и имеет многочисленные ключи. Информация по использованию командной строки находится в исходном коде утилиты graverobber.

    Использование: grave-robber [-filmnpstvDEFIMOPVS] [-b body_file] [-c corpse_dir]
    [-d data_directory] [-e error_file] [-o os_type]
    [directory_name(s)]
    Общие: 
            -b body bodyfile.   Используйте "-" для стандартного вывода stdout.
            -c corpse_dir       каталог, в котором будет выполнен анализ 
                                выключенной системы. Как правило, это смонтированный диск.    
            -d dir              Каталог для выходных данных.    
            -e file             Перенаправляет стандартный поток ошибок в этот файл.
            -o os_type          Спецификация типа автономной OC. В версии TCT-1.09 поддерживаются 
                                следующие операционные системы: FREEBSD2, FREEBSD3, FREEBSD4, 
                                OPENBSD2, BSDI2, BSDI3, BSDI4, SUNOS4, SUNOS5, LINUX2.
            -v                  Обеспечивает подробный вывод.   
            
    Сбор микро-данных.      
            -F                  Собирает файлы из файловой системы по мере их прохождения. 
                                Копирует объекты из переменной $conf_pattern, установленной 
                                в coroner.cf, обычно включающей стандартные выражения, 
                                подобные "*.cf", "*.conf", и т.д. Подразумевает -m. 
            -i                  Собирает пассивные данные Inode.    
            -I                  Перехватывает выполняющиеся процессы. Пробуйте вначале копировать 
                                с процессора, а затем извлекайте изображение прямо с диска. Требует 
                                "живой" функционирующей системы.    
            -l                  Выполняет действия, касающиеся материалов "look@first" (обрабатывать 
                                в первую очередь) - обрабатывает путь, ищет файлы в каталоге look@first. 
                                Требует "живой" системы. 
            -m                  Перехватывает данные MACtime.   
            -M                  Вычисляет контрольные суммы MD5файлов. 
                                Подразумевает ключ -m.  
            -O                  Сохраняет файлы, которые открыты, но были удалены с диска (зачастую 
                                это файлы конфигурации, исполняемые файлы и т.д.). Требует "живой системы".
            -p                  Копирует задействованную память в файл с помощью команды pcat. В некоторых 
                                системах с этой командой возникают проблемы, так что будьте осторожны! 
                                Требует "живой" системы. 
            -P                  Выполняет действующие команды - ps, lsof, и т.д. Требует "живой" системы.
            -s                  Выполняет общие команды Shell на хосте; это включает сбор информации в сети и 
                                на хосте типа netstat, df и т.д. Этот ключ не включает действующие команды (ps/lsof) 
                                (смотрите ключ -P).
            -S                  Сохраняет файлы, перечисленные в "save_these_files" (conf dir).
            -t                  Собирает надежную информацию.
            -V                  Собирает информацию из каталога dev.
            
    Сбор макро-данных
            -f                  Быстрый сбор данных. Избегает операций с файловой системой. 
                                Не используется вместе с опцией -m. Эта опция подразумевает ключи -P, -s и -O. 
            -n                  Сбор данных, заданный по умолчанию. Устанавливает 
                                ключи -i, -I, -m, -M, -P, -s, -t, -l, -O, -F, -S, -V.
            -E                  Выполняет все, что можно, включая опасные опции. В настоящее время в 
                                версии 1.09 этот ключ добавляет только -p к ключам, заданным по умолчанию.
    Примечание. Если никаких имен каталогов не задано, то graverobber подразумевает корневой каталог ( / ).

    Если приведенный выше список выглядит устрашающе, не волнуйтесь. Выполнение утилиты graverobber сведется к одной команде. Команда, которая нас интересует, предназначенная для сбора данных с функционирующей "живой" системы (обработка каталога /), выглядит следующим образом:

    victim# cd tct-1.09/bin
    victim# mkdir /mnt/storage/evid
    victim# ./grave-robber -v -d /mnt/storage/evid/

    С параметром -v graverobber выполняется в подробном режиме. С помощью параметра -d каталог /mnt/storage/evid задается, как область хранения вывода.

    Имеется несколько пояснений, касающихся предыдущей команды, которые стоит упомянуть. Во-первых, набор инструментов должен быть установлен и скомпилирован на системе-жертве. Потенциально это может уничтожить часть улик, если вы захотите в будущем выполнить судебное дублирование этого жесткого диска (для автономного анализа с использованием TCT ). Во-вторых, количество данных, произведенных этим процессом, может быть огромно и обычно оно не помещается на гибком диске. Поэтому, приведенная здесь команда использовала каталог /mnt/storage/evid, который может находиться на внешнем жестком диске, смонтированном через сетевую файловую систему (NFS). Монтирование каталога-хранилища через NFS поможет уменьшить деятельность на жестком диске жертвы, если вам потребуется выполнять судебное дублирование в будущем. Возможно, что вы захотите скопировать и скомпилировать TCT на том же жестком диске по той же самой причине. Когда graverobber закончит работу, вы получите каталог /mnt/storage/evid, заполненный уликами, предназначенными для дальнейшего анализа.

    Для примера, рассматриваемого в этой лекции, предположим, что мы экспортировали каталог /mnt/storage с нашего судебного компьютера и установили его на машине-жертве через NFS. Теперь весь дополнительный анализ мы выполним на судебной рабочей станции. Чтобы ограничить возможное изменение состояния машины-жертвы, на ней будут собраны только те данные, которые очевидно являются уликами. Мы будем придерживаться этого фундаментального судебного принципа на случай, если позже мы захотим выполнить дублирование.

    forensic# pwd
    /mnt/storage/evid
    forensic# ls -al
    total 4460
    drwxr-xr-x  9   root    wheel      4096  Apr 19 12:23    .   
    drwxr-xr-x  3   root    wheel      4096  Apr 19 12:23    ..  
    -rw-r--r--  1   root    wheel     81342  Apr 19 12:23    MD5_all 
    -rw-r--r--  1   root    wheel        54  Apr 19 12:23    MD5_all.md5 
    -rw-r--r--  1   root    wheel   4414968  Apr 19 12:23    body
    -rw-r--r--  1   root    wheel      8282  Apr 19 12:23    body.S
    drwx------  2   root    wheel      4096  Apr 19 12:23    command_out
    drwx------  8   root    wheel      4096  Apr 19 12:23    conf_vault
    drwx------  2   root    wheel      4096  Apr 19 12:23    icat
    drwx------  2   root    wheel      4096  Apr 19 12:23    proc
    drwx------  2   root    wheel      4096  Apr 19 12:23    removed_but_running
    drwx------  2   root    wheel      4096  Apr 19 12:23    trust
    drwx------  2   root    wheel      4096  Apr 19 12:23    user_vault

    Файл MD5_all будет содержать все контрольные суммы MD5 -вывода, произведенного утилитой graverobber. Фрагмент этого файла показан ниже.

    Fri Apr 19 14:45:00 EDT 2002
    d41d8cd98f00b204e9800998ecf8427e    /root/evid//    
    c213baacdb82f1b4b7b017e64bb7f9e9    /root/evid//body.S  
    121eb60b8a0a74045fefe3e3c445a766    /root/evid//body    
    d41d8cd98f00b204e9800998ecf8427e    /root/evid//command_out 
    f2e21b93a776dbd2bf8e2c180bbf0d2b    /mnt/storage/evid//command_out/lsof0    
    1977905a8c61187e98a3ed83a04d337f    /mnt/storage/evid//command_out/lsof0.md5    
    3f75c98c1c0722e4fe2f473f61084c5d    /mnt/storage/evid//command_out/lsof 
    688d73a46ffd897436c08519108fd1e8    /mnt/storage/evid//command_out/lsof.md5 
    1a42658e1680864aa41ce65f14a44a7d    /mnt/storage/evid//command_out/ps   
    76df89b0b72d90d18e6d04184d4660b3    /mnt/storage/evid//command_out/ps.md5
    Примечание. Может показаться странным получение контрольной суммы MD5 -каталога, но если вы представите себе каталог, как специальный файл на диске, который указывает на содержащиеся в нем файлы и каталоги, то вычисление контрольной суммы MD5 станет возможным.

    Так как невозможно вычислить контрольную сумму MD5 -файла MD5_all, когда вычисляются другие суммы (потому что результат добавляется к файлу), существует файл MD5_all.md5. Он содержит контрольную сумму MD5 -файла MD5_all. Содержание этого файла следующее.

    c185ae9291fda9365ac87193d437b01b    /mnt/storage/evid // MD5_all

    Основной файл содержит большую часть информации, собранной утилитой graverobber. В основном он представляет собой электронную таблицу с информацией, разграниченной символом " | " и имеющей отношение к MAC-временам, разрешениям файлов, правам собственности файлов и другой информации, относящейся к нашему расследованию. Содержание файла выглядит подобно следующему фрагменту.

    class|host|start_time
    body|redhat62|1018203800
    md5|file|st_dev|st_ino|st_mode|st_ls|st_nlink|st_uid|st_gid|st_rdev|st_size
    |st_atime|st_mtime|st_ctime|st_blksize|st_blocks
    cc6a0e39ec990af13cc6406bbc0ff333|/sbin/arp|770|100477|33261|
    -rwxr-xr-x|1|0|0|0|36272|1018203746|952425102|1016710670|4096|72
    d73b4aa0d067479b7b80555fbca64f99|/usr/bin/at|770|16748|35309
    |-rwsr-xr-x|1|0|0|0|33288|1018203769|951940087|1016710377|4096|72
    93287edbf19f164bb81b188b6475d756|/bin/cat|770|81832|33261
    |-rwxr-xr-x|1|0|0|0|9528|1018203746|949931427|1016710371|4096|24
    023915f5fd17489a0595277e1051eac0|/bin/cp|770|81820|33261
    |-rwxr-xr-x|1|0|0|0|33392|1018203754|952479772|1016710370|4096|72

    Строки, записанные курсивом, очевидно, показывают названия полей. Большая часть этой информации может показаться вам бессмысленной, и мы не будем обременять вас излишними деталями. Однако вы должны помнить, что утилита graverobber (и другие инструментальные средства из пакета TCT ) может использовать эту информацию, чтобы вывести более значащие сообщения. Мы возвратимся к этой теме после того, как обсудим остальную часть структуры файла улик, произведенного инструментом TCT.

    Файл body.S имеет ту же самую структуру, что и основной файл, обсуждавшийся ранее, за исключением того, что он содержит все программы SUID с машины-жертвы. Если вы плохо знакомы с системой Unix, то все программы SUID должны быть интересны вам как следователю. Причина здесь в том, что когда эти файлы выполняются, результирующий процесс изменяет текущего пользователя на владельца файла. Скорее, мы заинтересовались бы SUID-файлами, которые принадлежат привилегированному пользователю (root).

    Каталог command_out содержит выводы, сделанные командами, выполненными в системе инструментом TCT. Так как мы решили выполнить утилиту graverobber на "живой" системе, то это как раз та информация, которую мы ищем! Мы будем иметь вывод каждой выполненной команды, такой как arp, перенаправленный в файл с названием, совпадающим с именем команды. Для файла вывода также будет вычислена контрольная сумма MD5 и сохранена в файле с тем же самым именем и расширением .md5. Если вы хотите обратиться к файлу регистрации команд, выполненных в системе, можете прочитать файл coroner.log, находящийся в вершине каталога данных.

    forensic# ls -al
    total 428
    drwx------  2   root    wheel   4096  Apr 19 12:23    .   
    drwxr-xr-x  9   root    wheel   4096  Apr 19 12:23    ..  
    -rw-r--r--  1   root    wheel     29  Apr 19 12:23    arp 
    -rw-r--r--  1   root    wheel     62  Apr 19 12:23    arp.md5 
    -rw-r--r--  1   root    wheel    154  Apr 19 12:23    df  
    -rw-r--r--  1   root    wheel     61  Apr 19 12:23    df.md5  
    -rw-r--r--  1   root    wheel   4291  Apr 19 12:23    dmesg   
    -rw-r--r--  1   root    wheel     64  Apr 19 12:23    dmesg.md5   
    -rw-r--r--  1   root    wheel    401  Apr 19 12:23    finger  
    -rw-r--r--  1   root    wheel     65  Apr 19 12:23    finger.md5  
    -rw-r--r--  1   root    wheel   1147  Apr 19 12:23    free_inode_info._dev_hda2
    -rw-r--r--  1   root    wheel     84  Apr 19 12:23    free_inode_info._dev_hda2.md5
    -rw-r--r--  1   root    wheel    732  Apr 19 12:23    ifconfig    
    -rw-r--r--  1   root    wheel     67  Apr 19 12:23    ifconfig.md5    
    -rw-r--r--  1   root    wheel    337  Apr 19 12:23    ipcs

    Чтобы яснее видеть то, что мы здесь описываем, исследуем файл ifconfig. Так как команда ifconfig в системе Unix дает информацию о плате сетевого интерфейса, мы ожидаем увидеть IP-адреса и доступные интерфейсы. Следующая информация была собрана с нашей системы.

    forensic# cat ifconfig
    Sun Apr 7 14:25:37 EDT 2002
    eth0    Link encap:Ethernet HWaddr 00:BD:73:9E:00:01
            inet addr:192.168.1.104 Bcast:192.168.1.255 Mask:255.255.255.0
            UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
            RX packets:851 errors:0 dropped:0 overruns:0 frame:0
            TX packets:725 errors:0 dropped:0 overruns:0 carrier:0
            collisions:0 txqueuelen:100
            Interrupt:9 Base address:0x1000
    
    Lo      Link encap:Local Loopback
            inet addr:127.0.0.1 Mask:255.0.0.0
            UP LOOPBACK RUNNING MTU:3924 Metric:1
            RX packets:89 errors:0 dropped:0 overruns:0 frame:0
            TX packets:89 errors:0 dropped:0 overruns:0 carrier:0
            collisions:0 txqueuelen:0
    
    forensic# cat ifconfig.md5
    cae275f055428cdaa505f81970b29662 /mnt/storage/evid//command_out/ifconfig

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

    Каталог conf_vault содержит все интересные системные файлы конфигурации. Он также записывает большинство основных (home) каталогов пользователей в системе. Файлы в этом каталоге сохраняются с той же структурой каталога, как и в первоначальной системе-жертве. Кроме того, утилита graverobber создает файл с именем index.html, который может быть загружен в Web-броузере. Это позволяет выбирать папки обычным образом в пределах этого каталога.

    Каталоги icat и proc содержат изображения выполняющихся процессов. Эти каталоги очень важны для исследования системы Unix, потому что исполняемый файл может быть отмечен, как удаленный в файловой системе, но все еще выполняться в памяти. Как вы, наверное, догадываетесь, большинство взломщиков запускают инструменты типа программ черного хода (backdoor) или анализаторы сетевых потоков (sniffer) и удаляют исполняемый файл. Эти каталоги дают единственный способ найти изображения процессов так, чтобы вы затем могли проанализировать их с помощью инструментов. В этом каталоге файлы названы в соответствии с первоначальным ID процесса (PID). Они имеют временную метку (timestamp), содержащую время, когда они были зафиксированы. Утилита graverobber также создает файл .md5, который содержит контрольную сумму MD5 -изображения исполняемого файла. Следующая выборка, сделанная из каталога proc, поможет проиллюстрировать нашу точку зрения:

    forensic# ls -al
    total 3312
    drwx------  2   root    wheel    4096    Apr 19 12:23    .   
    drwxr-xr-x  9   root    wheel    4096    Apr 19 12:23    ..  
    -rw-r--r--  1   root    wheel   25968    Apr 19 14:23    1.out_2002_04_19_14:23:20_-0400
    -rw-r--r--  1   root    wheel      83    Apr 19 14:23    1.out_2002_04_19_14:23:20_-0400.md5

    Каталог removed_but_running содержит файлы, которые были удалены, но все еще были открыты во время выполнения утилиты graverobber. Эта ситуация может возникать в тех случаях, когда атакующий загрузил исполняемый файл (например, анализатор сетевого потока), а затем удалил все еще открытый файл. Поскольку файл не был полностью удален из физической файловой системы, мы можем найти его копию. Обратите внимание, однако, что файл удален из логической файловой системы. Название каждого файла в каталоге removed_but_running указывает на то, когда данные были собраны, подобно именам изображений процессов, которые обсуждались ранее.

    Следующий каталог, который мы видим в уликах - это каталог trust. Каталог trust содержит файлы, которые устанавливают любой тип доверия между этой системой и другими. В нашем примере в этом каталоге не было установлено никаких доверительных отношений.

    Последний каталог, user_vault, содержит файлы из каждого пользовательского каталога, которые могут помочь нашему расследованию. Некоторые из собранных в нем данных, являются файлами .bash_history из всех пользовательских каталогов. Файлы .bash_history содержат список последних команд, которые пользователь попытался выполнять. По нашему опыту, если эти файлы найдены, то они или позволят вам поймать неопытного хакера, из тех, кто не знаком с системой Unix, или не содержат ничего полезного для нашего расследования.

    Mactime

    Одна из стадий реагирования на инцидент состоит в определении временного графика атаки. Это может выполняться для следственных целей или в целях восстановления системы. Удачно, что TCT имеет инструмент mactime, который вычисляет время последней модификации, время последнего обращения и время ctime (последняя модификация структуры файла, например, разрешений) после заданной даты. По желанию мы можем также выбрать конечную дату, создав временные рамки, ограничивающие наш анализ. Если мы не определяем значение второго времени time2, это значение по умолчанию будет текущим временем. Инструмент имеет много опций командной строки и их резюме, согласно исходному коду, таково:

    Использование:
            mactime [-DfhlnpRsty] [-d directory] [-g group] [-p passwd] [-u user]
                        [-b bodyfile] time1[-time2] [-d directory]
            Формат времени задан в самой простой форме как:
            Месяц/день/год - 4/5/1982
            Обязательно задавайте год в виде четырех цифр.
    
        -b  [файл]          Использует этот файл как альтернативный основной ("body")
                            файл вместо заданного по умолчанию ($DATA/$body).
        -B  [файл]          Выводит основную часть в этот файл. Знак "-" является
                            стандартным выводом stdout, конечно. Этот ключ удобен для использования
                            только с флагом -d.
        -d  [каталог]       Указывает определенный каталог для отчета. Этот ключ не использует
                            обычный файл основной базы данных.
        -f [имя файла]      Помечает файлы, перечисленные в заданном файле, другим цветом (только HTML!).
        -g [имя файла]      Этот флаг использует альтернативный файл группы для печати групп.
        -h                  Этот флаг выдает некоторый простой вывод HTML вместо открытого ascii текста.
        -l                  Берет "последний" вывод.
        -n                  Этот флажок заставляет mactime принимать вывод с нормальной "датой",
                            который выглядит примерно так: "Tue Apr 7 17:20:43 PDT 1998".
        -p [имя файла]      Этот флаг использует альтернативный файл пароля для печати пользовательских
                            идентификаторов (ID).
        -R                  Этот флаг конфигурирует mactime для рекурсивного анализа подката логов
                            (полезен только с флагом -d).
        -s                  Этот ключ помечает файлы SUID/SGID другим цветом (только HTML!).
        -t                  Этот ключ выводит время в машинном формате.
        -u [пользователь]   Помечает файлы, принадлежащие пользователю, другим цветом (только HTML!).
        -v                  Этот ключ активизирует подробный вывод.

    Чтобы выполнить mactime на данных, собранных утилитой graverobber в предыдущем разделе, мы будем использовать ключ -b. Поэтому, следующая команда выведет времена mactimes для данных, которые мы зафиксировали в предыдущем разделе. Мы выбрали дату 1/1/1971 для уверенности в том, что увидим времена mactimes для всех файлов в системе-жертве (если, конечно, вы не установили операционную систему более трех десятилетий назад).

    forensic# ./mactime -b /mnt/storage/evid/body "1/1/1971"
    
    Mar 03 89 21:54:51      574 ma. -rw-r--r-- root/toor wheel
        /usr/lib/bcc/include/regexp.h
    
    Mar 03 89 21:55:06      153 ma. -rw-r--r-- root/toor wheel
        /usr/lib/bcc/include/regmagic.h
    
    Nov 15 89 01:57:45      353 ma. -r--r--r-- root/toor wheel
        /usr/doc/pmake-2.1.34/tests/cmd.test
    
                                410 ma. -r--r--r-- root/toor wheel
        /usr/doc/pmake-2.1.34/tests/cmdvar.test

    Первый столбец вывода - дата. Второй столбец - время, а третий - размер файла. Четвертый столбец представляет значение mac: последнее время модификации, последнее время обращения, и время ctime, соответственно. "." означает, что значение отсутствует. Таким образом, в предыдущем примере, ни у каких файлов не изменялось время ctimes.

    Чтобы выполнить утилиту mactime в файловой системе, которую graverobber не анализировал, используем ключи -R и -d. Мы могли бы смонтировать изображение, созданное инструментом dd (см. лекцию "Некоммерческие наборы инструментов, предназначенные для судебного дублирования"), для этого процесса, или смонтировать копию жесткого диска в виде, предназначенном только для чтения. Для получения аналогичного вывода команда была бы следующей:

    forensic# mactime -R -d /mnt/evidence "1/1/1971"

    Unrm

    unrm - очень простой инструмент, и едва ли заслуживает того, чтобы быть заголовком в этом разделе. Мы обращаем на него внимание лишь потому, что lazarus будет использовать вывод утилиты unrm в следующем разделе.

    Применяя unrm для сбора нераспределенного пространства в изображении, созданном с помощью dd, нужно использовать следующую команду:

    forensic# ./unrm /dev/loop0 linux_free.bin

    Эта команда предполагает, что вы смонтировали судебную копию жесткого диска с системой Linux (с именем linux_drive.bin), используя утилиту losetup, которая обсуждалась в лекции "Некоммерческие наборы инструментов, предназначенные для судебного дублирования".

    Если жесткий диск, дублированный в файл linux_drive.bin, имел полный объем 2Гб, и имел 1,5Гб свободного пространства, то результирующий файл linux_drive_freespace.bin будет иметь размер 1,5Гб.

    Lazarus

    lazarus является единственным некоммерческим инструментальным средством, доступным широкой публике, которое пытается восстанавливать файлы из автономной файловой системы. Как было объявлено, lazarus предназначен для восстановления файлов из файловых систем UFS, EXT2, NTFS и FAT32.

    lazarus анализирует данные, прошедшие утилиту unrm, которая обсуждалась в предыдущем разделе. Поскольку lazarus выведет еще большее количество информации из файла unrm, то можно ожидать, что для выполнения этого инструмента потребуется так же много свободного пространства, как требовалось для unrm. Поэтому, если вся файловая система файла занимала 2Гб, и 1,5Гб из них были свободны, то утилите unrm потребуется 1,5Гб свободного пространства на судебном компьютере, а для lazarus потребуется еще почти 1,5Гб свободного пространства. Кроме того, lazarus ни в коем случае не является быстрым инструментом. Ему потребуется длительное время непрерывной работы для полного завершения анализа.

    lazarus управляется из командной строки. Вам доступны следующие опции (эту информацию можно найти, рассматривая исходный текст утилиты lazarus ):

    Использование: lazarus [флаги] <имя файла изображения>
    Имеются следующие опции:
        -1    Этот ключ позволяет обрабатывать по одному байту за один раз,
               вместо обработки за раз одного блока (1КБ) данных.
        -b    Этот ключ позволяет не писать нераспознанные двоичные блоки
               данных (по умолчанию они пишутся).
         -B    Этот ключ позволяет не писать никаких двоичных блоков данных
               (по умолчанию они пишутся).
         -h    Этот ключ позволяет генерировать HTML-код вместо ascii текста.
               Он делает вывод в три файла - файл данных ($ARGV [0]) +.html,
               .menu.html и .frame.html. Вначале вы захотите взглянуть на файл
               $ARGV [0] .frame.html (в своем броузере).
         -H каталог  позволяет писать HTML-код в каталог с этим именем. Этот
                    ключ должен использоваться с флагом -h.
         -D каталог  Этот ключ позволяет писать восстановленные блоки в
                    каталог с этим именем.
         -t    Этот ключ позволяет не писать нераспознанные блоки текстовых
               данных (по умолчанию они пишутся).
         -T    Этот ключ позволяет не писать никаких блоков текстовых данных
               (по умолчанию они пишутся).
         -w каталог  Использует этот каталог, чтобы писать весь HTML-код.
                    Используйте этот ключ с флагом -h.

    Следующая команда обычно используется для восстановления блоков данных из судебной копии машины-жертвы.

    forensic# ./lazarus -h /mnt/storage/www -D /mnt/storage/blocks
    /mnt/storage/linux_free.bin

    Вывод (через несколько часов!) будет сделан в каталог /mnt/storage, а файл назван linux_ free.bin.html. Загрузите этот файл в свой броузер и рассмотрите файлы, восстановленные с жесткого диска. Следующая иллюстрация показывает начальную Web-страницу, которую мы загрузили.

    Этот экран показывает весь жесткий диск в виде блоков в логарифмическом масштабе. Каждый блок, представленный как ".", указывает свободное пространство, которое не восстановлено к файлу. Любой другой блок имеет код типа T, X и так далее, который можно активизировать щелчком. Щелкая на этом коде, вы можете переместиться к восстановленному файлу.

    Каждый код представляет свой тип файла. T представляет текстовый файл, X - исполняемый файл, H - файл HTML и так далее. Коды суммированы в следующем списке.

    Код Цвет в HTML-выводе Тип файла
    T серый Нераспознанный текст.
    F Ярко-красный Вывод анализатора сетевого потока (Sniffer).
    М Синий Почта.
    Q Бледно-синий Файлы Mailq.
    S Фиолетовый Файлы Emacs/lisp.
    P Зеленоватый Программные файлы.
    C Зеленый код на языке C.
    H Светло-фиолетовый HTML.
    W Красноватый Файлы пароля.
    L Светло-коричневый Журналы регистрации.
    . Черный Нераспознанные блоки.
    O Светло-серый Пустые блоки.
    R Черный Удаленные блоки.
    X Черный Исполняемые двоичные файлы.
    E Золотой Двоичные ELF.
    I Зеленоватый Файлы JPG/GIF.
    A Черный Архив (cpio, tar и другие).
    Z Зеленоватый Сжатые файлы.
    ! Черный Аудио файлы.

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

    Примечание. Инструмент TCT был выполнен на том же жестком диске, который мы анализировали в процессе "живого ответа" в лекции "Создание и использование комплекта инструментов "живого ответа" для Unix". Это тот же самый фрагмент данных, который мы видели в файле /etc/motd, и который редактировался взломщиком.

    Важно отметить, что lazarus может также обрабатывать устройства, не подвергнутые предварительной обработке (например, копии жесткого диска жертвы), также как и вывод утилиты unrm. Различие будет только во времени, которое займет обработка, потому что надо будет исследовать большее количество блоков данных.

    Пример из жизни. Бегство служащего компании, подозреваемого в нелегальной деятельности

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

    Все, что имеет D.E.A. в качестве доказательства его связей - это IP-адреса, среди которых отправителем является офис компании, а получателем - южноамериканский адресат. Вы должны предоставить необходимую информацию отделу D.E.A. и помочь расследованию. Вы, конечно, прочитали лекции "Коммерческие наборы инструментов для судебного дублирования" и знаете, как создать судебную копию рабочего компьютера, оставленного Кевином Джонсоном. Для сбора данных вы выбираете инструмент EnCase, чтобы импортировать эти данные в соответствующие инструментальные средства.

    The Forensic Toolkit. Мы видели, как нескольких щелчков мыши позволяют понять, для чего использовался жесткий диск Кевина Джонсона. Рассматривая электронную почту, автоматически обнаруженную инструментом FTK, мы узнаем, что Кевин планировал встретиться в Колумбии с какой-то женщиной. Теперь у D.E.A. есть зацепка, которой не было раньше: адрес электронной почты ladybluebird@hotpop.com.

    EnCase. EnCase находит информацию, подобно FTK. Он делает это достаточно эффективно, и мы можем использовать различные внешние средства для просмотра данных, которые считаем важными. Кроме того, мы можем экспортировать данные для восстановления улик, например, электронной почты.

    Кроме того, используя утилиту EScripts, мы смогли восстановить историю поисков в интернете и получить результаты в удобной для пользователя форме. Из этого отчета видно, что Кевина Джонсона интересовала информация о южноамериканских городах, например, он рассматривал карту Боготы (Колумбия). Кроме того, Кевин Джонсон просматривал информацию о внутренних гаванях Балтимора (штат Мэриленд). Разумно предположить, что мистер Джонсон может появиться в одном из этих городов, и отделу D.E.A. следует установить в этих городах наблюдение.

    Страницы:

    В лекциях "Коммерческие наборы инструментов для судебного дублирования" и "Некоммерческие наборы инструментов, предназначенные для судебного дублирования" мы рассматривали инструментальные средства, с помощью которых можно выполнить судебное дублирование исходного жесткого диска. Получение копии - это первый шаг в двухступенчатом процессе успешного судебного расследования. Вторая фаза - это аналитическая составляющая расследования. В этой лекции обсуждаются инструментальные средства, используемые для анализа данных, которые мы получили ранее. Все наборы инструментов, предназначенные для судебного анализа, которые мы рассматриваем, способны импортировать несколько форматов судебного изображения. Наиболее полезный формат, в котором изображение создается утилитой dd, может использоваться со всеми этими инструментальными средствами, и так как эта утилита имеет открытый исходный код, то создание копии ничего не стоит (кроме вашего времени).

    Forensic toolkit

    Судебный комплект инструментов ) помогает аналитику, сокращая большие наборы данных до поднабора, содержащего важную информацию. FTK - коммерческий продукт. Он продается компанией AccessData. До конца прошлого года FTK поставлялся вместе с программой SnapBack, являющейся коммерческим инструментом судебного дублирования (см. лекцию "Коммерческие наборы инструментов для судебного дублирования").

    Внимание. Для работы FTK требуется защитная заглушка ( dongle ). Если у вас нет защитной заглушки, вам нужно связаться с компанией AccessData, и это может задержать ваше расследование.

    FTK может автоматически извлекать документы Microsoft Office, электронной почты, отслеживать деятельность, связанную с интернетом, и пр. Поскольку инструмент делает это автоматически, он экономит время, чтобы аналитик мог приступить сразу к анализу важных данных. Инструмент FTK полностью индексирует данные, поэтому поиск по ключевым словам происходит почти мгновенно. При работе с изображением жесткого диска в несколько гигабайт это свойство может сэкономить часы, проведенные за судебным компьютером.

    Инструмент FTK анализирует только файловые системы Microsoft Windows. Поэтому, если система, которую вы расследуете, относится к системам Unix, то для ее анализа нужно использовать другие инструменты: EnCase или комплект инструментов Coroner.

    Реализация

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

    Мы создадим новое дело, а затем импортируем туда наши исходные файлы улик. Эти файлы улик были созданы с исходного диска, с помощью инструмента судебного дублирования EnCase (см. лекцию "Коммерческие наборы инструментов для судебного дублирования"). Когда мы выбираем опцию Start A New Case, появляется экран, позволяющий описать специфику нашего дела.

    Следующий экран позволяет задать параметры нашего дела. Аббревиатура KFF означает known-file filter (фильтр известных файлов). Эта опция отфильтровывает файлы, которые, предположительно, являются безопасными. Для корректной работы операционная система Windows требует сотни стандартных системных файлов. Эти файлы, если они не были изменены, в большинстве сценариев дадут аналитику очень узкую информацию. Опция KFF позволяет уменьшить количество файлов, которые требуется анализировать. Следовательно, при проведении расследования эта опция может сэкономить время, деньги и ресурсы.

    Если вы предполагаете, что может потребоваться поиск по ключевым словам, то отметьте опцию Full Text Index (Индексирование всего текста). Процесс импорта займет значительно больше времени, но цена будет оправдана, если вы выполните поиск более одного раза.

    На следующем экране, FTK просит, чтобы мы добавили к делу улики. Уликами могут быть файлы, созданные с помощью инструмента EnCase или файлы изображений, созданные в dd. Файлы улик, создаваемые в EnCase были описаны в лекции "Коммерческие наборы инструментов для судебного дублирования", а получение копии жесткого диска с помощью dd рассматривалось в лекции "Некоммерческие наборы инструментов, предназначенные для судебного дублирования".

    Когда мы выбираем Add Evidence (Добавление улик), нам предоставляются несколько опций, касающихся типа улик, которые нужно добавить.

    Мы можем импортировать файл улик, анализировать локальный диск, содержание каталога или индивидуальный файл. Обычно, нам требуется импортировать файл улик (опция Acquired Image Of Drive ), но стоит рассмотреть также и другие методы анализа. Например, нам нужно подключить диск к судебному компьютеру вместо ввода в FTK файла улик (опция Local Drive ). Если мы имеем только логическую копию зависимой машины, нам может понадобиться проанализировать содержание каталога, и этот каталог мог бы содержать логическую копию интересующей нас машины (опция Contents Of A Folder ). Или у нас может быть единственный очень большой файл, который требуется проиндексировать для дальнейшего поиска (опция Individual File ).

    Поскольку чаще всего используется импортирование файлов улик, то в этой книге мы обсуждаем именно этот метод. Мы создали копию, используя инструмент EnCase (лекция "Коммерческие наборы инструментов для судебного дублирования"). Теперь добавьте эти файлы к недавно созданному делу, выбрав Continue (Продолжение) на последнем экране.

    Затем мы выбираем любые окончательные опции и вводим информацию, характеризующую улики этого конкретного элемента, в дело:

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

    Если вы готовы, то щелкните на Next (Далее). Начинается импорт.

    Когда обработка закончена, появляется главный навигационный экран FTK. Вкладки, расположенные вдоль верхней части экрана, позволяют нам выбирать анализ различных частей улик. Однако, вкладка Overview (Обзор) дает очень точный краткий обзор информации, найденной в уликах. Кроме того, эта вкладка является наиболее эффективным средством быстрого рассмотрения улик. Каждую из кнопок, расположенных под пунктами File Items (Элементы файла), File Status (Статус файла) и File Category (Категория файла) можно активизировать щелчком. Когда вы щелкаете на этих кнопках, файлы представятся аналитику в нижней половине экрана FTK.

    Нажатием кнопки Evidence Items (Элементы улик) перечисляются файлы улик, которые мы импортировали для анализа. Для файла улик Tag1 имеются две строки. Третий столбец показывает, что каждая строка представляет отдельный раздел, который был обнаружен в Tag1.

    Кнопка Total File Items (Общее число файлов) перечисляет все файлы, обнаруженные в пределах файла улик. Этот экран дает следователю отличный краткий обзор файлов, существующих в системе подозреваемого.

    Возможно, следователь хочет быстро увидеть макет всех изображений, присутствующих в уликах. Щелкнув на Other Thumbnails (Другие макеты), можно увидеть изображения в системе и искать любую контрабанду.

    Выделение электронной почты является одной из трудоемких задач для компьютерных криминалистов. Инструмент FTK старается уменьшить это бремя с помощью кнопки From E-mail (Исходящая почта). По щелчку на этой кнопке отображается вся электронная почта, которая была послана с этого компьютера, как показано на следующей иллюстрации.

    Почти в каждом случае подозреваемый удаляет файлы. По щелчку на кнопке Deleted Files (Удаленные файлы) отображается список файлов, которые были удалены из системы.

    Кнопка Slack/Free Space (Резервное/Свободное пространство) отображает список всего нераспределенного и резервного пространства, показанного на следующей иллюстрации. Хотя обычно вы и не ищете это пространство вручную, выбрав эту опцию, вы получите такую информацию. Однако, как вы увидите позже, имеются автоматизированные способы поиска этого пространства в файловой системе.

    При большинстве расследований, особенно в процессе поиска улик для судебных дел, полезно воспроизводить все документы, имеющиеся на анализируемой машине. Кнопка Documents (Документы) демонстрирует следователю все документы. Документами являются файлы, созданные в Microsoft Office, текстовые файлы, файлы HTML и др.

    Обратите внимание, что пользователь этого компьютера, очевидно, читал Web-сайты о Колумбии, Южной Америке.

    Любые общие сообщения электронной почты можно найти, щелкнув на кнопке E-mail Messages (Почтовые сообщения).

    Другие вкладки позволяют нам получить более детализированное представление данных. Вкладка Explore дает интерфейс, подобный Windows Explorer (Проводник), для просмотра содержимого улик.

    Пропустив несколько вкладок, находим вкладку Search (Поиск), обеспечивающую такие функциональные возможности, которые делают FTK великолепным инструментом. С применением к данным полной индексации текста, поиск будет происходить почти мгновенно. Например, введем ключевые слова Johnson и Colombia, поскольку далее они будут иметь отношение к разделу "Пример из жизни". В поле Composite Search (Расширенный поиск), выбираем опцию Only Count Files With Hits On ALL Files (Учитывать только файлы с полным совпадением). Это значение указывает логическое отношение AND между всеми ключевыми словами поиска. Раскрывающийся список обеспечивает также возможность поиска с оператором OR.

    Если ваши ключевые слова не приводят ко многим совпадениям, можете использовать опции расширенного поиска инструмента FTK, которые видоизменяют ключевые слова, чтобы найти слова не идентичные, но близкие к вашему критерию. Первоначально, однако, следует отключить эти опции, чтобы увидеть более узкое представление результатов.

    По окончании поиска результаты будут отображены на панели, подобной показанной ранее.

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

    Все действия, произведенные с уликами, будут зарегистрированы в FTK. Меню Tools (Сервис), расположенное на панели главного меню, позволяет просматривать и добавлять комментарии к файлу регистрации текущего дела.

    Из-за способности инструмента FTK быстро извлекать важные данные, он представляет собой великолепный набор инструментов судебного анализа для тех, кто только начал изучать криминалистику или не имеет времени для вложения значительных ресурсов.

    EnCase

    EnCase представляет собой широко используемый набор инструментов судебного анализа. Его используют многие следователи правоохранительных органов. Он также широко используется в финансовых учреждениях, оказывая помощь при внутренних расследованиях. EnCase, подобно набору Forensic Toolkit приспособлен для аналитиков, которые не углубляются в знание деталей, касающиеся жестких дисков и структур данных операционной системы. Кроме того, EnCase включает в себя как инструментальные средства получения данных, так и средства их анализа, превращая его в самодостаточный комплект для успешного завершения почти любого расследования. EnCase - коммерческий набор инструментов и стоит (приблизительно) от $2000 до $4000, в зависимости от того, являетесь ли вы представителем правоохранительных органов или коммерческим клиентом. Чтобы использовать аналитическую часть комплекта, для EnCase, подобно FTK, требуется защитная заглушка (dongle).

    Примечание. Руководство пользователя EnCase включает общий судебный учебник для начинающих, который необходимо прочесть прежде, чем вы начнете пользоваться этим инструментом.

    компании Guidance Software.

    Реализация

    EnCase имеет графический интерфейс пользователя и не требует командных строк. Запуская EnCase, вы щелкаете на кнопке New (Создать), расположенной в верхней части инструментальной панели, для создания нового дела. Затем EnCase просит вас указать каталоги для экспорта документов и хранения любых временных файлов. Мы настоятельно рекомендуем, чтобы вы изменили заданные по умолчанию каталоги на уникальные каталоги, предназначенные для текущего дела, над которым вы работаете. Это позволит хранить отдельно данные от разных дел, улучшая, таким образом, целостность документов.

    Как только дело создано, сохраните файл дела. Это можно сделать, используя опцию Save (Сохранить), расположенную на инструментальной панели.

    После того, как вы сохранили файл дела в первый раз, пришло время добавить к нему ваши улики. Щелкните на кнопке Add (Добавить), находящейся на инструментальной панели. Затем введите соответствующую информацию.

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

    Когда процесс проверки завершен, результаты отображаются на экране истории улик. Вы можете рассматривать специфику загруженных файлов улик, выбирая Case (Дело) в верхнем левом углу и рассматривая вкладку Evidence (улики) внизу окна EnCase. Каждая строка представляет загруженный файл улик, и информация, касающаяся проверки контрольной суммы, отображается для ссылки на нее в будущем.

    Прокрутите экран вправо, чтобы увидеть больше информации.

    Кроме того, EnCase (версия 3) может открывать файлы изображений, созданные инструментом dd. Так как файлы изображений, созданные с dd, может получить почти любой человек, то такие дополнительные функциональные возможности увеличивают мощь EnCase.

    Первое действие, которое обычно необходимо выполнить с загруженными уликами в EnCase - это проверить контрольную сумму и соответствие сигнатур всех обнаруженных логических файлов. Это можно сделать, щелкнув на Search (Поиск) на инструментальной панели EnCase, чтобы отобразить экран Search.

    Как правило, нужно выбирать опции The Entire Case (Все дело), Verify File Signatures (Проверка сигнатур файлов) и Compute Hash Value (Вычисление хэш-значения). С этими параметрами настройки будут вычислены хэш-значения для каждого файла в деле. Кроме того, EnCase исследует верхние (header) и нижние (footer) колонтитулы каждого файла и назначает сигнатуру файла. Например, документы Microsoft Office содержат известные верхние и нижние колонтитулы, и в этом процессе будет назначена сигнатура "Microsoft Word Document" к файлу file.txt, если будет обнаружен верхний колонтитул. Это очень полезно в случае, если сюжет дела содержит переименование расширений файлов, чтобы ввести в заблуждение следователя.

    На следующем экране показаны контрольные суммы MD5, вычисленные для произвольных файлов в уликах, которые мы добавили к нашему делу в начале этого раздела. Они отображаются под заголовком столбца с названием Hash Value (Хэш-значение).

    Второе действие, которое нужно начать, как только улики будут добавлены к делу, состоит в восстановлении папок, которые были удалены с диска. Для этого вы должны искать по всему диску комбинации "." и "..", которые представляют входы в каталог. Как только EnCase их найдет, он поместит эти папки в папку с названием Recovered Folders (Восстановленные папки), расположенную под теми дисками, в которых они были обнаружены. Чтобы запустить этот процесс, щелкните правой кнопкой мыши на диске и выберите Recover Folders (Восстановление папок). Процесс запустится, обновляя свое состояние на панели заголовка.

    Другая функция ).

    Когда сценарий, который вы хотите выполнить, загружен, щелкнете правой кнопкой мыши на названии сценария и выберите Run Script (Выполнить сценарий). Если вы выбирете сценарий Internet History, вас попросят указать каталог, в котором вы хотите сохранять сообщения. В нашем примере мы выбрали каталог C:\Evid\Export\. Как только выполнение сценария закончится, мы можем указать каталог C:\Evid\Export и дважды щелкнуть на файле index.htm. Этот файл будет содержать индексную страницу для отчета, как показано ниже.

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

    Примечание. Даты посещения этих сайтов могут быть важны для следователя!

    Два других полезных сценария восстанавливают записи INFO2 и графические файлы, записанные в форматах JPG, GIF и EMF. Записи INFO2 являются файлами, которые содержат информацию о файлах, удаленных в Recycle Bin (Корзина) в операционных системах Windows. Они могут помочь подтвердить время удаления и содержимое файлов, которые пользователь преднамеренно удалил. Графические файлы в форматах JPG и GIF обычно используются на Web-страницах. Фрагменты этих Web-страниц, включая контрабанду (например, порнографию) могут все еще существовать на диске. Файлы EMF-формата представляют собой задания по выводу на печать в операционных системах Windows; любые напечатанные файлы могут быть найдены, чтобы помочь вам в доказательстве вашего дела. Эти сценарии размещают результаты в папке Bookmarks (Закладки), в папках с названиями Recovered Recycle Bin Records (Восстановленная корзина) и Recovered Graphics Files (Восстановленные графические файлы), соответственно. Сам язык программирования не является темой этой книги, поэтому для получения дополнительной информации вы должны проконсультироваться на онлайновых ресурсах, предусмотренных для скриптов EScripts на сайте http://www.encase.com. Следующий образец экрана показывает результаты открытия графического файла с помощью скрипта EScripts.

    Ранее мы обсуждали способность EnCase создавать сигнатуру каждому файлу в зависимости от его расширения и содержания. Так как EnCase не может рассматривать (изначально) каждый существующий файл, можно связать внешнее средство просмотра с различными типами файлов. Новое внешнее средство просмотра можно установить, выбрав Tools (Сервис), а затем Signatures (Сигнатуры). Появится экран File Signature (Сигнатуры файлов).

    В этом месте вы можете рассматривать "верительные грамоты" для всех идентифицируемых типов сигнатур. На вкладке Viewers (Средства просмотра) вы можете добавлять различные средства просмотра типа Quickview Plus (который подробно обсуждается в лекции "Средства просмотра файлов и редакторы общего назначения"). После того, как было добавлено средство просмотра, всякий раз, когда вы сталкиваетесь с файлом, который хотите рассмотреть с помощью внешнего средства просмотра, щелкнете на файле правой кнопкой мыши, выберите Send To (Отправить) и выберите средство просмотра, которое вы установили.

    EnCase поддерживает несколько режимов просмотра. Представление Gallery (Коллекция) отображает все графические файлы в каталоге. Представление Table (Таблица) дает подробный список файлов, который включает такие атрибуты, как метки даты и времени, размер файла и так далее. Представление Timeline (Временной график) показывает диаграмму временных меток создания, изменения и доступа для выбранных файлов.

    Представление Report (Отчет) перечисляет детали файла улик, который содержит данные. Любой файл или фрагмент файла, который следователь отметил, выбрав правой кнопкой мыши селектор Bookmark (Закладка), появится в отчете (если только он не был специально опущен). Если вы щелкнете правой кнопкой мыши в пределах отчета, то сможете экспортировать его в формате RTF, чтобы можно было вырезать и вставлять в вашу следовательскую документацию подходящие данные.

    Другой функцией, часто использующейся аналитиками, является функция поиска по ключевым словам, которая позволяет аналитику отыскать номера кредитных карточек, контрабандный материал или другую информацию. EnCase обеспечивает механизм для выполнения этой задачи в фоновом режиме, так что аналитик может возвратиться к работе. Теперь в нашем примере мы хотим добавить новое ключевое слово для поиска. Мы будем искать в уликах ключевые слова Kevin Johnson. Ключевое слово можно добавить, щелкнув на вкладке Keywords (Ключевые слова) в верхнем левом углу экрана. Щелкните правой кнопкой мыши на Keywords и добавьте новое ключевое слово в диалоговом окне New Keyword (Новое ключевое слово).

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

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

    Чтобы начать поиск, щелкните на OK. Во время поиска вы будете видеть индикатор прогресса в верхней части поля состояния. Результаты будут помещены на вкладку Bookmarks в папке Search (Поиск).

    Результаты включают файл (если есть файл), в котором расположено ключевое слово и некоторые данные, расположенные до и после ключевого слова в уликах. Затем вы можете рассматривать этот файл так, как вы рассматривали бы любой другой файл. Теперь мы прокрутим экран направо, чтобы показать другие поля.

    Выбрав определенный файл, показанный на иллюстрации, мы переключимся назад на вкладку Case (Дело), расположенную в левом верхнем углу, и сможем полностью увидеть файл, который содержал ключевое слово. Разумно было бы для дальнейшего анализа скопировать этот файл на диск. Этот конкретный, выбранный нами файл, является почтовым контейнером; поэтому, мы хотим скопировать его на наш локальный диск и проанализировать его, используя инструментальные средства, описанные в лекции "Инструментальные средства, помогающие реконструировать деятельность, связанную с интернетом". Чтобы скопировать файлы (или папки), отметьте соответствующие флажки. Мы выбрали весь каталог почтового контейнера. Щелкните правой кнопкой мыши на этих файлах и выберите Copy Folders (Копировать папки).

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

    В данном случае, мы выберем каталог C:\Evid\Export в качестве папки-адресата для экспорта интересующих нас файлов (теперь вы знаете, почему мы предложили вам использовать разные каталоги для экспорта файлов из разных дел!). Затем мы щелкнем на Begin Copying (Начать копирование); когда процесс завершится, интересующие нас файлы будут доступны для дальнейшего просмотра на локальном компьютере.

    Другая полезная функция, которую предоставляет EnCase аналитику, заключается в способности использовать хэш-таблицы. Хэш-таблицы содержат контрольные суммы MD5 для многих известных файлов, типа системных, которые можно быстро идентифицировать. Они помогут уменьшить количество файлов, которые аналитик должен исследовать, потому что известные файлы не нужно исследовать. Хэш-таблицы могут также использоваться для поиска известной контрабанды или инструментальных средств взлома. Результаты хэш-анализа появятся в Hash Category (Хэш-категория) в представлении, дающем детальную информацию о файлах.

    Примечание. Опция Hash Category в EnCase подобна опции KFF в комплекте FTK.

    Вы можете вводить хэш-таблицы в дело, щелкая на Tools/Options. Появится диалоговое окно Hash Set Organizer (Организатор хэш-таблиц), которое позволит вам импортировать хэш-таблицы, если вы выбирете Import Hashkeeper Sets (Импортировать хэш-таблицу). Отличное место для загрузки хэш-таблиц находится на сайте http://www.hashkeeper.org.

    Примечание. Во время публикации этой книги hashkeeper.org был отключен с сообщением, извещающим о том, что он будет снова включен в будущем.

    Новая функция в EnCase (версия 3) дает возможность рассматривать файлы, которые могут содержать более углубленную информацию. Например, файлы системного реестра Windows являются закрытыми файлами (собственность компании), для адекватного анализа которых по существу требуется выполняющаяся первоначальная система. EnCase может теперь автономно рассматривать файлы системного реестра, что реально экономит время и энергию аналитика. Файлы системного реестра обычно располагаются в каталоге system32\config. После того, как файл системного реестра найден, правой кнопкой мыши выбирете View File Structure (Просмотр файловой структуры), чтобы увидеть восстановленную структуру.

    Мы рассматриваем структуру системного реестра для файлов hwinfo.dat и system.dat.

    Системный реестр внутри EnCase принимает структуру псевдофайла; мы можем делать поиск в этой структуре и рассматривать ключи. Более глубокие ключи системного реестра действуют в EnCase как более глубокие каталоги.

    The Coroner's Toolkit

    Практически существует только один вариант программного обеспечения для судебного анализа, которое имеет открытые исходные коды (то есть бесплатно). Он называется - The Coroner's Toolkit или TCT. Инструмент TCT отличается от FTK и EnCase тем, что он автоматизирует анализ файловых систем Unix (UFS, FFS, EXT2 и так далее). Инструмент TCT можно выполнять на работающей системе, которая, как вы подозреваете, была взломана, или на судебном изображении, созданном с помощью dd (подробно описан в лекции "Некоммерческие наборы инструментов, предназначенные для судебного дублирования").

    Инструмент или http://www.porcupine.org/forensics/.

    Внимание. При работе с TCT требуется лучшее понимание компьютерной криминалистики, чем при работе с EnCase или FTK.

    Реализация

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

    forensics# make

    По окончании компиляции перечисленные здесь инструментальные средства будут доступны в каталоге bin или в lazarus. В эти каталоги включено много инструментальных средств, но здесь мы не будем рассматривать все. За деталями обратитесь к документации в каталоге doc.

  • Graverobber. Утилита graverobber автоматизирует большинство команд, которые обсуждались в лекции "Создание и использование комплекта инструментов "живого ответа" для Unix". Когда она выполняется в "живом" режиме, то собирает всю информацию о состоянии процессов, сетевых подключениях и параметрах, и важные системные файлы конфигурации. graverobber можно также вызвать для выполнения автономного анализа. Если вы создали изображение нужного вам жесткого диска с помощью dd, то graverobber сможет его проанализировать.
  • Mactime. Утилита mactime получает время последнего обращения к файловой системе и ее модификации, а также время ctimes (последняя модификация файловой структуры такого типа, как права доступа к файлу). Утилиту mactime можно вызвать напрямую, или выполнять, как часть анализа, который выполняется утилитой graverobber.
  • Unrm. Утилита unrm выгружает нераспределенное пространство из изображения, созданного инструментом dd. По умолчанию данные посылаются на экран, но обычно их переадресовывают в файл, используя оператор ">".
  • Lazarus. Утилита lazarus собирает детали расследования судебной копии. Она содержит инструментальные средства, с помощью которых можно попытаться реконструировать удаленные файлы. lazarus обычно вызывается для обработки набора данных, созданных утилитой unrm, построения HTML-отчета о файлах, которые она попыталась восстановить.
  • В следующих разделах обсуждаются эти инструментальные средства.

    Graverobber

    Утилита graverobber собирает важную, не удаленную информацию с нужной системы. Ее можно вызвать в двух различных состояниях: для сбора информации с "живой" системы (системы, которая в настоящее время запущена) и для сбора информации с автономной системы. Для анализа автономной системы вам необходимо иметь доступ к интересующему вас жесткому диску или его представлению, сделанному с помощью dd. Мы начнем с рассмотрения состояния, в котором собираются "живые" данные, а затем рассмотрим анализ автономной системы.

    Утилита graverobber является инструментом, который управляется из командной строки, и имеет многочисленные ключи. Информация по использованию командной строки находится в исходном коде утилиты graverobber.

    Использование: grave-robber [-filmnpstvDEFIMOPVS] [-b body_file] [-c corpse_dir]
    [-d data_directory] [-e error_file] [-o os_type]
    [directory_name(s)]
    Общие: 
            -b body bodyfile.   Используйте "-" для стандартного вывода stdout.
            -c corpse_dir       каталог, в котором будет выполнен анализ 
                                выключенной системы. Как правило, это смонтированный диск.    
            -d dir              Каталог для выходных данных.    
            -e file             Перенаправляет стандартный поток ошибок в этот файл.
            -o os_type          Спецификация типа автономной OC. В версии TCT-1.09 поддерживаются 
                                следующие операционные системы: FREEBSD2, FREEBSD3, FREEBSD4, 
                                OPENBSD2, BSDI2, BSDI3, BSDI4, SUNOS4, SUNOS5, LINUX2.
            -v                  Обеспечивает подробный вывод.   
            
    Сбор микро-данных.      
            -F                  Собирает файлы из файловой системы по мере их прохождения. 
                                Копирует объекты из переменной $conf_pattern, установленной 
                                в coroner.cf, обычно включающей стандартные выражения, 
                                подобные "*.cf", "*.conf", и т.д. Подразумевает -m. 
            -i                  Собирает пассивные данные Inode.    
            -I                  Перехватывает выполняющиеся процессы. Пробуйте вначале копировать 
                                с процессора, а затем извлекайте изображение прямо с диска. Требует 
                                "живой" функционирующей системы.    
            -l                  Выполняет действия, касающиеся материалов "look@first" (обрабатывать 
                                в первую очередь) - обрабатывает путь, ищет файлы в каталоге look@first. 
                                Требует "живой" системы. 
            -m                  Перехватывает данные MACtime.   
            -M                  Вычисляет контрольные суммы MD5файлов. 
                                Подразумевает ключ -m.  
            -O                  Сохраняет файлы, которые открыты, но были удалены с диска (зачастую 
                                это файлы конфигурации, исполняемые файлы и т.д.). Требует "живой системы".
            -p                  Копирует задействованную память в файл с помощью команды pcat. В некоторых 
                                системах с этой командой возникают проблемы, так что будьте осторожны! 
                                Требует "живой" системы. 
            -P                  Выполняет действующие команды - ps, lsof, и т.д. Требует "живой" системы.
            -s                  Выполняет общие команды Shell на хосте; это включает сбор информации в сети и 
                                на хосте типа netstat, df и т.д. Этот ключ не включает действующие команды (ps/lsof) 
                                (смотрите ключ -P).
            -S                  Сохраняет файлы, перечисленные в "save_these_files" (conf dir).
            -t                  Собирает надежную информацию.
            -V                  Собирает информацию из каталога dev.
            
    Сбор макро-данных
            -f                  Быстрый сбор данных. Избегает операций с файловой системой. 
                                Не используется вместе с опцией -m. Эта опция подразумевает ключи -P, -s и -O. 
            -n                  Сбор данных, заданный по умолчанию. Устанавливает 
                                ключи -i, -I, -m, -M, -P, -s, -t, -l, -O, -F, -S, -V.
            -E                  Выполняет все, что можно, включая опасные опции. В настоящее время в 
                                версии 1.09 этот ключ добавляет только -p к ключам, заданным по умолчанию.
    Примечание. Если никаких имен каталогов не задано, то graverobber подразумевает корневой каталог ( / ).

    Если приведенный выше список выглядит устрашающе, не волнуйтесь. Выполнение утилиты graverobber сведется к одной команде. Команда, которая нас интересует, предназначенная для сбора данных с функционирующей "живой" системы (обработка каталога /), выглядит следующим образом:

    victim# cd tct-1.09/bin
    victim# mkdir /mnt/storage/evid
    victim# ./grave-robber -v -d /mnt/storage/evid/

    С параметром -v graverobber выполняется в подробном режиме. С помощью параметра -d каталог /mnt/storage/evid задается, как область хранения вывода.

    Имеется несколько пояснений, касающихся предыдущей команды, которые стоит упомянуть. Во-первых, набор инструментов должен быть установлен и скомпилирован на системе-жертве. Потенциально это может уничтожить часть улик, если вы захотите в будущем выполнить судебное дублирование этого жесткого диска (для автономного анализа с использованием TCT ). Во-вторых, количество данных, произведенных этим процессом, может быть огромно и обычно оно не помещается на гибком диске. Поэтому, приведенная здесь команда использовала каталог /mnt/storage/evid, который может находиться на внешнем жестком диске, смонтированном через сетевую файловую систему (NFS). Монтирование каталога-хранилища через NFS поможет уменьшить деятельность на жестком диске жертвы, если вам потребуется выполнять судебное дублирование в будущем. Возможно, что вы захотите скопировать и скомпилировать TCT на том же жестком диске по той же самой причине. Когда graverobber закончит работу, вы получите каталог /mnt/storage/evid, заполненный уликами, предназначенными для дальнейшего анализа.

    Для примера, рассматриваемого в этой лекции, предположим, что мы экспортировали каталог /mnt/storage с нашего судебного компьютера и установили его на машине-жертве через NFS. Теперь весь дополнительный анализ мы выполним на судебной рабочей станции. Чтобы ограничить возможное изменение состояния машины-жертвы, на ней будут собраны только те данные, которые очевидно являются уликами. Мы будем придерживаться этого фундаментального судебного принципа на случай, если позже мы захотим выполнить дублирование.

    forensic# pwd
    /mnt/storage/evid
    forensic# ls -al
    total 4460
    drwxr-xr-x  9   root    wheel      4096  Apr 19 12:23    .   
    drwxr-xr-x  3   root    wheel      4096  Apr 19 12:23    ..  
    -rw-r--r--  1   root    wheel     81342  Apr 19 12:23    MD5_all 
    -rw-r--r--  1   root    wheel        54  Apr 19 12:23    MD5_all.md5 
    -rw-r--r--  1   root    wheel   4414968  Apr 19 12:23    body
    -rw-r--r--  1   root    wheel      8282  Apr 19 12:23    body.S
    drwx------  2   root    wheel      4096  Apr 19 12:23    command_out
    drwx------  8   root    wheel      4096  Apr 19 12:23    conf_vault
    drwx------  2   root    wheel      4096  Apr 19 12:23    icat
    drwx------  2   root    wheel      4096  Apr 19 12:23    proc
    drwx------  2   root    wheel      4096  Apr 19 12:23    removed_but_running
    drwx------  2   root    wheel      4096  Apr 19 12:23    trust
    drwx------  2   root    wheel      4096  Apr 19 12:23    user_vault

    Файл MD5_all будет содержать все контрольные суммы MD5 -вывода, произведенного утилитой graverobber. Фрагмент этого файла показан ниже.

    Fri Apr 19 14:45:00 EDT 2002
    d41d8cd98f00b204e9800998ecf8427e    /root/evid//    
    c213baacdb82f1b4b7b017e64bb7f9e9    /root/evid//body.S  
    121eb60b8a0a74045fefe3e3c445a766    /root/evid//body    
    d41d8cd98f00b204e9800998ecf8427e    /root/evid//command_out 
    f2e21b93a776dbd2bf8e2c180bbf0d2b    /mnt/storage/evid//command_out/lsof0    
    1977905a8c61187e98a3ed83a04d337f    /mnt/storage/evid//command_out/lsof0.md5    
    3f75c98c1c0722e4fe2f473f61084c5d    /mnt/storage/evid//command_out/lsof 
    688d73a46ffd897436c08519108fd1e8    /mnt/storage/evid//command_out/lsof.md5 
    1a42658e1680864aa41ce65f14a44a7d    /mnt/storage/evid//command_out/ps   
    76df89b0b72d90d18e6d04184d4660b3    /mnt/storage/evid//command_out/ps.md5
    Примечание. Может показаться странным получение контрольной суммы MD5 -каталога, но если вы представите себе каталог, как специальный файл на диске, который указывает на содержащиеся в нем файлы и каталоги, то вычисление контрольной суммы MD5 станет возможным.

    Так как невозможно вычислить контрольную сумму MD5 -файла MD5_all, когда вычисляются другие суммы (потому что результат добавляется к файлу), существует файл MD5_all.md5. Он содержит контрольную сумму MD5 -файла MD5_all. Содержание этого файла следующее.

    c185ae9291fda9365ac87193d437b01b    /mnt/storage/evid // MD5_all

    Основной файл содержит большую часть информации, собранной утилитой graverobber. В основном он представляет собой электронную таблицу с информацией, разграниченной символом " | " и имеющей отношение к MAC-временам, разрешениям файлов, правам собственности файлов и другой информации, относящейся к нашему расследованию. Содержание файла выглядит подобно следующему фрагменту.

    class|host|start_time
    body|redhat62|1018203800
    md5|file|st_dev|st_ino|st_mode|st_ls|st_nlink|st_uid|st_gid|st_rdev|st_size
    |st_atime|st_mtime|st_ctime|st_blksize|st_blocks
    cc6a0e39ec990af13cc6406bbc0ff333|/sbin/arp|770|100477|33261|
    -rwxr-xr-x|1|0|0|0|36272|1018203746|952425102|1016710670|4096|72
    d73b4aa0d067479b7b80555fbca64f99|/usr/bin/at|770|16748|35309
    |-rwsr-xr-x|1|0|0|0|33288|1018203769|951940087|1016710377|4096|72
    93287edbf19f164bb81b188b6475d756|/bin/cat|770|81832|33261
    |-rwxr-xr-x|1|0|0|0|9528|1018203746|949931427|1016710371|4096|24
    023915f5fd17489a0595277e1051eac0|/bin/cp|770|81820|33261
    |-rwxr-xr-x|1|0|0|0|33392|1018203754|952479772|1016710370|4096|72

    Строки, записанные курсивом, очевидно, показывают названия полей. Большая часть этой информации может показаться вам бессмысленной, и мы не будем обременять вас излишними деталями. Однако вы должны помнить, что утилита graverobber (и другие инструментальные средства из пакета TCT ) может использовать эту информацию, чтобы вывести более значащие сообщения. Мы возвратимся к этой теме после того, как обсудим остальную часть структуры файла улик, произведенного инструментом TCT.

    Файл body.S имеет ту же самую структуру, что и основной файл, обсуждавшийся ранее, за исключением того, что он содержит все программы SUID с машины-жертвы. Если вы плохо знакомы с системой Unix, то все программы SUID должны быть интересны вам как следователю. Причина здесь в том, что когда эти файлы выполняются, результирующий процесс изменяет текущего пользователя на владельца файла. Скорее, мы заинтересовались бы SUID-файлами, которые принадлежат привилегированному пользователю (root).

    Каталог command_out содержит выводы, сделанные командами, выполненными в системе инструментом TCT. Так как мы решили выполнить утилиту graverobber на "живой" системе, то это как раз та информация, которую мы ищем! Мы будем иметь вывод каждой выполненной команды, такой как arp, перенаправленный в файл с названием, совпадающим с именем команды. Для файла вывода также будет вычислена контрольная сумма MD5 и сохранена в файле с тем же самым именем и расширением .md5. Если вы хотите обратиться к файлу регистрации команд, выполненных в системе, можете прочитать файл coroner.log, находящийся в вершине каталога данных.

    forensic# ls -al
    total 428
    drwx------  2   root    wheel   4096  Apr 19 12:23    .   
    drwxr-xr-x  9   root    wheel   4096  Apr 19 12:23    ..  
    -rw-r--r--  1   root    wheel     29  Apr 19 12:23    arp 
    -rw-r--r--  1   root    wheel     62  Apr 19 12:23    arp.md5 
    -rw-r--r--  1   root    wheel    154  Apr 19 12:23    df  
    -rw-r--r--  1   root    wheel     61  Apr 19 12:23    df.md5  
    -rw-r--r--  1   root    wheel   4291  Apr 19 12:23    dmesg   
    -rw-r--r--  1   root    wheel     64  Apr 19 12:23    dmesg.md5   
    -rw-r--r--  1   root    wheel    401  Apr 19 12:23    finger  
    -rw-r--r--  1   root    wheel     65  Apr 19 12:23    finger.md5  
    -rw-r--r--  1   root    wheel   1147  Apr 19 12:23    free_inode_info._dev_hda2
    -rw-r--r--  1   root    wheel     84  Apr 19 12:23    free_inode_info._dev_hda2.md5
    -rw-r--r--  1   root    wheel    732  Apr 19 12:23    ifconfig    
    -rw-r--r--  1   root    wheel     67  Apr 19 12:23    ifconfig.md5    
    -rw-r--r--  1   root    wheel    337  Apr 19 12:23    ipcs

    Чтобы яснее видеть то, что мы здесь описываем, исследуем файл ifconfig. Так как команда ifconfig в системе Unix дает информацию о плате сетевого интерфейса, мы ожидаем увидеть IP-адреса и доступные интерфейсы. Следующая информация была собрана с нашей системы.

    forensic# cat ifconfig
    Sun Apr 7 14:25:37 EDT 2002
    eth0    Link encap:Ethernet HWaddr 00:BD:73:9E:00:01
            inet addr:192.168.1.104 Bcast:192.168.1.255 Mask:255.255.255.0
            UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
            RX packets:851 errors:0 dropped:0 overruns:0 frame:0
            TX packets:725 errors:0 dropped:0 overruns:0 carrier:0
            collisions:0 txqueuelen:100
            Interrupt:9 Base address:0x1000
    
    Lo      Link encap:Local Loopback
            inet addr:127.0.0.1 Mask:255.0.0.0
            UP LOOPBACK RUNNING MTU:3924 Metric:1
            RX packets:89 errors:0 dropped:0 overruns:0 frame:0
            TX packets:89 errors:0 dropped:0 overruns:0 carrier:0
            collisions:0 txqueuelen:0
    
    forensic# cat ifconfig.md5
    cae275f055428cdaa505f81970b29662 /mnt/storage/evid//command_out/ifconfig

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

    Каталог conf_vault содержит все интересные системные файлы конфигурации. Он также записывает большинство основных (home) каталогов пользователей в системе. Файлы в этом каталоге сохраняются с той же структурой каталога, как и в первоначальной системе-жертве. Кроме того, утилита graverobber создает файл с именем index.html, который может быть загружен в Web-броузере. Это позволяет выбирать папки обычным образом в пределах этого каталога.

    Каталоги icat и proc содержат изображения выполняющихся процессов. Эти каталоги очень важны для исследования системы Unix, потому что исполняемый файл может быть отмечен, как удаленный в файловой системе, но все еще выполняться в памяти. Как вы, наверное, догадываетесь, большинство взломщиков запускают инструменты типа программ черного хода (backdoor) или анализаторы сетевых потоков (sniffer) и удаляют исполняемый файл. Эти каталоги дают единственный способ найти изображения процессов так, чтобы вы затем могли проанализировать их с помощью инструментов. В этом каталоге файлы названы в соответствии с первоначальным ID процесса (PID). Они имеют временную метку (timestamp), содержащую время, когда они были зафиксированы. Утилита graverobber также создает файл .md5, который содержит контрольную сумму MD5 -изображения исполняемого файла. Следующая выборка, сделанная из каталога proc, поможет проиллюстрировать нашу точку зрения:

    forensic# ls -al
    total 3312
    drwx------  2   root    wheel    4096    Apr 19 12:23    .   
    drwxr-xr-x  9   root    wheel    4096    Apr 19 12:23    ..  
    -rw-r--r--  1   root    wheel   25968    Apr 19 14:23    1.out_2002_04_19_14:23:20_-0400
    -rw-r--r--  1   root    wheel      83    Apr 19 14:23    1.out_2002_04_19_14:23:20_-0400.md5

    Каталог removed_but_running содержит файлы, которые были удалены, но все еще были открыты во время выполнения утилиты graverobber. Эта ситуация может возникать в тех случаях, когда атакующий загрузил исполняемый файл (например, анализатор сетевого потока), а затем удалил все еще открытый файл. Поскольку файл не был полностью удален из физической файловой системы, мы можем найти его копию. Обратите внимание, однако, что файл удален из логической файловой системы. Название каждого файла в каталоге removed_but_running указывает на то, когда данные были собраны, подобно именам изображений процессов, которые обсуждались ранее.

    Следующий каталог, который мы видим в уликах - это каталог trust. Каталог trust содержит файлы, которые устанавливают любой тип доверия между этой системой и другими. В нашем примере в этом каталоге не было установлено никаких доверительных отношений.

    Последний каталог, user_vault, содержит файлы из каждого пользовательского каталога, которые могут помочь нашему расследованию. Некоторые из собранных в нем данных, являются файлами .bash_history из всех пользовательских каталогов. Файлы .bash_history содержат список последних команд, которые пользователь попытался выполнять. По нашему опыту, если эти файлы найдены, то они или позволят вам поймать неопытного хакера, из тех, кто не знаком с системой Unix, или не содержат ничего полезного для нашего расследования.

    Mactime

    Одна из стадий реагирования на инцидент состоит в определении временного графика атаки. Это может выполняться для следственных целей или в целях восстановления системы. Удачно, что TCT имеет инструмент mactime, который вычисляет время последней модификации, время последнего обращения и время ctime (последняя модификация структуры файла, например, разрешений) после заданной даты. По желанию мы можем также выбрать конечную дату, создав временные рамки, ограничивающие наш анализ. Если мы не определяем значение второго времени time2, это значение по умолчанию будет текущим временем. Инструмент имеет много опций командной строки и их резюме, согласно исходному коду, таково:

    Использование:
            mactime [-DfhlnpRsty] [-d directory] [-g group] [-p passwd] [-u user]
                        [-b bodyfile] time1[-time2] [-d directory]
            Формат времени задан в самой простой форме как:
            Месяц/день/год - 4/5/1982
            Обязательно задавайте год в виде четырех цифр.
    
        -b  [файл]          Использует этот файл как альтернативный основной ("body")
                            файл вместо заданного по умолчанию ($DATA/$body).
        -B  [файл]          Выводит основную часть в этот файл. Знак "-" является
                            стандартным выводом stdout, конечно. Этот ключ удобен для использования
                            только с флагом -d.
        -d  [каталог]       Указывает определенный каталог для отчета. Этот ключ не использует
                            обычный файл основной базы данных.
        -f [имя файла]      Помечает файлы, перечисленные в заданном файле, другим цветом (только HTML!).
        -g [имя файла]      Этот флаг использует альтернативный файл группы для печати групп.
        -h                  Этот флаг выдает некоторый простой вывод HTML вместо открытого ascii текста.
        -l                  Берет "последний" вывод.
        -n                  Этот флажок заставляет mactime принимать вывод с нормальной "датой",
                            который выглядит примерно так: "Tue Apr 7 17:20:43 PDT 1998".
        -p [имя файла]      Этот флаг использует альтернативный файл пароля для печати пользовательских
                            идентификаторов (ID).
        -R                  Этот флаг конфигурирует mactime для рекурсивного анализа подката логов
                            (полезен только с флагом -d).
        -s                  Этот ключ помечает файлы SUID/SGID другим цветом (только HTML!).
        -t                  Этот ключ выводит время в машинном формате.
        -u [пользователь]   Помечает файлы, принадлежащие пользователю, другим цветом (только HTML!).
        -v                  Этот ключ активизирует подробный вывод.

    Чтобы выполнить mactime на данных, собранных утилитой graverobber в предыдущем разделе, мы будем использовать ключ -b. Поэтому, следующая команда выведет времена mactimes для данных, которые мы зафиксировали в предыдущем разделе. Мы выбрали дату 1/1/1971 для уверенности в том, что увидим времена mactimes для всех файлов в системе-жертве (если, конечно, вы не установили операционную систему более трех десятилетий назад).

    forensic# ./mactime -b /mnt/storage/evid/body "1/1/1971"
    
    Mar 03 89 21:54:51      574 ma. -rw-r--r-- root/toor wheel
        /usr/lib/bcc/include/regexp.h
    
    Mar 03 89 21:55:06      153 ma. -rw-r--r-- root/toor wheel
        /usr/lib/bcc/include/regmagic.h
    
    Nov 15 89 01:57:45      353 ma. -r--r--r-- root/toor wheel
        /usr/doc/pmake-2.1.34/tests/cmd.test
    
                                410 ma. -r--r--r-- root/toor wheel
        /usr/doc/pmake-2.1.34/tests/cmdvar.test

    Первый столбец вывода - дата. Второй столбец - время, а третий - размер файла. Четвертый столбец представляет значение mac: последнее время модификации, последнее время обращения, и время ctime, соответственно. "." означает, что значение отсутствует. Таким образом, в предыдущем примере, ни у каких файлов не изменялось время ctimes.

    Чтобы выполнить утилиту mactime в файловой системе, которую graverobber не анализировал, используем ключи -R и -d. Мы могли бы смонтировать изображение, созданное инструментом dd (см. лекцию "Некоммерческие наборы инструментов, предназначенные для судебного дублирования"), для этого процесса, или смонтировать копию жесткого диска в виде, предназначенном только для чтения. Для получения аналогичного вывода команда была бы следующей:

    forensic# mactime -R -d /mnt/evidence "1/1/1971"

    Unrm

    unrm - очень простой инструмент, и едва ли заслуживает того, чтобы быть заголовком в этом разделе. Мы обращаем на него внимание лишь потому, что lazarus будет использовать вывод утилиты unrm в следующем разделе.

    Применяя unrm для сбора нераспределенного пространства в изображении, созданном с помощью dd, нужно использовать следующую команду:

    forensic# ./unrm /dev/loop0 linux_free.bin

    Эта команда предполагает, что вы смонтировали судебную копию жесткого диска с системой Linux (с именем linux_drive.bin), используя утилиту losetup, которая обсуждалась в лекции "Некоммерческие наборы инструментов, предназначенные для судебного дублирования".

    Если жесткий диск, дублированный в файл linux_drive.bin, имел полный объем 2Гб, и имел 1,5Гб свободного пространства, то результирующий файл linux_drive_freespace.bin будет иметь размер 1,5Гб.

    Lazarus

    lazarus является единственным некоммерческим инструментальным средством, доступным широкой публике, которое пытается восстанавливать файлы из автономной файловой системы. Как было объявлено, lazarus предназначен для восстановления файлов из файловых систем UFS, EXT2, NTFS и FAT32.

    lazarus анализирует данные, прошедшие утилиту unrm, которая обсуждалась в предыдущем разделе. Поскольку lazarus выведет еще большее количество информации из файла unrm, то можно ожидать, что для выполнения этого инструмента потребуется так же много свободного пространства, как требовалось для unrm. Поэтому, если вся файловая система файла занимала 2Гб, и 1,5Гб из них были свободны, то утилите unrm потребуется 1,5Гб свободного пространства на судебном компьютере, а для lazarus потребуется еще почти 1,5Гб свободного пространства. Кроме того, lazarus ни в коем случае не является быстрым инструментом. Ему потребуется длительное время непрерывной работы для полного завершения анализа.

    lazarus управляется из командной строки. Вам доступны следующие опции (эту информацию можно найти, рассматривая исходный текст утилиты lazarus ):

    Использование: lazarus [флаги] <имя файла изображения>
    Имеются следующие опции:
        -1    Этот ключ позволяет обрабатывать по одному байту за один раз,
               вместо обработки за раз одного блока (1КБ) данных.
        -b    Этот ключ позволяет не писать нераспознанные двоичные блоки
               данных (по умолчанию они пишутся).
         -B    Этот ключ позволяет не писать никаких двоичных блоков данных
               (по умолчанию они пишутся).
         -h    Этот ключ позволяет генерировать HTML-код вместо ascii текста.
               Он делает вывод в три файла - файл данных ($ARGV [0]) +.html,
               .menu.html и .frame.html. Вначале вы захотите взглянуть на файл
               $ARGV [0] .frame.html (в своем броузере).
         -H каталог  позволяет писать HTML-код в каталог с этим именем. Этот
                    ключ должен использоваться с флагом -h.
         -D каталог  Этот ключ позволяет писать восстановленные блоки в
                    каталог с этим именем.
         -t    Этот ключ позволяет не писать нераспознанные блоки текстовых
               данных (по умолчанию они пишутся).
         -T    Этот ключ позволяет не писать никаких блоков текстовых данных
               (по умолчанию они пишутся).
         -w каталог  Использует этот каталог, чтобы писать весь HTML-код.
                    Используйте этот ключ с флагом -h.

    Следующая команда обычно используется для восстановления блоков данных из судебной копии машины-жертвы.

    forensic# ./lazarus -h /mnt/storage/www -D /mnt/storage/blocks
    /mnt/storage/linux_free.bin

    Вывод (через несколько часов!) будет сделан в каталог /mnt/storage, а файл назван linux_ free.bin.html. Загрузите этот файл в свой броузер и рассмотрите файлы, восстановленные с жесткого диска. Следующая иллюстрация показывает начальную Web-страницу, которую мы загрузили.

    Этот экран показывает весь жесткий диск в виде блоков в логарифмическом масштабе. Каждый блок, представленный как ".", указывает свободное пространство, которое не восстановлено к файлу. Любой другой блок имеет код типа T, X и так далее, который можно активизировать щелчком. Щелкая на этом коде, вы можете переместиться к восстановленному файлу.

    Каждый код представляет свой тип файла. T представляет текстовый файл, X - исполняемый файл, H - файл HTML и так далее. Коды суммированы в следующем списке.

    Код Цвет в HTML-выводе Тип файла
    T серый Нераспознанный текст.
    F Ярко-красный Вывод анализатора сетевого потока (Sniffer).
    М Синий Почта.
    Q Бледно-синий Файлы Mailq.
    S Фиолетовый Файлы Emacs/lisp.
    P Зеленоватый Программные файлы.
    C Зеленый код на языке C.
    H Светло-фиолетовый HTML.
    W Красноватый Файлы пароля.
    L Светло-коричневый Журналы регистрации.
    . Черный Нераспознанные блоки.
    O Светло-серый Пустые блоки.
    R Черный Удаленные блоки.
    X Черный Исполняемые двоичные файлы.
    E Золотой Двоичные ELF.
    I Зеленоватый Файлы JPG/GIF.
    A Черный Архив (cpio, tar и другие).
    Z Зеленоватый Сжатые файлы.
    ! Черный Аудио файлы.

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

    Примечание. Инструмент TCT был выполнен на том же жестком диске, который мы анализировали в процессе "живого ответа" в лекции "Создание и использование комплекта инструментов "живого ответа" для Unix". Это тот же самый фрагмент данных, который мы видели в файле /etc/motd, и который редактировался взломщиком.

    Важно отметить, что lazarus может также обрабатывать устройства, не подвергнутые предварительной обработке (например, копии жесткого диска жертвы), также как и вывод утилиты unrm. Различие будет только во времени, которое займет обработка, потому что надо будет исследовать большее количество блоков данных.

    Пример из жизни. Бегство служащего компании, подозреваемого в нелегальной деятельности

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

    Все, что имеет D.E.A. в качестве доказательства его связей - это IP-адреса, среди которых отправителем является офис компании, а получателем - южноамериканский адресат. Вы должны предоставить необходимую информацию отделу D.E.A. и помочь расследованию. Вы, конечно, прочитали лекции "Коммерческие наборы инструментов для судебного дублирования" и знаете, как создать судебную копию рабочего компьютера, оставленного Кевином Джонсоном. Для сбора данных вы выбираете инструмент EnCase, чтобы импортировать эти данные в соответствующие инструментальные средства.

    The Forensic Toolkit. Мы видели, как нескольких щелчков мыши позволяют понять, для чего использовался жесткий диск Кевина Джонсона. Рассматривая электронную почту, автоматически обнаруженную инструментом FTK, мы узнаем, что Кевин планировал встретиться в Колумбии с какой-то женщиной. Теперь у D.E.A. есть зацепка, которой не было раньше: адрес электронной почты ladybluebird@hotpop.com.

    EnCase. EnCase находит информацию, подобно FTK. Он делает это достаточно эффективно, и мы можем использовать различные внешние средства для просмотра данных, которые считаем важными. Кроме того, мы можем экспортировать данные для восстановления улик, например, электронной почты.

    Кроме того, используя утилиту EScripts, мы смогли восстановить историю поисков в интернете и получить результаты в удобной для пользователя форме. Из этого отчета видно, что Кевина Джонсона интересовала информация о южноамериканских городах, например, он рассматривал карту Боготы (Колумбия). Кроме того, Кевин Джонсон просматривал информацию о внутренних гаванях Балтимора (штат Мэриленд). Разумно предположить, что мистер Джонсон может появиться в одном из этих городов, и отделу D.E.A. следует установить в этих городах наблюдение.

    Вернуться к учебному плану