Windows İşletim Sistemi Sıkılaştırmalarına Yönelik Temel Kontrol Maddeleri – 5

0
359
views
Kurumsal ortamlarda en çok kullanılan işletim sistemlerinin başında Windows gelmektedir. Bu sebeple, Windows işletim sistemine yönelik gerekli kontrollerin yapılması ve bir takım güvenlik önlemlerinin alınması önemlidir. Bir yazı dizisinin beşincisi olan bu yazıda Windows işletim sistemi sıkılaştırmalarına yönelik temel kontrol maddeleri incelenecektir.

Bu yazı içerisinde belirtilen kontrollerin bir çoğu etki alanı denetleyicisi üzerinden merkezi olarak Grup İlkeleri ile gerçekleştirilmektedir. Böylece hem merkezi bir kontrol sağlanabilmekte hem de hedef bir sistem üzerinde yetki elde edilmiş bile olsa bu ayarlar değiştirilememektedir. Bu sebeple belirtilen sıkılaştırma ayarlarının grup ilkeleri üzerinden gerçekleştirilmesi tavsiye edilmektedir.

Not: Tespit edilen bulgular maddeler halinde aşağıdaki gibi sıralanmıştır. Bulgular giderilirken etkileri iyi analiz edilmeli, etkileri incelenmeli ve işlevsellik testleri gerçekleştirilmelidir. Değişikliklerden sonra sistemlerin yeniden başlatılması da gerekebilmektedir.

 

1) LSASS Güvenliği

LSASS.EXE (Local Security Authority Subsystem Service), kullanıcıların oturum açma işlemleri sırasında kimlik bilgilerini doğruluyan, parola değişikliklerinin gerçekleştirilmesinde görevli olan, kullanıcının yerel güvenlik ilkelerine (Security Policy) uymaya zorlayan, kullanıcı haklarına göre token oluşturan, göreviyle ilişkili bir olay olduğunda bu olayı Olay Günlüklerine (Event Viewer) yazan prosestir.

 

Kontrol: Kimlik biligleri gibi kritik bilgilerin LSASS prosesi üzerinden çalınmasının önlenmesi veya LSASS prosesine yönelik saldırıların tespiti için gerekli önemler alınmalıdır.

Önlem: Belirtilen kontrol maddesi için, gerçekleştirilebilecek önlemler aşağıdaki gibi sıralanabilir.

  • LSASS prosesi koruması için gerekli ayarlar Kayıt Defteri ile aşağıda belirtildiği gibi gerçekleştirilebilir:
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
      • RunAsPPL (REG_DWORD) –> 1
    • HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\LSASS.exe
      • AuditLevel (REG_DWORD) –> 00000008
    • HKLM\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation
      • AllowProtectedCreds (REG_DWORD) –> 1

 

2) Etki Alanı Ağına Bağlantı Güvenliği

Kontrol: Kurum bilgisayarları kurum ağı gibi etki alanı kimliği doğrulanmış ağa bağlıyken, etki alanı dışı ağlara bağlantı yasaklanmalıdır.

Önlem: Belirtilen kontrol maddesi için, gerçekleştirilebilecek önlemler aşağıdaki gibi sıralanabilir.

  • Aynı anda kurumsal ağ ve harici ağa bağlantıyı engellemek için gerekli ayarlar Grup İlkesi Nesnesi ile aşağıda belirtildiği gibi gerçekleştirilebilir:
    • Computer Configuration –> Policies–> Administrative Templates –> Network –> Windows Connection Manager
      • Prohibit connection to non-domain networks when connected to domain authenticated network –> Enabled
  • Gerekli ayarlar Kayıt Defteri ile aşağıda belirtildiği gibi gerçekleştirilebilir:
    • HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WcmSvc\GroupPolicy\
      • fBlockNonDomain (REG_DWORD) –> 1

 

3) WinRM Hizmeti Güvenliği

WinRM (Windows Remote Management), Microsoft tarafından özelleştirilen HTTP/S (SOAP web servisi) temelli WS-Management (Web Services-Management) protokoldür. WinRM ile donanım ve işletim sistemlerinin yönetimi sağlanır. Bu yönetim Windows sistemler için WMI üzerinden, Windows olmayan UNIX/Linux sistemler için ise DCOM üzerinden gerçekleştirilir.

WinRM servisi ile ilgili detaylar için aşağıdaki komutlar kullanılabilir.

Test-WSMan -ComputerName .
Test-NetConnection -ComputerName localhost
Enter-PSSession -ComputerName localhost

winrm e winrm/config/listener
dir wsman:\localhost\listener

Get-PSSessionConfiguration | Format-List -Property Name, Permission

 

Kontrol: Windows Remote Management servisi devre dışı bırakılmalıdır.

Önlem: Belirtilen kontrol maddesi için, gerçekleştirilebilecek önlemler aşağıdaki gibi sıralanabilir.

  • WinRM servisinin durdurulması için gerekli ayarlar Powershell ile aşağıda belirtildiği gibi gerçekleştirilebilir:

Stop-Service winrm
Set-Service -Name winrm -StartupType Disabled

  • Powershell Remoting özelliğinin devre dışı bırakılması için gerekli ayarlar Powershell ile aşağıda belirtildiği gibi gerçekleştirilebilir:

Disable-PSRemoting -Force

  • WinRM dinleyicilerinin silinmesi için gerekli ayarlar Powershell ile aşağıda belirtildiği gibi gerçekleştirilebilir:

Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse
winrm delete winrm/config/listener?address=*+transport=HTTP

 

Kontrol: WinRM servisi kullanımı zorunlu ise iletişim güvenli olarak sağlanmalıdır.

Önlem: Belirtilen kontrol maddesi için, gerçekleştirilebilecek önlemler aşağıdaki gibi sıralanabilir.

  • WinRM sıkılaştırması için gerekli ayarlar Grup İlkesi Nesnesi ile aşağıda belirtildiği gibi gerçekleştirilebilir:
    • Computer Configuration –> Administrative Templates –> Windows Components –> Windows Remote Management (WinRM) –> WinRM Client
      • Disallow Digest authentication –> Enabled
      • Allow unencrypted traffic –> Disabled
      • Allow Basic authentication –> Disabled
    • Computer Configuration –> Administrative Templates –> Windows Components –> Windows Remote Management (WinRM) –> WinRM Service
      • Allow Basic authentication –> Disabled
      • Allow unencrypted traffic –> Disabled
      • Allow remote server management through WinRM –> Disabled
      • Disallow WinRM from storing RunAs credentials –> Enabled
  • Gerekli ayarlar Kayıt Defteri ile aşağıda belirtildiği gibi gerçekleştirilebilir:
    • HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WinRM\Client
      • AllowDigest (REG_DWORD) –> 0
      • AllowUnencryptedTraffic (REG_DWORD) –> 0
      • AllowBasic (REG_DWORD) –> 0
    • HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WinRM\Service
      • AllowBasic (REG_DWORD) –> 0
      • AllowUnencryptedTraffic (REG_DWORD) –> 0
      • AllowAutoConfig (REG_DWORD) –> 0
      • DisableRunAs (REG_DWORD) –> 0

 

4) Powershell Güvenliğinin Sağlanması

PowerShell, nesneleri yönetmeye yarayan birçok cmdlet’e (tek görevli komut satırı aracı) sahip olan bir komut satırı arayüzüdür. PowerShell erişimini elde eden bir saldırgan, elde ettiği kullanıcı yetkisi ile sistem üzerinde aşağıdaki işlemleri gerçekleştirebilir.

  • Hak yükseltme
  • Sistem bilgilerini elde etme
  • Ağ üzerindeki diğer sistemlere müdahale
  • Veri bozma
  • Veri çalma
  • Sistemde kalıcı olma

Birçok zararlı yazılım Powershell ile betik çalıştırabilmektedir. Bu sebeple Powershell güvenliği önem arzetmektedir. PowerShell’in eski sürümlerinin bir takım güvenlik problemleri bulunmaktadır. Örneğin PowerShell v2 sürümündeki komut satırında yapılan işlemlerin loglaması yapılamamaktadır.

Yeni PowerShell sürümleri (v5 vs.) ile birçok yeni özellik gelmiştir. Bu özellikler aşağıdaki gibi sıralanabilir.

  • Script Block Logging: Karmaşıklaştırılmış (obfuscation) Powershell kod parçacığının çalışmadan önce decode edilerek açık metin olarak loglanması sağlanır.
  • Transcript Logging: Çalıştırılacak olan Powershell kod parçacıklarına ait çıktılar (varsayılan olarak) ilgili kullanıcının Documents klasörü altındaki “PowerShell_transcript” ön eki ile başlayan dosyalarına kaydedilir.
  • Module Logging: PowerShell v3 ile gelmiş olup ve belirli modüller için Pipeling işlemleri, karmaşıklaştırılmış ve standart komutlar için log üretmeye yarar.
  • Constrained PowerShell Mod: Powershell’in temel fonksiyonlarının çalıştırılmasına izin verilir. Böylece doğrudan .NET Framework erişimi, Add-Type Cmdlet’i üzerinden Win32 API’Larına erişimi sağlanamamış olur.
  • Anti-Malware Integration (AMSI): PowerShell, VBScript, JScript dillerine ait komutların çalıştırılmadan önce taranması sağlanır.

Powershell sürümü ile ilgili detaylar için aşağıdaki komutlar kullanılabilir.

$PSVersionTable
$PSVersionTable.PSVersion

 

Kontrol: Powershell üzerinden sadece imzalı (Allsigned) veya belirlenmiş betikler çalıştırılabilmelidir.

Önlem: Belirtilen kontrol maddesi için, gerçekleştirilebilecek önlemler aşağıdaki gibi sıralanabilir.

  • Powershell çalıştırma ilkesinin güvenliği için gerekli ayarlar Grup İlkesi Nesnesi ile aşağıda belirtildiği gibi gerçekleştirilebilir:
    • Computer Configuration –> Administrative Templates: Policy definition –> Windows Components –> Windows Powershell
      • Turn on Script Execution: Enabled –> Execution Policy: Allow only signed scripts
  • Powershell çalıştırma ilkesinin güvenliği için gerekli ayarlar Powershell ile aşağıda belirtildiği gibi gerçekleştirilebilir:

Set-ExecutionPolicy Allsigned

 

Kontrol: PowerShell Downgrade Saldırısı (PowerShell v5 sürümünden PowerShell v2 sürümüne düşürme) gerçekleştirilebilememelidir.

Önlem: Belirtilen kontrol maddesi için, gerçekleştirilebilecek önlemler aşağıdaki gibi sıralanabilir.

  • Powershell v2 sürümünün devre dışı bırakılması için gerekli ayarlar Powershell ile aşağıda belirtildiği gibi gerçekleştirilebilir:

Disable-WindowsOptionalFeature -Online -FeatureName MicrosoftWindowsPowerShellV2 -norestart
Disable-WindowsOptionalFeature -Online -FeatureName MicrosoftWindowsPowerShellV2Root -norestart

  • Powershell sürümü, yetkisiz kullanıcılar (NT AUTHORITY\SYSTEM dahil) tarafından düşürülememelidir. Belirtilen önlemin geçerliliğinin doğrulaması için, aşağıdaki işlemler gerçekleştirilebilir.

Get-WindowsOptionalFeature -Online -FeatureName MicrosoftWindowsPowerShellV2
powershell.exe -version 2.0

 

Kontrol: Powershell olay kayıtlarının güvenliği sağlanmalıdır.

Önlem: Belirtilen kontrol maddesi için, gerçekleştirilebilecek önlemler aşağıdaki gibi sıralanabilir.

  • Powershell olay kayıtlarının güvenliğinin sağlanması için gerekli ayarlar Grup İlkesi Nesnesi ile aşağıda belirtildiği gibi gerçekleştirilebilir:
    • Computer Configuration –> Policies –> Administrative Templates –> Windows Components –> Windows PowerShell
      • Turn on Module Logging: Enabled –> Show: *
      • Turn on PowerShell Script Block Logging: Enabled –> Log script block execution start / stop events: Seçilir
      • Turn on PowerShell Transcription: Enabled –> Include invocation headers: Seçilir
  • Gerekli ayarlar Kayıt Defteri ile aşağıda belirtildiği gibi gerçekleştirilebilir:
    • HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Policies \ Microsoft \ Windows \ PowerShell \ ModuleLogging
      • EnableModuleLogging (REG_DWORD) –> 1
    • HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Policies \ Microsoft \ Windows \ PowerShell \ ModuleLogging \ ModuleNames
      • * (REG_SZ) –> *
    • HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Policies \ Microsoft \ Windows \ PowerShell \ ScriptBlock \ Logging
      • EnableScriptBlockLogging (REG_DWORD) –> 1

 

5) OneDrive Kullanımı

KVKK kapsamı gereğincede şirket içerisinde veri sızıntısının önlemini almak maksatlı Onedrive uygulamasını yasaklanmalıdır. Böylece,

  • OneDrive uygulamasından ve dosya alıcıdan OneDrive aracına erişilemez.
  • Windows Store uygulamaları, WinRT API kullanarak OneDrive aracına erişemez.
  • OneDrive, Dosya Gezgini’ndeki gezinme bölmesinde görünmez.
  • OneDrive dosyaları bulutla senkronize edilmez.
  • Fotoğraflar ve videolar ilgili klasörlerden otomatik olarak yüklenemez.

 

Kontrol: OneDrive kullanımı önlenmelidir.

Önlem: Belirtilen kontrol maddesi için, gerçekleştirilebilecek önlemler aşağıdaki gibi sıralanabilir.

  • OneDrive kullanımını önlemek için gerekli ayarlar Grup İlkesi Nesnesi ile aşağıda belirtildiği gibi gerçekleştirilebilir:
    • Computer Configuration –> Administrative Template –> Wındows Components –> OneDrive
      • Prevent the usage of OneDrive for file storage: Enabled
  • Gerekli ayarlar Kayıt Defteri ile aşağıda belirtildiği gibi gerçekleştirilebilir:
    • HKEY_LOCAL_MACHINE\ Software\Policies\Microsoft\Windows\OneDrive
      • DisableFileSyncNGSC (REG_DWORD) –> 1

 

 

 

CEVAP VER

Yorumunuzu giriniz
İsminizi giriniz

This site uses Akismet to reduce spam. Learn how your comment data is processed.