Exportovat (0) Tisk
Rozbalit vše
Expand Minimize

Omezení rozhraní RPC

K čemu slouží omezení rozhraní RPC?

Ve službě RPC (Vzdálené volání procedury, Remote Procedure Call) systému Windows Server 2003 s aktualizací Service Pack 1 bylo provedeno několik změn, které zajišťují zabezpečení rozhraní RPC ve výchozím nastavení a omezují možnosti napadení systému Windows Server 2003. Nejvýznamnější změnou je přidání klíče registru RestrictRemoteClients. Tento klíč umožňuje s určitými výjimkami změnu chování všech rozhraní RPC v systému a lze jej použít k zamezení vzdáleného anonymního přístupu k rozhraním RPC v systému. Další změny se týkají klíče registru EnableAuthEpResolution a tří nových registračních příznaků rozhraní.

Koho se tato funkce týká?

Tato funkce se týká vývojářů aplikací služby RPC. Se změnou služby RPC by se měli seznámit také správci.

Jaké nové funkce byly přidány k této funkci v aktualizaci Service Pack 1 systému Windows Server 2003?

Klíč registru RestrictRemoteClients

Podrobný popis

Po registraci rozhraní pomocí funkce RpcServerRegisterIf umožní služba RPC serverové aplikaci omezit přístup k rozhraní, a to obvykle prostřednictvím zabezpečení zpětného volání. Klíč registru RestrictRemoteClients vynutí ve službě RPC provedení dalších kontrol zabezpečení u všech rozhraní, i v případě, že rozhraní neobsahuje registrované zabezpečení zpětného volání.

Klienti RPC využívající sekvenci protokolu pojmenovaného kanálu (ncacn_np) žádnému z omezení uvedených v této části nepodléhají. Vzhledem k několika významným problémům se zpětnou kompatibilitou nelze sekvence protokolu pojmenovaného kanálu omezit.

Klíč registru RestrictRemoteClients může obsahovat jednu ze tří hodnot DWORD, které lze také ovládat programově pomocí souboru rpcdce.h. Pokud není klíč k dispozici, bude stav odpovídat nastavení hodnoty DWORD=0 (RPC_RESTRICT_REMOTE_CLIENT_NONE) pro identifikátory SKU serverů a hodnoty DWORD=1 (RPC_RESTRICT_REMOTE_CLIENT_AUTH) pro identifikátory SKU klientů.

Následující tabulka obsahuje informace o klíči registru RestrictRemoteClients:

 

Typ Popis

Název klíče

RestrictRemoteClients

Typ

Hodnota DWORD

Konfigurace pomocí uživatelského rozhraní

Ano. Tento klíč lze registrovat pomocí editoru objektů Zásady skupiny.

Hodnoty klíče

0 (výchozí pro identifikátory SKU serverů)

Tato hodnota je v systému Windows Server 2003 Service Pack 1 výchozí pro identifikátory SKU serverů. Způsobí, že systém obejde omezení rozhraní RPC. Tato hodnota odpovídá hodnotě RPC_RESTRICT_REMOTE_CLIENT_NONE v souboru rpcdce.h. Vynucení příslušných omezení služby RPC je výhradně otázkou serverové aplikace. Toto nastavení je shodné s chováním v předchozích verzích systému Windows.

1

Tato hodnota je výchozí hodnotou v systému Windows XP Service Pack 2 a u identifikátorů SKU klientů vytvořených ze základu kódu SRSP1. Omezí přístup ke všem rozhraním RPC. Režim runtime služby RPC odmítne všechna vzdálená anonymní volání s výjimkou volání přicházejících přes pojmenované kanály (ncacn_np). Tato hodnota odpovídá hodnotě RPC_RESTRICT_REMOTE_CLIENT_DEFAULT v souboru rpcdce.h. Pokud rozhraní zaregistruje zabezpečení zpětného volání a poskytne příznak RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH, nebude se na dané rozhraní toto omezení vztahovat.

2

Běh služby RPC odmítne všechna vzdálená anonymní volání, bez výjimek. Tato hodnota odpovídá hodnotě RPC_RESTRICT_REMOTE_CLIENT_HIGH v souboru rpcdce.h. Po nastavení této hodnoty nebude systém moci pomocí služby RPC přijímat vzdálená anonymní volání.

Proč je tato změna důležitá? Jaká nebezpečí pomáhá zmírňovat?

Pokud podmíníte ověřování, a to i ověřování na poměrně nízké úrovni, voláním, bude napadení rozhraní mnohem obtížnější. Povolení klíče RestrictRemoteClients může představovat zmírnění výhodné zejména vůči červům, kteří spoléhají na využití přetečení vyrovnávací paměti vyvolávaných vzdáleně přes anonymní připojení.

Co funguje jinak?

Pokud aplikace služby RPC očekává příjem volání ze vzdálených anonymních klientů RPC, nepovolí pravděpodobně použití této funkce správné spuštění aplikace. V důsledku toho nebudou aplikace využívající model DCOM při nastavení této hodnoty pracovat správně.

Vzhledem k tomu, že zabezpečená volání služby RPC přes nespojované protokoly, například UDP (User Datagram Protocol) a IPX (Internetwork Packet Exchange) (ncadq_ip_udp a ncadg_ipx), využívají nižší úroveň zabezpečení než volání přes protokoly podporující připojení, budou tyto protokoly pro účely této zásady vždy považovány za nezabezpečené. V důsledku toho proto dojde u volání služby RPC přes nespojované protokoly a při nastavení tohoto klíče v systému Windows Server 2003 s aktualizací Service Pack 1 k selhání.

Chcete-li povolit volání klientů RPC pomocí nespojovaných protokolů, ponechejte nastavení klíče RestrictRemoteClients na hodnotě 0 (RPC_RESTRICT_REMOTE_CLIENT_NONE), tedy výchozím nastavení pro systém Windows Server 2003 s aktualizací Service Pack 1.

Jak tyto problémy vyřešit?

Použití klíče RestrictRemoteClients lze na serveru povolit pomocí následujících možností:

  • U klientů RPC vyžadujte, aby při kontaktování serverové aplikace používali zabezpečení služby RPC. Jedná se o nejlepší způsob zmírnění rizik zabezpečení.
  • Nastavením příznaku RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH během registrace rozhraní vyjměte dané rozhraní z požadavku na ověřování. Tímto způsobem nakonfigurujete službu RPC tak, aby povolila anonymní připojení pouze k rozhraní dané aplikace.

Klíč registru EnableAuthEpResolution

Podrobný popis

Rozhraní služby RPC, které je vzdáleně a anonymně přístupné a které je registrováno jako výchozí v systému Windows Server 2003, poskytuje významný prostor pro napadení. Toto rozhraní pro rozlišení koncových bodů u volání, která využívají dynamické koncové body, musí registrovat samotná služba RPC.

Povolíte-li příznak RestrictRemoteClients, nebude rozhraní mapovače koncových bodů služby RPC přístupné anonymně. Jedná se o významné vylepšení zabezpečení, současně se však mění způsob rozlišování koncových bodů. V současné době musí klient služby RPC pokoušející se o volání pomocí dynamického bodu nejdříve vytvořit dotaz pro mapovač koncových bodů služby RPC na serveru, aby určil koncový bod, ke kterému se má připojit. Tento dotaz je prováděn anonymně, a to i v případě, že samotné volání klienta RPC podléhá zabezpečení služby RPC. Pokud nastavíte klíč RestrictRemoteClients na hodnotu 1 nebo vyšší, dojde u anonymních volání na rozhraní mapovače koncových bodů služby RPC v systému Windows Server 2003 Service Pack 1 k selhání. Z tohoto důvodu je nutné změnit režim runtime klienta RPC tak, aby pro mapovač koncových bodů vytvářel ověřené dotazy. Nastavíte-li klíč EnableAuthEpResolution, bude režim runtime klienta RPC pro ověřování v mapovači koncových bodů využívat ověřování NTLM. Tento ověřený dotaz přitom proběhne pouze v případě, že klient RPC při volání využije ověřování služby RPC.

Proč je tato změna důležitá?

Tato změna umožňuje klientovi RPC volat server služby RPC, jehož dynamický koncový bod je registrován v systému Windows Server 2003 s aktualizací Service Pack 1 a který má povolen klíč RestrictRemoteClients. V klientském počítači je nutné nastavit tento klíč registru tak, aby počítač pro mapovač koncových bodů služby RPC vytvářel ověřené dotazy.

Co funguje jinak?

Klíč registru slouží k povolení konkrétního scénáře, který je popsán v předchozí části. Pokud tento klíč zapnete, budou všechny dotazy mapovače koncových bodů služby RPC místo jménem ověřených volání prováděny pomocí ověřování NTLM.

Zadáním tohoto nastavení v editoru objektů Zásady skupiny můžete také nakonfigurovat objekt Zásady skupiny umístěný ve složce Konfigurace počítače\Šablony pro správu\Systém\Vzdálené volání procedur (RPC)\Ověření klienta pomocí mapovače koncových bodů RPC.

Nové příznaky registrace rozhraní služby RPC

Podrobný popis

V zájmu usnadnění zabezpečení rozhraní služby RPC vývojářům aplikací byly vytvořeny tři nové příznaky registrace rozhraní.

  • RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH
    Při registraci tohoto příznaku vyvolá režim runtime služby RPC zabezpečení zpětného volání, bez ohledu na nastavení zabezpečení volání. Pokud tento příznak nepoužijete, odmítne služba RPC všechna neověřená volání ještě před zabezpečením zpětného volání. Tento příznak je funkční, pouze pokud zaregistrujete zabezpečení zpětného volání.
  • RPC_IF_SEC_NO_CACHE
    V zájmu omezení přístupu k rozhraní je pro dané rozhraní zaregistrováno zabezpečení zpětného volání. Typické zabezpečení zpětného volání představuje klienta, u kterého je třeba určit, zda má dostatečná práva pro volání daného rozhraní. Pokud je identita konkrétního klienta jednou v rámci zabezpečení zpětného volání schválena, je obvykle schválena v rámci stejného zabezpečení zpětného volání pokaždé.
    Režim runtime služby RPC si při tomto modelu schvalování zapamatuje událost schválení identity klienta v rámci zabezpečení zpětného volání a při dalších voláních uskutečněných daným klientem na stejné rozhraní zabezpečení zpětného volání vynechá. Tato funkce je označována jako zabezpečení zpětného volání ukládané do mezipaměti a existuje již od vydání řady operačních systémů Microsoft Windows 2000. V systému Windows Server 2003 s aktualizací Service Pack 1 můžete pomocí příznaku RPC_IF_SEC_NO_CACHE pro dané rozhraní zabezpečení zpětného volání ukládané do mezipaměti zakázat. To je užitečné, pokud se může kontrola zabezpečení změnit a případně tak způsobit odmítnutí již dříve povolené identity klienta.
  • RPC_IF_LOCAL_ONLY
    Pokud rozhraní zaregistrujete pomocí tohoto příznaku, bude služba RPC odmítat volání uskutečněná vzdálenými klienty RPC. Kromě toho budou odmítnuta také místní volání prostřednictvím všech sekvencí protokolu ncadg_* a sekvencí protokolu ncacn_* (kromě pojmenovaných kanálů využívajících protokol ncacn_np). Uskutečníte-li volání pomocí protokoluncacn_np, povolí služba RPC volání pouze v případě, že nevychází ze služby SRV, která odfiltruje všechna vzdálená volání. Volání Ncalrpc budou vždy povolena.

Proč je tato změna důležitá?

Tato změna poskytuje vývojářům aplikací služby RPC nové nástroje zabezpečení umožňující zabezpečit vyvíjená rozhraní RPC.

Co funguje jinak?

Tyto příznaky nezmění žádnou existující aplikaci systému Windows Server 2003 ani nezpůsobí její nesprávnou funkci při spuštění. Použití těchto nových příznaků závisí na uvážení vývojáře aplikací.

Jaké nastavení bylo přidáno nebo se změnilo v aktualizaci Service Pack 1 systému Windows Server 2003?

Nastavení služby RPC

Název nastavení Umístění Výchozí hodnota Možné hodnoty

RestrictRemoteClients

HKEY_LOCAL_MACHINE\ SOFTWARE\Policies\ Microsoft\Windows NT\RPC

-nebo-

(Objekt Zásady skupiny)

Konfigurace počítače\Šablony pro správu\Systém\Vzdálené volání procedur (RPC)\Omezení pro klienty neověřené protokolem RPC

0

0 – žádná

1 – výchozí hodnota pro identifikátory SKU klientů systému XP SP2 a SRSP1

2 – vysoká

EnableAuthEpResolution

HKEY_LOCAL_MACHINE\ SOFTWARE\Policies\ Microsoft\Windows NT\RPC

-nebo-

(Objekt Zásady skupiny)

Konfigurace počítače\Šablony pro správu\Systém\Vzdálené volání procedur (RPC)\Ověření klienta pomocí mapovače koncových bodů RPC

0

0 – zakázáno

1 – povoleno

Je nutné změnit kód, aby bylo možné pracovat se systémem Windows Server 2003 s aktualizací Service Pack 1?

Rozhodnete-li se povolit klíč RestrictRemoteClients, bude pravděpodobně nutné pro práci s aktualizací Service Pack 1 systému Windows Server 2003 kód změnit. Další informace o změnách aplikací, které mohou být požadovány, naleznete v předchozích částech věnovaných klíči registru RestrictRemoteClients a EnableAuthEpResolution.

Byl tento obsah pro vás užitečný?
(Zbývající počet znaků: 1500)
Děkujeme za váš názor.

Obsah vytvořený komunitou

Přidat
Zobrazit:
© 2014 Microsoft