Event ID 5058: Key file operation — аудит криптографических ключей CNG
Описание события аудита криптографии Event ID 5058
Событие Event ID 5058 регистрируется подсистемой Windows Cryptography Next Generation (CNG) и службой Protected Storage при выполнении операций с файлами защищенных закрытых криптографических ключей (чтение, создание, удаление или открытие контейнера закрытого ключа сертификата).
Типичные сценарии генерации события
- Служба IIS обращается к закрытому ключу SSL/TLS-сертификата при установлении HTTPS-соединения.
- Подписание токенов службой Active Directory Federation Services (AD FS).
- Попытка несанкционированного экспорта закрытого ключа сертификата CA (Центра сертификации) с помощью утилит типа Mimikatz (DPAPI export).
Анализ операций с ключевыми контейнерами
Внимание: Массовое чтение закрытых ключей непривилегированными процессами указывает на попытку хищения сертификатов веб-сервера или корневого ЦС.
- Определение целевого ключа и провайдера:
В теле события изучите поля:
-Key Name: Имя ключевого контейнера.
-Cryptographic Provider: Имя криптопровайдера (например, Microsoft Software Key Storage Provider).
-Operation: Тип операции (Read, Write, Delete). - Идентификация процесса, запросившего ключ:
Проверьте полеProcess Information -> Process Name. Убедитесь, что процесс является легитимным (например,w3wp.exeилиlsass.exe). - Проверка прав доступа (ACL) на закрытый ключ:
Если легитимное приложение получает ошибку Keyset does not exist или Access Denied, предоставьте учетной записи службы права на чтение ключа через оснасткуcertlm.msc(Все задачи -> Управление закрытыми ключами). - Проверка физического расположения файлов ключей:
Системные ключи RSA/CNG хранятся в защищенной директории:Get-ChildItem -Path "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys"
Частые вопросы (FAQ)
Почему событие 5058 генерируется в огромных количествах?
При высокой нагрузке на IIS/ADFS сервер каждое новое TLS-соединение без Session Resumption может обращаться к контейнеру ключа, вызывая сотни событий в секунду.
Как включить или выключить аудит криптографических операций?
В GPO: Advanced Audit Policy Configuration -> System Audit Policies -> Object Access -> Audit Other Object Access Events (или Audit Detailed File Share).
Что делать, если закрытый ключ помечен как non-exportable?
Это правильная мера безопасности. Экспорт закрытого ключа должен быть заблокирован для предотвращения компрометации сертификата.
Какая ошибка возникает в логах, если у службы нет прав на MachineKeys?
В журнале Application фиксируется ошибка CryptographicException с кодом 0x80090016 (NTE_BAD_KEYSET).