Důležité informace o zabezpečení vzdálené komunikace PowerShellu s využitím WinRM

Vzdálené komunikace PowerShellu je doporučený způsob správy systémů Windows. Vzdálenou komunikace PowerShellu je ve výchozím nastavení povolená ve Windows Serveru 2012 R2 a novějším. Tento dokument se zabývá aspekty zabezpečení, doporučeními a osvědčenými postupy při používání vzdálené komunikace PowerShellu.

Co je vzdálené komunikace PowerShellu?

Vzdálená komunikace Prostředí PowerShell používá vzdálenou správu systému Windows (WinRM), která uživatelům umožňuje spouštět příkazy PowerShellu na vzdálených počítačích. WinRM je implementace protokolu WS-Management (Web Services for Management) společnosti Microsoft. Další informace o používání vzdálené komunikace PowerShellu najdete v tématu Spouštění vzdálených příkazů.

Vzdálená komunikace PowerShellu není stejná jako použití parametru ComputerName rutiny ke spuštění na vzdáleném počítači, který jako základní protokol používá vzdálené volání procedur (RPC).

Výchozí nastavení vzdálené komunikace PowerShellu

Vzdálené komunikace PowerShellu (a WinRM) naslouchají na následujících portech:

  • HTTP: 5985
  • HTTPS: 5986

Ve výchozím nastavení umožňuje vzdálené komunikace PowerShellu pouze připojení ze členů skupiny Správa istrators. Relace se spustí v kontextu uživatele, takže všechny řízení přístupu operačního systému použité pro jednotlivé uživatele a skupiny se na ně budou dál používat při připojení přes vzdálené komunikace PowerShellu.

Výchozí pravidlo brány Windows Firewall pro vzdálené komunikace PowerShellu v privátních sítích přijímá všechna připojení. Ve veřejných sítích umožňuje výchozí pravidlo brány Windows Firewall připojení vzdálené komunikace PowerShellu pouze ze stejné podsítě. Toto pravidlo musíte explicitně změnit, abyste otevřeli vzdálené komunikace PowerShellu pro všechna připojení ve veřejné síti.

Upozorňující

Pravidlo brány firewall pro veřejné sítě je určené k ochraně počítače před potenciálně škodlivými pokusy o externí připojení. Při odebírání tohoto pravidla buďte opatrní.

Izolace procesů

Vzdálené komunikace Prostředí PowerShell používá winRM ke komunikaci mezi počítači. WinRM běží jako služba pod účtem síťové služby a vytváří izolované procesy spuštěné jako uživatelské účty pro hostování instancí PowerShellu. Instance PowerShellu spuštěné jako jeden uživatel nemá přístup k procesu, na kterém běží instance PowerShellu jako jiný uživatel.

Protokoly událostí vygenerované vzdálené komunikace PowerShellu

FireEye poskytuje dobrý přehled protokolů událostí a dalších důkazů zabezpečení generovaných relacemi vzdálené komunikace PowerShellu, které jsou k dispozici při vyšetřování útoků PowerShellu.

Šifrování a přenosové protokoly

Je užitečné zvážit zabezpečení připojení vzdálené komunikace PowerShellu ze dvou pohledů: počáteční ověřování a průběžná komunikace.

Bez ohledu na použitý přenosový protokol (HTTP nebo HTTPS) WinRM vždy po počátečním ověření šifruje veškerou komunikaci vzdálené komunikace PowerShellu.

Počáteční ověřování

Ověřování potvrzuje identitu klienta na server ( a v ideálním případě – server do klienta).

Když se klient připojí k doménovému serveru pomocí názvu počítače, výchozí ověřovací protokol je Kerberos. Kerberos zaručuje identitu uživatele i identitu serveru bez odeslání jakéhokoli druhu opakovaně použitelných přihlašovacích údajů.

Když se klient připojí k doménovému serveru pomocí jeho IP adresy nebo se připojí k serveru pracovní skupiny, ověřování kerberos není možné. V takovém případě vzdálené komunikace Prostředí PowerShell spoléhá na ověřovací protokol NTLM. Ověřovací protokol NTLM zaručuje identitu uživatele bez odeslání jakéhokoli druhu delegovatelných přihlašovacích údajů. K prokázání identity uživatele vyžaduje protokol NTLM, aby klient i server počítaly klíč relace z hesla uživatele bez nutnosti výměny samotného hesla. Server obvykle nezná heslo uživatele, takže komunikuje s řadičem domény, který zná heslo uživatele a vypočítá klíč relace pro server.

Protokol NTLM však nezaručuje identitu serveru. Stejně jako u všech protokolů, které k ověřování používají protokol NTLM, by útočník s přístupem k účtu počítače připojenému k doméně mohl vyvolat řadič domény pro výpočet klíče relace NTLM a tím zosobnit server.

Ověřování založené na protokolu NTLM je ve výchozím nastavení zakázané, ale může být povoleno konfigurací SSL na cílovém serveru nebo konfigurací nastavení Důvěryhodné hostitele WinRM v klientovi.

Použití certifikátů SSL k ověření identity serveru během připojení založených na protokolu NTLM

Vzhledem k tomu, že ověřovací protokol NTLM nemůže zajistit identitu cílového serveru (pouze to, že už zná vaše heslo), můžete cílové servery nakonfigurovat tak, aby používaly PROTOKOL SSL pro vzdálenou komunikace PowerShellu. Přiřazení certifikátu SSL k cílovému serveru (pokud je vydáno certifikační autoritou, které klient důvěřuje) umožňuje ověřování založené na protokolu NTLM, které zaručuje identitu uživatele i identitu serveru.

Ignorování chyb identit serveru založených na protokolu NTLM

Pokud je nasazení certifikátu SSL na server pro připojení NTLM neproveditelné, můžete potlačit výsledné chyby identity přidáním serveru do seznamu Důvěryhodných hostitelů WinRM. Upozorňujeme, že přidání názvu serveru do seznamu TrustedHosts by nemělo být považováno za žádnou formu prohlášení o důvěryhodnosti samotných hostitelů – protože ověřovací protokol NTLM nezaručuje, že se skutečně připojujete k hostiteli, ke kterému se chcete připojit. Místo toho byste měli zvážit nastavení TrustedHosts jako seznam hostitelů, pro které chcete potlačit chybu vygenerovanou nemožností ověřit identitu serveru.

Průběžná komunikace

Po dokončení počátečního ověřování zašifruje WinRM probíhající komunikaci. Při připojování přes PROTOKOL HTTPS se protokol TLS používá k vyjednání šifrování používaného k přenosu dat. Při připojování přes protokol HTTP se šifrování na úrovni zpráv určuje počátečním ověřovacím protokolem.

  • Základní ověřování neposkytuje žádné šifrování.
  • Ověřování NTLM používá šifru RC4 s 128bitovým klíčem.
  • Šifrování ověřování protokolem Kerberos je určeno lístkem etype TGS. Jedná se o AES-256 v moderních systémech.
  • Šifrování CredSSP používá šifrovací sadu PROTOKOLU TLS, která byla vyjednána metodou handshake.

Vytvoření druhého segmentu směrování

Ve výchozím nastavení používá vzdálené komunikace Prostředí PowerShell k ověřování protokol Kerberos (pokud je k dispozici) nebo NTLM. Oba tyto protokoly se ověřují na vzdáleném počítači bez odeslání přihlašovacích údajů. Jedná se o nejbezpečnější způsob ověřování, ale protože vzdálený počítač nemá přihlašovací údaje uživatele, nemůže přistupovat k jiným počítačům a službám jménem uživatele. To se označuje jako "druhý problém směrování".

Existuje několik způsobů, jak se tomuto problému vyhnout. Popisy těchto metod a výhody a nevýhody jednotlivých metod najdete v tématu Vytvoření druhého segmentu směrování v vzdálené komunikace PowerShellu.

Reference