T1012: Запросы к реестру

Злоумышленники могут использовать реестр Windows для сбора информации о конфигурации системы и установленном ПО.

Реестр содержит значительный объем информации об операционной системе, конфигурации, программном обеспечении и безопасности. Информацию можно легко получить с помощью утилиты reg, хотя существуют и другие средства доступа к реестру. Эта информация может пригодиться злоумышленникам для дальнейших действий в сети. Злоумышленники могут использовать информацию, полученную при запросах к реестру в ходе автоматического обнаружения, для определения дальнейшего поведения — например, следует ли осуществить полное заражение цели и (или) предпринять какие-то конкретные действия.

Какие продукты Positive Technologies покрывают технику

Экспертиза MaxPatrol SIEM

mssql_database: PT-CR-419: MSSQL_Read_Registry_Value: Попытка прочитать значение ключа реестра из базы данных mitre_attck_discovery: PT-CR-329: Query_Registry: Обнаружена попытка выполнить запрос к реестру mitre_attck_discovery: PT-CR-1082: Enumerating_Delegated_Credentials: В реестре проверено делегирование учетных записей

Способы обнаружения

IDDS0009Источник и компонент данныхПроцесс: Создание процессаОписание

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

Примечание. Командлет PowerShell New-PSDrive создает как временные, так и постоянные диски, которые могут быть связаны с конкретным расположением в хранилище данных, например с ключом реестра, или указывать на такое расположение (PSProvider "Registry"). Командлет Get-ChildItem позволяет получить информацию об объектах, хранящихся в одном или нескольких расположениях. Используя оба командлета, можно получить перечень COM-объектов, хранящихся в одном или нескольких расположениях.

Примечание для аналитики 3. Замените FilePathToLolbasProcessXX.exe именами процессов lolBAS, которые используются в вашей организации. Соответствующим образом скорректируйте параметр number_standard_deviations. Рекомендуется выявлять аномалии в симметрично распределенных данных, сравнивая расстояние от точки данных до среднего значения с определенным числом стандартных отклонений. Если данные не распределены, попробуйте другой алгоритм, например межквартильный размах (IQR).

Аналитика 1. Подозрительные процессы, использующие ключи реестра

(source="*WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode="1") OR (source="*WinEventLog:Security" EventCode="4688") | search (CommandLine LIKE "%reg%" AND CommandLine LIKE "%query%") OR (CommandLine LIKE "%Registry%" AND (CommandLine LIKE "%HKEY_CLASSES_ROOT%" OR CommandLine "%HKCR%"))

Аналитика 2. Запуск reg.exe из подозрительного cmd.exe

((source="*WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode="1") OR (source="*WinEventLog:Security" EventCode="4688") | WHERE (Image LIKE "%reg.exe%" AND ParentImage LIKE "%cmd.exe%") | rename ProcessParentGuid as guid | join type=inner guid [ | search ((source="*WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode="1") OR (source="*WinEventLog:Security" EventCode="4688") AND (Image LIKE "%cmd.exe%" AND ParentImage NOT LIKE "%explorer.exe%") | rename ProcessGuid as guid ]

Аналитика 3. Редкие команды LolBAS

((source="*WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode="1") OR (source="*WinEventLog:Security" EventCode="4688") AND Image IN ('FilePathToLolbasProcess01.exe','FilePathToLolbasProcess02.exe') AND number_standard_deviations = 1.5 | select Image, ProcessCount, AVG(ProcessCount) Over() - STDEV(ProcessCount) Over() * number_standard_deviations AS LowerBound | WHERE ProcessCount < LowerBound

IDDS0009Источник и компонент данныхПроцесс: Вызовы API ОСОписание

Отслеживайте вызовы API (такие как RegOpenKeyExA), с помощью которых можно обращаться к реестру Windows для сбора информации о конфигурации системы и установленном ПО. Вызовы API ОС для обращения к реестру Windows: RegOpenKeyEx, RegOpenUserClassesRoot, RegQueryValueExA и RegQueryValueExW. Выполнение этих функций может вызвать появление событий с идентификатором 4663 в журналах безопасности (Microsoft Security Auditing). Также отслеживайте вызов API RegOpenUserClassesRoot, который получает дескриптор ключа HKEY_CLASSES_ROOT для указанного пользователя. Возвращаемый ключ — это представление реестра, объединяющее содержимое ключа HKEY_LOCAL_MACHINE\Software\Classes с содержимым ключей Software\Classes в пользовательском кусте реестра.

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

IDDS0024Источник и компонент данныхРеестр Windows: Доступ к ключу реестра WindowsОписание

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

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

Аналитика 1. Подозрительные вхождения в реестре

(source="*WinEventLog:Security" EventCode IN (4663, 4656)) AND ObjectType="Key" | WHERE ObjectName LIKE "%SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall%" AND (UserAccessList LIKE "%4435%" OR UserAccessList LIKE "%Enumerate sub-keys%" OR UserAccessList LIKE "%4432%" OR UserAccessList LIKE "%Query key value%") AND Image NOT IN ('FilePathToExpectedProcess01.exe','FilePathToExpectedProcess02.exe')

IDDS0017Источник и компонент данныхКоманда: Выполнение командОписание

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

Примечание. Для регистрации событий модулей PowerShell с идентификатором 4103 включите ведение журнала для модуля Microsoft.PowerShell.Management. Командлет PowerShell New-PSDrive создает как временные, так и постоянные диски, которые могут быть связаны с конкретным расположением в хранилище данных, например с ключом реестра, или указывать на такое расположение (PSProvider "Registry"). Командлет Get-ChildItem позволяет получить информацию об объектах, хранящихся в одном или нескольких расположениях. Используя оба командлета, можно получить список COM-объектов, хранящихся в одном или нескольких расположениях.

Аналитика 1. Подозрительные команды

(source="*WinEventLog:Microsoft-Windows-Powershell/Operational" EventCode="4103") | WHERE CommandLine LIKE "%New-PSDrive%" AND (CommandLine LIKE "%Registry%" OR CommandLine LIKE "%HKEY_CLASSES_ROOT%" OR CommandLine LIKE "%HKCR%")