Содержание статьи
В тестировании, помимо компьютера‑жертвы на Windows 7, приняли участие:
- прямые руки (regedit и файловая система);
- MiTeC Windows Registry Recovery (WRR), USB History;
- NirSoft USBDeview;
- USB Forensic Tracker;
- USB Detective.
Также для проверки качества работы утилит после удаления признаков подключения устройств мы использовали USB Oblivion.
Для оценки инструментов мы смотрим на удобство тулзы, наглядность результатов и их полноту, наличие или отсутствие дополнительных сведений. Основная задача — подобрать оптимальную программу, отличающуюся полнотой предоставляемых сведений и удобством в использовании.
Regedit
Начнем с классики. Основная часть информации о девайсах, включая идентификаторы подключаемых устройств, хранится в системном реестре. С использованием штатной утилиты regedit
по пути HKLM\
или USB
ты можешь найти все идентификаторы устройств. Напомним, что общий идентификатор флешки обычно представляется в виде VID_0011&PID_7788<
(подробности читай в нашей статье про подмену этого идентификатора). Учти, что некоторые артефакты могут обнаружиться не только в текущем конфиге, но и в альтернативных (controlset00X
).
Некоторые устройства (обычно самоидентифицирующиеся, такие как CD/DVD или жесткие диски) прописываются в USBSTOR
. Так мы можем только понять, что какие‑то устройства с такими‑то серийниками подключались к хосту. Однако ни времени подключения, ни другой подробной информации системный реестр нам не предоставит.
Для продвинутых можно посмотреть вот этот раздел:
HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
Там можно определить букву, назначенную системой подключенному устройству.
Помимо этого, названия параметров содержат GUID девайса:
\??\Volume{14dfb3bc-5c31-11ec-8d87-f46d043a41b7}
Благодаря ему ты можешь найти учетную запись пользователя, под которой подключалось это устройство, — см. раздел HKEY_CURRENT_USER
(если подозреваешь текущего юзера; если это не он — то в профилях пользователей ищи файлы C:\
):
\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2
Или анализируй в реестре вот эту ветку:
HKEY_USERS\<SID пользователя>\Software\Microsoft\Windows\ CurrentVersion\Explorer\MountPoints2
В целом просто ищи полученный GUID. Где нашелся — там и подключался.
Полезная информация может встретиться и в кусте SOFTWARE
. Так, следующий раздел, помимо серийников, содержит параметр FriendlyName
, что позволяет тебе искать фразы типа «Смартфон Олега»:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Portable Devices\Devices
Вот еще интересный раздел:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\EMDMgmt
Здесь хранится информация об устройствах и связанных с ними идентификаторах файловых систем (VSN, Volume Serial Number; однако диски SSD сюда не попадают). Идентификаторы меняются после каждого форматирования — то есть ты можешь отследить историю форматирований носителя. Учти, что данный параметр (последние цифры после _ в строке подраздела) представлен в десятичном виде и его нужно конвертировать в HEX. Например, изучив следующий параметр:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\EMDMgmt_??_USBSTOR#Disk&Ven_&Prod_USB_DISK_2.0&Rev_PMAP#070867948D560839&0#VICTIMFAT_173966065
мы узнаем, что устройство с именем VICTIMFAT
имело VSN 0A5E82F1
.
Это пригодится, если при изъятии отформатированной юзером флешки он скажет, что никогда ничего на носитель не копировал, да и вообще с ним не работал. В реестре же сохранена полная история в формате «серийник-VSN».
Если ты предпочитаешь копаться в реестре вручную, то можешь выполнить экспорт реестра, а затем открыть его в утилите типа Registry Explorer. Там в разделе создания разделов с серийниками отображается дата их создания — то бишь дата подключения устройства. С последней, однако, часто встречаются осечки из‑за антивирусных проверок, выгрузки кустов реестра или вследствие багов операционной системы.
В итоге анализ реестра может в лучшем случае дать тебе информацию о факте подключения устройства, но кто его подключал, когда и как — об этом история умалчивает.
Файловая система
Здесь классическим артефактом является файл setupapi.
, обычно расположенный в папке C:\
. В нем можно отыскать дату и время первого подключения носителя. Однако учти, что этот файл не бесконечен и старые подключения могут быть затерты.
В старых версиях винды файл назывался setupapi.
, а рядом с ним могут валяться прошлые версии с именами setupapi.
, куда тоже желательно заглянуть.
В качестве мини‑подсказок в файловой системе посмотри ярлыки в недавних файлах. Для этого нужно нажать Win-R и ввести shell:
или заглянуть вот в эту папку:
C:\Users<имя юзера>\AppData\Roaming\Microsoft\Windows\Recent\
Такие же подсказки есть для устройств и принтеров (Win-R, затем control
). Если требуется копнуть очень глубоко, заходи в приложения (офис, браузеры, плееры, мультимедиаприложения) и в списках последних файлов ищи пути к дискам, которых явно нет на исследуемом компьютере. Не забывай, что, если в системе хорошо ведутся логи (в том числе журналы антивирусных программ), в них могут храниться сведения о подключении устройств или хотя бы об установке драйвера для устройства. Смотри события 2003 и 2102 в журнале Microsoft-Windows-DriverFrameworks-UserMode/Operational. В целом тебе могут помочь коды событий 1003, 2004, 2005, 2010, 2100, 2101, 2102, 2105, 2106.
Промежуточный вывод
Если у тебя много времени и есть желание, в реестре можно копошиться довольно долго. Мы показали тебе скорее теорию, чем практику. Очевидно, что посмотреть таким образом даты подключения устройства не получится, а нас это не устраивает. Безопасник хочет домой, к любимому котику и платным подпискам стриминговых сервисов, помнишь?
MiTeC Windows Registry Recovery (WRR)
Раз уж мы начали с системного реестра, давай продолжим эту тему. Ты уже понял, что основными источниками данных служат ветки SYSTEM
и SOFTWARE
, HKCU
(если надо подтвердить действия проверяемого пользователя). Выгрузим их через консоль в формате сырых кустов (не REG-файла!):
reg save HKLM\Software\ "G:\Penetratordir\Software.DAT" /y /c
reg save HKLM\System\ "G:\Penetratordir\System.DAT" /y /c
reg save HKCU "G:\Penetratordir\HKCU.DAT" /y /c
Все эти файлы можно проанализировать в WRR, но нас будет интересовать только System.
, содержащий информацию по железу компьютера, — загрузим его. Откроем вкладку Hardware, там выберем конфигурацию (текущую или последнюю успешную), обязательно устанавливаем флажок Device Map, запускаем поиск и ждем‑с. Верим, что утилита справится... В общем, спустя некоторое довольно продолжительное время получаем результат — разбивку не только по флешкам, но и по иным устройствам: клавиатурам, приводам, принтерам и другим девайсам.
Вывод выглядит красиво, однако опять же не показывает времени — только подтверждение, что устройство когда‑то подключалось.
У MiTeC есть утилита USB History в составе MiTeC System Information Component Suite, которая предоставляет базовую информацию о подключенных USB-устройствах, в том числе имя, серийный номер, тип и дату. Из информации — только то, что ты видишь на скрине, выгрузка доступна исключительно в формате, поддерживаемом данной программой, даже скопировать ничего нельзя.
Промежуточный вывод
WRR работает как‑то замороченно и медленно, а USB History годится разве что для получения списка устройств и времени (зато быстро). Давай поищем прошку получше.
NirSoft USBDeview
Пожалуй, это наиболее известная программа для вывода списка подключаемых устройств и управления ими. При запуске она оперативно формирует вывод, демонстрируя очень много столбцов с разнообразной информацией.
Особенно приятно наличие дополнительных полей, которых мы раньше не видели: был ли носитель безопасно извлечен, буква диска и дата последнего подключения. При двойном щелчке мышью открывается окно со всеми подробностями о выбранном устройстве.
Все данные можно скопировать или сохранить в любом удобном формате, включая CSV. Из приятных бонусных функций — возможность установить запрет на подключение любых устройств из списка. Можно сразу перейти к ключу реестра в Enum\
, откуда программа взяла данные.
Промежуточный вывод
Программа — почти мечта форензика. Если бы приходилось иметь дело только с live-системами, а пользователи не терли бы инфу об устройствах, то USBDeview — выбор номер один. Однако ты уже понял, что мы на этом не останавливаемся, ведь нет предела совершенству. Как насчет офлайн‑систем, образов дисков и определения файлов на флешке, к которым обращался юзверь? Сможем ли мы получить независимое от DLP-системы подтверждение, что наш работник — вредитель?
USB Forensic Tracker
Таиланд не перестает удивлять. Среди возможностей данной программы родом из экзотической страны — монтирование криминалистических образов дисков (посредством встроенного Arsenal Image Mounter), а также теневых копий. Приложение способно анализировать файлы не только Windows, но и MAC (/
) и Linux (/
, привет, usbrip!). Пройдемся по списку анализируемых артефактов для винды — кроме тех, что мы уже упоминали.
Уточнения в реестре.
GUID и серийники носителей:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\SWD\WPDBUSENUM
Этот раздел может называться и так:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\WpdBusEnumRoot\UMB
Также:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
А вот здесь можно найти последние сопоставления букв и меток диска:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\VolumeInfoCache
В логах винды (C:\
) рекомендуется посмотреть следующие файлы:
-
Microsoft-Windows-Storage-ClassPnP/
;Operational. evtx -
Microsoft-Windows-WPD-MTPClassDriver/
(EventID 1000, подключение MTP-устройства);Operational. evtx -
Microsoft-Windows-Partition%4Diagnostic.
;evtx -
Microsoft-Windows-Ntfs%4Operational.
.evtx
Помимо этого, утилита смотрит теневые копии — что особенно полезно против любителей затирки следов — и папку Windows.
(там могут храниться файлы setupapi
и логи, помнишь?).
Давай запустим эту пушку на live-системе, слева для этого есть специальная зеленая кнопка.
Информация выводится с разбивкой по источникам. По сравнению с USBDeview здесь нет прямого указания времени первого или последнего подключения, только первая дата по реестру и множество дат подключений, которые по каждому источнику приходится смотреть отдельно. Что приятно, в каждой строке дано указание, откуда именно программа взяла артефакты.
Можно скопировать информацию напрямую из интерфейса или выгрузить в Excel. Радует факт, что выгрузка почти полностью повторяет интерфейс программы.
Наиболее интересна вкладка Accessed files — помнишь, что я тебе говорил про ярлыки в Recent? Благодаря этой вкладке можно подтвердить работу с файлами на флешке или в системе.
Промежуточный вывод
Утилита использует значительное количество источников, в том числе и из других ОС. Огорчает, что не выполняется корреляция полученных сведений (построение единого таймлайна со всеми данными), а только выгрузка вида «источник — смотри что я в нем нашел». Из других минусов — к программе надо приноравливаться. Например, для анализа офлайн‑файлов нужны реальные копии файлов, а не твой JSON-триаж с самыми сочными артефактами или отдельными кустами реестра. Теневые копии анализируются только по одной за раз для каждого диска. Несмотря на это, программа выглядит как одно из лучших решений в своем классе. Пожалуй, она поможет нашему герою уйти с работы, не слишком задержавшись.
USB Detective
На вход версии Community Edition можно подать логический диск (но не текущий системный) или собранные артефакты. Давай разбираться.
Мы ранее показали, как выгрузить кусты SYSTEM
, SOFTWARE
и HKCU
(он же NTUSER.
), где находится setupapi
, — для базового анализа этого будет достаточно. Для бесплатной версии нам еще понадобится Amcache Hive, который содержит информацию о запускаемых приложениях в системе. Он расположен по пути %SystemRoot%\
(в live-системе ты его так не откроешь, но методом можно воспользоваться при анализе с загрузочной флешки или образа диска).
Из‑за проведения валидирующих проверок между входными данными программа работает с умеренной скоростью, но медленнее, чем USB Forensic Tracker.
На стенде бесплатная версия нашла 242 подключенных ранее устройства. Для сравнения — USB History нашел около 100 устройств, USB Deview — свыше полутысячи событий. Проверим, что обнаружила эта софтина.
Мы видим, что работа программы строится на основе серийников и дат первого или последнего подключения. При двойном щелчке мышью на соответствующей строке можно открыть список источников, откуда были подтянуты эти сведения. Цветом выделены «сомнения» программы относительно отметок времени.
Дополнительно отображается привязка к VSN, что, безусловно, плюс (раньше мы такое видели только в USB Forensic Tracker в разделах обращений к файлам, реестру и пользователю).
В контекстном меню, которое появляется по нажатию правой клавиши мыши, можно открыть список других подключений выбранного устройства, что тоже удобно.
На этом функции бесплатной версии исчерпываются — давай проверим, насколько лучше работает платная или образовательная версия. В целом, заготовив скрипт для сбора указанных артефактов (или используя тулзы вроде KAPE), можно будет сосредоточиться на их дальнейшем анализе. С точки зрения практики регулярно использовать, конечно, несколько неудобно.
Для платной версии нам дополнительно понадобится файл UsrClass.
, EventLog
, LNK
и Jump
. Первый файл отвечает за параметры профиля пользователя и находится по такому пути:
C:\Users<имя>\AppData\Local\Microsoft\Windows
Еще можно изучить подразделы ветки HKEY_USERS
в системном реестре. Логи ищи в каталоге C:\
. LNK
— это те же ярлыки в Recent. Jump
— списки недавно открытых файлов — ищи в следующих скрытых папках:
-
%USERPROFILE%\
;AppData\ Roaming\ Microsoft\ Windows\ Recent\ AutomaticDestinations -
%USERPROFILE%\
.AppData\ Roaming\ Microsoft\ Windows\ Recent\ CustomDestinations
По сравнению с Community Edition для той же системы, просканированной в live-режиме, имеем на 40 событий больше, время анализа увеличилось до 11 минут. Что по ништякам?
Появилась возможность посмотреть список файлов, открытых на подключаемом устройстве, список источников. Программа сама находит и анализирует бэкапы реестра (папка RegBack
), также анализирует системный лог. Сразу можно выгрузить таймлайн по отдельному устройству в формате Excel или построить полные отчеты (генерятся достаточно долго).
При такой конфигурации отчетов на выхлопе мы получим три отчетных файла:
- Report. По сути, выгрузка того, что ты видел на экране;
- Verbose Report. Содержит GUID источников, а также все временные отметки из всех источников;
- Timeline. Представляет собой таймлайн событий из источников.
Помимо событий подключения, безопасного отключения или просто отключения устройства, в журналы попадут ивенты, связанные с созданием и открытием директорий, а также созданием, изменением и открытием файлов на устройствах.
Предпоследний вывод
Главный недостаток программы в том, что сканирование live-системы и топовых артефактов (логи, ярлыки) доступно только в платных версиях, а для бесплатных приходится заморачиваться с выгрузкой системных артефактов. Немного жалко, что нет возможности сохранить сессию в программе, чтобы каждый раз не указывать заново артефакты и ждать завершения анализа. Программа позволяет получить максимум валидированной информации, минусы — продолжительное время анализа и цена pro-версий.
Забавно, что популярная утилита для очистки следов USB-устройств — USB Oblivion удаляет гораздо больше источников, большинство из которых даже не обрабатывал USB Detective:
- файлы:
C:\
иWindows\ setupact. log setuperr.
;log - журналы: Microsoft-Windows-DeviceSetupManager/Operational и Admin, Microsoft-Windows-Kernel-PnP/Configuration, Microsoft-Windows-Kernel-ShimEngine/Operational, также журнал приложений, безопасности и событий оборудования.
Удаление ключей реестра:
GUID устройств:
HKLM\system\controlset00X\control\class\*
HKLM\system\controlset00X\enum\storage\volume\
Здесь записаны отдельные устройства:
HKLM\system\controlset00X\hardware profiles\0001\system\currentcontrolset\enum\*
Особенно обрати внимание на подпапки usbstor\
, usb\
и WPDBUSENUMROOT\
.
HKEY_LOCAL_MACHINE\system\controlset001\control\devicecontainers\
HKEY_LOCAL_MACHINE\system\controlset001\control\usbflags\`
Устройства с прокешированием ReadyBoost:
HKLM\system\controlset00X\services\rdyboost\attachstate
Shellbags — остаточные истории просмотра директорий:
HKLM\software\classes\local settings\software\microsoft\windows\shell\bags
HKLM\SOFTWARE\Microsoft\WBEM\WDM\DREDGE`;
Пользовательские шелл‑баги:
HKEY_USERS<user_SID>\software\classes\wow6432node\local settings\software\microsoft\windows\shell\bagmru
Помимо bagmru
, учти раздел bags
.
Записи о запуске приложения и пути исполняемого файла:
HKEY_USERS<user_SID>\software\classes\local settings\software\microsoft\windows\shell\muicache\*
HKEY_USERS<user_SID>\software\classes\local settings\software\microsoft\windows\shell\bagmru
HKEY_USERS<user_SID>\software\classes\local settings\software\microsoft\
Центр синхронизации:
windows\currentversion\syncmgr\handlerinstances
Часто используемые приложения:
HKEY_USERS<user_SID>\software\microsoft\windows\currentversion\explorer\userassist
HKEY_USERS<user_SID>\software\microsoft\windows\shell\bagmru
HKEY_USERS<user_SID>\software\microsoft\windows\shell\bags\
Автозапуск с устройств:
HKEY_USERS<user_SID>\software\microsoft\windows\currentversion\explorer\autoplayhandlers\knowndevices
Домашнее задание: угадай, от каких прог тебя спасет USB Oblivion, а от каких — нет? Подсказка: у нас есть бэкапы и прошлые версии.
Давай чисто для себя сравним результативность наших инструментов до и после применения USB Oblivion, замер выполним в максимальном количестве обнаруженных подключений. Рабочая лошадка — какой‑то древний ноут с 32-разрядной Windows 7 и 3 Гбайт оперативной памяти. Что? У сотрудников и XP иногда стоит с ламповым «Сапером» — только реальные условия, а не сказки с установленными на все устройства патчами.
Результаты получились забавные: при работе на этой же машине WRR зависает намертво при построении карты устройств, а USB Detective требует себе .NET 4.6.1+, который на эту legacy-систему устанавливаться не хочет. Наш безопасник был бы не в лучшей ситуации, поэтому пришлось анализировать выгруженные кусты реестра и setupapi-логи до и после «зачистки».
В USB Oblivion можно использовать обычную очистку и с рекомендованными параметрами. Для чистоты эксперимента первая зачистка была произведена без рекомендаций, вторая — уже с ними.
- WRR — не справился с задачей, USB History обнаружил следов подключений: 43 (до) / 0 (после базовой очистки) / 0 (после очистки в максимальном режиме), что предсказуемо.
- USBDeview: 173/139/139. В результате пропало большинство уникальных серийников (строки с явными флешками, типа JetFlash Transcend 4GB USB Device и конкретным серийным номером), однако осталось много информации о названиях устройств. Временные отметки у оставшихся тоже сохранялись. Между обычным и рекомендованным режимом очистки никаких различий.
- USB Forensic Tracker: 40/25/25. После очистки все источники из реестра, кроме Registry-MountPoints2 и Registry-VolumeInfoCache, оказались пустыми. Не потерт лог с историей MTP-устройств
Microsoft-Windows-WPD-MTPClassDriver/
. Остались VSN в обращаемых файлах, однако без подробностей относительно конкретных устройств. Точки восстановления не анализировались.Operational. evtx
- USB Detective Community Edition: 43/9 (полная очистка). Потерялись идентификаторы устройств, вся информация о буквах дисков, VSN, открытых файлах, пользователе. Оставшиеся в списке MTP-устройства — телефоны.
Занятно, что названия устройств были взяты из ветки ControlSetXXX\
, которую, казалось бы, Oblivion чистил. Странно.
По результатам очистки мы избавились от основных артефактов, однако опытный криминалист обязательно еще заглянет в папку Windows.
, бэкап реестра, логи кастомных приложений, антивируса и так далее — право слово, легче форматнуть винт!
Итоговый результат чемпионата
Для повседневного использования максимальной простотой, быстротой и поддержкой разных источников отличается USB Forensic Tracker. Если ты хочешь получать агрегированные данные с вычисленными корреляциями между источниками и готов заморочиться, как настоящий форензик, тогда рекомендуем USB Detective (а если ты богат — то лучше приобрести коммерческую лицензию). Для простых расследований, завязанных на подтверждение самого факта подключения устройств обычными юзерами, которые даже не знают, что система все пишет, можно обойтись и USBDeview.
Учти, что в Windows 10 есть ряд веселых механизмов, которые также могут содержать следы подключения устройств. Это база EventTranscript.
(C:\
), которая собирает диагностическую информацию и телеметрию, — по умолчанию она выключена, но случаи разные бывают.
Начиная с Windows 8 определенная телеметрия пишется в файл C:\
(он же SRUM, System Resource Usage Monitor). Там можно найти инфу о запуске программ с внешних устройств.
Еще есть опция Windows 10 Timeline, работающая хорошо, когда винде разрешен сбор истории активности пользователя. База ActivitiesCache.
обычно хранится в папке \
— там можно найти сведения об открытии файлов и запуске программ, в том числе со съемных носителей.
Что ж, теперь можно с уверенностью сказать: у тебя достаточно знаний, чтобы быстро провести анализ и выявлять нарушения на корпоративных компах. В статье мы не только рассмотрели готовые инструменты на практике, но и подкрепили их теорией об источниках артефактов. Удачи на полях форензики!