Blog: Systemy microsoft | Powershell

Group Policy Object a PowerShell – część 2

Group Policy Object a PowerShell – część 2
  • 832 views

W poprzednim artykule dowiedzieliśmy się, że PowerShell może być bardzo pomocnym narzędziem w zakresie zarządzania zasadami grupy. W kolejnej części pokażemy, że możliwości PowerShella są dużo większe, niż się dotąd zdawało. Przedmiotem naszej analizy będą następujące zagadnienia: 1. Hardening serwerów i stacji klienckich z wykorzystaniem Security Compliance Toolkit and Baselines (SCT). 2. Edycja obiektów zasad grupy dla szablonów administracyjncych (admx).

Udostępnij!

Hardening serwerów i stacji klienckich z wykorzystaniem Security Compliance Toolkit and Baselines (SCT)

W obecnych czasach poprawa bezpieczeństwa infrastruktury informatycznej jest jednym z kluczowych elementów. Zabezpieczenia w każdej organizacji są tak silne jak jej najsłabsze ogniwo. Zarządzając wieloma serwerami i stacjami klienckimi, musimy pamiętać o ciągłym procesie wzmacniania zabezpieczeń. Śledzenie wszystkich zmian w zakresie wytycznych dotyczących zabezpieczeń dla przeciętnego administratora może być sporym wyzwaniem. Microsoft od wielu lat dostarcza kolejne wersje narzędzi, które pomagają administratorom zabezpieczyć swoje systemy. Kolejny, najnowszy zestaw narzędzi to Security Compliance Toolkit and Baselines (SCT) dostępny do pobrania pod adresem:

https://www.microsoft.com/en-us/download/details.aspx?id=55319

W tym artykule nie będziemy omawiać całego zestawu dostępnych narzędzi, a skupimy się na opcji „Baselines”. Dla naszych potrzeb ściągniemy tylko dwie linie bazowe do Windows Server 2022 i Windows 11 23H2.

Po rozpakowaniu ściągniętych linii bazowych okazuje się, że są one dostępne jako kopie zapasowe obiektów zasad grupy. Ponieważ nazwa pliku kopii zapasowej w katalogu jest reprezentowana przez identyfikator kopii zapasowej ponownie (jak w poprzednim artykule) posłużymy się modułem GroupPolicyHelper z PowerShell Gallery, by otrzymać nazwę GPO i identyfikator kopii zapasowej.

Get-GPOBackupInfoFromXml -backuppath ‚E:\Windows 11 v23H2 Security Baseline\GPOs’ | Select-Object Name,GPOpGuid

Otrzymalismy listę linii bazowych oraz identyfikatory. Do nowego obiektu zaimportujemy linię bazową:

MSFT Windows 11 23H2 – Defender Antivirus {D0E7DD4A-C681-488D-995A-0F061575BCE3}

Import-GPO -BackupId ‚{D0E7DD4A-C681-488D-995A-0F061575BCE3}’ -Path ‚E:\Windows 11 v23H2 Security Baseline\GPOs\’ -TargetName ‚Security BaseLine Windows 11 23H2’

Po zaimportowaniu możemy wykonać raport dla tego obiektu.

Get-GPOReport -Name ‚Security BaseLine Windows 11 23H2’ -Path c:\temp\Win11_baseline.html -ReportType Html

Następnie wyświetlimy raport, który zawiera ustawienia z zaimportowane z linii bazowej. Poniższy zrzut ekranu zawiera oczywiście tylko fragment ustawień.

Invoke-Item C:\temp\Win11_baseline.html

Edycja obiektów zasad grupy dla szablonów administracyjncych (admx)

Mała niespodzianka, czyli cmdlety „Set-GPRegistryValue” i „Get-GPRegistryValue”. Znów nawiążę do autoryzowanych szkoleń Microsoft, gdzie PowerShell w zasadzie był pomijany w zakresie konfiguracji obiektów zasad grupy. A dotychczas opisane możliwości dotyczyły samej administracji GPO. I teraz pojawia się pytanie:

Czy możemy edytować obiekty zasad grupy za pomocą PowerShell?

Z pomocą przychodzi nam sam Microsoft dostarczając nam arkusz kalkulacyjny o nazwie:

Group Policy Settings Reference Spreadsheet for Windows 11 2023 Update (23H2)

Dostępny pod adresem:

https://www.microsoft.com/en-us/download/details.aspx?id=105668

Okazuje się, że mamy możliwość edycji szablonów administracyjnych (admx), ponieważ odwołują się one do wpisów w rejestrze. Dlatego też dla tak skonfigurowanego obiektu zasad grupy mamy możliwość wyświetlenia bieżących ustawień w obiekcie, jak też możliwość modyfikacji tego obiektu, czy też konfigurację od podstaw dla nowego obiektu zasad grupy.

Dodatkowe narzędzia (witryny) mogą być przydatne w tym procesie:

https://github.com/rzander/PSPEditor

https://admx.help/?Category=Windows_11_2022

We wszystkich trzech przypadkach zapoznaliśmy się z konfiguracją  maksymalnego rozmiaru dla dziennika „Security” w Podglądzie Zdarzeń. Teraz przejdziemy do części praktycznej, w której rozważymy dwa warianty:

  1. Konfiguracja ustawień od podstaw – w tym przypadku wykorzystamy omawiany wcześniej wariant dotyczący wielkości pliku dziennika Security.
  2. Modyfikacja dotychczasowych ustawień – w tym przypadku wykorzystamy zaimportowane ustawienia GPO z poziomu bazowego dotyczącego Windows Defender Antivirus.

Przykład 1 – konfiguracja ustawień od podstaw

W naszym przykładzie mamy jednostkę organizacyjną o nazwie „File Servers”. Dla tej jednostki utworzyliśmy obiekt zasad grupy o nazwie „EventViewer_Log_Size”. Teraz za pomocą polecenia Set-GPRegistryValue zmienimy rozmiar dziennika Security oraz, że zdarzenia nie będą nadpisywane.

Set-GPRegistryValue -Name EventViewer_Log_Size -Key HKLM\Software\Policies\Microsoft\Windows\EventLog\Security -ValueName ‚MaxSize’ -Value 102400 -Type DWord

Set-GPRegistryValue -Name EventViewer_Log_Size -Key HKLM\Software\Policies\Microsoft\Windows\EventLog\Security -ValueName ‚Retention’ -Value 1 -Type String

Wynik działania na obiekcie GPO.

Get-GPRegistryValue -Name EventViewer_Log_Size -Key HKLM\Software\Policies\Microsoft\Windows\EventLog\Security

Wynik na serwerze po odświeżeniu zasad grupy.

Przykład 2 – Modyfikacja dotychczasowych ustawień

W naszym przykładzie mamy zaimportowane ustawienia z poziomy bazowego SCT dla Windows Defender Antivirus. Po analizie okazuje się, że opcja konfiguracyjna dla Configure Controlled folder access jes tw trybie Audit Mode.

Get-GPRegistryValue -Name ‚Defender from BaseLine’ -Key ‚HKLM\Software\Policies\Microsoft\Windows Defender\Windows Defender Exploit Guard\Controlled Folder Access’

I raport dla edytora zasad grupy.

Naszym zadaniem jest modyfikacja ustawienia – blokowane będą próby modyfikowania lub usuwania plików w chronionych folderach oraz próby zapisu w sektorach dysku przez niezaufane aplikacje.

Set-GPRegistryValue -Name ‚Defender from BaseLine’ -Key ‚HKLM\Software\Policies\Microsoft\Windows Defender\Windows Defender Exploit Guard\Controlled Folder Access’ -ValueName ‚EnableControlledFolderAccess’ -Value 1 -Type DWord

Get-GPRegistryValue -Name ‚Defender from BaseLine’ -Key ‚HKLM\Software\Policies\Microsoft\Windows Defender\Windows Defender Exploit Guard\Controlled Folder Access’

I z edytora zasad grupy.

Podsumowanie

Jak widać na powyższych przykładach możliwości, jakie dostarcza nam wbudowany moduł GroupPolicy w zakresie zarządzania i edycji z wykorzystaniem PowerShella są naprawdę bardzo duże. Zaawansowani administratorzy odpowiedzialni za zarządzanie GPO na pewno znajdą jeszcze wiele rozwiązań, które pozwolą im usprawnić swoją pracę.