Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kısa açıklama
PowerShell altyapıdan, sağlayıcılardan ve cmdlet'lerden Windows olay günlüğüne iç işlemleri günlüğe kaydeder.
Uzun açıklama
PowerShell, altyapıyı ve sağlayıcıları başlatma ve durdurma ve PowerShell komutlarını yürütme gibi PowerShell işlemleriyle ilgili ayrıntıları günlüğe kaydeder.
Windows PowerShell 5.1'de günlüğe kaydetme hakkında bilgi için bkz . about_Logging.
PowerShell iki günlük kategorisinin yapılandırılmasını destekler:
Modül günlüğü - Belirtilen modüllerin üyeleri için işlem hattı yürütme olaylarını kaydedin. Modül günlüğü hem oturum hem de belirli modüller için etkinleştirilmelidir. Bu günlüğü yapılandırma hakkında daha fazla bilgi için bkz . about_PowerShell_Config.
Modül günlüğü yapılandırma aracılığıyla etkinleştirilirse, modülün LogPipelineExecutionDetails özelliğinin değerini ayarlayarak oturumdaki belirli modüller için günlüğe kaydetmeyi etkinleştirebilir ve devre dışı bırakabilirsiniz.
Örneğin, PSReadLine modülü için modül günlüğünü etkinleştirmek için:
$psrl = Get-Module PSReadLine $psrl.LogPipelineExecutionDetails = $true Get-Module PSReadLine | Select-Object Name, LogPipelineExecutionDetails
Name LogPipelineExecutionDetails ---- --------------------------- PSReadLine True
Betik bloğu günlüğü - Etkileşimli olarak veya otomasyon aracılığıyla çağrılsa da komutların, betik bloklarının, işlevlerin ve betiklerin işlenmesini kaydedin.
Betik Bloğu Günlüğünü etkinleştirdiğinizde PowerShell, işlediği tüm betik bloklarının içeriğini kaydeder. Etkinleştirildikten sonra, tüm yeni PowerShell oturumları bu bilgileri günlüğe kaydeder. Daha fazla bilgi için bkz . Betik Bloğu Günlüğünü Etkinleştirme.
PowerShell olay sağlayıcısını Windows'a kaydetme
Linux veya macOS'un aksine Windows, olayların olay günlüğüne yazılabilmesi için olay sağlayıcısının kaydedilmesini gerektirir. PowerShell olay sağlayıcısını etkinleştirmek için yükseltilmiş bir PowerShell isteminden aşağıdaki komutu çalıştırın.
$PSHOME\RegisterManifest.ps1
Windows'da PowerShell olay günlüğü girdilerini görüntüleme
PowerShell günlükleri Windows Olay Görüntüleyicisi kullanılarak görüntülenebilir. Olay günlüğü Uygulama ve Hizmet Günlükleri grubunda bulunur ve PowerShellCore olarak adlandırılır. İlişkili ETW sağlayıcısı GUID değeridir {f90714a8-5509-434a-bf6d-b1624c8a19a2}
.
Betik Bloğu Günlüğü etkinleştirildiğinde, PowerShell aşağıdaki olayları PowerShellCore/İşlem günlüğünde günlüğe kaydeder:
Alan | Değer |
---|---|
EventId | 4104 / 0x1008 |
Kanal | Operational |
Level | Verbose |
Işlem kodu | Create |
Görev | CommandStart |
Anahtar sözcük | Runspace |
Windows'da PowerShell olay sağlayıcısının kaydını kaldırma
Olay sağlayıcısının kaydedilmesi, olayların kodunu çözmek için kullanılan ikili kitaplığa bir kilit yerleştirir. Bu kitaplığı güncelleştirmek için, bu kilidi serbest bırakmak için sağlayıcının kaydının kaldırılmış olması gerekir.
PowerShell sağlayıcısının kaydını kaldırmak için yükseltilmiş bir PowerShell isteminden aşağıdaki komutu çalıştırın.
$PSHOME\RegisterManifest.ps1 -Unregister
PowerShell'i güncelleştirdikten sonra komutunu çalıştırarak $PSHOME\RegisterManifest.ps1
güncelleştirilmiş olay sağlayıcısını kaydedin.
Betik Bloğu Günlüğünü Etkinleştirme
Betik Bloğu Günlüğünü etkinleştirdiğinizde PowerShell, işlediği tüm betik bloklarının içeriğini kaydeder. Etkinleştirildikten sonra, tüm yeni PowerShell oturumları bu bilgileri günlüğe kaydeder.
Not
Tanılama dışında herhangi bir şey için Betik Bloğu Günlüğü kullanılırken, aşağıda açıklandığı gibi Korumalı Olay Günlüğünü etkinleştirmeniz önerilir.
Betik Bloğu Günlüğü, Grup İlkesi veya kayıt defteri ayarı aracılığıyla etkinleştirilebilir.
Grup İlkesi Kullanma
Otomatik transkripsiyonu etkinleştirmek için Yönetim ŞablonlarıGrup İlkesi'nde PowerShell Betik Bloğu Günlüğünü Aç özelliğini etkinleştirin.
Kayıt Defterini Kullanma
Aşağıdaki işlevi çalıştırın:
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"
}
PowerShell yapılandırma dosyasını kullanma
Dosyada PowerShell'in ScriptBlockLogging
nasıl davranacağını denetleen seçeneği ayarlayabilirsinizpowershell.config.json
. Daha fazla bilgi için bkz . about_PowerSHell_Config.
Korumalı Olay Günlüğü
Bir sistemde günlüğe kaydetme düzeyinin artırılması, günlüğe kaydedilen içeriğin hassas veriler içerme olasılığını artırır. Örneğin, betik günlüğü etkinleştirildiğinde, bir betik tarafından kullanılan kimlik bilgileri veya diğer hassas veriler olay günlüğüne yazılabilir. Hassas verileri günlüğe kaydeden bir makinenin güvenliği aşıldığında, günlükler saldırgana erişimlerini genişletmek için gereken bilgileri sağlayabilir.
Windows 10, bu bilgileri korumak için Korumalı Olay Günlüğü'ne giriş yaptı. Korumalı Olay Günlüğü, katılan uygulamaların olay günlüğüne yazılan hassas verileri şifrelemesine olanak tanır. Daha sonra bu günlüklerin şifresini çözebilir ve daha güvenli ve merkezi bir günlük toplayıcı üzerinde işleyebilirsiniz.
Olay günlüğü içeriği, IETF Şifreleme İletisi Söz Dizimi (CMS) standardı kullanılarak korunur. CMS ortak anahtar şifrelemesi kullanır. İçeriği şifrelemek ve içeriğin şifresini çözmek için kullanılan anahtarlar ayrı tutulur.
Ortak anahtar yaygın olarak paylaşılabilir ve hassas veriler değildir. Bu ortak anahtarla şifrelenen tüm içeriğin şifresi yalnızca özel anahtarla çözülebilir. Ortak Anahtar Şifrelemesi hakkında daha fazla bilgi için bkz . Vikipedi - Ortak Anahtar Şifrelemesi.
Korumalı Olay Günlüğü ilkesini etkinleştirmek için, korunacak olay günlüğü verileri olan tüm makinelere bir ortak anahtar dağıtın. İlgili özel anahtar, olay günlüklerini merkezi olay günlüğü toplayıcısı veya SIEM toplayıcısı gibi daha güvenli bir konumda işlemek için kullanılır. SIEM'i Azure'da ayarlayabilirsiniz. Daha fazla bilgi için bkz . Genel SIEM tümleştirmesi.
Grup İlkesi aracılığıyla Korumalı Olay Günlüğünü Etkinleştirme
Korumalı Olay Günlüğünü etkinleştirmek için, aracılığıyla Enable Protected Event Logging
Grup İlkesi'nde özelliği etkinleştirinAdministrative Templates -> Windows Components -> Event Logging
. Bu ayar, çeşitli biçimlerden birinde sağlayabileceğiniz bir şifreleme sertifikası gerektirir:
- Base-64 ile kodlanmış X.509 sertifikasının içeriği (örneğin, Sertifika Yöneticisi'ndeki seçeneğin
Export
sunduğu gibi). - Yerel Makine sertifika deposunda bulunabilen bir sertifikanın parmak izi (PKI altyapısı tarafından dağıtılabilir).
- Sertifikanın tam yolu (yerel veya uzak bir paylaşım olabilir).
- Sertifika veya sertifika içeren bir dizinin yolu (yerel veya uzak bir paylaşım olabilir).
- Yerel Makine sertifika deposunda bulunabilen bir sertifikanın konu adı (PKI altyapısı tarafından dağıtılabilir).
Sonuçta elde edilen sertifikanın gelişmiş anahtar kullanımı ()Document Encryption
ve ya da 1.3.6.1.4.1.311.80.1
Data Encipherment
anahtar kullanımları etkin olmalıdırKey Encipherment
.
Uyarı
Özel anahtar, olayları günlüğe kaydetme makinelerine dağıtılmamalıdır. İletilerin şifresini çözeceğiniz güvenli bir konumda tutulmalıdır.
Korumalı Olay Günlüğü iletilerinin şifresini çözme
Aşağıdaki betik, özel anahtarınız olduğu varsayılarak olayları alır ve şifresini çözer:
Get-WinEvent Microsoft-Windows-PowerShell/Operational |
Where-Object Id -EQ 4104 | Unprotect-CmsMessage
Ayrıca bkz.
PowerShell