about_Logging_Windows

Rövid leírás

A PowerShell a motor, a szolgáltatók és a parancsmagok belső műveleteit naplózza a Windows eseménynaplóba.

Hosszú leírás

A PowerShell naplózza a PowerShell-műveletek részleteit, például a motor és a szolgáltatók indítását és leállítását, valamint a PowerShell-parancsok végrehajtását.

A Windows PowerShell 5.1-ben való naplózásról további információt a about_Logging.

A PowerShell két naplózási kategória konfigurálását támogatja:

  • Modulnaplózás – A megadott modulok tagjainak folyamatvégrehajtási eseményeinek rögzítése. A modulnaplózást engedélyezni kell a munkamenethez és az adott modulokhoz is. További információ a naplózás konfigurálásáról: about_PowerShell_Config.

    Ha a modulnaplózás konfigurációval engedélyezve van, a modul LogPipelineExecutionDetails tulajdonságának értékének beállításával engedélyezheti és letilthatja a munkamenet adott moduljainak naplózását.

    Például a PSReadLine modul modulnaplózásának engedélyezéséhez:

    $psrl = Get-Module PSReadLine
    $psrl.LogPipelineExecutionDetails = $true
    Get-Module PSReadline | Select-Object Name, LogPipelineExecutionDetails
    
    Name       LogPipelineExecutionDetails
    ----       ---------------------------
    PSReadLine                        True
    
  • Szkriptblokkok naplózása – A parancsok, szkriptblokkok, függvények és szkriptek feldolgozásának rögzítése interaktívan vagy automatizálással.

    A szkriptblokkok naplózásának engedélyezésekor a PowerShell rögzíti az általa feldolgozott összes szkriptblokk tartalmát. Ha engedélyezve van, minden új PowerShell-munkamenet naplózza ezeket az információkat. További információ: Szkriptblokkok naplózásának engedélyezése.

A PowerShell-eseményszolgáltató regisztrálása Windows rendszeren

A Linuxtól vagy a macOS-től eltérően a Windows megköveteli az eseményszolgáltató regisztrációját, mielőtt az eseményeket meg lehetne írni az eseménynaplóba. A PowerShell-eseményszolgáltató engedélyezéséhez futtassa a következő parancsot egy emelt szintű PowerShell-parancssorból.

$PSHOME\RegisterManifest.ps1

A PowerShell eseménynapló-bejegyzéseinek megtekintése Windows rendszeren

A PowerShell-naplók a Windows Eseménynapló használatával tekinthetők meg. Az eseménynapló az Alkalmazás- és szolgáltatásnaplók csoportban található, és a neve PowerShellCore. A társított ETW-szolgáltató GUID azonosítója.{f90714a8-5509-434a-bf6d-b1624c8a19a2}

Ha engedélyezve van a szkriptblokk-naplózás, a PowerShell a következő eseményeket naplózza a PowerShellCore/Operatív naplóba:

Mező Érték
EventId 4104 / 0x1008
Csatorna Operational
Level Verbose
Opcode Create
Task CommandStart
Kulcsszó Runspace

A PowerShell-eseményszolgáltató regisztrációjának törlése Windows rendszeren

Az eseményszolgáltató regisztrálása zárolja az események dekódolásához használt bináris kódtárat. A kódtár frissítéséhez a szolgáltatónak nem kell regisztrálnia a zárolás feloldásához.

A PowerShell-szolgáltató regisztrációjának megszüntetéséhez futtassa a következő parancsot egy emelt szintű PowerShell-parancssorból.

$PSHOME\RegisterManifest.ps1 -Unregister

A PowerShell frissítése után futtassa $PSHOME\RegisterManifest.ps1 a frissített eseményszolgáltató regisztrálásához.

Szkriptblokk naplózásának engedélyezése

A szkriptblokkok naplózásának engedélyezésekor a PowerShell rögzíti az általa feldolgozott összes szkriptblokk tartalmát. Ha engedélyezve van, minden új PowerShell-munkamenet naplózza ezeket az információkat.

Feljegyzés

Javasoljuk, hogy engedélyezze a védett eseménynaplózást az alábbiak szerint, ha a szkriptblokk-naplózást nem diagnosztikai célokra használja.

A szkriptblokk-naplózás csoportházirenddel vagy beállításjegyzék-beállítással engedélyezhető.

Csoportházirend használata

Az automatikus átírás engedélyezéséhez engedélyezze a PowerShell-szkriptblokkok naplózásának bekapcsolását a csoportházirendben Rendszergazda istrative templates ->PowerShell Core használatával.

A beállításjegyzék használata

Futtassa a következő függvényt:

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

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

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

A PowerShell konfigurációs fájljának használata

A fájlban beállíthatja azt a ScriptBlockLoggingpowershell.config.json beállítást, amely a PowerShell viselkedését szabályozza. További információ: about_PowerSHell_Config.

Védett eseménynaplózás

A rendszer naplózási szintjének növelése növeli annak lehetőségét, hogy a naplózott tartalom bizalmas adatokat tartalmazhat. Ha például engedélyezve van a szkriptnaplózás, a szkript által használt hitelesítő adatok vagy egyéb bizalmas adatok írhatók az eseménynaplóba. Ha egy bizalmas adatokat naplózott gép sérül, a naplók a támadók számára olyan információkat biztosíthatnak, amelyek az elérésük kiterjesztéséhez szükségesek.

Ezen információk védelme érdekében a Windows 10 védett eseménynaplózást vezet be. A védett eseménynaplózás lehetővé teszi, hogy a részt vevő alkalmazások titkosítják az eseménynaplóba írt bizalmas adatokat. Később visszafejtheti és feldolgozhatja ezeket a naplókat egy biztonságosabb és központosított naplógyűjtőn.

Az eseménynapló tartalma az IETF titkosítási üzenet szintaxisa (CMS) szabványával van védve. A CMS nyilvános kulcsú titkosítást használ. A tartalom titkosításához és a tartalom visszafejtéséhez használt kulcsok külön maradnak.

A nyilvános kulcs széles körben megosztható, és nem bizalmas adatok. Az ezzel a nyilvános kulccsal titkosított tartalmakat csak a titkos kulcs tudja visszafejteni. A nyilvános kulcsok titkosításával kapcsolatos további információkért lásd a Wikipédiát – Nyilvános kulcs titkosítása című témakört.

A védett eseménynaplózási szabályzat engedélyezéséhez helyezzen üzembe egy nyilvános kulcsot minden olyan gépen, amely rendelkezik eseménynapló-adatokkal a védelem érdekében. A megfelelő titkos kulcs az eseménynaplók biztonságosabb helyen, például központi eseménynapló-gyűjtőn vagy SIEM-összesítőn történő feldolgozásához használható. A SIEM-et az Azure-ban is beállíthatja. További információ: Általános SIEM-integráció.

Védett eseménynaplózás engedélyezése csoportházirenddel

A védett eseménynaplózás engedélyezéséhez engedélyezze a funkciót a Enable Protected Event Logging csoportházirendben keresztül Administrative Templates -> Windows Components -> Event Logging. Ehhez a beállításhoz titkosítási tanúsítvány szükséges, amelyet több űrlap egyikében is megadhat:

  • Egy base-64 kódolású X.509-tanúsítvány tartalma (például a Export Tanúsítványkezelőben elérhető beállítás szerint).
  • A helyi gép tanúsítványtárolójában található tanúsítvány ujjlenyomata (A PKI-infrastruktúra üzembe helyezhető).
  • A tanúsítvány teljes elérési útja (lehet helyi vagy távoli megosztás).
  • Egy tanúsítványt vagy tanúsítványt tartalmazó könyvtár elérési útja (lehet helyi vagy távoli megosztás).
  • A helyi gép tanúsítványtárolójában található tanúsítvány tulajdonosneve (a PKI-infrastruktúra üzembe helyezhető).

Az eredményül kapott tanúsítványnak továbbfejlesztett kulcshasználattal (1.3.6.1.4.1.311.80.1) kell rendelkeznieDocument Encryption, és vagy Data EnciphermentKey Encipherment engedélyezni kell a kulcshasználatot.

Figyelmeztetés

A titkos kulcsot nem szabad üzembe helyezni a gépek naplózási eseményein. Biztonságos helyen kell tartani, ahol visszafejtheti az üzeneteket.

Védett eseménynaplózási üzenetek visszafejtése

A következő szkript lekéri és visszafejti az eseményeket, feltéve, hogy rendelkezik a titkos kulccsal:

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

Lásd még