Харлэн Карви
Криминалистическое исследование
Windows
2
Глава 9
Проведение анализа при ограниченном бюджете
Содержание этой главы:
§Документирование анализа
§Инструменты
üКраткое изложение
üБыстрое повторение
üЧасто задаваемые вопросы
Введение
Похоже, что расследование инцидента или проведение компьютерно-технической экспертизы недоступно для некоторых специалистов из-за стоимости различных коммерческих инструментов. Однако это касается не только людей, увлеченных своим хобби, и тех, кто заинтересован в тщательном исследовании этой увлекательной (во всяком случае, для меня) области. Это касается учебных заведений: курсы по судебной компьютерной экспертизе предлагаются не только в ведущих университетах, но также и в общественных колледжах. Стоимость коммерческих инструментов касается сотрудников правоохранительных органов и даже консультантов (таких как я, например – ведь у нас у всех есть бюджет, которого нужно придерживаться). Было бы неплохо иметь доступ ко всем выпускаемым инструментам, не так ли? Безусловно, но с точки зрения бюджета это непрактично.
Кроме того, это не особенно нужно. Коммерческие приложения (EnCase, FTK, ProDiscover и т. д.) – это всего лишь инструменты. Каждый инструмент имеет свои достоинства и недостатки, а подготовленные, компетентные эксперты, прежде чем выбирать инструменты или приложения, которые помогут им во время анализа, понимают, какие задачи им предстоит выполнить. Ведь, как я уже неоднократно говорил, прошло то время, когда для проведения судебного анализа эксперты просто загружали
образ клонированных данных в специализированную программу и нажимали кнопку в ее интерфейсе. Самое главное в судебном анализе – понимать, какие артефакты вам доступны, и иметь логический, обоснованный и подробный план или процесс для сбора и интерпретирования данных. С этой точки зрения вы не привязаны к отдельному коммерческому приложению (при отсутствии определенных требований, вынуждающих вас его использовать) и можете взамен попробовать недорогие или бесплатные инструменты или приложения, необходимые для вашего анализа.
Совет
Сейчас подходящее время рассмотреть тему антикриминалистических инструментов. Антикриминалистические инструменты – это инструменты (а в некоторых случаях приемы), используемые злоумышленником, чтобы осложнить работу экспертов, например, изменяя отметки времени MAC (время изменения, доступа и создании) или стирая данные (или «доказательства») с накопителя. Многие считают, что целью антикриминалистических средств являются определенные коммерческие приложения, но это не так. Конечно, на популярных конференциях по компьютерной безопасности были представлены доклады, в которых говорилось о том, как помешать работе эксперта, использующего программу EnCase, но на самом деле антикриминалистические инструменты и приемы нацелены на эксперта, а не на определенные приложения. Эксперт, который понимает это, находится на шаг впереди, а не позади, злоумышленника.
3 |
|
|
В каждой из глав этой книги рассматривались, |
описывались |
и/или |
демонстрировались инструменты, используемые для определенных целей, но в каждом
случае были представлены только основные возможности и характеристики отдельного инструмента. Задача этой главы – познакомить читателей с некоторыми другими инструментами, такими как шестнадцатеричные редакторы, средства для перехвата и анализа пакетов и т. д., которые помогут им приступить к работе. Существует множество инструментов, которые можно использовать, и многие из них даже не были разработаны для анализа. Однако кто-то узнал, что эти инструменты полезны благодаря некоторым из предлагаемых ими функциональных возможностей. Не следует рассматривать эту главу как полное и исчерпывающее руководство по всем инструментам, которые вам могут потребоваться. В лучшем случае эта глава служит для того, чтобы показать вам, что есть другие варианты, помимо тех, которые недоступны из-за стоимости программного продукта или стоимости обучения, связанного с этим продуктом.
Наконец, если вы знакомы со мной или читали любую из моих книг, то знаете, что
яфанат языка программирования Perl. Некоторые могут даже сказать, что Perl – это мой молоток, а все, что я вижу, – это гвоздь. И они будут правы. А если серьезно, то Perl может быть чрезвычайно мощным инструментом, например, когда вам нужно проанализировать несколько сотен мегабайт журналов веб-сервера на наличие признаков атаки с внедрением SQL-кода и преобразовать шестнадцатеричное кодирование или кодирование символов, чтобы получить фактическую внедренную команду и найти другие зараженные системы. То, на что у вас могло бы потребоваться несколько дней, теперь можно сделать за несколько минут. Я убедился в этом сам и демонстрировал это другим с помощью написанных мной скриптов, большая часть которых легла в основу приложения RegRipper (www.regripper.net). Я слышал, как другие говорили то же самое – как, благодаря умению коллеги работать с Perl, удавалось сократить несколько дней обработки данных вручную до пары часов, используя Perl-скрипт. Это не значит, что Perl – единственный доступный язык программирования, потому что подойдет любой язык, с которым вам удобно работать, например Python. Благодаря Дейву Роту (Dave Roth)
япредпочитаю Perl.
Документирование анализа
Я знаю, что мы уже говорили о документировании в других главах этой книги, а сейчас мы снова рассматриваем эту тему. Это связано с тем, что тема документирования чрезвычайно важна, особенно потому, что технические специалисты не очень любят этим заниматься. Что касается меня, то я никогда не любил ничего документировать, пока не понял, что случается, когда сведения об анализе не документируются. Например, мне приходила в голову какая-нибудь замечательная мысль, или я находил отличный инструмент или прием для анализа, а три месяца спустя я не мог вспомнить, что это было. И я это не задокументировал! Тема документирования повторяется в этой книге просто потому, что она так важна.
Еще одна важная тема в этой книге – необходимость повторяемости в работе (будь то сбор данных или анализ), которая достигается посредством документирования. Повторяемость, которая по существу представляет собой возможность взять те же данные, следовать тому же процессу, используя те же инструменты, и получить те же результаты, – это основополагающий принцип судебной науки. Одна из причин, по которой документирование должно вести к повторяемости, состоит в том, что эксперты не всегда находятся на месте. Один специалист или эксперт может выполнить работу, а затем, когда несколько месяцев спустя этот эксперт будет в отпуске, или ему дадут другое задание, у кого-нибудь могут возникнуть вопросы относительно результатов. Другой эксперт должен суметь включиться в работу и, используя исходные данные и записи первого эксперта, повторить тот же процесс и (будем надеяться) получить те же результаты. То же касается работы, к которой эксперту, возможно, придется обратиться
4
год спустя; без правильно составленной документации эксперт вряд ли сможет вспомнить, что он сделал.
При проведении любого судебного анализа в первую очередь необходимо иметь способ для документирования ваших действий. Ведь если вы выполняете анализ, но не документируете его, то его не происходит. Несмотря на то, что технари, похоже, не любят этого делать, документирование анализа имеет первостепенную важность для ваших действий. Документацию нужно (а не следует) вести достаточно подробно и понятно, чтобы позволить другому специалисту или эксперту понять, что вы сделали, и подтвердить ваши действия. Кроме того, документация должна быть достаточно подробной и понятной, чтобы вы смогли найти ваши записи об анализе годичной давности (или более старые) и подтвердить свои действия. Под словом подтвердить я имею в виду, что, используя те же данные и те же инструменты (вы ведь указали в своих записях применяемые инструменты и их версии, не так ли?), вы или другие специалисты должны получить те же результаты.
Задумайтесь об этом. Предположим, вы провели анализ и, после завершения экспертизы и составления итогового отчета, положили накопитель в свой сейф, ожидая окончательного решения по делу. Затем, месяц спустя, возникает вопрос относительно какой-нибудь информации в вашем отчете, и вам нужно вернуться к этим данным и подтвердить какой-нибудь аспект вашего анализа. Но это происходит через месяц (полгода или год), а ваша скорость работы такова, что за это время вы не только провели несколько экспертиз, но вам также дали другое задание, и исходные данные нужно передать другому эксперту. Как стыдно и неприятно вам будет, если другой эксперт не сможет, используя те же данные и те же инструменты, получить ваши результаты? Как вы это объясните? Большинство из нас, вероятно, сказало бы что-то вроде «Вы неправильно это сделали» или «Вы использовали не ту версию инструмента», не так ли? Ну, а как бы это выглядело, если бы вы не смогли повторить свои собственные результаты?
Документировать свои действия – важно, но еще важнее – документировать свои действия так, чтобы кто-то другой мог получить ваши результаты. Итак, как это сделать? Я всегда считал, что лучший подход – быть кратким. Я видел много специалистов, которые были слишком многословными в своих записях, и их фактические действия терялись в прозе. Предположим, вы подозреваете, что веб-сервер, возможно, подвергся атаке с внедрением SQL-кода. Наиболее логично было бы искать признаки такой атаки в журналах веб-сервера. Если веб-сервер – это IIS (Internet Information Server) от Microsoft, а
серверная база данных – это Microsoft SQL Server, то логично было бы начать с поиска применения расширенной хранимой процедуры xp_cmdshell в журналах веб-сервера, потому что обычно вы не увидите этого в журналах веб-сервера. Итак, допустим, вы создали новый проект ProDiscover, добавили в него образ веб-сервера, а затем выполнили поиск строки «xp_cmdshell» в журналах веб-сервера. Ваши записи могут выглядеть следующим образом:
§Создал проект с именем «intrusion_20081030» в программе ProDiscover 5.0.
Добавил образ веб-сервера, сохранил проект.
§Выполнил поиск строки «xp_cmdshell» в журналах веб-сервера (укажите полный путь), используя функцию поиска программы ProDiscover; обнаружил несколько совпадений поиска в журналах «ex081002.log» и «ex081003.log».
Вот так. Просто, кратко, по существу, но при этом понятно и подробно. В данном случае вы указали, что искали (xp_cmdshell), что использовали для выполнения поиска (функцию поиска программы ProDiscover 5.0), и что обнаружили (совпадения в двух файлах журналов). Например, запись «проанализировал файлы журналов» или «выполнил поиск в файлах журналов» ничего не говорит о том, что вы сделали. В каких файлах журналов вы выполняли поиск? Что вы искали? Если вы выполняли поиск по ключевым
5
словам, то по каким именно? Каким образом вы выполняли поиск? Используя grep или функцию «Поиск» (“Search”) в Windows (например, экспортировали файлы журналов из образа при помощи FTK Imager, а затем нажали кнопку «Пуск» (“Start”), выбрали функцию «Поиск» (“Search”) и указали параметр «Файлы и папки» (“For Files and Folders”))? Какими были результаты? Видите, как неполная документация создает вопросы, а не отвечает на них? Кроме того, не будьте излишне многословными; как я уже говорил, мне встречались записи настолько пространные, что сведения о фактической проделанной работе и результатах было абсолютно невозможно найти. Добавление дат на каждой странице или к каждому событию делает ваши записи более достоверными, а если над одним крупным проектом работает несколько членов группы, то инициалы или
подписи сотрудников после сведений о выполненных ими заданиях могут быть настоящим преимуществом в дальнейшем.
Добавление информации об используемых инструментах и их версиях позволит вам легче восстановить и подтвердить результаты. Версия инструмента имеет большое значение, особенно если версии инструмента отличаются друг от друга наличием критических обновлений. Это в особенности важно, если вы используете антивирусное
приложение для проверки монтированного образа или только нескольких файлов экспортированных из образа. Информация о версии модуля проверки, а также о версии антивирусной базы, может иметь огромное значение, особенно когда через две недели выяснится, что файлы, которые вы проверяли, являются вредоносными.
К числу важных аспектов документирования анализа также относится обоснование ваших умозаключений. Эксперты очень редко дают выводы относительно чего-либо, основываясь только на одном виде данных; в большинстве случаев для этого сопоставляется несколько дополнительных элементов данных. Например, если бы мне нужно было определить, когда пользователь входил в систему Windows, то в первую очередь я бы начал поиск в файле куста «Security». Анализ одного раздела в том файле куста покажет мне, включен ли аудит событий входа в систему. Если включен, то я буду искать соответствующие записи о событиях в журнале событий безопасности. Я бы также проверил файл куста «SAM» на наличие времени последнего входа пользователя в систему, а также файл куста «NTUSER.DAT» в каталоге профиля пользователя на наличие признаков активности в исследуемый период времени. Все эти сведения можно использовать для того, чтобы определить, когда пользователь входил в систему. Кроме того, ссылки на внешние источники, например, на статьи из базы знаний Microsoft, – отличный способ обосновать результаты анализа.
Один из инструментов, который, по моему мнению, очень удобен для ведения документации, – это Forensic CaseNotes от британской компании QCC Information Security (www.qccis.com/?section=casenotes). Forensic CaseNotes – отличный инструмент для ведения записей об экспертизе. Он бесплатный, настраиваемый и довольно универсальный. Как правило, загрузив программу CaseNotes на компьютер и установив ее, я сначала создаю настраиваемые вкладки, отвечающие моим потребностям, как показано на илл. 9.1.