Exporteren (0) Afdrukken
Alles uitvouwen
Expand Minimize
1 van 2 hebben dit beoordeeld als nuttig - Dit onderwerp beoordelen

DCOM-beveiligingsverbeteringen

Wat doet DCOM?

Het Microsoft Component Object Model (COM) is een platformonafhankelijk, gedistribueerd, objectgeoriënteerd systeem voor het maken van binaire softwareonderdelen die met elkaar kunnen samenwerken. Met het Distributed Component Object Model (DCOM) kunnen toepassingen worden gedistribueerd over locaties die het meest geschikt zijn voor u en de toepassing. Het DCOM-kabelprotocol biedt op een transparante manier ondersteuning voor betrouwbare, veilige en efficiënte communicatie tussen COM-onderdelen. Zie 'Component Object Model' op de website van Microsoft op http://go.microsoft.com/fwlink/?LinkId=20922 voor meer informatie.

Op wie is deze functie van toepassing?

Als u COM alleen gebruikt voor in-process COM-onderdelen, is dit gedeelte niet op u van toepassing.

Deze functie is van toepassing op u als u een COM-servertoepassing hebt die voldoet aan een van de volgende criteria:

  • De toegangsmachtiging voor de toepassing is minder streng dan de startmachtiging die noodzakelijk is om the toepassing uit te voeren.
  • De toepassing wordt normaal gesproken geactiveerd door een externe COM-client zonder een beheerdersaccount te gebruiken.
  • De toepassing is alleen bedoeld voor lokaal gebruik. Dit betekent dat u uw COM-servertoepassing zodanig kunt beperken dat deze niet extern toegankelijk is.

Welke nieuwe functionaliteit is er toegevoegd aan deze voorziening in Windows Server 2003 Service Pack 1?

Beperkingen voor de gehele computer

Gedetailleerde beschrijving

Er is een wijziging aangebracht in COM om toegangsbeperkingen voor de gehele computer te bieden die de toegang regelt tot alle aanroep-, activerings- of startverzoeken op de computer. U kunt bij deze toegangsbeperkingen bijvoorbeeld denken aan een extra AccessCheck-aanroep die wordt uitgevoerd met een toegangsbeheerlijst (ACL) voor de gehele computer voor elke aanroep-, activerings- of startactie van een COM-server op de computer. Als de AccessCheck mislukt, wordt het aanroep-, activerings- of startverzoek geweigerd. (Dit in aanvulling op AccessChecks die worden uitgevoerd met de serverspecifieke ACL's.) Hiermee wordt een minimumautorisatiestandaard geboden waaraan moet worden voldaan voor toegang tot COM-servers op de computer. Er is een ACL voor de gehele computer voor startmachtigingen om activerings- en startrechten te controleren, en een ACL voor de gehele computer voor toegangsmachtigingen om aanroeprechten te controleren. Deze kunnen worden geconfigureerd via de Component Services Microsoft Management Console (MMC).

Deze ACL's voor de gehele computer maken het mogelijk zwakke beveiligingsinstellingen te vervangen die zijn opgegeven door een specifieke toepassing via CoInitializeSecurity of toepassingsspecifieke beveiligingsinstellingen. Zo wordt een minimumbeveiligingsstandaard geboden waaraan moet worden voldaan, ongeacht de instellingen van de specifieke server.

Deze ACL's worden gecontroleerd wanneer er wordt geprobeerd toegang te krijgen tot de interfaces die zijn geïdentificeerd door RPCSS. Dit is een methode om te regelen wie er toegang heeft tot deze systeemservice.

Deze ACL's vormen een centrale locatie waar een beheerder algemeen autorisatiebeleid kan instellen dat van toepassing is op alle COM-servers op de computer.

De volgende beperkingen zijn standaard voor Windows Server 2003 SP1-computers ingesteld.

Beperkingsinstellingen voor DCOM-computers

Machtiging Beheerder Gedistribueerde COM-gebruikers (ingebouwde groep) Iedereen Anoniem

Starten

Lokaal starten

Lokaal activeren

Extern starten

Extern activeren

Lokaal starten

Lokaal activeren

Extern starten

Extern activeren

Lokaal activeren

Lokaal activeren

N.v.t.

Toegang

N.v.t.

Lokale toegang

RAS

Lokale toegang

RAS

Lokale toegang

RAS

noteOpmerking
Gedistribueerde COM-gebruikers is een nieuwe ingebouwde groep in Windows Server 2003 Service Pack 1 waarmee gebruikers sneller aan de DCOM-restrictie-instellingen van de computer kunnen worden toegevoegd.

Waarom is deze wijziging belangrijk?

Veel COM-toepassingen bevatten beveiligingsspecifieke code (bijvoorbeeld CoInitializeSecurity aanroepen) maar gebruiken zwakke instellingen, waardoor vaak niet-geautoriseerde toegang tot het proces wordt toegestaan. Beheerders kunnen op dit moment deze instellingen niet vervangen voor een strengere beveiliging in oudere versies van Windows.

Onderdeel van de COM-infrastructuur is RPCSS, een systeemservice die tijdens het opstarten van het systeem wordt uitgevoerd en die daarna altijd actief is. Deze beheert de activering van COM-objecten en de actieve objecttabel, en biedt ondersteunende services voor DCOM-remoting. RPC-interfaces die extern kunnen worden aangeroepen, worden door deze service geïdentificeerd. Aangezien een aantal COM-servers niet-geverifieerde externe toegang toestaat (zoals is uitgelegd in het vorige gedeelte), kunnen deze interfaces worden aangeroepen door iedereen, zelfs door niet-geverifieerde gebruikers. Het gevolg hiervan is dat RPCSS met externe, niet-geverifieerde computers kan worden aangevallen door kwaadwillende gebruikers.

In oudere versies van Windows bestond er voor een beheerder geen manier om de kwetsbaarheid van de COM-servers op een computer te bepalen. Een beheerder kon een idee krijgen van de kwetsbaarheid door systematisch de geconfigureerde beveiligingsinstellingen te controleren voor alle geregistreerde COM-toepassingen op de computer. Aangezien een standaardinstallatie van Windows echter ongeveer 150 COM-servers bevat, was dat een hels karwei. De instellingen voor een server waarvoor beveiliging is opgenomen in de software, konden alleen worden bekeken door de broncode voor die software weer te geven.

Deze drie problemen worden aangepakt met DCOM-beperkingen voor de gehele computer. Bovendien stellen ze een beheerder in staat om binnenkomende DCOM-activeringsaanroepen, -startaanroepen en toegangsaanroepen uit te schakelen.

Wat werkt er anders?

De groep Iedereen heeft standaard de machtigingen Lokaal starten, Lokaal activeren en Lokale toegang. Hierdoor moeten alle lokale scenario's kunnen werken zonder dat de software of het besturingssysteem hoeft te worden aangepast.

Standaard zijn de groepen Iedereen en Anoniem gemachtigd voor externe toegang. Hierdoor zijn de meeste COM-clientscenario's mogelijk, bijvoorbeeld het veelvoorkomende geval waarbij een COM-client een lokale referentie doorgeeft aan een externe server en zo van de client een server maakt.

Ook hebben alleen leden van de groep Administrators standaard de machtigingen Extern activeren en Extern starten. Hierdoor zijn externe activeringen door niet-Administrators op geïnstalleerde COM-servers niet mogelijk.

Hoe los ik deze problemen op?

Wanneer u een COM-server implementeert waarbij extern activeren van een COM-client die niet voor beheer wordt gebruikt en niet-geverifieerde aanroepen wordt ondersteund, dan moet u overwegen of de risico's acceptabel zijn die verbonden zijn aan inschakeling van dit proces. U kunt er ook voor kiezen om de implementatie aan te passen, zodat extern activeren door een COM-client die niet voor beheer wordt gebruikt, niet wordt ondersteund.

Als u het risico acceptabel acht en extern activeren door een COM-client die niet voor beheer wordt gebruikt wilt inschakelen, moet u de standaardconfiguratie voor deze functie wijzigen.

U kunt de configuratie-instellingen wijzigen met de Component Services Microsoft Management Console (MMC) of het Windows-register.

Wanneer u de module Component Services MMC gebruikt, kunnen deze instellingen worden geconfigureerd op het tabblad COM-beveiliging van het dialoogvenster Eigenschappen van de computer die u beheert. Het tabblad COM-beveiliging is gewijzigd zodat u voor de hele computer limieten kunt instellen, als aanvulling op de standaardinstellingen voor COM-servers. Bovendien kunt u afzonderlijke ACL-instellingen opgeven voor lokale en externe toegang onder zowel limieten als standaardinstellingen.

U kunt deze ACL-instellingen ook configureren met het register.

Deze ACL's worden opgeslagen op de volgende locaties in het register:

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

Dit zijn naamwaarden van het type REG_BINARY die gegevens bevatten die de ACL beschrijven van de principals die toegang hebben tot elke COM-klasse en elk COM-object op de computer. De toegangsrechten in de ACL zijn:

COM_RIGHTS_EXECUTE 1
COM_RIGHTS_EXECUTE_LOCAL 2
COM_RIGHTS_EXECUTE_REMOTE 4
COM_RIGHTS_ACTIVATE_LOCAL 8
COM_RIGHTS_ACTIVATE_REMOTE 16

Deze ACL's kunnen worden gemaakt met normale beveiligingsfuncties.

noteOpmerking
COM_RIGHTS_EXECUTE-rechten moeten altijd aanwezig zijn. Als deze rechten ontbreken, wordt er een ongeldige security descriptor gegenereerd. Alleen gebruikers met beheerdersrechten kunnen deze instellingen wijzigen.

Welke bestaande functionaliteit is er gewijzigd in Windows Server 2003 Service Pack 1?

RPCSS wordt uitgevoerd als een netwerkservice

Gedetailleerde beschrijving

RPCSS is een key-service van de RPC Endpoint Mapper en de DCOM-infrastructuur die op het netwerk is gericht. In eerdere versies van Windows werd deze service uitgevoerd als Lokaal systeem. De functie van de RPCSS-service is opgedeeld in twee services om Windows minder kwetsbaar te maken. De RPCSS-service met alle oorspronkelijke functies waarvoor geen machtiging voor het lokale systeem vereist was, wordt nu uitgevoerd onder de netwerkserviceaccount. Een nieuwe DCOMLaunch-service met de functies waarvoor wel een machtiging voor het lokale systeem vereist is, wordt uitgevoerd onder de lokale systeemaccount. Deze service is echter niet op het netwerk gericht.

Wat is het belang van deze wijziging?

Deze wijziging vermindert de kwetsbaarheid en wapent de RPCSS-service tegen aanvallen doordat een verhoging van de machtiging beperkt blijft tot de netwerkservicemachtiging.

Wat werkt er anders?

Deze wijziging is transparant voor gebruikers doordat de combinatie van de RPCSS- en DCOMLaunch-services gelijkwaardig is aan de RPCSS-service van eerdere versies van Windows.

Meer specifieke COM-machtigingen

Gedetailleerde beschrijving

COM-servertoepassingen bevatten twee typen machtigingen: startmachtigingen en toegangsmachtigingen. Startmachtigingen regelen de autorisatie voor het starten van een COM-server tijdens COM-activering als de server nog niet wordt uitgevoerd. Deze machtigingen worden gedefinieerd als security descriptors die worden opgegeven in registerinstellingen. Toegangsmachtigingen regelen de autorisatie voor het aanroepen van een actieve COM-server. Deze machtingen worden gedefinieerd als security descriptors die voor de COM-infrastructuur beschikbaar worden gesteld via de CoInitializeSecurityAPI of met behulp van registerinstellingen. Bij zowel start- als toegangsmachtigingen wordt toegang toegestaan of geweigerd op basis van principals, waarbij geen onderscheid wordt gemaakt tussen lokale of externe aanroepen (ten opzichte van de server).

De eerste wijziging geeft de COM-toegangsrechten aan op basis van afstand. De twee afstanden die zijn gedefinieerd, zijn Lokaal en Extern. Een lokaal COM-bericht komt binnen via het LRPC-protocol (Lightweight Remote Procedure Call), terwijl een extern COM-bericht binnenkomt via een RPC-hostprotocol (Remote Procedure Call), zoals TCP (Transmission Control Protocol).

COM-activiering is het proces van het ophalen van een COM-interfaceproxy op een client door het aanroepen van CoCreateInstance of een variant daarvan. Als bijwerking van dit activeringsproces moet soms een COM-server worden gestart om aan het verzoek van de client te kunnen voldoen. In een ACL voor startmachtigingen wordt vermeld wie een COM-server mag starten. In een ACL voor toegangsmachtigingen wordt vermeld wie een COM-object mag activeren of dat object mag aanroepen nadat de COM-server wordt uitgevoerd.

De tweede wijziging is dat de machtigingen voor aanroepen en activeren zijn gescheiden. Het zijn nu twee afzonderlijke bewerkingen en de activeringsmachtiging is verplaatst van de ACL voor toegangsmachtigingen naar de ACL voor startmachtigingen. Aangezien activeren en starten beide verband houden met het verkrijgen van een interfacepointer, horen activerings- en starttoegangsrechten logischerwijs bij elkaar in één ACL. Omdat de startmachtiging altijd in de configuratie wordt opgegeven (in tegenstelling tot toegangsmachtigingen, die veelal in het programma worden opgegeven), biedt plaating van de startmachtiging in de ACL voor startmachtigingen de beheerder controle over het starten van programma's.

De ACE's voor startrechten worden opgesplitst in vier toegangsrechten:

  • Lokaal starten
  • Extern starten
  • Lokaal activeren
  • Extern activeren

De security descriptor van Toegangsmachtigingen is opgesplitst in twee toegangsrechten:

  • Aanroepen voor lokale toegang
  • Aanroepen voor externe toegang

Dit stelt de beheerder in staat om zeer specifieke beveiligingsconfiguraties toe te passen. U kunt bijvoorbeeld een COM-server zodanig configureren dat deze lokale aanroepen van iedereen accepteert, terwijl externe aanroepen alleen van beheerders worden geaccepteerd. Deze instellingen kunt u opgeven via wijzigingen in de security descriptors van COM-machtigingen.

Waarom is deze wijziging belangrijk? Welk risico gaat deze tegen?

Met oudere versies van de COM-servertoepassing kan een toepassing niet zodanig worden beperkt dat deze alleen lokaal kan worden gebruikt zonder de toepassing open te stellen op het netwerk via DCOM. Wanneer een gebruiker toegang heeft tot een COM-servertoepassing, heeft deze toegang voor zowel lokaal als extern gebruik.

Een COM-servertoepassing wil zich mogelijk openstellen voor niet-geverifieerde gebruikers om een COM-terugbelscenario te implementeren. In dit scenario moet de toepassing de activering ook openstellen voor niet-geverifieerde gebruikers, wat mogelijk niet wenselijk is omdat kwaadwillende gebruikers zodoende ongeautoriseerde toegang kunnen verkrijgen tot die server.

Precieze COM-machtigingen bieden de beheerder een flexibele manier om het COM-machtigingsbeleid van een computer te beheren. Met deze machtigingen schakelt u beveiliging voor de beschreven scenario's in.

Wat werkt er anders? Zijn er nog afhankelijkheden?

Voor compatibiliteit met oudere versies worden bestaande COM-security descriptors geïnterpreteerd alsof ze lokale en externe toegang gelijktijdig toestaan of weigeren. Dit houdt in dat een ACE-vermelding ofwel zowel lokale als externe toegang toestaat, ofwel beide typen toegang weigert.

Er zijn geen problemen met de compatibiliteit met oudere versies voor aanroep- of startrechten. Er is echter wel een probleem met de compatibiliteit van activeringsrechten. Wanneer de geconfigureerde startmachtingingen in de bestaande security descriptors voor een COM-server beperkender zijn dan de minimumeisen van scenario's voor het starten van een client, dan moet de ACL voor startmachtigingen worden gewijzigd om de gemachtigde clients de juiste startmachtigingen te geven.

Voor COM-toepassingen die de standaardbeveiligingsinstellingen gebruiken, zijn er geen compatibiliteitsproblemen. De meeste toepassingen die dynamisch worden gestart met behulp van COM-activering, hebben geen compatibiliteitsproblemen omdat iedereen die een object kan activeren al startmachtingen hoort te hebben. Anders genereren dergelijke programma's al startfouten voordat Service Pack 1 wordt toegepast. Aanroepers proberen dan een object te activeren zonder startmachtiging terwijl de COM-server nog niet actief is.

De toepassingen met de grootste compatibiliteitsproblemen zijn COM-toepassingen die al op een andere manier zijn gestart, bijvoorbeeld via Windows Verkenner of Servicebeheer. U kunt deze toepassingen ook starten via een vorige COM-activering, die de standaardtoegangsmachtigingen en -startmachtigingen vervangt en startmachtigingen opgeeft die beperkender zijn dan de aanroepmachtigingen. Zie 'Hoe los ik deze problemen op?' in het volgende gedeelte voor meer informatie over het aanpakken van dit compatibiliteitsprobleem.

Wanneer u een systeem waarop Windows Server 2003 Service Pack 1 is geïnstalleerd, teruggezet naar een eerder service pack, staan aangepaste toegangsbeheervermeldingen waarmee lokale toegang en/of externe toegang wordt toegestaan, zowel lokale als externe toegang toe. Elke ACE-vermelding die is bewerkt om lokale toegang, externe toegang of beide te weigeren, wordt geïnterpreteerd alsof deze zowel lokale als externe toegang weigert. Wanneer u een service pack verwijdert, mogen opnieuw ingestelde ACE's er niet voor zorgen dat toepassingen niet meer werken.

Hoe los ik deze problemen op?

Als u een COM-server implementeert en de standaardbeveiligingsinstellingen vervangt, moet u controleren of de ACL voor toepassingsspecifieke startmachtigingen activeringsmachtigingen verleent aan de gewenste gebruikers. Als dit niet het geval is, moet u de ACL voor toepassingsspecifieke startmachtigingen zodanig wijzigen dat de gewenste gebruikers activeringsrechten krijgen, zodat toepassingen en Windows-onderdelen die gebruikmaken van DCOM blijven werken. Deze toepassingsspecifieke startmachtigingen worden opgeslagen in het register.

De ACL's voor COM kunnen worden gemaakt of aangepast met normale beveiligingsfuncties.

Welke instellingen zijn er toegevoegd of gewijzigd in Windows Server 2003 Service Pack 1?

CautionWaarschuwing
Onjuist gebruik van deze instellingen kan ertoe leiden dat toepassingen en Windows-onderdelen die gebruikmaken van DCOM, niet meer werken.

In de volgende tabel worden de volgende afkortingen gebruikt:

LS - Lokaal starten

LA - Lokaal activeren

ES - Extern starten

EA - Extern activeren

AL - Aanroepen voor lokale toegang

AE - Aanroepen voor externe toegang

DCOM-instellingen

Naam van instelling Locatie Vorige standaardwaarde Standaardwaarde Mogelijke waarden

MachineLaunchRestriction

HKEY_LOCAL_MACHINE \SOFTWARE \Microsoft\Ole\

Iedereen: LS, LA, ES, EA

Anoniem: LS, LA, ES, EA

(Dit is een nieuwe registersleutel. Op basis van het bestaande gedrag zouden dit de effectieve waarden zijn.)

Administrator: LS, LA, ES, EA

Iedereen: LL, LA

Gedistribueerde COM-gebruikers: LL, LA, RL, RA

ACL

Toegangsbeperkingen voor computer

HKEY_LOCAL_MACHINE \SOFTWARE \Microsoft\Ole\

Iedereen: AL, AE

Anoniem: AL, AE

(Dit is een nieuwe registersleutel. Op basis van het bestaande gedrag zouden dit de effectieve waarden zijn.)

Iedereen: AL, AE

Anoniem: LC, RC

ACL

CallFailure LoggingLevel

HKEY_LOCAL_MACHINE \SOFTWARE \Microsoft \Ole\

Niet van toepassing.

Deze registersleutel is niet aanwezig. Een ontbrekende sleutel of waarde wordt echter geïnterpreteerd als 2.

Deze gebeurtenis wordt niet standaard in het logboek geregistreerd. Als u deze waarde wijzigt in 1 om deze informatie te registreren in het logboek om u te helpen een probleem op te lossen, moet u de grootte van uw gebeurtenislogboek controleren omdat dit een gebeurtenis is die een groot aantal vermeldingen kan genereren.

1 - Gebeurtenislogboekfouten altijd registreren in het logboek wanneer COM-infrastructuur een ongeldige security descriptor vindt.

2 - Gebeurtenislogboekfouten nooit registreren in het logboek wanneer COM-infrastructuur een ongeldige security descriptor vindt.

InvalidSecurity Descriptor LoggingLevel

HKEY_LOCAL_MACHINE \SOFTWARE \Microsoft\Ole\

Niet van toepassing

Deze registersleutel is niet aanwezig, maar een ontbrekende sleutel of waarde wordt geïnterpreteerd als 1.

Deze gebeurtenis wordt standaard geregistreerd. Dit zal zelden voorkomen.

1 - Altijd gebeurtenislogboekfouten registreren als de COM-infrastructuur een ongeldige security descriptor vindt.

2 - Nooit gebeurtenislogboekfouten registreren als de COM-infrastructuur een ongeldige security descriptor vindt.

DCOM:Startbeperkingen voor computer in SDDL-syntaxis (Security Descriptor Definition Language)

(Groepsbeleid-object) Computerconfiguratie \Windows-instellingen \Lokaal beleid \Beveiligingsopties

Niet van toepassing.

Niet gedefinieerd.

Toegangsbeheerlijst (ACL) in SDDL-indeling. De aanwezigheid van dit beleid overschrijft de waarden van de bovenstaande startbeperkingen voor de computer.

DCOM:Toegangsbeperkingen voor computer in SDDL-syntaxis (Security Descriptor Definition Language)

(Groepsbeleid-object) Computerconfiguratie \Windows-instellingen \Lokaal beleid \Beveiligingsopties

Niet van toepassing.

Niet gedefinieerd.

Beheerlijst in SDDL-indeling. De aanwezigheid van dit beleid overschrijft de waarden van de bovenstaande toegangsbeperkingen voor de computer.

Vindt u dit nuttig?
(1500 tekens resterend)
Bedankt voor uw feedback

Community-inhoud

Toevoegen
Weergeven:
© 2014 Microsoft. Alle rechten voorbehouden.