Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
PowerShell má několik funkcí navržených ke zlepšení zabezpečení skriptovacího prostředí.
Zásada provádění
Zásady spouštění PowerShellu jsou bezpečnostní funkce, která řídí podmínky, za kterých PowerShell načítá konfigurační soubory a spouští skripty. Tato funkce pomáhá zabránit spuštění škodlivých skriptů. Nastavení zásad skupiny můžete použít k nastavení zásad spouštění pro počítače a uživatele. Zásady spouštění se vztahují pouze na platformu Windows.
Další informace naleznete v části about_Execution_Policies.
Použití třídy SecureString
PowerShell obsahuje několik rutin, které podporují použití System.Security.SecureString třídy.
A stejně jako u jakékoli třídy .NET můžete použít SecureString ve vlastních skriptech. Microsoft však nedoporučuje používat SecureString pro nový vývoj. Společnost Microsoft doporučuje vyhnout se používání hesel a spoléhat se na jiné prostředky ověřování, jako jsou certifikáty nebo ověřování systému Windows.
PowerShell nadále podporuje třídu SecureString kvůli zpětné kompatibilitě. Použití řetězce SecureString je stále bezpečnější než použití řetězce prostého textu. PowerShell stále spoléhá na typ SecureString , aby se zabránilo náhodnému vystavení obsahu konzole nebo v protokolech. Řetězec SecureString používejte pečlivě, protože jej lze snadno převést na řetězec ve formátu prostého textu. Úplnou diskuzi o používání secureString naleznete v dokumentaci ke třídě System.Security.SecureString.
Protokolování bloků modulů a skriptů
Protokolování modulu umožňuje povolit protokolování pro vybrané moduly PowerShellu. Toto nastavení je efektivní ve všech relacích v počítači. PowerShell zaznamenává události spuštění kanálu pro zadané moduly v protokolu událostí Windows PowerShellu.
Protokolování bloku skriptu umožňuje protokolování pro zpracování příkazů, bloků skriptů, funkcí a skriptů – ať už interaktivně nebo prostřednictvím automatizace. PowerShell tyto informace protokoluje do protokolu událostí Microsoft-Windows-PowerShell/Operational .
Další informace najdete v následujících článcích:
Podpora AMSI
Rozhraní AMSI (Windows Antimalware Scan Interface) je rozhraní API, které umožňuje aplikacím předávat akce antimalwarovým skenerům, jako je Windows Defender, a prohledávat škodlivé datové části. Počínaje PowerShellem 5.1 předá PowerShell spuštěný ve Windows 10 (a novějším) všechny bloky skriptů do AMSI.
PowerShell 7.3 rozšiřuje data, která odesílá do AMSI za účelem kontroly. Teď obsahuje všechny vyvolání metod .NET.
Další informace o AMSI najdete v tématu Jak AMSI pomáhá.
Režim omezeného jazyka
Režim ConstrainedLanguage chrání váš systém omezením rutin a typů .NET povolených v relaci PowerShellu. Úplný popis najdete v tématu about_Language_Modes.
Řízení aplikace
Windows 10 obsahuje dvě technologie, Řízení aplikací pro firmy a AppLocker , které můžete použít k řízení aplikací. PowerShell zjistí, jestli se vynucuje zásada řízení aplikací pro celý systém. Zásady použijí určité chování při spouštění bloků skriptů, souborů skriptů nebo načítání souborů modulů, aby se zabránilo libovolnému spuštění kódu v systému.
Řízení aplikací pro firmy je navržené jako funkce zabezpečení v rámci kritérií údržby definovaných centrem Microsoft Security Response Center (MSRC). Řízení aplikací je upřednostňovaným systémem řízení aplikací pro Windows.
Další informace o tom, jak PowerShell podporuje AppLocker a Řízení aplikací, najdete v tématu Použití řízení aplikací k zabezpečení PowerShellu.
SBOM (Software Bill of Materials)
Počínaje PowerShellem 7.2 všechny instalační balíčky obsahují SBOM (Software Bill of Materials). Tým PowerShellu také vytváří SBOM pro moduly, které vlastní, ale dodává nezávisle na PowerShellu.
Soubory SBOM najdete v následujících umístěních:
- V PowerShellu najděte SBOM na adrese
$PSHOME/_manifest/spdx_2.2/manifest.spdx.json. - Pro moduly najděte SBOM ve složce modulu v části
_manifest/spdx_2.2/manifest.spdx.json.
Vytvoření a publikování SBOM je prvním krokem k modernizaci kybernetické bezpečnosti federální vlády a zlepšení zabezpečení softwarového dodavatelského řetězce. Další informace o této iniciativě najdete v blogovém příspěvku Generování SBOMs s aktualizací SPDX v Microsoftu.
Zabezpečení přenosu dat v vzdálené komunikace PowerShellu
Před powershellem v7.6-preview5 Session_Key se před odesláním vzdálené relace PowerShellu používá k šifrování řetězce SecureString . Protokol PSRP (Remoting Protocol) PowerShellu provádí výměnu klíčů mezi klientem a serverem, když SecureString je potřeba objekt přenést. Výměna zahrnuje následující kroky:
- Na straně klienta se vygeneruje pár veřejného a privátního klíče a odešle veřejný klíč na server.
- Server vygeneruje klíč relace pro symetrické šifrování.
- Server pomocí veřejného klíče zašifruje klíč relace a odešle ho klientovi.
- Klient i server používají nový klíč relace k šifrování objektu SecureString .
Protokol PSRP (Remoting Protocol) PowerShellu RSAEncryptionPadding.Pkcs1 používá algoritmus během výměny klíčů. Algoritmus není zabezpečený, takže výměna klíčů neposkytuje žádné další zabezpečení.
Důležité
K zajištění zabezpečeného přenosu dat přes PSRP musíte použít zabezpečenou přenosovou vrstvu.
Počínaje PowerShellem v7.6-preview.5 byla výměna klíčů označena jako zastaralá. Verze PSRP se navýšila na verzi 2.4 a zahrnuje následující změny:
Následující zprávy PSRP jsou zastaralé, pokud jsou klient i server verze 2.4 nebo vyšší:
- PUBLIC_KEY
- PUBLIC_KEY_REQUEST
- ENCRYPTED_SESSION_KEY
Postup šifrování a dešifrování se
SecureStringpřeskočí, když jsou klient i server verze 2.4 nebo vyšší.
Tato změna je zpětně kompatibilní.
- Pro staré klienty nebo servery (v2.3 nebo nižší) se výměna klíčů stále používá v případě potřeby.
- PsRP může použít vzdálené relace pojmenovaného kanálu, pokud jsou klient i server na stejném počítači.
Vzhledem k tomu, že je možné, aby se vzdálený klient připojil k pojmenovaným kanálu a data se už nešifrují pomocí klíče relace, pojmenovaný kanál (použitý pro
Enter-PSHostProcess) vzdálený klient odmítne.
Kritéria údržby zabezpečení
PowerShell se řídí kritérii údržby zabezpečení microsoftu pro Windows. Kritéria údržby splňují pouze funkce zabezpečení.
Funkce zabezpečení
- Uzamčení systému s kontrolou aplikací pro firmy
- Režim omezeného jazyka pomocí Řízení aplikací pro firmy
Hloubkové funkce ochrany
- Uzamčení systému pomocí AppLockeru
- Režim omezeného jazyka pomocí AppLockeru
- Zásady spouštění