Криминалистические Артефакты: доказательства выполнения программы в системах Windows

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

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

UserAssist

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

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{GUID}\Count

Записи содержат два подраздела GUID ( Выполнение исполняемого файла CEBFF5CD, Выполнение файла ярлыка F4E57C4B ): каждый подраздел поддерживает список системных объектов, таких как программы, ярлыки и апплеты панели управления, к которым обратился пользователь.

Значения реестра в этих подразделах зашифрованы с использованием алгоритма ROT-13, который в основном заменяет символ с позицией другого символа 13 от него в таблице ASCII.

Все значения имеют кодировку ROT-13, например:

.exe = .RKR
.lnk = .YAX

Background Activity Moderator (BAM)

BAM — это служба Windows, которая контролирует активность фоновых приложений.

Этот сервис появился в Windows 10 только после обновления Fall Creators — версия 1709

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

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\bam\State\UserSettings\{SID} 

Ветки содержат список путей и исполняемых файлов, а значением каждого из них является время последнего выполнения в формате Filetime (64-битный метод с прямым порядком байтов) в UTC:

Пример записей

RecentApps

!Актуально до версии Windows 10 сборки 1803 (не включительно)

Выполнение программы, запущенной в системе Win10, отслеживается в ключе RecentApps:

HKCU\Software\Microsoft\Windows\CurrentVersion\Search\RecentApps

Каждый ключ GUID указывает на недавно запущенное приложение:

AppID = Имя приложения 
LastAccessTime = Время последнего выполнения в UTC. 
LaunchCount = Количество запусков

ShimCache

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

Записи о последних 1024 выполненных программ в ОС хранятся в параметре CacheMainSdb:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\AppCompatCache

1024 программ которые запускались в системе

Вы можете использовать этот ключ для идентификации систем, на которых было запущено определенное вредоносное ПО, с помощью специального инструмента, такого как ShimCacheParser.py , от Mandiant (https://github.com/mandiant/ShimCacheParser)

Заметки по параметру CacheMainSdb
  • Для Windows 7/8/10 параметр содержит не более 1024 записей
  • LastUpdateTime не существует в системах Win 7/ 8/10

Amcache

ProgramDataUpdater (задача, связанная со службой Application Experience) использует файл Amcache.hve для хранения данных о первом выполнении программы (даже портабельной со съемного носителя). Файл расположен:

c:\Windows\appcompat\Programs\Amcache.hve

Файл можно проанализировать с помощью плагина amcache для программы RegRipper (https://github.com/keydet89/RegRipper2.8)

Для получения дополнительной информации об Amcache и Shimcache в криминалистическом анализе, пожалуйста, обратитесь к этой статье: Amcache и Shimcache в криминалистическом анализе

Jump Lists (список прыжков)

Панель задач Windows 7-10 (список переходов) разработана для того, чтобы пользователи могли «переходить» или получать доступ к элементам, которые они часто или недавно использовали.

Данные находятся в папке:

%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations
Пример содержимого папки

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

Файлы списков переходов AutomaticDestinations представляют собой OLE Compound Files, содержащие несколько потоков, из которых:

  • шестнадцатеричный номер, например, «1а»
  • список

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

Данные могут быть извлечены и проанализированы с помощью синтаксического анализатора LNK, например lnk-parse (https://github.com/lcorbasson/lnk-parse).

Prefetch

Файлы предварительной загрузки Windows предназначены для ускорения процесса запуска приложения. Файлы Prefetch хранятся в папке

%windir%\Prefetch

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

В этой папке хранятся данные о последних 128 исполняемых файлах на Win7 и последних 1024 на Win8-10.

Файл предварительной выборки можно анализировать и анализировать с помощью таких инструментов, как PeCMD (https://github.com/EricZimmerman/PECmd).

https://andreafortuna.org/2018/05/23/forensic-artifacts-evidences-of-program-execution-on-windows-systems/