
Введение
В контексте цифровой криминалистики артефакт AmCache играет ключевую роль при выявлении вредоносной активности в системах Windows. Он позволяет определить факт запуска как легитимного, так и вредоносного ПО на компьютере. AmCache формирует и ведет операционная система, и на момент написания статьи не существует известных способов вмешаться в его данные или стереть их. Следовательно, в случае реагирования на инцидент именно эти данные могут помочь идентифицировать утраченные артефакты (например, сведения о шифровальщике, который автоматически удаляет себя). В записях AmCache аналитики могут обнаружить признаки действий атакующих — имена файлов, пути к ним и другую важную информацию. Более того, артефакт AmCache хранит хэши SHA-1 выполнявшихся файлов, что позволяет экспертам по цифровой криминалистике и реагированию на инциденты (DFIR) искать совпадения на публичных порталах с аналитическими данными об угрозах, таких как OpenTIP и VirusTotal, а также формировать правила для блокирования конкретного файла в других системах в пределах той же сети.
Эта статья предлагает детальный анализ артефакта AmCache и знакомит читателей с его внутренним устройством. Кроме того, мы разработали новый инструмент под названием AmCache-EvilHunter, с помощью которого любой специалист сможет без лишних усилий пропарсить файл Amcache.hve
и извлечь из него индикаторы компрометации. Наш инструмент также позволяет обращаться к упомянутым выше порталам для сверки с данными о детектировании вредоносных файлов. Такой уровень встроенной автоматизации сокращает объем ручной работы и ускоряет выявление угроз, что по достоинству оценят как ИБ-аналитики, так и специалисты по реагированию на инциденты.
Важность информации о запуске ПО
Информация о запуске ПО имеет важное значение в цифровой криминалистике и при реагировании на инциденты, поскольку помогает ИБ-специалистам восстановить ход событий и понять, как использовалась система во время проникновения. Такие артефакты, как Prefetch, ShimCache и UserAssist, дают представление о том, какие программы запускались в системе. Артефакт AmCache также содержит метаданные, позволяющие установить, что бинарный файл находился в системе и выполнялся, даже если он был удален или модифицирован. Преимущество AmCache по сравнению с другими артефактами Windows заключается в том, что в нем хранятся хэш-суммы файлов, что имеет большое значение для криминалистики: зная хэши, можно проверить другие компьютеры в сети на наличие конкретных вредоносных файлов и повысить шансы выявить, предотвратить распространение и нейтрализовать вредоносную активность.
Знакомство с AmCache
Кэш активности приложений (AmCache) впервые появился в ОС Windows 7, а в полной мере заработал в Windows 8 и более поздних версиях. Он пришел на смену устаревшему файлу RecentFileCache.bcf
. В отличие от своего предшественника, AmCache содержит ценную криминалистическую информацию о выполнении программ, запускавшихся бинарных файлах и загруженных драйверах.
Артефакт хранится в виде файла куста реестра под названием Amcache.hve
в каталоге C:\Windows\AppCompat\Programs
. В этом файле сохраняются такие метаданные, как пути к файлам, сведения об издателе, временные метки компиляции, размеры файлов и их хэши SHA-1.
Важно отметить, что формат AmCache зависит не от версии операционной системы, а от версии DLL-библиотек, отвечающих за наполнение этого кэша. По этой причине в структуре файлов AmCache в разных экземплярах Windows могут наблюдаться незначительные отличия, например, если установлены разные комбинации обновлений. Известные библиотеки, отвечающие за формирование этого кэша, хранятся в каталоге %WinDir%\System32
под следующими именами:
- aecache.dll
- aeevts.dll
- aeinv.dll
- aelupsvc.dll
- aepdu.dll
- aepic.dll
Отдельно стоит остановиться на особенностях и ограничениях этого артефакта. В AmCache вычисляется SHA-1-хэш только для первых 31 457 280 байт (≈31 МБ) каждого исполняемого файла, поэтому при сравнении сохраненного хэша с онлайн-базами могут возникать несоответствия для файлов, превышающих этот размер. Кроме того, Amcache.hve
не является полноценным логом выполнения: он записывает файлы из каталогов, просканированных задачей Microsoft Compatibility Appraiser; исполняемые файлы и драйверы, которые были скопированы во время выполнения других программ; а также приложения с графическим интерфейсом, которые требовали применения shim для совместимости. Только последняя категория надежно указывает на факт исполнения. Записи, связанные с первыми двумя группами, лишь подтверждают наличие файла в системе — никаких сведений о том, когда он запускался и запускался ли вообще, они не предоставляют.
В той же директории находятся дополнительные файлы LOG, которые используются для обеспечения консистентности и восстановления файла Amcache.hve
:
- C:\Windows\AppCompat\Programs\Amcache.hve.*LOG1
- C:\Windows\AppCompat\Programs\Amcache.hve.*LOG2
Файл Amcache.hve
можно извлечь из системы для проведения криминалистического анализа — в том числе с помощью таких инструментов, как Aralez, Velociraptor или Kape.
Структура файла Amcache.hve
Файл Amcache.hve
представляет собой файл куста реестра Windows в формате REGF и содержит множество подразделов, в которых хранятся разные классы данных. Для анализа файла Amcache.hve
и перечисления его разделов можно использовать простой парсер на Python:
1 2 3 4 5 6 7 8 9 10 |
#!/usr/bin/env python3 import sys from Registry.Registry import Registry hive = Registry(str(sys.argv[1])) root = hive.open("Root") for rec in root.subkeys(): print(rec.name()) |
После выполнения парсер выводит следующий результат: