Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Program PowerShell ma kilka funkcji zaprojektowanych w celu zwiększenia bezpieczeństwa środowiska skryptowego.
Zasady wykonywania
Zasady wykonywania programu PowerShell to funkcja bezpieczeństwa, która kontroluje warunki, w których program PowerShell ładuje pliki konfiguracji i uruchamia skrypty. Ta funkcja pomaga zapobiegać wykonywaniu złośliwych skryptów. Możesz użyć ustawienia zasad grupy, aby ustawić zasady wykonywania dla komputerów i użytkowników. Zasady wykonywania dotyczą tylko platformy Windows.
Aby uzyskać więcej informacji, przejdź do about_Execution_Policies.
Korzystanie z klasy SecureString
Program PowerShell ma kilka poleceń cmdlet, które obsługują użycie System.Security.SecureString klasy .
Podobnie jak w przypadku dowolnej klasy platformy .NET, możesz użyć funkcji SecureString we własnych skryptach. Firma Microsoft nie zaleca jednak używania funkcji SecureString do tworzenia nowych rozwiązań. Firma Microsoft zaleca unikanie używania haseł i poleganie na innych metodach uwierzytelniania, takich jak certyfikaty lub uwierzytelnianie systemu Windows.
Program PowerShell nadal obsługuje klasę SecureString w celu zapewnienia zgodności z poprzednimi wersjami. Korzystanie z protokołu SecureString jest nadal bezpieczniejsze niż używanie ciągu zwykłego tekstu. Program PowerShell nadal korzysta z typu SecureString , aby uniknąć przypadkowego ujawnienia zawartości konsoli lub w dziennikach. Ostrożnie używaj protokołu SecureString , ponieważ można go łatwo przekonwertować na zwykły ciąg tekstowy. Aby zapoznać się z pełną dyskusją na temat używania protokołu SecureString, zobacz dokumentację klasy System.Security.SecureString.
Rejestrowanie bloków modułu i skryptu
Rejestrowanie modułów umożliwia włączenie rejestrowania dla wybranych modułów programu PowerShell. To ustawienie jest skuteczne we wszystkich sesjach na komputerze. Program PowerShell rejestruje zdarzenia wykonywania potoku dla określonych modułów w dzienniku zdarzeń programu Windows PowerShell.
Rejestrowanie bloków skryptów umożliwia rejestrowanie na potrzeby przetwarzania poleceń, bloków skryptów, funkcji i skryptów — zarówno wywoływanych interakcyjnie, jak i za pośrednictwem automatyzacji. Program PowerShell rejestruje te informacje w dzienniku zdarzeń Microsoft-Windows-PowerShell/Operational .
Aby uzyskać więcej informacji, zobacz następujące artykuły:
Obsługa usługi AMSI
Windows Antimalware Scan Interface (AMSI) to interfejs API, który umożliwia aplikacjom przekazywanie akcji do skanera ochrony przed złośliwym kodem, takiego jak Windows Defender, w celu skanowania pod kątem złośliwych ładunków. Począwszy od programu PowerShell 5.1, program PowerShell uruchomiony w systemie Windows 10 (i nowszym) przekazuje wszystkie bloki skryptów do usługi AMSI.
Program PowerShell 7.3 rozszerza dane wysyłane do usługi AMSI w celu przeprowadzenia inspekcji. Teraz zawiera wszystkie wywołania metod platformy .NET.
Aby uzyskać więcej informacji o usłudze AMSI, zobacz Jak pomaga usługa AMSI.
Tryb języka ograniczonego
Tryb constrainedLanguage chroni system przez ograniczenie poleceń cmdlet i typów platformy .NET dozwolonych w sesji programu PowerShell. Aby uzyskać pełny opis, zobacz about_Language_Modes.
Sterowanie aplikacjami
System Windows 10 zawiera dwie technologie: App Control for Business i AppLocker , których można użyć do sterowania aplikacjami. Program PowerShell wykrywa, czy są wymuszane zasady kontroli aplikacji dla całego systemu. Zasady stosują pewne zachowania podczas uruchamiania bloków skryptów, plików skryptów lub ładowania plików modułów, aby zapobiec dowolnemu wykonaniu kodu w systemie.
Usługa App Control dla firm jest zaprojektowana jako funkcja zabezpieczeń zgodnie z kryteriami obsługi zdefiniowanymi przez Centrum zabezpieczeń firmy Microsoft (MSRC). App Control to preferowany system sterowania aplikacjami dla systemu Windows.
Aby uzyskać więcej informacji o tym, jak program PowerShell obsługuje funkcję AppLocker i kontrolę aplikacji, zobacz Zabezpieczanie programu PowerShell przy użyciu kontrolki aplikacji.
Wykaz Materiałów Oprogramowania (SBOM)
Począwszy od programu PowerShell 7.2, wszystkie pakiety instalacyjne zawierają pakiet Software Bill of Materials (SBOM). Zespół programu PowerShell tworzy również maszyny SBOM dla modułów, które są właścicielami, ale są dostarczane niezależnie od programu PowerShell.
Pliki SBOM można znaleźć w następujących lokalizacjach:
- W programie PowerShell znajdź element SBOM pod adresem
$PSHOME/_manifest/spdx_2.2/manifest.spdx.json. - W przypadku modułów znajdź element SBOM w folderze modułu w obszarze
_manifest/spdx_2.2/manifest.spdx.json.
Tworzenie i publikowanie SBOM jest pierwszym krokiem do modernizacji cyberbezpieczeństwa rządu federalnego i zwiększenia bezpieczeństwa łańcucha dostaw oprogramowania. Aby uzyskać więcej informacji na temat tej inicjatywy, zobacz wpis w blogu Generowanie maszyn SBOM z dodatkiem SPDX w firmie Microsoft.
Bezpieczny transfer danych w zdalnym zarządzaniu programem PowerShell
Przed PowerShell w wersji 7.6-preview5, Session_Key jest używany do szyfrowania SecureString przed wysłaniem go w sesji zdalnej PowerShell. Protokół komunikacji zdalnej programu PowerShell (PSRP) wykonuje wymianę kluczy między klientem a serwerem SecureString , gdy należy przenieść obiekt. Wymiana obejmuje następujące kroki:
- Po stronie klienta jest generowana para kluczy publicznych/prywatnych i wysyła klucz publiczny do serwera.
- Serwer generuje klucz sesji na potrzeby szyfrowania symetrycznego.
- Serwer używa klucza publicznego do szyfrowania klucza sesji i wysyła go do klienta.
- Zarówno klient, jak i serwer używają nowego klucza sesji do szyfrowania obiektu SecureString .
Protokół komunikacji zdalnej programu PowerShell (PSRP) używa RSAEncryptionPadding.Pkcs1 algorytmu podczas wymiany kluczy. Algorytm nie jest bezpieczny, więc wymiana kluczy nie zapewnia żadnych dodatkowych zabezpieczeń.
Ważne
Aby zapewnić bezpieczny transfer danych za pośrednictwem protokołu PSRP, należy użyć bezpiecznej warstwy transportu.
Począwszy od programu PowerShell w wersji 7.6-preview.5, wymiana kluczy została uznana za przestarzałą. Wersja psRP została zwiększona do wersji 2.4 i zawiera następujące zmiany:
Następujące komunikaty PSRP są przestarzałe, gdy zarówno klient, jak i serwer są w wersji 2.4 lub nowszej:
- klucz publiczny
- ŻĄDANIE_KLUCZA_PUBLICZNEGO
- ZASZYFROWANY_KLUCZ_SESJI
Kroki szyfrowania i odszyfrowywania dla
SecureStringprogramu są pomijane, gdy zarówno klient, jak i serwer są w wersji 2.4 lub nowszej.
Ta zmiana jest wstecznie kompatybilna.
- W przypadku starych klientów lub serwerów (wersja 2.3 lub niższa) wymiana kluczy jest nadal używana w razie potrzeby.
- PSRP może używać zdalnych sesji z użyciem nazwanych potoków, gdy zarówno klient, jak i serwer znajdują się na tej samej maszynie.
Ponieważ zdalny klient może nawiązać połączenie z nazwanym potokiem, a dane nie są już szyfrowane przy użyciu klucza sesji, nazwany potok (używany dla
Enter-PSHostProcess) odrzuca zdalnego klienta.
Kryteria obsługi zabezpieczeń
Program PowerShell jest zgodny z kryteriami obsługi zabezpieczeń firmy Microsoft dla systemu Windows. Tylko funkcje zabezpieczeń spełniają kryteria obsługi.
Funkcje zabezpieczeń
- Blokada systemu za pomocą kontroli aplikacji dla firm
- Tryb języka ograniczonego za pomocą kontrolki aplikacji dla firm
Funkcje ochrony w głębi systemu
- Blokada systemu za pomocą funkcji AppLocker
- Tryb języka ograniczonego za pomocą funkcji AppLocker
- Zasady wykonywania