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

Preventie van gegevensuitvoering

Hoe werkt preventie van gegevensuitvoering?

DEP (preventie van gegevensuitvoering) is een reeks hardware- en softwaretechnologieën waarmee aanvullende controles worden uitgevoerd op het geheugen als bescherming tegen misbruik van code door kwaadwillenden. In Windows Server 2003 met Service Pack 1 vindt DEP plaats op basis van zowel hardware als software.

DEP op basis van hardware

Bij DEP op basis van hardware worden alle geheugenlocaties in een proces gemarkeerd als niet uitvoerbaar tenzij de locatie expliciet uitvoerbare code bevat. Bij bepaalde aanvallen wordt geprobeerd code in te voegen en uit te voeren vanaf niet-uitvoerbare geheugenlocaties. DEP helpt bij het voorkomen van dergelijke aanvallen door ze te onderscheppen en een uitzondering te genereren.

Bij DEP op basis van hardware wordt met behulp van processorhardware geheugen gemarkeerd met een kenmerk dat code niet vanuit dat geheugen mag worden uitgevoerd. DEP werkt per wisselbestand voor virtueel geheugen, waarbij gewoonlijk een bit wordt gewijzigd in de PTE (Page Table Entry) om het geheugenwisselbestand te markeren.

De daadwerkelijke hardware-implementatie van DEP en het markeren van het wisselbestand voor het virtuele geheugen varieert per processorarchitectuur. Processoren die op hardware gebaseerde DEP ondersteunen, zijn echter in staat een uitzondering te genereren wanneer code wordt uitgevoerd vanuit een wisselbestand dat is voorzien van het juiste kenmerk.

Zowel Advanced Micro Devices (AMD) als Intel® Corporation heeft zijn producten voorzien van een architectuur die compatibel is met Windows en DEP.

In 32-bits versies van Windows Server 2003 met Service Pack 1 wordt de NX-processorfunctie (No-Execute Page-Protection) gebruikt zoals gedefinieerd door AMD of de XD-functie (Execute Disable bit) zoals gedefinieerd door Intel. Als u deze processorfuncties wilt gebruiken, moet de processor in de PAE-modus (Physical Address Extension) actief zijn. In de 64-bits versies van Windows wordt de NX- of XD-processorfunctie gebruikt voor 64-bits processoren en bepaalde waarden van het PTE-veld met toegangsrechten voor IPF-processoren.

Hopelijk bieden in de toekomst alle 32-bits en 64-bits processoren ondersteuning voor DEP op basis van hardware. Microsoft blijft samenwerken met producenten van processoren om de ondersteuning en ontwikkeling van DEP-technologie aan te moedigen.

DEP op basis van software

Er zijn extra DEP-beveiligingscontroles toegevoegd aan Windows Server 2003 met Service Pack 1. Deze controles, ook wel DEP op basis van software genoemd, zijn bedoeld om misbruik van verwerkingsprocedures voor uitzonderingen in Windows te voorkomen. DEP op basis van software wordt op een willekeurige processor uitgevoerd waarop Windows Server 2003 met Service Pack 1 kan worden uitgevoerd. Standaard worden met DEP op basis van software alleen beperkte binaire systeemgegevens beschermd, ongeacht de mogelijkheden voor hardwarematige DEP van de processor.

Voor wie is deze voorziening van belang?

Ontwikkelaars van toepassingen en stuurprogramma's moeten op de hoogte zijn van DEP en van de vereisten voor software die wordt uitgevoerd op een platform met DEP-ondersteuning. Voor toepassingen waarin JIT-code (just-in-time) wordt uitgevoerd of waarin geheugen wordt uitgevoerd vanaf de standaardprocesstack of -heap, moet zorgvuldig worden gekeken naar de DEP-vereisten.

Ontwikkelaars van stuurprogramma's wordt aangeraden zich te informeren over de PAE-modus op platforms die DEP op basis van hardware ondersteunen. De werking van de PAE-modus op systemen met Windows Server 2003, Standard Edition met Service Pack 1, is gewijzigd voor een betere compatibiliteit van stuurprogramma's.

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

Preventie van gegevensuitvoering op 32-bits en 64-bits versies van Windows en toepassingen

Gedetailleerde beschrijving

DEP op basis van hardware

Om de consistentie voor ontwikkelaars van toepassingen en stuurprogramma's te waarborgen is het beveiligingsmodel voor het geheugen (waaronder DEP) hetzelfde voor 32-bits en 64-bits versies van Windows.

Ontwikkelaars van toepassingen moeten op de hoogte zijn van de werking van DEP in de gebruikersmodus. Een DEP-uitzondering in de gebruikersmodus leidt tot een STATUS_ACCESS_VIOLATION (0xc0000005) op Windows-systemen. De eerste parameter van ExceptionInformation die zich binnen de EXCEPTION_RECORD-structuur bevindt, bevat het soort toegangsfout dat is opgetreden. Als ExceptionInformation[0] de waarde 8 heeft, betekent dit dat de toegangsfout een uitvoeringsfout betreft.

In de meeste processen is de uitzondering STATUS_ACCESS_VIOLATION een niet-afgehandelde fout waardoor het proces is beëindigd.

DEP wordt ook toegepast op stuurprogramma's in de kernelmodus. DEP kan niet selectief worden ingeschakeld of uitgeschakeld voor geheugengebieden in de kernelmodus. In 32-bits versies van Windows wordt DEP standaard op het stackgeheugen toegepast. In 64-bits versies van Windows, waarbij DEP op de kernelmodus werkt, wordt DEP zowel toegepast op de geheugenstack als op het wisselbaar geheugen en het sessiegeheugen.

Met apparaatstuurprogramma's mag geen code worden uitgevoerd vanuit de geheugenstack wanneer DEP is ingeschakeld. Een DEP-toegangsfout in de kernelmodus leidt tot de fout 0xFC: ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY.

DEP op basis van software

Bij DEP op basis van software worden extra controles uitgevoerd op de verwerkingsmechanismen voor uitzonderingen in Windows. Als de kopieën van de programmabestanden zijn gemaakt met behulp van SafeSEH (Safe Structured Exception Handling), wordt met DEP op basis van software gecontroleerd of de uitzonderingshandler is geregistreerd in de functietabel in het kopiebestand voordat een uitzondering wordt verzonden.

Als de kopieën van de programmabestanden niet zijn gemaakt met SafeSEH, wordt met DEP op basis van software gecontroleerd of de uitzonderingshandler zich binnen een geheugengebied bevindt dat als uitvoerbaar is gemarkeerd voordat een uitzondering wordt verzonden.

Werking van DEP bij het sluiten van een toepassing

De meeste toepassingen zullen geen problemen met DEP ondervinden. Wanneer er echter een probleem met DEP optreedt, wordt er een DEP-bericht weergegeven waarin de gebruiker attent gemaakt wordt op het probleem.

Het DEP-bericht geeft aan dat er in de toepassing een DEP-probleem is opgetreden en biedt de gebruiker de mogelijkheid meer informatie op te vragen over DEP en DEP desgewenst uit te schakelen voor de toepassing die is afgesloten.

ImportantBelangrijk
Als er een DEP-probleem optreedt in een toepassing, is het raadzaam contact op te nemen met de leverancier van de toepassing voor een update. Denk goed na over de gevolgen voor de beveiliging voordat u DEP uitschakelt voor een toepassing. Of het mogelijk is de DEP-instellingen te wijzigen voor een gesloten toepassing via de knop Instellingen wijzigen in het DEP-berichtvenster, is afhankelijk van de manier waarop DEP voor het hele systeem is geconfigureerd. Er kunnen alleen wijzigingen worden aangebracht in de DEP-beveiliging voor een toepassing als de DEP-configuratie voor het hele systeem is ingesteld op de modus OptOut.

Het DEP-bericht wordt weergegeven direct voor een venster van Windows Foutrapportage, waarin de mogelijkheid wordt geboden het DEP-probleem bij Microsoft te rapporteren.

In Windows Server 2003 met Service Pack 1 wordt het DEP-bericht weergegeven de eerstvolgende keer dat een Administrator zich interactief bij het systeem aanmeldt. Dit werkt anders in Windows Server 2003 met Service Pack 1 dan in Windows XP met Service Pack 2 omdat Windows Foutrapportage standaard werkt in de wachtrijmodus. De wachtrijmodus houdt in dat foutberichten in de wachtrij worden geplaatst tot de eerstvolgende keer dat een beheerder zich interactief bij het systeem aanmeldt.

Voor meer informatie over Windows Foutrapportage en over configuratie van Windows Foutrapportage zodat berichten van DEP en Windows Foutrapportage onmiddellijk na een probleem met een toepassing worden weergegeven, raadpleegt u het artikel 'Using Windows Server 2003 in a Managed Environment: Windows Error Reporting' op de website van Microsoft op http://go.microsoft.com/fwlink/?LinkId=38443.

Windows Foutrapportage genereert een fouthandtekening wanneer een toepassing vanwege DEP wordt gesloten. De fouthandtekening kan worden bekeken door de koppeling 'klik hier' te volgen in het dialoogvenster van Windows Foutrapportage. De fouthandtekening voor een DEP-probleem heeft de volgende kenmerken:

 

Parameter Voorbeeldwaarde Beschrijving

EventType

BEX

Duidt op een bufferoverloop (/GS) of DEP-uitzondering (BEX64 duidt op een bufferoverloop (/GS) of DEP-uitzondering in 64-bits versies van Windows)

P1

DEPDemo.exe

De naam van het uitvoerbare bestand van de toepassing waarin het probleem is opgetreden

P2

5.1.2600.2180

De versie van het uitvoerbare bestand van de toepassing waarin het probleem is opgetreden

P3

416725f2

Stempel voor de toepassing waarin de fout is opgetreden.

P4

DEPDemo.exe

Naam van de module waarin de fout is opgetreden.

P5

5.1.2600.2180

Versie van de module waarin de fout is opgetreden.

P6

416725f2

Stempel van de module waarin de fout is opgetreden.

P7

00002060

Foutoffset (instructieadres als een module niet is geladen op het adres waar de fout is opgetreden).

P8

C0000005

Duidt op een uitzondering van het type STATUS_ACCESS_VIOLATION (Als deze parameter c0000409 is, is het probleem een /GS-fout.)

P9

00000008

Geeft een uitvoeringsfout aan van het type STATUS_ACCESS_VIOLATION (00000002 geeft een uitvoeringsfout van het type STATUS_ACCESS_VIOLATION aan in 64-bits versies van Windows voor de Intel Itanium-architectuur.)

Tot slot wordt het DEP-bericht mogelijk niet weergegeven voor bepaalde toepassingen zodra een DEP-probleem optreedt, ongeacht de configuratie van Windows Foutrapportage. In deze toepassingen wordt de STATUS_ACCESS_VIOLATION-uitzondering die door DEP wordt weergegeven, verwerkt, of wordt er een UEF (filter voor niet-verwerkte uitzonderingen) geïnstalleerd waarmee de standaard-UEF Win32 wordt overschreven. De standaard-UEF Win32 zorgt ervoor dat zowel het DEP-bericht als het bericht van Windows Foutrapportage verschijnt. Het DEP-bericht wordt mogelijk ook niet weergegeven als een toepassing de functie SetErrorMode() heeft aangeroepen met de vlag SEM_NOGPFAULTERRORBOX.

Wat is het belang van deze wijziging? Welke risico's worden hierdoor mede beperkt?

Het belangrijkste voordeel van DEP is dat hiermee wordt voorkomen dat code wordt uitgevoerd vanuit gegevenswisselbestanden zoals de standaardheap, verschillende stacks en geheugenpools. Bij normale bewerkingen van het systeem wordt code gewoonlijk niet uitgevoerd vanuit de standaardheap en -stack. Bij DEP op basis van hardware wordt code gedetecteerd die vanaf deze locaties wordt uitgevoerd en wordt hiervoor een uitzondering gegenereerd. Als de uitzondering niet wordt opgelost, wordt het proces beëindigd. De uitvoering van code vanuit beveiligd geheugen in de kernelmodus leidt tot een fout.

Een proces beëindigen of ervoor zorgen dat er een systeemfout optreedt is geen ideale oplossing, maar op die manier wordt voorkomen dat schadelijke programmacode wordt uitgevoerd. Door te voorkomen dat schadelijke code op het systeem wordt uitgevoerd, kan worden voorkomen dat het systeem beschadigd raakt of schadelijke code wordt doorgevoerd waarvan de schadelijke effecten al snel verder reiken dan de effecten van een beëindigd proces of een systeemfout.

DEP kan sommige vormen van misbruik helpen voorkomen waarbij middels een virus of een andere aanval uitvoerbare code aan een proces is toegevoegd en vervolgens wordt geprobeerd de toegevoegde programmacode uit te voeren. Op een systeem met DEP moet de uitvoering van door onbevoegden aangebrachte code leiden tot een uitzondering. Met DEP op basis van software kan mede worden voorkomen dat misbruik wordt gemaakt van de verwerkingsmechanismen voor uitzonderingen in Windows.

Een tweede voordeel van DEP heeft te maken met de aanbevolen werkwijze voor ontwikkelaars van toepassingen en stuurprogramma's. DEP dwingt ontwikkelaars te vermijden dat code wordt uitgevoerd vanuit gegevenswisselbestanden zonder dat de pagina's expliciet als uitvoerbaar zijn gemarkeerd.

Wat werkt er anders?

Compatibiliteit van toepassingen

Van sommige procedures in toepassingen is te verwachten dat ze niet compatibel zijn met DEP. Toepassingen waarmee dynamische code wordt gegenereerd (zoals JIT-code) en waarin de gegenereerde code niet expliciet is gemarkeerd met een uitvoeringsmachtiging, zijn mogelijk niet geheel compatibel met DEP. Voor toepassingen die niet zijn gemaakt met SafeSEH, moeten de uitzonderingshandlers zich bevinden in uitvoerbare geheugengebieden.

Voor toepassingen waarmee wordt geprobeerd DEP te schenden, wordt een uitzondering weergegeven met de statuscode STATUS_ACCESS_VIOLATION (0xC0000005). Als voor een toepassing uitvoerbaar geheugen vereist is, moet dit kenmerk expliciet worden ingesteld voor het juiste geheugen door PAGE_EXECUTE, PAGE_EXECUTE_READ, PAGE_EXECUTE_READWRITE of PAGE_EXECUTE_WRITECOPY op te geven in het argument voor geheugenbeveiliging van de toewijzingsfuncties voor geheugen van het type Virtual* . Heaptoewijzingen die de functies malloc() en HeapAlloc() gebruiken, kunnen niet worden uitgevoerd.

Compatibiliteit van stuurprogramma's

Compatibiliteitsproblemen tussen stuurprogramma's en DEP hebben meestal te maken met de PAE-modus.

noteOpmerking
PAE is alleen vereist op systemen met een 32-bits versie van Windows met een processor die DEP op basis van hardware ondersteunt.

Op zichzelf kan DEP zorgen voor compatibiliteitsproblemen met stuurprogramma's waarmee code wordt gegenereerd of die andere technieken gebruiken om uitvoerbare code in realtime te genereren. Hoewel veel stuurprogramma's die dit gedrag vertoonden, inmiddels zijn hersteld (aangezien DEP altijd is ingeschakeld voor stuurprogramma's die zijn geladen in 64-bits versies van Windows) is er geen garantie dat alle stuurprogramma's zijn bijgewerkt. Er zijn echter weinig stuurprogramma's waarin deze technieken worden gebruikt en het ligt niet in de verwachting dat DEP zelf veel compatibiliteitsproblemen met stuurprogramma's veroorzaakt.

De grootste kans op compatibiliteitsproblemen met stuurprogramma's ontstaat wanneer de PAE-modus wordt uitgevoerd op een 32-bits systeem. De PAE-modus zorgt ervoor dat processoren meer dan 4 gigabyte aan geheugen kunnen adresseren. Het belangrijkste verschil tussen het gebruik van een PAE-geheugenwisselbestand en een niet-PAE-geheugenwisselbestand is het extra wisselbestandsniveau dat is vereist in de PAE-modus (drie niveaus in plaats van twee).

Sommige stuurprogramma's kunnen mogelijk niet worden geladen als PAE is ingeschakeld, omdat het apparaat geen 64-bits adressering kan uitvoeren of omdat de stuurprogramma's ervan uitgaan dat voor de PAE-modus meer dan 4 GB RAM-geheugen vereist is. In dergelijke stuurprogramma's wordt altijd verwacht dat 64-bits adressen worden ontvangen in de PAE-modus en dat het stuurprogramma of het apparaat het adres niet kan interpreteren.

Andere stuurprogramma's worden mogelijk wel geladen in de PAE-modus, maar kunnen leiden tot een instabiel systeem doordat PTE's van het systeem rechtstreeks worden gewijzigd. In deze stuurprogramma's worden 32-bits PTE's verwacht, maar worden in plaats hiervan 64-bits PTE's ontvangen in de PAE-modus.

Het belangrijkste PAE-compatibiliteitsprobleem met stuurprogramma's heeft te maken met DMA-gegevensoverdracht (Direct Memory Access) en registertoewijzing. Op veel apparaten die DMA ondersteunen, gewoonlijk 32-bits adapters, is 64-bits fysieke adressering niet mogelijk. Wanneer het apparaat in de 32-bits modus wordt uitgevoerd, kan wel alle fysieke adresruimte worden geadresseerd. In de PAE-modus is het mogelijk dat gegevens worden geplaatst op een fysiek adres dat groter is dan 4 GB. Om ervoor te zorgen dat apparaten met deze beperkingen in deze omstandigheden functioneren, bieden Windows 2000 Server en latere besturingssystemen een dubbele-bufferfunctie voor de DMA-transactie in de vorm van een 32-bits adres dat wordt aangeduid met een toewijzingsregister. Het apparaat kan de DMA-transactie uitvoeren naar het 32-bits adres en de kernel kopieert het geheugen naar het 64-bits adres dat aan het stuurprogramma wordt doorgegeven.

Wanneer het systeem wordt uitgevoerd met PAE uitgeschakeld, hoeven de toewijzingsregisters voor 32-bits apparaten niet te worden ondersteund door daadwerkelijk geheugen. Dit betekent dat het toepassen van een dubbele buffer in dit geval niet noodzakelijk is, aangezien alle apparaten en stuurprogramma's zich binnen de 32-bits adresruimte bevinden. Op basis van tests van stuurprogramma's voor 32-bits apparaten op computers met een 64-bits processor, valt te verwachten dat in de meeste stuurprogramma's die op clients zijn getest en beschikken over DMA-functionaliteit, onbeperkte toewijzingsregisters worden verwacht.

Om compatibiliteitsproblemen te beperken is in Windows Server 2003, Standard Edition met Service Pack 1 een aantal HAL-wijzigingen (Hardware Abstraction Layer) aangebracht waarin het 32-bits HAL DMA-gedrag wordt nagebootst. De gewijzigde HAL waarborgt onbeperkte toewijzingsregisters wanneer het systeem in de PAE-modus wordt uitgevoerd. Bovendien wordt in kernelgeheugenbeheer elk fysiek adres boven 4 GB genegeerd. Al het systeem-RAM boven de 4 GB zou onadresseerbaar worden gemaakt door Windows en niet bruikbaar zijn in het systeem. Door de adresruimte te beperken tot 4 GB kunnen apparaten die geschikt zijn voor een 32-bits DMA Bus Master geen transacties zien met een adres boven de limiet van 4 GB. Omdat het door deze wijziging niet meer nodig is de transacties van een dubbele buffer te voorzien, wordt voorkomen dat in sommige stuurprogramma's fouten optreden die te maken hebben met de juiste implementatie van de ondersteuning voor dubbele buffers.

Het PAE-gedrag van Windows Server 2003, Enterprise Edition met Service Pack 1 en Windows Server 2003, Datacenter Edition met Service Pack 1 is niet gewijzigd ten opzichte van de versies zonder dit Service Pack.

Ten gevolge van deze wijzigingen in de HAL en het geheugenbeheer zijn compatibiliteitsproblemen met stuurprogramma's naar verwachting minimaal op systemen waarop Windows Server 2003 met Service Pack 1 wordt uitgevoerd met DEP ingeschakeld.

Systeemcompatibiliteit

Een laatste probleem met de DEP-compatibiliteit treedt op bij systemen waarop de PAE-modus is ingeschakeld, hoewel deze systemen mogelijk niet zijn ontworpen voor meer dan 4 GB fysiek RAM-geheugen. Tijdens interne tests heeft Microsoft ontdekt dat bepaalde systemen met processoren die DEP op basis van hardware ondersteunen, niet opstarten of andere stabiliteitsproblemen vertronen wanneer de processor in de PAE-modus actief is.

De PAE-modus is vereist om gebruik te kunnen maken van de NX-processorfunctie. Systeemontwerpers en ontwikkelaars van firmware moeten er daarom rekening mee houden dat, hoewel de chipset en firmware van een systeem mogelijk niet meer dan 4 GB fysiek RAM-geheugen ondersteunen, het systeem mogelijk in de PAE-modus wordt uitgevoerd.

Hierbij moet met name worden gekeken naar systeemfirmware waarmee PTE's worden geïnterpreteerd om te bepalen welke instructies door het besturingssysteem moeten worden uitgevoerd. PTE's worden uitgebreid tot 64 bits wanneer de processor in de PAE-modus wordt uitgevoerd. Systeemontwikkelaars en ontwikkelaars van firmware wordt aangeraden contact op te nemen met de leveranciers van hun processoren en chipsets voor meer informatie over de manier waarop op veilige wijze de instructies kunnen worden vastgesteld die door het besturingssysteem worden uitgevoerd.

Voor systeemontwikkelaars die werken met AMD-processoren is meer informatie beschikbaar in het document 'BIOS and Kernel Developer’s Guide for AMD Athlon 64 and AMD Opteron Processors'. U kunt dit Engelstalige document downloaden door op de website voor AMD Athlon 64 op http://go.microsoft.com/fwlink/?LinkId=28165 de koppeling 'BIOS and Kernel Developer’s Guide for AMD Athlon™ 64 and AMD Opteron Processors' te kiezen.

Intel heeft geen gedetailleerde informatie gepubliceerd over SSM (System Management Mode). Systeemontwikkelaars die werken met Intel-processoren wordt aangeraden rechtstreeks contact op te nemen met Intel voor meer informatie.

Raadpleeg het onderwerp over fysieke adresextensies, PAE-geheugen en Windows op de website van Microsoft op http://go.microsoft.com/fwlink/?LinkId=45912 voor meer informatie over Windows-ondersteuning voor de PAE-modus.

Hoe los ik dit op?

In toepassingen waarvoor uitvoerbaar geheugen vereist is, moet het kenmerk PAGE_EXECUTE, PAGE_EXECUTE_READ, PAGE_EXECUTE_READWRITE of PAGE_EXECUTE_WRITECOPY worden gebruikt bij het toewijzen van geheugen. Bovendien kunnen toepassingen niet worden uitgevoerd vanuit de standaardprocesheap of de stack. De meeste toepassingen die acties uitvoeren die niet compatibel zijn met DEP, moeten worden bijgewerkt om compatibel te zijn. Toepassingen moeten ook worden gemaakt met SafeSEH of er moet voor worden gezorgd dat de uitzonderingshandlers van toepassingen zich bevinden in geheugen waarvoor expliciet is aangegeven dat het uitvoerbaar is.

Een toepassing kan de API-functie VirtualAlloc() gebruiken om uitvoerbaar geheugen toe te wijzen met de juiste opties voor geheugenbeveiliging. Op zijn minst moet de optie PAGE_EXECUTE voor geheugenbeveiliging worden gebruikt. Wanneer de uitvoerbare code is gegenereerd, is het raadzaam dat voor de toepassing de geheugenbeveiliging zodanig wordt ingesteld dat schrijftoegang tot het toegewezen geheugen niet is toegestaan. In toepassingen kan schrijftoegang tot toegewezen geheugen worden uitgeschakeld met de API-functie VirtualProtect(). Door schrijftoegang uit te schakelen wordt de procesadresruimte optimaal beschermd.

Als met een schadelijk proces wordt geprobeerd code in te voegen in een uitvoerbaar geheugengebied, leidt dit tot een schrijfuitzondering van het type STATUS_ACCESS_VIOLATION. De uitvoerbare gebieden van de adresruimte van een toepassing moeten zo klein mogelijk worden gehouden. Zodoende is het risico kleiner dat er door onbevoegden uitvoerbaar geheugen in de procesadresruimte wordt ingebracht en uitgevoerd.

Bovendien kan in geavanceerde toepassingen de indeling van het virtueel geheugen worden vastgelegd en kunnen uitvoerbare gebieden worden gemaakt. In dergelijke toepassingen moet worden geprobeerd uitvoerbare gebieden te vinden in een lagere geheugenruimte dan niet-uitvoerbare gebieden. Door uitvoerbare gebieden te gebruiken onder niet-uitvoerbare gebieden, wordt voorkomen dat gegevens bij een bufferoverloop terechtkomen in het uitvoerbare geheugen.

Een beperkt aantal uitvoerbare bestanden en gegevensarchieven mag uitvoerbare code bevatten in een gegevenssectie van het bestand. In sommige gevallen kunnen met toepassingen kleine codesegmenten (thunks) in de gegevenssecties worden geplaatst. Secties van het installatiekopiebstand worden door DEP echter als niet uitvoerbaar in het geheugen geladen tenzij het kenmerk voor uitvoerbare code op de sectie is toegepast.

Uitvoerbare code in gegevenssecties moet daarom worden verplaatst naar een codesectie of de gegevenssectie die de uitvoerbare code bevat moet expliciet worden gemarkeerd als uitvoerbaar. Het kenmerk van uitvoerbare code, IMAGE_SCN_MEM_EXECUTE (0x20000000), moet worden toegevoegd aan het eigenschappenveld van de overeenkomende sectiekop voor secties die uitvoerbare code bevatten.

Met de Microsoft-koppeling die bij Microsoft Visual Studio-producten wordt geleverd, kan het kenmerk voor uitvoerbare code worden toegevoegd aan een sectie via de koppelingsoptie /SECTION. De koppelingsoptie /SECTION heeft de volgende indeling:

/SECTION: Naam ,[E][R][W][S][D][K][L][P][X][,ALIGN=#]

De waarde E geeft aan dat het uitvoerbare code betreft (0x20000000). Meer informatie over /SECTION en andere opties voor de Microsoft-linker is beschikbaar op de website van MSDN op http://go.microsoft.com/fwlink/?LinkId=28167.

Verder kan het hulpprogramma Editbin.exe (Microsoft COFF Binary File Editor) worden gebruikt om de sectiekenmerken van een bestaand installatiekopiebestand te wijzigen. Het hulpprogramma Editbin.exe heeft een optie /SECTION met de volgende indeling:

/SECTION: Naam [= nieuwenaam ][,[[!]{CDEIKOMPRSUW}][A{1248PTSX}]]

Met de waarden C en E wordt respectievelijk code en uitvoerbare code aangegeven. Raadpleeg de website van MSDN op http://go.microsoft.com/fwlink/?LinkId=28168 voor meer informatie over het hulpprogramma Editbin en de optie /SECTION.

Microsoft heeft Service Packs ontwikkeld voor Microsoft .NET Framework versie 1.0 en versie 1.1, zodat gebruikers kunnen profiteren van DEP in Windows Server 2003 met Service Pack 1. Toepassingen waarin Microsoft .NET Framework wordt gebruikt, blijven naar behoren werken, maar hebben alleen voordeel van de functie DEP (als deze is ingeschakeld) als het juiste Service Pack voor Microsoft .NET Framework is geïnstalleerd.

Ontwikkelaars van toepassingen die gebruik maken van het Microsoft .NET Framework, wordt aangeraden hun versie op te waarderen tot Microsoft .NET Framework versie 1.0 Service Pack 3 of versie 1.1 Service Pack 1, waarin de functie DEP wordt benut.

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

DEP configureren voor het hele systeem

Het belangrijkste verschil in werking tussen DEP onder Windows Server 2003 Service Pack 1 en onder Windows XP Service Pack 2 (SP2), is dat standaard alle toepassingen en services worden beveiligd in het besturingssysteem van de server. In Windows XP SP2 was DEP standaard alleen ingeschakeld voor essentiële programma's en services van het Windows-besturingssysteem.

De DEP-configuratie voor het systeem wordt geregeld via Boot.ini-schakelopties. Er zijn bovendien wijzigingen aangebracht in het onderdeel Systeem in het Configuratiescherm zodat eindgebruikers op eenvoudige wijze DEP-instellingen kunnen configureren als ze bij het systeem zijn aangemeld als Administrator.

DEP-configuratie-instellingen voor het systeem zijn alleen van toepassing op 32-bits toepassingen en processen wanneer deze worden uitgevoerd in 32-bits of 64-bits versies van Windows. Als in 64-bits versies van Windows DEP op basis van hardware beschikbaar is, wordt deze functie altijd toegepast op 64-bits processen en kernelgeheugenruimten en zijn er geen systeemconfiguratie-instellingen om DEP uit te schakelen.

Windows ondersteunt vier configuraties voor het hele systeem voor DEP op basis van hardware zowel als software.

DEP-configuratie

Configuratie Beschrijving

OptIn

(standaard voor Windows XP SP2 en Windows XP 64-bit Edition)

Op systemen met een processor die geschikt is voor DEP op basis van hardware, is DEP standaard ingeschakeld voor beperkte binaire systeemgegevens en voor toepassingen waarvoor DEP afzonderlijk is ingeschakeld via OptIn. Met deze optie is DEP alleen van toepassing op binaire systeemwaarden van Windows.

OptOut

(standaard voor Windows Server 2003 Service Pack 1)

DEP is standaard ingeschakeld voor alle processen. Gebruikers kunnen handmatig een lijst maken van specifieke toepassingen waarop DEP niet wordt toegepast via het onderdeel Systeem in het Configuratiescherm. IT-professionals kunnen gebruikmaken van de Application Compatibility Toolkit om een of meer toepassingen uit te sluiten van DEP-beveiliging. Zogenoemde shims (System Compatibility Fixes) voor DEP zijn wel van toepassing.

AlwaysOn

In dit geval wordt DEP-beveiliging op het gehele systeem toegepast. Bij de uitvoering van alle processen wordt DEP toegepast. De lijst met uitzonderingen waarin specifieke toepassingen kunnen worden uitgesloten van DEP-beveiliging, is niet beschikbaar. Shims voor DEP zijn niet van toepassing. Toepassingen die zijn uitgesloten van DEP-beveiliging met de Application Compatibility Toolkit, worden uitgevoerd met DEP-beveiliging

AlwaysOff

In dit geval wordt op geen enkel deel van het systeem DEP-beveiliging toegepast, ongeacht de ondersteuning van hardware-DEP. De processor wordt daarentegen uitgevoerd in de PAE-modus in 32-bits versies van Windows, tenzij de optie /noexecute=alwaysoff in de opstartvermelding wordt vervangen door de optie /execute.

Hardware- en software-DEP worden op dezelfde manier geconfigureerd. Als het DEP-beleid voor het hele systeem is ingesteld op 'Bij voorkeur aan', worden dezelfde binaire gegevens en toepassingen van Windows beveiligd via hardware- en software-DEP. Als het systeem niet geschikt is voor DEP op basis van hardware, worden de belangrijkste binaire gegevens en toepassingen van Windows alleen beveiligd via DEP op basis van software.

Als het DEP-beleid voor het hele systeem is ingesteld op 'Bij voorkeur uit', worden toepassingen die niet onder DEP-beveiliging vallen, uitgezonderd van zowel hardware- als software-DEP.

De vier DEP-configuraties voor het hele systeem worden beheerd via Boot.ini-schakelopties. De instellingen van Boot.ini luiden als volgt:

/noexecute=policy_level

waarbij beleidsniveau is gedefinieerd als AlwaysOn, AlwaysOff, OptIn of OptOut.

Eventuele bestaande instellingen onder /noexecute in het bestand Boot.ini worden niet gewijzigd wanneer Windows Server 2003 Service Pack 1 is geïnstalleerd of als een installatiekopie van het Windows-besturingssysteem wordt verplaatst naar andere computers met en zonder ondersteuning voor DEP op basis van hardware.

Tijdens de installatie van Windows Server 2003 Service Pack 1 is het beleidsniveau OptOut standaard ingeschakeld tenzij een ander beleidsniveau is opgegeven tijdens een installatie zonder toezicht. Als de instelling /noexecute=beleidsniveau niet aanwezig is in de opstartvermelding voor een versie van Windows die DEP ondersteunt, is de werking hetzelfde als wanneer de optie /noexecute=OptIn zou zijn opgenomen.

Eindgebruikers die zich als Administrator hebben aangemeld, kunnen DEP handmatig configureren tussen het beleid OptIn en OptOut met behulp van het tabblad Preventie van gegevensuitvoering in het dialoogvenster Instellingen voor prestaties. In de volgende procedure wordt beschreven hoe DEP handmatig kan worden geconfigureerd op de computer:

DEP-instellingen configureren
  1. Klik op Start, klik op Configuratiescherm en dubbelklik vervolgens op Systeem.

  2. Klik op het tabblad Geavanceerd. Klik onder Prestaties op Instellingen.

  3. Klik op de tab Preventie van gegevensuitvoering.

  4. Klik op DEP alleen voor kritieke Windows-programma's en -services inschakelen om het beleid OptIn te selecteren.

  5. Klik op DEP voor alle programma's en services inschakelen, behalve voor de hieronder geselecteerde om het beleid OptOut te selecteren.

  6. Als u OptOut hebt gekozen, klikt u op Toevoegen en voegt u de toepassingen toe waarop u DEP niet wilt toepassen.

IT-professionals kunnen op verschillende manieren de DEP-configuratie beheren voor het hele systeem. Het bestand Boot.ini kan rechtstreeks worden gewijzigd via scripts of met het hulpprogramma Bootcfg.exe, dat deel uitmaakt van Windows Server 2003 Service Pack 1.

Als Windows Server 2003 met Service Pack 1 zonder toezicht wordt geïnstalleerd, kunt u het bestand Unattend.txt gebruiken om vooraf een specifieke DEP-configuratie in te stellen. U kunt de vermelding OSLoadOptionsVar in de sectie [Data] van het bestand Unattend.txt gebruiken om een DEP-configuratie voor het hele systeem op te geven.

DEP-configuratie per toepassing

Wanneer DEP is ingesteld op het beleidsniveau OptOut, kan DEP selectief worden uitgeschakeld voor afzonderlijke 32-bits toepassingen om de compatibiliteit van toepassingen te waarborgen. Voor 64-bits toepassingen is DEP echter altijd ingeschakeld.

Eindgebruikers kunnen het tabblad Preventie van gegevensuitvoering in Systeemeigenschappen gebruiken om DEP uit te schakelen voor afzonderlijke toepassingen.

Voor IT-professionals is een nieuwe compatibiliteitsoplossing met de naam DisableNX opgenomen in Windows Server 2003 Service Pack 1. Met DisableNX wordt DEP uitgeschakeld voor het programma waarop deze oplossing wordt toegepast.

De compatibiliteitsoplossing DisableNX kan worden toegepast op een toepassing met behulp van de Application Compatibility Toolkit. Raadpleeg het onderwerp over de compatibiliteit van Windows-toepassingen op de website van Microsoft op http://go.microsoft.com/fwlink/?LinkId=23302 voor meer relevante informatie.

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

Community-inhoud

Toevoegen
Weergeven:
© 2014 Microsoft. Alle rechten voorbehouden.