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 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. A naplózás konfigurálásával kapcsolatos további információkért lásd: about_PowerShell_Config.

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

    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
    
  • Szkriptblokk 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 összes szkriptblokk tartalmát, amelyet feldolgoz. Ha engedélyezve van, minden új PowerShell-munkamenet naplózza ezeket az információkat. További információ: Szkriptblokk 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/Operational naplóba:

Mező Érték
EventId 4104 / 0x1008
Csatorna Operational
Szint Verbose
Opcode Create
Feladat 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 a $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 összes szkriptblokk tartalmát, amelyet feldolgoz. Ha engedélyezve van, minden új PowerShell-munkamenet naplózza ezeket az információkat.

Jegyzet

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 A PowerShell-szkriptnaplózási funkció bekapcsolása a csoportházirendben felügyeleti sablonokon keresztül –>PowerShell Core.

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 PowerShell működését vezérlő ScriptBlockLogging fájlban beállíthatja a powershell.config.json beállítást. 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: Wikipedia – Nyilvános kulcsú titkosítási.

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ára szolgál. A SIEM-et az Azure-ban is beállíthatja. További információ: Általános SIEM integrációs.

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 Enable Protected Event Logging funkciót a csoportházirendben Administrative Templates -> Windows Components -> Event Loggingkeresztül. 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 Tanúsítványkezelő Export lehetőségének megfelelően).
  • 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 bővített kulcshasználatként (Document Encryption) 1.3.6.1.4.1.311.80.1 kell rendelkeznie, és engedélyezve kell lennie Data Encipherment vagy Key Encipherment kulcshasználatnak.

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