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 ScriptBlockLogging
powershell.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 Encipherment
Key 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