Поделиться через


about_Logging

Краткое описание

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

Подробное описание

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

Примечание.

Windows PowerShell 5.1 (и более ранние версии) включают командлеты EventLog для журналов событий Windows. В этих версиях для отображения списка типов командлетов EventLog: Get-Command -Noun EventLog Дополнительные сведения см. в документации по командлетам и about_EventLogs для вашей версии Windows PowerShell.

Сведения о входе в PowerShell 7 см. в следующих статьях:

Просмотр записей журнала событий PowerShell в Windows

Журналы PowerShell можно просматривать с помощью Просмотр событий Windows. Журнал событий находится в группе журналов приложений и служб и называется Microsoft-Windows-PowerShell. Связанный поставщик GUID ETW .{A0C1853B-5C40-4B15-8766-3CF1C58F985A}

При включении ведения журнала блоков скриптов PowerShell регистрирует следующие события в журнал Microsoft-Windows-PowerShell/Operations :

Поле значение
EventId 4104 / 0x1008
Канал Operational
Уровень Verbose
Код операции Create
Задача CommandStart
Ключевое слово Runspace

Включение ведения журнала блоков скриптов

При включении ведения журнала блоков скриптов PowerShell записывает содержимое всех блоков скриптов, которые он обрабатывает. После включения все новые сеансы PowerShell регистрируют эти сведения.

Примечание.

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

Ведение журнала блоков скриптов можно включить с помощью групповой политики или параметра реестра.

Использование групповой политики

Чтобы включить автоматическое транскрибирование, включите функцию ведения журнала блоков сценариев PowerShell в групповой политике с помощью административных шаблонов ->Компоненты Windows ->Windows PowerShell.

Использование реестра

Выполните следующую функцию:

function Enable-PSScriptBlockLogging {
    $basePath = @(
        'HKLM:\Software\Policies\Microsoft\Windows'
        'PowerShell\ScriptBlockLogging'
    ) -join '\'

    if (-not (Test-Path $basePath)) {
        $null = New-Item $basePath -Force
    }

    Set-ItemProperty $basePath -Name EnableScriptBlockLogging -Value "1"
}

Ведение журнала защищенных событий

Увеличение уровня ведения журнала в системе повышает вероятность того, что содержимое журнала может содержать конфиденциальные данные. Например, с включенным ведением журнала скриптов учетные данные или другие конфиденциальные данные, используемые скриптом, можно записать в журнал событий. Если компьютер, вошедший в систему конфиденциальные данные, скомпрометирован, журналы могут предоставить злоумышленнику информацию, необходимую для расширения их охвата.

Для защиты этих сведений в Windows 10 представлено ведение журнала защищенных событий. Защищенное ведение журнала событий позволяет участвующим приложениям шифровать конфиденциальные данные, записанные в журнал событий. Позже вы можете расшифровать и обработать эти журналы на более безопасном и централизованном сборщике журналов.

Содержимое журнала событий защищено с помощью стандарта синтаксиса криптографических сообщений (CMS) IETF. CMS использует криптографию открытого ключа. Ключи, используемые для шифрования содержимого и расшифровки содержимого, хранятся отдельно.

Открытый ключ можно совместно использовать и не является конфиденциальными данными. Любое содержимое, зашифрованное с помощью этого открытого ключа, может быть расшифровано только закрытым ключом. Дополнительные сведения о шифровании открытого ключа см . в Википедии — шифрование открытого ключа.

Чтобы включить политику ведения журнала защищенных событий, разверните открытый ключ на всех компьютерах с данными журнала событий для защиты. Соответствующий закрытый ключ используется для последующей обработки журналов событий в более безопасном расположении, таком как сборщик центрального журнала событий или агрегатор SIEM . Вы можете настроить SIEM в Azure. Дополнительные сведения см. в разделе "Универсальная интеграция SIEM".

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

Чтобы включить ведение журнала защищенных событий, включите функцию Enable Protected Event Logging в групповой политике.Administrative Templates -> Windows Components -> Event Logging Для этого параметра требуется сертификат шифрования, который можно предоставить в одной из нескольких форм:

  • Содержимое сертификата X.509 в кодировке base-64 (например, как показано Export в диспетчере сертификатов).
  • Отпечаток сертификата, который можно найти в хранилище сертификатов локального компьютера (можно развернуть инфраструктурой PKI).
  • Полный путь к сертификату (может быть локальным или удаленным ресурсом).
  • Путь к каталогу с сертификатом или сертификатами (может быть локальным или удаленным ресурсом).
  • Имя субъекта сертификата, который можно найти в хранилище сертификатов локального компьютера (можно развернуть инфраструктурой PKI).

Полученный сертификат должен иметь Document Encryption расширенный уровень использования ключей (1.3.6.1.4.1.311.80.1), а Data Encipherment Key Encipherment также включить использование ключей или ключей.

Предупреждение

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

Расшифровка сообщений ведения журнала защищенных событий

Следующий скрипт извлекает и расшифровывает события, предполагая, что у вас есть закрытый ключ:

Get-WinEvent Microsoft-Windows-PowerShell/Operational |
    Where-Object Id -eq 4104 |
    Unprotect-CmsMessage

См. также