Научная статья на тему 'Некоторые особенности судебно-экспертного исследования реестра Windows'

Некоторые особенности судебно-экспертного исследования реестра Windows Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
2534
290
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СУДЕБНАЯ КОМПЬЮТЕРНАЯ ЭКСПЕРТИЗА / РЕЕСТР / ВОССТАНОВЛЕНИЕ УДАЛЕННОЙ ИНФОР-МАЦИИ / УСТАНОВЛЕНИЕ ОБСТОЯТЕЛЬСТВ СОБЫТИЯ / ВРЕМЕННАЯ МЕТКА / FORENSIC COMPUTER ANALYSIS / REGISTRY / RECOVERY OF DELETED INFORMATION / ESTABLISHING THE CIRCUM-STANCES OF EVENT / TIMESTAMP

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Гортинский Алексей Владимирович, Мордвинкин Михаил Михайлович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Гортинский Алексей Владимирович, Мордвинкин Михаил Михайлович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

SOME ASPECTS OF FORENSIC ANALYSIS OF THE WINDOWS REGISTRY

The authors analyze the structure of the Windows Registry and consider its various aspects such as recovery of deleted records, reading timestamps for some forensically important registry keys, obtaining relevant information Информационная безопасность регионов. 2016. № 3(24)6about events contained in various branches of the registry. A brief description of a specialized program designed for forensic analysis of the Windows Registry is given.

Текст научной работы на тему «Некоторые особенности судебно-экспертного исследования реестра Windows»

ОРГАНИЗАЦИОННЫЕ И ОБЩЕТЕОРЕТИЧЕСКИЕ ВОПРОСЫ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ

УДК 351:340.6

НЕКОТОРЫЕ ОСОБЕННОСТИ СУДЕБНО-ЭКСПЕРТНОГО ИССЛЕДОВАНИЯ РЕЕСТРА WINDOWS

SOME ASPECTS OF FORENSIC ANALYSIS OF THE WINDOWS REGISTRY

Гортинский Алексей Владимирович

Gortinsky Alexey Vladimirovich

кандидат юридических наук, доцент кафедры ТОКБиК, Саратовский государственный университет им. Н.Г. Чернышевского, Саратов

Cand.Sc.(Law), associate professor of the department of theory of computer security and cryptography, Saratov State University, Saratov

e-mail: [email protected]

Мордвинкин Михаил Михайлович

Mordvinkin Mikhail Mikhailovich

выпускник кафедры ТОКБиК Саратовского государственного университета им. Н.Г. Чернышевского, Саратов

graduate student of the department of theory of computer security and cryptography, Saratov State University, Saratov

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

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

The authors analyze the structure of the Windows Registry and consider its various aspects such as recovery of deleted records, reading timestamps for some iorensically important registry keys, obtaining relevant information

about events contained in various branches of the registry. A brief description of a specialized program designed for forensic analysis of the Windows Registry is given.

Keywords: forensic computer analysis, registry, recovery of deleted information, establishing the circumstances of event, timestamp.

Совершение правонарушений с использованием современных информационных технологий в наше время стало достаточно распространенным явлением. Компьютер - одно из самых распространенных средств совершения опасных и латентных преступлений. Как известно, механизм совершения преступлений, использующих компьютерные технологии, предполагает внесение изменений в информационную среду компьютерных систем. Данные изменения и являются следами совершения преступлений [и]. Однако в силу своей специфичности следы в информационной среде могут быть исследованы только специалистом, экспертом в области компьютерных информационных технологий.

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

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

с целью получения объективной информации о событиях в системе.

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

Краткое описание структуры реестра

Физически Windows организует реестр в виде кустов или ульев («hive» - англ.), хранящихся в двоичных файлах. Кроме того, для каждого улья ОС создает дополнительные файлы, которые содержат резервные копии улья.

Физически ульи существуют только в двух корневых ключах: HKLM и HKU. Остальные являются ссылками на подключи этих двух корневых ключей.

Список загруженных ульев находится в раз-делереестраНКЬМ\8У8ТЕМ\Сиггеп1:Соп1:го18еД Control\hivelist. Можно заметить, что в этом ключе записаны значения с названиями двух видов: \REGISTRY\MACHINE\* и \REGISTRY\ USER\". Первая группа относится к ульям HKLM, а вторая - к ульям HKU. Значения обеих групп имеют строковый тип и содержат путь до файла улья вида \Device\HarddiskVolumeN\*, где \Device\HarddiskVolumeN обозначает логический раздел диска.

Ульи HKLM содержатся в файлах вида %SystemRoot%\System32\config\*. Расположение файлов улья HKLM можно наглядно увидеть в табл. 1. [12].

HARDWARE содержит карту и описание аппаратных ресурсов. Этот улей единственный, не записанный в файле. Дело в том, что данный раздел формируется динамически

Таблица 1

Название Файл

\REGISTRY\MACHINE\HARDWARE

\REGISTRY\MACHINE\SAM 96SystemRoot96\System32\config\sam

\REGISTRY\MACHINE\SECURITY 96SystemRoot96\System32\config\security

\REGISTRY\MACHINE\SOFTWARE % SystemRoot96 \Systen13 2 \config\software

\REGISTRY\MACHINE\SYSTEM % SystemRoot96 \Systen13 2 \config\system

при запуске операционной системы и не сохраняется после выключения. Сама конфигурация оборудования (профили) хранится в другом месте, а именно в одном из ключей HKLM\ SYSTEM\CurrentControlNNN\Enum.

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

SOFTWARE содержит настройки прикладных приложений (и некоторые системные). Чаще всего данные хранятся в ключах с путем следующего вида: HKLM\SOFTWARE\ VendorName\ ProgramName\Version.

В SYSTEM хранятся системные настройки, в ключах вида HKLM\SYSTEM\ControlSetNNN хранятся настройки различных конфигураций. Чаще всего в системах присутствуют 2 конфигурации (текущая и последняя успешная), однако всего может быть до четырех конфигураций. HKLM\SYSTEM\CurrentControlSet является ссылкой на один из профилей, а содержимое ключа HKLM\SYSTEM\Select указывает на то, какой из профилей является текущим.

Ульи HKU хранятся в файлах ntuser.dat и UsrClass.dat, расположенных в разных местах. Стоит заметить, что расположение файлов различное в разных версиях Windows. В табл. 2 находится информация для системы Windows [12].

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

S-1-5-19 (20) являются SID для учетных записей LocalService и NetworkService, нужны для запуска служб с правами данных учетных записей.

SID содержит различные пользовательские настройки, a SID_Classes регистрацию классов и ассоциацию файлов.

Логическая структура реестра похожа на структуру файловой системы. Реестр состоит из «ключей» (аналоги каталогов в файловых системах), при этом ключи могут быть вложены друг в друга. В ключах находятся «значения» (аналоги файлов), каждое из которых обладает следующими параметрами: именем (до 512 символов ANSI или до 256 символов UNICODE, за исключением символов (\),

(?), ("')), типом (например, числовой тип «REG_DWORD»; типы данных будут описаны позже) и содержащимися в значении данными.

В «корне» реестра находятся несколько корневых ключей, некоторые из которых являются ссылками на другие места в реестре.

Корневые ключи реестра:

- HKEY_CLASSES_ROOT (HKCR) содержит информацию о всех расширениях файлов, зарегистрированных в системе, и о классах объектов СОМ. Является объединением ключей HKLM\Software\Classes и HKCU\Software\Classes, причем более высокий приоритет имеет значение, записанное в последнем ключе (то есть если в обоих ключах есть одинаковые значения, то в HKCR записывается значение из HKCU\Software\Classes) [5];

- HKEY_CURRENT_USER (HKCU) содержит параметры принтеров, ПО, раскладок клавиатуры и других настроек для пользователя, вошедшего в систему. Является ссылкой на HKU\ SID вошедшего пользователя;

- HKEY_LOCAL_MACHINE (HKLM) содержит настройки компьютера, общие для всех пользователей: настройки аппаратного и программного обеспечения, настройки безопасности, настройки системы;

- HKEY_USERS (HKU) содержит настройки пользователей. В данном ключе содержится минимум 5 подключей: настройки до входа под какой-то учетной записью (.DEFAULT), учетная запись LocalSystem (S-1-5-18), LocalService (S-1-5-19), NetworkService (S-1-5-20) и Administrator;

- HKEY_CURRENT_CONFIG (HKCC) является ссылкой на ключ HKLM\SYSTEM\ CurrentControlSet\Hardware Profiles\Current. Содержит конфигурационные данные текущего профиля оборудования.

Каждое значение в реестре имеет свой тип данных. Наиболее часто используемые типы данных описаны ниже (полный список дан в приложении А):

- REG_BINARY - двоичные данные, чаще всего отображаемые в шестнадцатеричном виде (пример: «0x40 75 13»);

- REG_DWORD - 32-х разрядное целое число. Этот тип может использоваться в качестве логических флагов (пример: «OXI52DADBF»);

Таблица 2

Название Файл

\REGISTRY\USER\.DEFAULT 96SystemRoot96\System32\config\default

\REGISTRY\USER\S-l-5-i9 96SystemRoot96\ServiceProfiles\LocalService\ntuser.dat

\REGISTRY\USER\S-l-5-20 96SystemRoot96\ServiceProfiles\NetworkService\ntuser.dat

\REGISTRY\USER\SID 96UserProfile96\ntuser.dat

\REGISTRY\USER\SID_Classes 96UserProfile96\AppData\Local\Microsoft\Wmdows\UsrClass.dat

- REG_SZ - строковый параметр (пример: «C:\ProgramData»);

- REG_MULTI_SZ - мультистроковый параметр;

- REG_EXPAND_SZ - расширяемый строковый параметр. Может включать переменные окружения вроде %WINDIR%.

Формат хранения данных реестра в файлах реестра.

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

Внутри блока находятся ячейки, или соты (cell). Ячейка состоит из четырехбайтного заголовка и имеет длину, кратную 8 байтам. Ячейки могут быть различных типов: ячейка раздела (NK), значения (VK), списка значений, списка подразделов и ячейка дескриптора защиты (SK). Полный список типов ячеек указан в табл. 3.

Как видно из рис. 1, в улье есть базовый ключ (Root). Root ссылается на ячейку списка значений и ячейку списка подключей. Список значений содержит ссылки на значения Vail и Val2, а список содержит ссылку на ключ SubKey. Стоит учесть, что на рисунке не показаны ячейки дескриптора защиты.

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

Удаление и восстановление записей в реестре

Удаление записей

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

При удалении ключа указатели на листы подключей и дескриптор безопасности затирается (перезаписывается значением oxFFFFFFFF)

Таблица 3

Типы ячеек

Тип ячейки Описание

Ячейка раздела (key cell) - NK Включает временную метку последнего обновления, сигнатуру (кп -ключ, И - ссылка), название, индекс родительской ячейки, индекс ячейки списка подразделов и значений, индекс ячейки дескриптора защиты

Ячейка значения (value cell) -VK Включает сигнатуру (к\), тип значения, название и индекс ячейки, содержащей данные

Ячейка списка подразделов (subkey-list cell) Состоит из списка индексов для ячеек разделов, являющихся подразделами данного раздела

Ячейка списка значений (subvalue-list cell) Состоит из списка индексов ячеек значений, находящихся в данном разделе

Ячейка дескриптора защиты (security-descriptor cell) - SK Включает сигнатуру (кэ) и счетчик ссылок, регистрирующий число узлов разделов, использующих этот дескриптор

Границы блока

1

Базовый блок

Пустой приемник

Root

Vail

Sub Key

Vat 2

V

Приемник 1

□ Ячейка ключа Приемник 2

I 1 Ячейка значения □ Ячейка списка подключен

Н Ячейчка списка значений □ Свободное пространство

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

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

При удалении подключа его индекс удаляется из списка подключей родителя, и список перезаписывается в соответствующую ячейку. Размер ячейки со списком подключей при этом не меняет свой размер. Пусть у нас есть 4 подключа А, В, С, Б, и мы удаляем последовательно ключи В, Б, А. Тогда удаление подключей в списке будет происходить образом, показанным на рис. 2.

А Б с D

А С D D

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

А С D D

С С D D

Исходное состояние

После удаления В

После удаления D

После удаления А

Рис. 2. Процесс удаления указателей из ячейки списка подключей

Значение удаляется аналогично: из ячейки, содержащей список значений, удаляется соответствующий индекс, и в ячейку помещается получившийся список.

Что самое важное, в большинстве случаев ячейка значений и связанная с ней ячейка данных не изменяются при удалении, за исключением Windows 2000, где первые 4 байта этих ячеек заменяются на oxFFFFFFFF; это делает невозможным чтение названия и сигнатуры. Подобное поведение замечено лишь в Windows 2000, что можно списать на ошибку в этой ОС.

Ячейка дескриптора защиты удаляется, только если все ссылающиеся на нее ячейки удалены или перенаправлены на другие дескрипторы защиты.

В результате операций с ячейками возникает ситуация, схожая с фрагментацией диска: пустые приемники находятся вперемешку с непустыми. Если встречается два пустых приемника подряд, то Диспетчер объединяет их в один как можно большего размера. Если пустые преемники находятся в конце, то Диспетчер уплотняет улей [3].

Алгоритм чтения удаленной информации следует составлять с учетом особенностей удаления информации в реестре.

Восстановление записи ключа

Создаем временную запись ключа, содержащую смещение.

Добавляем в улей запись из п. 1.

Пытаемся считать параметры ключа. Ячейка ключа не содержит контрольной суммы, так

что невозможно точно сказать, повреждена ячейка или нет; некоторые приемы проверки описаны в разделе 2.2.3.

Рекурсивно считываем родительскую запись ключа. Необходимо выйти из рекурсии, если:

• достигнут ключ, который не является удаленным (дальше по иерархии передвигаться смысла нет, так как по общей логике программы до запуска отображения удаленных данных запускается считывание активных данных);

• запись-предок не является ключом. Рекурсивно считываем подключи и значения.

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

Восстановление записи знамения

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

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

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

Исследование данных реестра

Использование временных меток ключей

Все ключи реестра содержат временную метку (timestamp, last write value), похожую на дату последнего изменения для файлов. Это значение хранится в структуре FILETIME и показывает дату и время того, когда ключ реестра был изменен. Это значение обновляется, когда ключ был создан, изменен или удален. Временная метка есть только у ключей реестра, значения реестра такого поля не содержат.

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

В большинстве случаев временные метки являются единственным указателем на дату и время какого-либо события, например, подключения USB-носителя. Кроме этого, временные метки ключей позволяют построить временную линию событий путем анализа временных меток в различных разделах реестра. Информация о системе В значениях ключа «SOFTWARE\Microsoft\ Windows NT\CurrentVersion» хранятся различные параметры операционной системы: версия, издание, номер сборки, информация о сервис-паке и так далее. Кроме того, в этом разделе хранится регистрационная информация, что может быть полезно при анализе случаев нелицензионного использования ПО.

Получение информации о подключаемых USB-устройствах

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

Когда съемное USB-устройство (например, флэш-накопитель) подключается к ПК, информация о нем будет сохранена в разделе HKLM > System > ControlSetoox > ENUM > USBSTOR.

В этой ветке реестра создаются ключи, каждый из которых представляет свой класс устройств. Имя ключа задается в следующем формате [l]:

Type&Ven_{vendor}&Prod_{product}&Rev_ {rev}.

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

Стоит обратить внимание, что у экземпляра устройства может не быть серийного номера (тогда устройство не пройдет сертификацию Microsoft). В этом случае в имени ключа, отвечающего за экземпляр устройства, вторым символом будет «&».

Особенности получения временных меток После получения базовой информации об устройстве необходимо определить дату и время первого и последнего подключения устройства. Реестр не хранит информацию о первом подключении (она хранится в файле C:\Windows\inf\setupapi.dev.log).

Информацию о последнем подключении устройства нельзя брать из временной метки соответствующей устройству записи ключа,

так как временные метки всех ключей из раздела «SYSTEM\ControlSetoox\ENUM\USBSTOR» периодически обновляются текущей датой (это происходит из-за существования нескольких конфигураций - текущей, последней удачной - и их синхронизации).

Для получения времени последнего подключения USB-устройства следует взять временную метку одного из подключей ключа SYSTEM\ControlSetoox \Control\DeviceClasses\ {53f56307-b6bf-iido-94f2-ooaoc9iefb8b}\.

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

Установлено, что система хранит полный список USB-устройств, когда-либо подключавшихся к системе.

Получение информации о подключавшихся сетевых картах

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

При подключении новой сетевой карты система сохраняет данные в раздел SOFTWARE\ Microsoft\Windows NT\CurrentVersion\Network Cards.

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

Дополнительная информация может быть найдена в следующем ключе улья SYSTEM: SYSTEM\ Control Set о ox\Control\Class\ {4D36E972-E325-nCE-BFCi-08002bEi03i8}\ {oonn}, где {oonn} - имя соответствующего ключа из прошлого раздела.

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

Информация о сетевом окружении

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

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

Информация о сетевых интерфейсах хранится в следующем разделе реестра: SYSTEM\

ControlSetoox\Services\Tcpip\Parameters\ Interfaces.

Данный раздел содержит ключи, в качестве имени ключа используется GUID. В ключе содержится множество значений, описывающих параметры сетевого интерфейса: параметры DHCP, IP адрес, шлюз по умолчанию и так далее.

По GUID можно получить имя сети из раздела SYSTEM\ControlSetoox\Control\Network\ {4D36E972-E325-nCE-BFCi-08002BEi03i8}\ {GUID}.

Беспроводные сета

Для любой беспроводной сети, к которой было произведено подключение, создается запись в разделе SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Nla\Wireless.

Этот ключ лишь содержит список идентификаторов беспроводных сетей [9]; подробная информация может быть получена путем связывания этих идентификаторов с сигнатурами из раздела SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\ Unmanaged.

После этого необходимо связать сигнатуру и профилем, находящиеся в записи значения ProfileGuid. Для этого необходимо выбрать данные из записи ключа SOFTWARE\ MicrosoftYWindows NT\CurrentVersion\

NetworkList\Profiles\{ProfileGuid}.

Итоговые данные содержат следующую важную информацию:

• дата создания;

• дата последнего подключения;

• имя профиля;

• MAC шлюза по умолчанию (default gateway).

ОС хранит полный список беспроводных сетей, сигнатур и профилей (если пользователь не удаляет данные вручную).

Интранет-сети

Анализ интранет-сетей во многом похож на анализ беспроводных сетей. Для анализа интранет-сетей необходимо обратиться к разделу SOFTWARE\Microsoft\Windows NT\ CurrentVersion\NetworkList\Nla\Cache\ Intranet.

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

Информация о пользовательской активности

Microsoft сохраняет списки пользовательской активности именно в реестре.

Такие списки пользовательской активности получили название «Списки недавно используемых элементов» (Most Recently Used lists -в дальнейшем MRU списки). MRU списки

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

В реестре Windows большинство пользовательских действий сохраняются в ульях NTUDSER.dat, для каждого пользователя создается свой улей.

Информация о запуске GUI-приложений через проводник Windows хранится в разделе [7] NTUSER.dat\Software\Microsoft\Windows\ CurrentVersion\Explorer\UserAssist\{GUID}\ Count.

Для ОС Windows 7/8 значение {GUID} может быть одним из двух:

• в разделе {CEBFF5CD-ACE2-4F4F-9178-992ôF4i749EA}\Count содержится информация по исполняемым приложениям;

• в разделе {F4E57C4B-2036-45F0-A9AB-443BCFE33D9F}\Count содержится информация по открываемым ярлыкам.

Для каждого запускаемого приложения / открываемого ярлыка создается запись значения, имя которого кодируется алгоритмом ROT-13 [6], а данные представляют собой двоичные данные размера 72 байта.

Информация о недавно открытых документах хранится в разделе реестра HKCU\Software\ Microsoft\Windows\CurrentVersion\Explorer\ RecentDoc.

Данный раздел реестра содержит подключи с именем, эквивалентным расширению открытого файла (например, .doc, .gif; также есть специальный ключ с именем Folder, в котором хранится информация о каталогах) [2]. Внутри каждого ключа хранится до десяти (это значение по умолчанию, оно может быть изменено [4]) значений с именем, равным числу от о до 9.

Кроме этого, до 150 записей значений (которые описывают последние открытые документы без группировки по расширению, далее «общий список») хранятся внутри коревого ключа HKCU\Software\Microsoft\Windows\ CurrentVersion\Explorer\RecentDoc.

Данные ячейки значения представляют собой строки, закодированные в двоичном формате. Сначала идет имя открытого файла в кодировке Unicode, затем имя открытого файла в кодировке UTF-8, затем опять имя файла в кодировке Unicode с небольшими изменениями в имени файла (добавляется .Ink в конце). К сожалению, каталог, в котором хранится файл, не сохраняется.

Особенности восстановления временной метки

Известно, что ячейки значения не хранят в себе временную метку, значит для каждого

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

Расставим «контрольные точки», взяв первые объекты из «общего списка» с еще не встречавшимся расширением. Сопоставим этим объектам временные метки, взятые из записи ключа с именем, равным расширению объекта.

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

Приложение операционной системы «Выполнить» сохраняет до 26 выполненных команд в ключе [2] HKCU\Software\Microsoft\ Windows\CurrentVersion\Explorer\RunMRU.

В данном ключе хранится до 26 значений с названиями от 'а' до 'z' и одно значение с названием MRUList. Все значения 'а' ... 'z' имеют строковый тип (REG_SZ) и в качестве значения содержат последнюю выполненную команду.

MRUList является строкой-перестановкой букв английского алфавита и задает порядок, в котором будет отображен список последних выполненных команд (и, соответственно, порядок их выполнения пользователем).

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

Большинство приложений хранит отдельные MRU списки для разных пользователей, следовательно, для первичного поиска можно использовать следующий шаблон: NTUSER. dat\Software\{vendor}\{application}\{version}.

Пакет Microsoft Office

Исследования показали, что Microsoft Office 2013 хранит до 50-и последних открытых файлов в значениях ключа HKCU\ Software\Microsoft\Office\{version}\{product}\ File MRU.

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

Acrobat Reader

Приложение Acrobat Reader хранит список последних открытых файлов в подключах раздела NTUSER.dat\Software\Adobe\Acrobat Reader\{version} \AVGeneral\cRecentFiles. Значения внутри этих подключей описывают последний открытый документ.

В некоторых случаях исследователю может понадобится информация об удаленных компьютерах, к которым подключалась исследуемая система через протокол Remote Desktop Protocol. Приложение Remote Desktop Connection (mstsc.exe) хранит полный список серверов, к которым производилось подключение, в разделе NTUSER.dat\Software\ Microsoft\Terminal Server Client\Servers.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Однако эта информация не является списком последних используемых объектов как таковым; для получения этой информации (ю последних подключений) нужно воспользоваться разделом [2] NTUSER.dat\Software\ Microsoft\Terminal Server Client\Default.

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

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

Запущенные приложения сохраняются в кэше многоязычного пользовательского интерфейса (Multilingual User Interface Cache) -технологии Microsoft, которая позволяет приложениям использовать различные языки интерфейса в одной системе.

Необходимая информация хранится в значениях ключа [8] USRCLASS.dat\Local Settings\ Software\Microsoft\Windows\Shell\MuiCache.

Использование данных, полученных из реестра Windows, при расследовании событий

На кафедре ТОКБиК факультета КНиИТ Саратовского государственного университета им. Н.Г. Чернышевского в качестве дипломного

Terminal Server Client Default LocalDevices Servers

109.73,41,90 192.168.50.168 dev-ext

Name *b (Default)

M RUO ab M RUI

Type REG_SZ REG_SZ REG_SZ REG_SZ REG"

Рис. 3. Сопоставление списка серверов К1 )Р и списка последних подключений

Data

(value not set) devpc2.tui,local srv_pr¡ce7.tu¡. local EPRUSARW0701 109.73.41,90:4373

проекта (выпускной квалификационной работы) разработана программа, позволяющая интегрировать различные данные, получаемые из реестра Windows и восстанавливать информацию о некоторых утраченных структурах ОС и файловой системы.

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

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

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

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

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

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

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

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

Данная программ позволяет получить и исходную, часто трудно доступную, информацию из реестра:

- об удаленных данных;

- о подключаемых устройствах;

- об использовании приложений и файлов данных;

Таблица 4

Источники данных для получения списка программ

UserAssist Список автозагрузки Кэш MUI Выполненные команды Установленные приложения Кэш совместимости приложений Shellbags MRU список диалоговых окон

Название приложения X X

Имя файла X X X X X X

Путь до файла X X X X/- X/- X X X

Время фокуса на приложении X

Время последнего запуска X

Присутствие в списке автозагрузки X

Параметры запуска X X

Версия X

Дата установки X X

- о сетевой активности;

- об использовании диалоговых окон;

- об удаленных подключениях;

- о совместимых программах. В том числе и информацию о месте и времени событий, зафиксированных в реестре.

Библиографический список (References)

1. Jones A. Forensic Analysis of the Windows 7 Registry / A. Jones, K. Alghafli, T. Martin. URL: http://ro.ecu. edu.au/cgi/viewcontent.cgi?article=l07l&context=adf (date of access 13 ЛО.2014).

2. Carvey H. (2011) Windows Registry Forensics: Advanced digital forensic analysis of the Windows Registry // Elsevier. 206 p.

3. Inside the registry // Microsoft TechNet. URL: http://technet.microsoft.com/en-us/hbrary/cc750583.aspx (date of access 17.09.2014).

4. Maximum number of recent documents // Microsoft Technet. URL: http://teclmet.microsoft.com/en-us/ library/cc975956.aspx (date of access 20.10.2014).

5. Predefined Keys // MSDN. URL: http://msdn.microsoft.com/en-us/hbrary/ms724836.aspx (date of access 11.09.2014).

6. ROT13 // Wikipedia. URL: http://en.wikipedia.0rg/wiki/ROTi3 (date of access 10.09.2014).

7. SANS Forensic Artifact 6: UserAssist // SANS Digital Forensics and Incident Response. URL: http://sploited. blogspot.ru/20i2/i2/sans-forensic-artifact-6-userassist.html (date of access 13.10.2014).

8. Windows Artifact Analysis: Evidence of... // SANS Digital Forensics and Incident Response. URL: https:// blogs.sans.org/computer-forensics/files/20i2/06/SANS-Digital-Forensics-and-Incident-Response-Poster-20i2.pdf (date of access 20.10.2014).

9. Wireless Networks and the Windows Registry - Just where has your computer been? // SANS Institute. URL: http://www.sans.org/reading-room/whitepapers/forensics/wireless-networks-windows-registry-computer-been-33659 (date of access 27.09.2014).

10. Гортинский A.B. О природе следов в информационной среде компьютерных систем // Проблемы системных исследований в криминалистике и судебной экспертизе : конф. 4-5.12.06 МГУ им. Ломоносова : сб. тезисов. М.: МАКС Пресс, 2006.

Gortiiiskiy A.V. (2006) О prirode sledov v informatsionnoy srede komp'yuternykh sistem [On the nature of information trails in computer systems]// Problemy sistenmykh issledovaniy v kriminalistike i sudebnoy ekspertize [Problems of System Research in Criminology and Forensic Studies] : konf. 4-5.12.06 MGU im. Lomonosova : sb. tezisov. Moscow: MAKS Press.

11. Гортинский A.B. Общие вопросы следообразования в информационных компонентах компьютерных систем // Противодействие современной преступности: оценка эффективности уголовной политики и качества уголовного закона : сб. науч. трудов / под ред. Н.А. Лопашенко. Саратов : Саратовский центр по исследованию проблем организованной преступности и коррупции : Сателлит, 2010.

Gortiiiskiy A.V. (2010) Obshchiye voprosy sledoobrazovaniya v informatsionnykh komponentakh komp'yuternykh sistem [General issues of tracing evidence in informational components of computer systems]// Protivodeystviye sovremennoy prestupnosti: otsenka effektivnosti ugolovnoy politiki i kachestva ugolovnogo zakona : cb. nauch. trudov / pod red. N.A. Lopashenko [Countering modern crime: Assessing the effectiveness of criminal policy and quality of criminal law: Collection of papers ed. by O.N. Lopashenko]. Saratov : Saratovskiy tsentr po issledovaniyu problem organizovannoy prestupnosti i korruptsii: Satellit.

12. Руссинович M., Соломон Д. Внутреннее устройство Microsoft Windows: Windows Server 2003, Windows XP и Windows 2000. Мастер-класс / пер. с англ. 4-е изд. М.: Русская редакция ; СПб.: Питер, 2005. 992 с.

Russiiiovich М., Solomon D. (2005) Vnutrenneye ustroystvo Microsoft Windows: Windows Server 2003, Windows XP i Windows 2000. Master-klass / per. s angl. 4-ye izd [Microsoft Windows Internals: Windows Server 2003, Windows XP and Windows 2000]. Moscow: Russkaya redaktsiya; St Petersburg: Piter, 992 p.

i Надоели баннеры? Вы всегда можете отключить рекламу.