Exportovat (0) Tisk
Rozbalit vše
Expand Minimize

Rozšíření zabezpečení modelu DCOM

K čemu slouží model DCOM?

Model COM (Component Object Model) společnosti Microsoft je distribuovaný, objektově orientovaný systém nezávislý na platformě pro vytváření binárních softwarových komponent, které mohou spolupracovat. Model DCOM (Distributed Component Object Model) umožňuje distribuovat aplikace na místa, která jsou pro uživatele a pro aplikaci nejsmysluplnější. Síťový protokol DCOM transparentně zajišťuje podporu pro spolehlivou, bezpečnou a efektivní komunikaci mezi jednotlivými součástmi modelu COM. Další informace naleznete v tématu Component Object Model (Model COM) na webovém serveru společnosti Microsoft na adrese http://go.microsoft.com/fwlink/?LinkId=20922.

Koho se tato funkce týká?

Používáte-li model COM pouze pro vnitroprocesové komponenty, tento oddíl se vás netýká.

Tato funkce se týká uživatelů používajících serverové aplikace modelu COM, které splňují následující kritéria:

  • Oprávnění přístupu k aplikaci je méně striktní než oprávnění nutné k jejímu spuštění.
  • Aplikace je obvykle aktivována vzdáleným klientem modelu COM bez použití účtu pro správu.
  • Aplikace je určena pouze k místnímu použití. To znamená, že aplikaci serveru COM lze omezit tak, že není vzdáleně přístupná.

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

Omezení platná pro celý počítač

Podrobný popis

Model COM byl změněn tak, aby bylo prováděno řízení přístupu (platné pro celý počítač) ke všem požadavkům na volání, aktivaci nebo spuštění v daném počítači. Nejjednodušší je představit si toto řízení přístupu jako dodatečné volání AccessCheck, které při každém volání, aktivaci nebo spuštění kteréhokoliv serveru COM v počítači provede srovnání se seznamem řízení přístupu (ACL) platným pro celý počítač. Pokud se volání AccessCheck nezdaří, požadavek na volání, aktivaci nebo spuštění bude odmítnut. (Tato kontrola se provádí navíc k voláním AccessCheck, které provádějí porovnání se seznamy ACL specifickými pro jednotlivé servery.) Tento postup poskytuje minimální ověřovací standard, který je nutné splnit pro získání přístupu k libovolnému serveru COM v počítači. Pro celý počítač bude existovat seznam ACL pro oprávnění ke spouštění zahrnující práva k aktivaci a spuštění, a seznam ACL pro oprávnění k přístupu zahrnující práva k volání. Tyto seznamy lze konfigurovat pomocí modulu snap-in konzoly MMC Služby komponent.

Tyto seznamy ACL platné pro celý počítač poskytují možnost změnit slabá nastavení zabezpečení určená konkrétní aplikací pomocí funkce CoInitializeSecurity nebo nastavením zabezpečení specifickým pro aplikaci. Tím je zajištěn minimální standard zabezpečení, který je nutno splnit bez ohledu na nastavení určitého serveru.

Tyto seznamy ACL jsou kontrolovány při přístupu k rozhraním poskytovaným službou RPCSS. Tak je k dispozici metoda, pomocí níž lze řídit, kdo má přístup k této systémové službě.

Tyto seznamy ACL poskytují centralizované umístění, kde může správce nastavovat obecné zásady ověřování platné pro všechny servery COM v počítači.

Následují výchozí možnosti nastavení omezení počítače s aktualizací Windows Server 2003 SP1.

Nastavení omezení počítače v modelu DCOM

Oprávnění Administrator Distributed COM Users (předdefinovaná skupina) Everyone Anonymous

Spuštění

Místní spuštění

Místní aktivace

Vzdálené spuštění

Vzdálená aktivace

Místní spuštění

Místní aktivace

Vzdálené spuštění

Vzdálená aktivace

Místní spuštění

Místní aktivace

Není k dispozici

Přístup

Není k dispozici

Místní přístup

Vzdálený přístup

Místní přístup

Vzdálený přístup

Místní přístup

Vzdálený přístup

notePoznámka
Distributed COM Users je nová předdefinovaná skupina zahrnutá do aktualizace Windows Server 2003 Service Pack 1, která umožňuje urychlit proces přidávání uživatelů do nastavení omezení počítače v modelu DCOM.

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

Mnoho aplikací COM obsahuje určitý kód týkající se zabezpečení (například volání funkce CoInitializeSecurity), avšak používá slabé nastavení, často umožňující neoprávněný přístup k procesu. V současné době nemá správce ve starších verzích systému Windows žádnou možnost změnit tato nastavení tak, aby zabezpečení zesílilo.

Infrastruktura COM zahrnuje systémovou službu RPCSS, která se spouští zároveň se systémem a zůstává potom stále spuštěna. Tato služba spravuje aktivaci objektů COM a tabulku spuštěných objektů a poskytuje pomocné služby při řízení vzdálené komunikace modelu DCOM. Poskytuje rozhraní RPC, která lze volat vzdáleně. Protože některé servery COM umožňují neověřený vzdálený přístup (jak bylo vysvětleno v předchozím oddíle), tato rozhraní mohou být volána kýmkoliv, včetně neověřených uživatelů. V důsledku toho může být služba RPCSS napadena uživateli se zlými úmysly používajícími vzdálené neověřené počítače.

Ve starších verzích systému Windows neměl správce žádnou možnost, jak rozpoznat úroveň nebezpečí napadení serverů COM v počítači. Správce mohl získat představu o úrovni nebezpečí systematickou kontrolou nakonfigurovaných nastavení zabezpečení u všech registrovaných aplikací COM v počítači. S přihlédnutím k tomu, že ve výchozí instalaci systému Windows je asi 150 serverů COM, byl tento úkol velmi skličující. Neexistoval žádný způsob zobrazení nastavení pro server, který má zabezpečení integrované v softwaru, mimo prohlížení zdrojového kódu tohoto softwaru.

Omezení modelu DCOM platná pro celý počítač tyto tři problémy zmírňují. Zároveň správci poskytují možnost zakázat příchozí volání požadující aktivaci, spuštění a přístup k modelu DCOM.

Co funguje jinak?

Ve výchozím nastavení je skupině Everyone uděleno oprávnění k místnímu spouštění, místní aktivaci a místnímu přístupu. To by mělo umožnit funkčnost všech místních činností bez úprav softwaru nebo operačního systému.

Ve výchozím nastavení je skupinám Everyone a Anonymous uděleno oprávnění ke vzdálenému přístupu. To umožňuje většinu scénářů klientů COM, včetně obvyklého případu, kdy klient COM předává místní odkaz na vzdálený server a tím v podstatě mění klienta na server.

Ve výchozím nastavení jsou oprávnění k vzdálené aktivaci a spouštění udělena pouze členům skupiny Administrators. Tím se zakážou vzdálené aktivace nainstalovaných serverů COM uživatelům, kteří nejsou členové skupiny Administrators.

Jak tyto problémy vyřešit?

Jestliže implementujete server COM a chcete podporovat vzdálené aktivace u klienta COM, který není členem skupiny Administrators, nebo chcete umožnit vzdálená neověřená volání, měli byste zvážit, zda riziko spojené s povolením tohoto procesu je přijatelné, nebo zda byste měli upravit svou implementaci tak, aby nevyžadovala vzdálenou aktivaci klientem COM, který není členem skupiny Administrators.

Je-li riziko přijatelné a chcete povolit vzdálenou aktivaci pro klienta COM, který není členem skupiny Administrators, je nutné změnit výchozí konfiguraci pro tuto funkci.

Konfiguraci můžete změnit buď pomocí modulu snap-in konzoly MMC Služby komponent, nebo pomocí registru systému Windows.

Použijete-li modul snap-in Služby komponent, lze uvedené nastavení pro počítač, který spravujete, nakonfigurovat v dialogovém okně Vlastnosti na kartě Zabezpečení modelu COM. Karta Zabezpečení modelu COM byla změněna tak, aby kromě standardních výchozích nastavení pro servery COM umožňovala nastavit i omezení platná pro celý počítač. Navíc můžete definovat samostatná nastavení ACL pro místní nebo vzdálený přístup jak určením omezení, tak použitím výchozích nastavení.

Tato nastavení seznamů ACL je možné konfigurovat také pomocí registru.

Tyto seznamy ACL jsou uloženy v registru v následujících umístěních:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole\MachineAccessRestriction= ACL
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole\MachineLaunchRestriction= ACL

Jedná se o pojmenované hodnoty typu REG_BINARY, které obsahují data popisující seznam ACL zaregistrovaných objektů, jež mají přístup k libovolné třídě COM nebo objektu COM v počítači. Přístupová práva v seznamu ACL jsou tato:

COM_RIGHTS_EXECUTE 1
COM_RIGHTS_EXECUTE_LOCAL 2
COM_RIGHTS_EXECUTE_REMOTE 4
COM_RIGHTS_ACTIVATE_LOCAL 8
COM_RIGHTS_ACTIVATE_REMOTE 16

Tyto seznamy ACL lze vytvářet pomocí normálních funkcí zabezpečení.

notePoznámka
Práva COM_RIGHTS_EXECUTE musí vždy existovat; neexistence tohoto práva by vytvořila neplatný popisovač zabezpečení. Upravovat tato nastavení mohou pouze uživatelé s oprávněním správce.

Jaké stávající funkce se změnily v aktualizaci Service Pack 1 systému Windows Server 2003?

Služba RPCSS se spouští pod účtem Network Service

Podrobný popis

Služba RPCSS je klíčovou službou pro mapovač koncových bodů služby RPC a infrastrukturu DCOM. Je otevřená pro síť. V předchozích verzích systému Windows se tato služba spouští pod účtem Local System. Za účelem omezení možnosti útoku na systém Windows a zajištění dokonalejší ochrany byly funkce služby RPCSS rozděleny do dvou služeb. Služba RPCSS se všemi původními funkcemi, které nevyžadovaly oprávnění účtu Local System, je nyní spouštěna pod účtem Network Service. Nová služba DCOMLaunch, která obsahuje funkce vyžadující oprávnění účtu Local System, se spouští pod účtem Local System. Tato služba však není vystavena síti.

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

Tato změna omezuje možnosti útoku a zajišťuje dokonalejší ochranu služby RPCSS, protože zvýšení oprávnění v této službě se bude nyní vztahovat na oprávnění účtu Network Service.

Co funguje jinak?

Tato změna by měla být pro uživatele snadno srozumitelná, protože kombinace služeb RPCSS a DCOMLaunch představuje ekvivalent původní služby RPCSS dodávané v předchozích verzích systému Windows.

Podrobnější oprávnění modelu COM

Podrobný popis

S aplikacemi serveru COM jsou spojeny dva typy oprávnění: oprávnění ke spuštění a přístupová oprávnění. Oprávnění ke spuštění řídí ověřování serveru COM při spuštění během aktivace modelu COM, pokud server dosud neběží. Tato oprávnění jsou definována jako popisovače zabezpečení, které jsou určovány v nastaveních registru. Přístupová oprávnění řídí ověřování volání již běžícího serveru COM. Tato oprávnění jsou definována jako popisovače zabezpečení poskytované infrastruktuře modelu COM prostřednictvím rozhraní API funkce CoInitializeSecurity nebo prostřednictvím nastavení registru. Jak oprávnění pro spouštění, tak přístupová oprávnění umožňují povolit nebo odepřít přístup na základě registrovaných objektů a nerozlišovat, zda je volající, který se obrací na server, místní nebo vzdálený.

První změna umožňuje rozlišovat přístupová práva pro COM na základě vzdálenosti. Jsou definovány dvě vzdálenosti: místní a vzdálená. Místní zpráva COM přichází prostřednictvím protokolu LRPC (Lightweight Remote Procedure Call), kdežto vzdálená zpráva COM přichází prostřednictvím hostitelského protokolu RPC (Remote Procedure Call), jako je protokol TCP (Transmission Control Protocol).

Aktivace COM je akt obdržení proxy serveru rozhraní COM v počítači klienta voláním funkce CoCreateInstance nebo jedné z jejích variant. Jako vedlejší důsledek tohoto aktivačního procesu se někdy musí spustit server COM, aby byl uspokojen požadavek klienta. Seznam řízení přístupu (ACL) s oprávněními ke spuštění potvrzuje, kdo je oprávněn spustit server COM. Seznam řízení přístupu s přístupovými oprávněními určuje, kdo je oprávněn aktivovat objekt COM nebo jej volat, jakmile je server COM již spuštěn.

Druhá změna umožňuje, aby byla práva k volání a aktivaci oddělena a odpovídala dvěma odlišným operacím a aby práva k aktivaci byla přesunuta ze seznamu řízení přístupu s přístupovými oprávněními do seznamu řízení přístupu s oprávněními ke spuštění. Vzhledem k tomu, že jak aktivace, tak spuštění souvisí se získáním ukazatele na rozhraní, práva k aktivaci a ke spuštění logicky náležejí k sobě do jednoho seznamu ACL. Vzhledem k tomu, že oprávnění ke spuštění se vždy zadávají prostřednictvím konfigurace (na rozdíl od přístupových oprávnění, která se často zadávají programově), bude umístění práv k aktivaci do seznamu ACL s oprávněním ke spuštění správci umožňovat kontrolu nad aktivací.

Položky řízení přístupu ACE s oprávněními ke spuštění jsou rozděleny na čtyři přístupová práva:

  • Místní spuštění (Local Launch, LL)
  • Vzdálené spuštění (Remote Launch, RL)
  • Místní aktivace (Local Activation, LA)
  • Vzdálená aktivace (Remote Activation, RA)

Popisovač zabezpečení oprávnění k přístupu je rozdělen na dvě přístupová práva:

  • Volání s místním přístupem (Local Access calls, LC)
  • Volání se vzdáleným přístupem (Remote Access calls, RC)

Uvedené rozdělení umožňuje správci nastavovat velmi specifické konfigurace zabezpečení. Například je možné nakonfigurovat server COM tak, že místní volání přijímá od kohokoliv, kdežto vzdálená volání přijímá jen od správců. Tato rozlišení lze zadávat prostřednictvím změn popisovačů zabezpečení oprávnění COM.

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

Starší verze aplikace serveru COM neměly žádný prostředek k omezení aplikace, takže mohly být používány jen místně bez možnosti zpřístupnění aplikace v síti pomocí modelu DCOM. Získá-li uživatel přístup k aplikaci serveru COM, je mu udělen místní i vzdálený přístup.

Mohl by vzniknout požadavek na zpřístupnění aplikace serveru COM neověřeným uživatelům za účelem implementace scénáře zpětného volání serveru COM. V tomto případě musí aplikace zpřístupnit svou aktivaci také neověřeným uživatelům, což není vhodné, protože uživatelé se zlými úmysly by mohli tento postup využít k získání neoprávněného přístupu k danému serveru.

Přesná oprávnění modelu COM dávají správci pružnost v řízení zásad oprávnění modelu COM pro daný počítač. Tato oprávnění umožňují zabezpečení pro popsané scénáře.

Co funguje jinak? Existují nějaké závislosti?

K zajištění zpětné kompatibility jsou stávající popisovače zabezpečení COM zpracovány tak, aby povolovaly nebo odpíraly místní i vzdálený přístup současně. To znamená, že položka řízení přístupu buď povolí místní i vzdálený přístup, nebo odepře místní i vzdálený přístup.

V případě oprávnění k volání nebo ke spuštění neexistují žádné potíže se zpětnou kompatibilitou. Existují však potíže s kompatibilitou, pokud jde o aktivační oprávnění. Jestliže jsou v existujících popisovačích zabezpečení pro server COM nakonfigurována oprávnění ke spuštění s vyšším omezením než přístupová oprávnění a s vyšším omezením, než je minimální požadavek scénářů pro aktivaci klienta, je nutné seznam ACL pro oprávnění ke spuštění upravit tak, aby autorizovaným klientům poskytl příslušná oprávnění k aktivaci.

U aplikací COM, které používají výchozí nastavení zabezpečení, neexistují žádné potíže s kompatibilitou. U aplikací, které jsou dynamicky spouštěny pomocí aktivace COM, většinou nebudou žádné potíže s kompatibilitou, protože oprávnění ke spuštění již musí obsahovat každého uživatele, který je schopen aktivovat objekt. V opačném případě budou takové aplikace generovat chyby aktivace i před instalací aktualizace Service Pack 1, jestliže se volající bez oprávnění ke spuštění pokusí aktivovat objekt v době, kdy server COM ještě není spuštěn.

Mezi aplikace, kterých se problémy s kompatibilitou týkají nejvíce, patří aplikace COM již spuštěné jiným nástrojem, například Průzkumníkem Windows nebo Správcem řízení služeb. Tyto aplikace je možné spouštět i prostřednictvím dřívější aktivace COM, která přepíše výchozí přístupová oprávnění a oprávnění ke spuštění a zadá oprávnění ke spuštění, která jsou více omezující než oprávnění k volání. Další podrobnosti o řešení potíží s kompatibilitou naleznete v části Jak tyto problémy vyřešit? v následujícím oddíle.

Jestliže je systém, ve kterém byla nainstalována aktualizace Windows Server 2003 Service Pack 1, vrácen zpět k dřívější aktualizaci Service Pack, bude každá položka řízení přístupu, která po úpravách povolovala místní přístup, vzdálený přístup či oba, interpretována tak, že povoluje místní i vzdálený přístup. Každá položka řízení přístupu, která byla upravena tak, aby odpírala místní přístup, vzdálený přístup nebo obojí, bude interpretována tak, že odpírá místní i vzdálený přístup. Při každé odinstalaci aktualizace Service Pack byste měli zajistit, aby žádné nově nastavené položky řízení přístupu nezpůsobily, že aplikace přestanou pracovat.

Jak tyto problémy vyřešit?

Jestliže implementujete server COM a přepíšete výchozí nastavení zabezpečení, ujistěte se, že seznam ACL oprávnění ke spuštění aplikací zaručí příslušným uživatelům oprávnění k aktivaci. Pokud nezaručí, budete muset změnit svůj seznam ACL oprávnění ke spouštění aplikací tak, aby příslušní uživatelé získali práva k aktivaci a aplikace a součásti systému Windows používající model DCOM mohly řádně fungovat. Tato oprávnění ke spuštění aplikací jsou uložena v registru.

Tyto seznamy ACL modelu COM lze vytvářet nebo upravovat pomocí normálních funkcí zabezpečení.

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

CautionUpozornění
Nesprávné používání těchto nastavení může způsobit, že aplikace a součásti systému Windows používající model DCOM nebudou správně fungovat.

V následující tabulce jsou použity tyto zkratky:

LL (místní spuštění – Local Launch)

LA (místní aktivace – Local Activation)

RL (vzdálené spuštění – Remote Launch)

RA (vzdálená aktivace – Remote Activation)

LC (volání s místním přístupem – Local Access calls)

RC (volání se vzdáleným přístupem – Remote Access calls)

Nastavení modelu DCOM

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

MachineLaunchRestriction

HKEY_LOCAL_MACHINE \SOFTWARE \Microsoft\Ole\

Skupina Everyone: LL, LA, RL, RA

Skupina Anonymní: LL, LA, RL, RA

(To je nový klíč registru. Na základě dosavadního chování by to byly skutečné hodnoty.)

Skupina Administrator: LL, LA, RL, RA

Skupina Everyone: LL, LA

Skupina Distributed COM Users: LL, LA, RL, RA

Seznam řízení přístupu (ACL)

MachineAccessRestriction

HKEY_LOCAL_MACHINE \SOFTWARE \Microsoft\Ole\

Skupina Everyone: LC, RC

Skupina Anonymní: LC, RC

(To je nový klíč registru. Na základě dosavadního chování by to byly skutečné hodnoty.)

Skupina Everyone: LC, RC

Anonymní: LC, RC

Seznam řízení přístupu (ACL)

CallFailureLoggingLevel

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Snmp

Neuvedeno

Tento klíč registru není k dispozici; chybějící klíč nebo hodnota je však interpretována jako 2.

Tato událost není ve výchozím nastavení protokolována. Změníte-li tuto hodnotu na 1 s cílem zahájit protokolování těchto informací, které by vám pomohly vyřešit potíže, sledujte velikost protokolu událostí, protože tato událost vytváří velké množství záznamů.

1 - Vždy protokolovat chyby protokolování událostí, jestliže infrastruktura COM zjistí neplatný popisovač zabezpečení.

2 - Nikdy neprotokolovat chyby protokolování událostí, jestliže infrastruktura COM zjistí neplatný popisovač zabezpečení.

InvalidSecurityDescriptorLoggingLevel

HKEY_LOCAL_MACHINE \SOFTWARE \Microsoft\Ole\

Neuvedeno

Tento klíč registru není k dispozici; chybějící klíč nebo hodnota je však interpretována jako 1.

Tato událost je ve výchozím nastavení protokolována. Mělo by k ní docházet jen výjimečně.

1 - Vždy protokolovat chyby protokolování událostí, jestliže infrastruktura COM zjistí neplatný popisovač zabezpečení.

2 - Nikdy neprotokolovat chyby protokolování událostí, jestliže infrastruktura COM zjistí neplatný popisovač zabezpečení.

DCOM:Omezení spuštění pro počítač v syntaxi jazyka SDDL (Security Descriptor Definition Language)

(Objekt zásad skupiny) Konfigurace počítače\Nastavení systému Windows\Místní zásady\Možnosti zabezpečení

Neuvedeno

Není definováno.

Seznam řízení přístupu (ACL) ve formátu SDDL. Existence těchto zásad přepíše výše uvedené hodnoty v klíči MachineLaunchRestriction.

DCOM:Omezení přístupu pro počítač v syntaxi jazyka SDDL (Security Descriptor Definition Language)

(Objekt zásad skupiny) Konfigurace počítače\Nastavení systému Windows\Místní zásady\Možnosti zabezpečení

Neuvedeno

Není definováno.

Řídicí seznam ve formátu SDDL. Existence těchto zásad přepíše výše uvedené hodnoty v klíči MachineAccessRestriction.

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