Aby zabezpieczyć Windows Server 2025 przed nieautoryzowanym uruchamianiem skryptów i poleceń PowerShell, warto wdrożyć zestaw sprawdzonych metod hardeningu, które ograniczą powierzchnię ataku i pozwolą na lepszą kontrolę nad tym, kto i co może wykonywać.
Ograniczenie polityki uruchamiania skryptów PowerShell
PowerShell domyślnie umożliwia różne poziomy uruchamiania skryptów:
Sprawdzenie obecnej polityki:
1 |
Get-ExecutionPolicy -List |
Zalecane ustawienie (np. tylko podpisane skrypty):
1 |
Set-ExecutionPolicy AllSigned -Scope LocalMachine |
Można też użyć <em>Restricted</em>
(całkowity zakaz uruchamiania skryptów):
1 |
Set-ExecutionPolicy Restricted -Scope LocalMachine |
Użyj AppLocker
AppLocker (Windows Server z GPO)
- Umożliwia whitelisting aplikacji i skryptów.
- Możesz utworzyć zasady ograniczające uruchamianie:
.ps1
,.bat
,.vbs
,.exe
,.dll
- Konfiguracja przez Group Policy:
Computer Configuration > Windows Settings > Security Settings > Application Control Policies > AppLocker
- Dla PowerShella – użyj:
Script Rules
– możesz ograniczyć uruchamianie tylko do podpisanych lub z konkretnych folderów.
Windows Defender Application Control (WDAC)
- Bardziej odporne na obejścia, szczególnie na serwerach Core.
- Używaj WDAC do utworzenia polityki, która:
- Zezwala tylko podpisanym plikom binarnym Microsoft lub twoim.
- Blokuje PowerShell w trybie interaktywnym, jeśli niepotrzebny.
Wymuszaj PowerShell w trybie ograniczonym (Constrained Language Mode)
- Ogranicza możliwości PowerShella, np. brak dostępu do COM/WinAPI.
- Można wymusić go na podstawie poziomu uprawnień użytkownika.
- Konfiguracja przez Device Guard, AppLocker, lub środowisko z ograniczonymi uprawnieniami.
- Sprawdzenie:
1 |
$ExecutionContext.SessionState.LanguageMode |
- Wymuszenie (przy użyciu AppLocker lub przez zmienną środowiskową):
1 |
[Environment]::SetEnvironmentVariable("__PSLockdownPolicy", "4", "Machine") |
Audyt i dzienniki bezpieczeństwa PowerShell
- Włącz PowerShell Logging:
Group Policy > Administrative Templates > Windows Components > Windows PowerShell
:- Włącz Module Logging, Script Block Logging i Transcription.
- Wpisy będą widoczne w:
- Event Viewer > Applications and Services Logs > Microsoft > Windows > PowerShell
Ogranicz dostęp do PowerShella
- Usuń dostęp do
powershell.exe
ipwsh.exe
dla grup niebędących adminami (za pomocą NTFS ACL lub AppLocker). - Usuń PowerShell ISE, jeśli niepotrzebny.
- W środowiskach, gdzie PowerShell nie jest potrzebny, rozważ jego usunięcie jako funkcji opcjonalnej (Server Core domyślnie nie ma ISE).
Inne dobre praktyki zabezpieczające
- Stosuj Least Privilege Access – użytkownicy nie powinni mieć uprawnień lokalnego administratora.
- Włącz Credential Guard i LSA Protection.
- Regularne aktualizacje i kontrola integralności systemu (Windows Defender + Windows Security Baseline).
Podsumowanie
Aby zabezpieczyć Windows Server 2025 przed nieautoryzowanym uruchamianiem skryptów PowerShell, ustaw politykę uruchamiania na AllSigned
lub Restricted
. Wdróż AppLocker lub WDAC, aby ograniczyć dostęp do PowerShella i skryptów tylko dla zaufanych użytkowników i lokalizacji. Włącz Constrained Language Mode oraz zaawansowane logowanie PowerShella, aby monitorować i ograniczać potencjalnie niebezpieczne działania.
Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.
Link do formularza tutaj: https://beitadmin.pl/pomysly
Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).