Del via


Exploit Protection-reference

Gælder for:

Vil du opleve Microsoft Defender for Endpoint? Tilmeld dig en gratis prøveversion.

Exploit Protection giver avanceret beskyttelse af programmer, som virksomhedsadministratorer og it-teknikere kan anvende, når en udvikler kompilerer og distribuerer software.

Denne artikel hjælper dig med at forstå, hvordan beskyttelse mod udnyttelse fungerer, både på politikniveau og på individuelt afhjælpningsniveau, for at hjælpe dig med at opbygge og anvende beskyttelsespolitikker, der udnytter korrekt.

Sådan anvendes afhjælpninger

Afhjælpninger af udnyttelse af beskyttelse anvendes pr. program.

Afhjælpninger konfigureres via en post i registreringsdatabasen for hvert program, du konfigurerer beskyttelse for. Disse indstillinger gemmes i registreringsdatabaseposten MitigationOptions for hvert program (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\*ImageFileName*\MitigationOptions). De træder i kraft, når du genstarter programmet, og forbliver gældende, indtil du ændrer dem og genstarter programmet igen.

Vigtigt!

Indstillinger for udførelse af billedfiler giver dig kun mulighed for at angive et filnavn eller en sti og ikke et versionsnummer, en arkitektur eller en anden differentiator. Vær forsigtig med at målrette afhjælpninger til apps, der har entydige navne eller stier, ved kun at anvende dem på enheder, hvor du har testet den pågældende version og denne arkitektur af programmet.

Hvis du konfigurerer afhjælpning af udnyttelse af beskyttelse ved hjælp af en XML-konfigurationsfil ved hjælp af PowerShell, Gruppepolitik eller MDM, konfigureres individuelle indstillinger i registreringsdatabasen for dig, når du behandler denne XML-konfigurationsfil.

Nulstiller beskyttelse mod udnyttelse

Vigtigt!

Når den politik, der distribuerer XML-filen, ikke længere gennemtvinges, fjernes de indstillinger, der er installeret af denne XML-konfigurationsfil, ikke automatisk.

Hvis du vil fjerne beskyttelsesindstillinger for udnyttelse, skal du eksportere XML-konfigurationen fra en ren Windows 10 eller Windows 11 enhed og installere denne nye XML-fil. Microsoft leverer også en XML-fil som en del af Windows Sikkerhed Baselines til nulstilling af beskyttelsesindstillinger for udnyttelse.

Hvis du vil nulstille beskyttelsesindstillinger for udnyttelse ved hjælp af PowerShell, skal du bruge følgende kommando:

Set-ProcessMitigation -PolicyFilePath EP-reset.xml

Følgende er EP-reset.xml, der distribueres med de Windows Sikkerhedsgrundlinjer:

<?xml version="1.0" encoding="UTF-8"?>
<MitigationPolicy>
  <AppConfig Executable="ONEDRIVE.EXE">
    <DEP OverrideDEP="false" />
    <ASLR OverrideRelocateImages="false" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
    <ImageLoad OverrideBlockRemoteImages="false" />
  </AppConfig>
  <AppConfig Executable="firefox.exe">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
  </AppConfig>
  <AppConfig Executable="fltldr.exe">
    <DEP OverrideDEP="false" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
    <ImageLoad OverrideBlockRemoteImages="false" />
    <ChildProcess OverrideChildProcess="false" />
  </AppConfig>
  <AppConfig Executable="GROOVE.EXE">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
    <ImageLoad OverrideBlockRemoteImages="false" />
    <ChildProcess OverrideChildProcess="false" />
  </AppConfig>
  <AppConfig Executable="Acrobat.exe">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="AcroRd32.exe">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="chrome.exe">
    <DEP OverrideDEP="false" />
  </AppConfig>
  <AppConfig Executable="EXCEL.EXE">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="iexplore.exe">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="INFOPATH.EXE">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="java.exe">
    <DEP OverrideDEP="false" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="javaw.exe">
    <DEP OverrideDEP="false" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="javaws.exe">
    <DEP OverrideDEP="false" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="LYNC.EXE">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="MSACCESS.EXE">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="MSPUB.EXE">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="OIS.EXE">
    <DEP OverrideDEP="false" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="OUTLOOK.EXE">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="plugin-container.exe">
    <DEP OverrideDEP="false" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="POWERPNT.EXE">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="PPTVIEW.EXE">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="VISIO.EXE">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="VPREVIEW.EXE">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="WINWORD.EXE">
    <DEP OverrideDEP="false" />
    <ASLR ForceRelocateImages="true" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="wmplayer.exe">
    <DEP OverrideDEP="false" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
  <AppConfig Executable="wordpad.exe">
    <DEP OverrideDEP="false" />
    <Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
  </AppConfig>
</MitigationPolicy>

Afhjælpningsreference

I følgende afsnit beskrives de beskyttelser, der leveres af hver Exploit Protection-afhjælpning, kompatibilitetsovervejelserne i forbindelse med afhjælpningen og de tilgængelige konfigurationsindstillinger.

Tilfældig kodebeskyttelse

Beskrivelse

Vilkårlig kodebeskyttelse hjælper med at beskytte mod en ondsindet hacker, der indlæser koden efter eget valg i hukommelsen via en sikkerhedssårbarhed i hukommelsen og kan udføre denne kode.

Vilkårlig kodebeskyttelse beskytter et program mod at udføre dynamisk genereret kode (kode, der ikke indlæses, f.eks. fra selve exe'en eller en dll). Vilkårlig kodebeskyttelse fungerer ved at forhindre, at hukommelse markeres som eksekverbar. Når et program forsøger at allokere hukommelse, kontrollerer vi beskyttelsesflagene. (Hukommelse kan allokeres med læsning, skrivning- og/eller udførelse af beskyttelsesflag.) Hvis allokeringen forsøger at inkludereudførelsen af beskyttelsesflag, mislykkes hukommelsesallokeringen, og der returneres en fejlkode (STATUS_DYNAMIC_CODE_BLOCKED). Ligeledes hvis et program forsøger at ændre beskyttelsesflagene for hukommelse, der allerede er allokeret og indeholder beskyttelsesflaget for eksekvering, så mislykkes ændring af tilladelsen, returnerer en fejlkode (STATUS_DYNAMIC_CODE_BLOCKED).

Ved at forhindre flaget eksekveringfra at blive angivet, kan funktionen til forhindring af datakørsel i Windows 10 og Windows 11 derefter beskytte mod den instruktionsmarkør, der indstilles til den pågældende hukommelse og kører den pågældende kode.

Kompatibilitetsovervejelser

Vilkårlig kodebeskyttelse forhindrer, at der allokeres hukommelse som eksekverbar fil, hvilket giver et kompatibilitetsproblem med metoder som JIT-compilere (Just-in-Time). De fleste moderne browsere kompilerer f.eks. JavaScript til oprindelig kode for at optimere ydeevnen. For at understøtte denne afhjælpning skal de opdages for at flytte JIT-kompileringen uden for den beskyttede proces. Andre programmer, hvis design dynamisk genererer kode fra scripts eller andre mellemliggende sprog, er ligeledes inkompatible med denne afhjælpning.

Konfigurationsindstillinger:

Tillad fravalg af tråd – Du kan konfigurere afhjælpningen til at tillade, at en enkelt tråd fravælger denne beskyttelse. Udvikleren skal skrive programmet med kendskab til denne afhjælpning og kalde SetThreadInformation API'en med parameteren ThreadInformation indstillet til ThreadDynamicCodePolicy for at få tilladelse til at udføre dynamisk kode på denne tråd.

Kun overvågning – Du kan aktivere denne afhjælpning i overvågningstilstand for at måle den potentielle kompatibilitetsvirkning på et program. Overvågningshændelser kan derefter vises enten i Logbog eller ved hjælp af Avanceret jagt på trusler Defender for Endpoint.

Bloker for afbildninger med lav integritet

Beskrivelse

Bloker billeder med lav integritet forhindrer programmet i at indlæse filer, der ikke er tillid til, typisk fordi de er blevet downloadet fra internettet fra en sandkassebrowser.

Dette afhjælpningselement blokerer billedet, hvis billedet har en ace (Access Control Entry), som giver adgang til Low IL-processer, og som ikke har et tillidsmærkat ACE. Den implementeres af hukommelsesstyringen, som blokerer filen fra at blive tilknyttet i hukommelsen. Hvis et program forsøger at tilknytte et billede med lav integritet, udløses der en STATUS_ACCESS_DENIED fejl. Du kan finde oplysninger om, hvordan integritetsniveauer fungerer, under Obligatorisk integritetskontrol.

Kompatibilitetsovervejelser

Bloker billeder med lav integritet forhindrer programmet i at indlæse filer, der er downloadet fra internettet. Hvis din programarbejdsproces kræver indlæsning af billeder, der downloades, skal du sikre dig, at de downloades fra en proces med større tillid, eller at de udtrykkeligt er navngivet igen for at anvende denne afhjælpning.

Konfigurationsindstillinger:

Kun overvågning – Du kan aktivere denne afhjælpning i overvågningstilstand for at måle den potentielle kompatibilitetsvirkning på et program. Overvågningshændelser kan derefter vises enten i Logbog eller ved hjælp af Avanceret jagt på trusler Microsoft Defender for Endpoint.

Bloker fjernafbildninger

Beskrivelse

Blokering af eksterne afbildninger hjælper med at forhindre programmet i at indlæse filer, der hostes på en ekstern enhed, f.eks. et UNC-share. Blokering af eksterne afbildninger hjælper med at beskytte mod indlæsning af binære filer i hukommelsen, der er på en ekstern enhed, der styres af hackeren.

Dette afhjælpningselement blokerer billedet, hvis det bestemmes, at det er på en ekstern enhed. Den implementeres af hukommelsesstyringen, som blokerer filen fra at blive tilknyttet i hukommelsen. Hvis et program forsøger at tilknytte en ekstern fil, udløses der en STATUS_ACCESS_DENIED fejl.

Kompatibilitetsovervejelser

Bloker fjernbilleder forhindrer programmet i at indlæse billeder fra eksterne enheder. Hvis dit program indlæser filer eller plug-ins fra fjernenheder, vil det ikke være kompatibelt med denne afhjælpning.

Konfigurationsindstillinger:

Kun overvågning – Du kan aktivere denne afhjælpning i overvågningstilstand for at måle den potentielle kompatibilitetsvirkning på et program. Overvågningshændelser kan derefter vises enten i Logbog eller ved hjælp af Avanceret jagt på trusler Microsoft Defender for Endpoint.

Bloker de skrifttyper, der ikke er tillid til

Beskrivelse

Blokering af skrifttyper, der ikke er tillid til, mindsker risikoen for en fejl i skrifttypefortolken, hvilket medfører, at hackeren kan køre kode på enheden. Kun skrifttyper, der er installeret i mappen windows\fonts, indlæses til behandling af GDI.

Denne afhjælpning er implementeret i GDI, som validerer filens placering. Hvis filen ikke findes i mappen med systemskrifttyper, indlæses skrifttypen ikke til fortolkning, og kaldet mislykkes.

Denne afhjælpning er en tilføjelse til den indbyggede afhjælpning, der findes i Windows 10 1607 og nyere, og Windows 11, som flytter skrifttypeparsing ud af kernen og til en appobjektbeholder i brugertilstand. Enhver udnyttelse, der er baseret på skrifttypeparsing, sker derfor i en sandkassekontekst og isoleret kontekst, hvilket reducerer risikoen markant. Du kan finde flere oplysninger om denne afhjælpning på bloggen Hardening Windows 10 med zero-day exploit mitigations.

Kompatibilitetsovervejelser

Den mest almindelige brug af skrifttyper uden for systemets skrifttypemappe er med webskrifttyper. Moderne browsere, f.eks. Microsoft Edge, bruger DirectWrite i stedet for GDI og påvirkes ikke. Ældre browsere, f.eks. Internet Explorer 11 (og IE-tilstand i den nye Microsoft Edge), kan dog blive påvirket, især med programmer som Office 365, som bruger skrifttyper med specialtegn til at vise brugergrænsefladen.

Konfigurationsindstillinger:

Kun overvågning – Du kan aktivere denne afhjælpning i overvågningstilstand for at måle den potentielle kompatibilitetsvirkning på et program. Overvågningshændelser kan derefter vises enten i Logbog eller ved hjælp af Avanceret jagt på trusler Microsoft Defender for Endpoint.

Beskyttelse af kodeintegritet

Beskrivelse

Beskyttelse af kodeintegritet sikrer, at alle binære filer, der indlæses i en proces, signeres digitalt af Microsoft. Code integrity guard indeholder WHQL-signaturer (Windows Hardware Quality Labs), som gør det muligt for WHQL-godkendte drivere at køre i processen.

Denne afhjælpning er implementeret i hukommelsesstyringen, som blokerer den binære fil fra at blive knyttet til hukommelsen. Hvis du forsøger at indlæse en binær fil, der ikke er signeret af Microsoft, returnerer hukommelseslageret fejlen STATUS_INVALID_IMAGE_HASH. Ved at blokere på hukommelsesstyringsniveau forhindrer dette både binære filer, der indlæses af processen, og binære filer, der overføres til processen.

Kompatibilitetsovervejelser

Denne afhjælpning blokerer specifikt alle binære filer, der ikke er signeret af Microsoft. Det er derfor inkompatibelt med de fleste ikke-Microsoft-programmer, medmindre softwaren distribueres af (og signeres digitalt af) Microsoft Store, og muligheden for at tillade indlæsning af billeder, der er signeret af Microsoft Store, vælges.

Konfigurationsindstillinger:

Tillad også indlæsning af billeder, der er signeret af Microsoft Store – Programmer, der distribueres af Microsoft Store, er signeret digitalt af Microsoft Store, og hvis du tilføjer denne konfiguration, kan binære filer, der gennemgår butikkens certificeringsproces, indlæses af programmet.

Kun overvågning – Du kan aktivere denne afhjælpning i overvågningstilstand for at måle den potentielle kompatibilitetsvirkning på et program. Overvågningshændelser kan derefter vises enten i Logbog eller ved hjælp af Avanceret jagt på trusler Microsoft Defender for Endpoint.

Kontrolflowbeskyttelse (CFG)

Beskrivelse

Control Flow Guard (CFG) mindsker risikoen for hackere, der bruger sårbarhed i forbindelse med beskadigelse af hukommelse, ved at beskytte indirekte funktionskald. En hacker kan f.eks. bruge en bufferoverløbssårbarhed til at overskrive hukommelse, der indeholder en funktionsmarkør, og erstatte denne funktionsmarkør med en markør til eksekverbar kode efter eget valg (som også kan blive overført til programmet).

Denne afhjælpning leveres ved at indsætte en anden kontrol på kompileringstidspunktet. Før hvert kald til en indirekte funktion tilføjes en anden vejledning, der bekræfter, at målet er et gyldigt opkaldsmål, før det kaldes. Hvis destinationen ikke er et gyldigt opkaldsmål, afsluttes programmet. Derfor er det kun programmer, der er kompileret med CFG-understøttelse, der kan drage fordel af denne afhjælpning.

Kontrollen af en gyldig destination leveres af Windows-kernen. Når eksekverbare filer indlæses, udtrækkes metadataene for indirekte opkaldsdestinationer på indlæsningstidspunktet og markeres som gyldige opkaldsdestinationer. Når hukommelse er allokeret og markeret som eksekverbar (f.eks. for genereret kode), markeres disse hukommelsesplaceringer også som gyldige opkaldsdestinationer for at understøtte mekanismer som JIT-kompilering.

Kompatibilitetsovervejelser

Da programmer skal kompileres for at understøtte CFG, erklærer de implicit deres kompatibilitet med den. De fleste programmer bør derfor fungere med denne afhjælpning aktiveret. Da disse kontroller kompileres til den binære fil, er den konfiguration, du kan anvende, blot at deaktivere kontroller i Windows-kernen. Med andre ord er afhjælpningen slået til som standard, men du kan konfigurere Windows-kernen til altid at returnere "ja", hvis du senere finder ud af, at der er et kompatibilitetsproblem, som programudvikleren ikke fandt i deres test, hvilket bør være sjældent.

Konfigurationsindstillinger:

Brug strict CFG – I strict-tilstand skal alle binære filer, der indlæses i processen, kompileres til Control Flow Guard (eller der er ingen eksekverbar kode i dem – f.eks. ressource-dll'er) for at kunne indlæses.

Bemærk!

Kontrolflowbeskyttelse har ingen overvågningstilstand. Binære filer kompileres med denne afhjælpning aktiveret.

Forhindring af datakørsel (DEP)

Beskrivelse

Forebyggelse af datakørsel forhindrer, at hukommelse, der ikke udtrykkeligt er allokeret som eksekverbar, udføres. DEP hjælper med at beskytte mod en hacker, der indsætter skadelig kode i processen, f.eks. via et bufferoverløb, og eksekverer derefter denne kode.

Hvis du forsøger at angive instruktionsmarkøren til en hukommelsesadresse, der ikke er markeret som eksekverbar, udløser processoren en undtagelse (generel beskyttelsesfejl), som medfører, at programmet går ned.

Kompatibilitetsovervejelser

Alle eksekverbare filer af typen x64, ARM og Arm64 er aktiveret som standard, og de kan ikke deaktiveres. Da et program ikke udføres uden forhindring af dataadgang, antages kompatibilitet.

Alle binære x86-filer (32-bit) har som standard aktiveret DEP, men DEP kan deaktiveres pr. proces. Nogle gamle ældre programmer, der typisk er udviklet før Windows XP SP2, er muligvis ikke kompatible med forhindring af dataanvendelse. Sådanne programmer genererer typisk kode dynamisk (f.eks. JIT-kompilering) eller linker til ældre biblioteker (f.eks. ældre versioner af ATL), som dynamisk genererer kode.

Konfigurationsindstillinger:

Aktivér ATL Thunk-emulering - Denne konfigurationsindstilling deaktiverer ATL Thunk-emulering. ATL, ActiveX-skabelonbiblioteket, er designet til at være så lille og hurtigt som muligt. For at reducere den binære størrelse ville den bruge en teknik, der kaldes thunking. Thunking er typisk påtænkt til at interagere mellem 32-bit og 16-bit programmer, men der er ingen 16-bit komponenter til ATL her. For at optimere til binær størrelse gemmer ATL i stedet computerkode i hukommelsen, der ikke er ordjusteret (oprettelse af en mindre binær fil), og aktiverer derefter koden direkte. ATL-komponenter, der er kompileret med Visual Studio 7.1 eller tidligere (Visual Studio 2003), tildeler ikke denne hukommelse som eksekverbar - denne emulering løser dette kompatibilitetsproblem. Programmer, der har en binær udvidelsesmodel (f.eks. Internet Explorer 11), skal have ATL Thunk-emulering aktiveret.

Deaktiver udvidelsespunkter

Beskrivelse

Denne afhjælpning deaktiverer forskellige udvidelsespunkter for et program, som kan bruges til at etablere fastholdelse eller forfremme rettigheder til skadeligt indhold.

Dette omfatter:

  • AppInit DLL'er – Når en proces starter, indlæser systemet den angivne DLL-fil i konteksten for den nystartede proces, før det kalder dens indgangspunktfunktion. Du kan finde oplysninger om AppInit-DLL'er her. Når denne afhjælpning er anvendt, indlæses AppInit DLL'er ikke. Fra og med Windows 7 skal AppInit-DLL'er signeres digitalt som beskrevet her. Derudover indlæses AppInit DLL'er ikke fra og med Windows 8, hvis SecureBoot er aktiveret, som beskrevet her.
  • Ældre IME'er – En IME (Input Method Editor) gør det muligt for en bruger at skrive tekst på et sprog, der indeholder flere tegn, end der kan repræsenteres på et tastatur. Tredjeparter kan oprette IME'er. En skadelig IME kan hente legitimationsoplysninger eller andre følsomme oplysninger fra denne inputregistrering. Nogle IME'er, der kaldes ældre IME'er, fungerer kun i Windows Desktop-apps og ikke UWP-apps. Denne afhjælpning forhindrer også, at denne ældre IME indlæses i den angivne Windows Desktop-app.
  • Windows Event Hooks – Et program kan kalde SetWinEventHook-API'en for at måle interesse i en hændelse, der finder sted. Der er angivet en DLL-fil, som kan indsættes i processen. Denne afhjælpning tvinger hook'en til at blive sendt til registreringsprocessen i stedet for at køre processen via en indskudt DLL.

Kompatibilitetsovervejelser

De fleste af disse udvidelsespunkter bruges relativt sjældent, så kompatibilitetseffekten er typisk lille, især på et individuelt programniveau. Den ene overvejelse er, hvis brugerne bruger ældre IME'er, der ikke er fra Microsoft, og som ikke fungerer sammen med det beskyttede program.

Konfigurationsindstillinger:

Der er ingen konfigurationsindstillinger for denne afhjælpning.

Bemærk!

Deaktivering af udvidelsespunkter har ingen overvågningstilstand.

Deaktiver Win32k-systemkald

Beskrivelse

Win32k.sys giver en bred angrebsoverflade til en person med ondsindede hensigter. Som en kernetilstandskomponent målrettes den ofte som en escape-vektor for programmer, der er sandkassebaseret. Denne afhjælpning forhindrer kald til win32k.sys ved at blokere en tråd fra at konvertere sig selv til en GUI-tråd, som derefter får adgang til at aktivere Win32k-funktioner. En tråd er ikke-GUI, når den oprettes, men konverteres ved første kald til win32k.sys eller via et API-kald til IsGuiThread.

Kompatibilitetsovervejelser

Denne afhjælpning er udviklet til processer, der er dedikerede processer uden brugergrænseflade. Mange moderne browsere bruger f.eks. procesisolation og inkorporerer ikke-brugergrænsefladeprocesser. Alle programmer, der viser en GUI ved hjælp af en enkelt proces, påvirkes af denne afhjælpning.

Konfigurationsindstillinger:

Kun overvågning – Du kan aktivere denne afhjælpning i overvågningstilstand for at måle den potentielle kompatibilitetsvirkning på et program. Overvågningshændelser kan derefter vises enten i Logbog eller ved hjælp af Avanceret jagt på trusler Microsoft Defender for Endpoint.

Tillad ikke underprocesser

Beskrivelse

Denne afhjælpning forhindrer et program i at oprette nye underordnede programmer. En almindelig teknik, der bruges af modspillere, er at starte en proces, der er tillid til, på enheden med skadeligt input (et "living off the land"-angreb), som ofte kræver, at der startes et andet program på enheden. Hvis der ikke er nogen legitime årsager til, at et program vil starte en underordnet proces, afhjælper denne afhjælpning den potentielle angrebsvektor. Afhjælpningen anvendes ved at angive en egenskab for procestokenet, som blokerer oprettelse af et token for den underordnede proces med fejlmeddelelsen STATUS_CHILD_PROCESS_BLOCKED.

Kompatibilitetsovervejelser

Hvis dit program af en eller anden grund starter underordnede programmer, f.eks. understøttende links, der starter en browser eller en ekstern browser, eller som starter andre hjælpeprogrammer på computeren, brydes denne funktionalitet med denne afhjælpning anvendt.

Konfigurationsindstillinger:

Kun overvågning – Du kan aktivere denne afhjælpning i overvågningstilstand for at måle den potentielle kompatibilitetsvirkning på et program. Overvågningshændelser kan derefter vises enten i Logbog eller ved hjælp af Avanceret jagt på trusler Microsoft Defender for Endpoint.

Eksportér adressefiltrering (EAF)

Beskrivelse

Eksport af adressefiltrering (EAF) mindsker risikoen for skadelig kode, der kigger på eksportér adressetabellen for alle indlæste moduler for at finde moduler, der indeholder nyttige API'er til deres angreb. Dette er en almindelig taktik, der bruges af shellcode. For at afhjælpe risikoen for et sådant angreb beskytter denne afhjælpning tre ofte angrebne moduler:

  • ntdll.dll
  • kernelbase.dll
  • kernel32.dll

Afhjælpningen beskytter hukommelsessiden i [eksportmappen, der peger på eksportadressetabellen. Denne hukommelsesside har den PAGE_GUARD beskyttelse, der er anvendt på den. Når nogen forsøger at få adgang til denne hukommelse, genereres der en STATUS_GUARD_PAGE_VIOLATION. Afhjælpningen håndterer denne undtagelse, og hvis adgangsinstruktionen ikke består valideringen, afsluttes processen.

Kompatibilitetsovervejelser

Denne afhjælpning er primært et problem for programmer som fejlfindingsværktøjer, sandkasseprogrammer, programmer, der bruger DRM, eller programmer, der implementerer antifejlfindings-teknologi.

Konfigurationsindstillinger:

Valider adgang for moduler, der ofte misbruges af udnyttelser – Denne indstilling, også kendt som EAF+, tilføjer beskyttelse for andre ofte angrebne moduler:

  • mshtml.dll
  • flash*.ocx
  • jscript*.ocx
  • vbscript.dll
  • vgx.dll
  • mozjs.dll
  • xul.dll
  • acrord32.dll
  • acrofx32.dll
  • acroform.api

Hvis du aktiverer EAF+, føjer denne afhjælpning desuden beskyttelse af PAGE_GUARD til den side, der indeholder headeren "MZ", de første 2 byte i DOS-headeren i en PE-fil. Dette er desuden et aspekt af kendt hukommelsesindhold, som shellcode kan søge efter for at identificere potentielt interessante moduler i hukommelsen.

Kun overvågning – Du kan aktivere denne afhjælpning i overvågningstilstand for at måle den potentielle kompatibilitetsvirkning på et program. Overvågningshændelser kan derefter vises enten i Logbog eller ved hjælp af Avanceret jagt på trusler Microsoft Defender for Endpoint.

Gennemtving tilfældigheder for afbildninger (obligatorisk ASLR)

Beskrivelse

ASLR (Address Space Layout Randomization) mindsker risikoen for, at en hacker bruger deres viden om systemets hukommelseslayout til at eksekvere kode, der allerede findes i proceshukommelsen og allerede er markeret som eksekverbar. Dette kan mindske risikoen for en hacker ved hjælp af teknikker som f.eks. return-to-libc-angreb, hvor modpersonen indstiller konteksten og derefter ændrer afsenderadressen for at eksekvere eksisterende kode med kontekst, der passer til modpersonens formål.

Obligatorisk ASLR gennemtvinger en ny basis for alle DLL-filer i processen. En udvikler kan aktivere ASLR ved hjælp af linkerindstillingen /DYNAMICBASE, og denne afhjælpning har samme effekt.

Når hukommelsesstyringen tilknytter billedet til processen, opretter obligatorisk ASLR tvungen rebasering af DLL'er og EXE'er, der ikke har tilmeldt sig ASLR. Bemærk dog, at denne nye basis ikke har nogen entropi og derfor kan placeres på en forudsigelig placering i hukommelsen. Denne afhjælpning skal kombineres med Randomiser hukommelsesallokeringer (bottom-up ASLR)for en genbaseret og randomiseret placering af binære filer.

Kompatibilitetsovervejelser

Denne kompatibilitetseffekt af ASLR er typisk begrænset til ældre programmer, der blev bygget ved hjælp af compilere, der foretog antagelser om basisadressen for en binær fil eller har fjernet grundlæggende virksomhedsflytningsoplysninger. Dette kan føre til uforudsigelige fejl, da eksekveringsflowet forsøger at hoppe til det forventede i stedet for den faktiske placering i hukommelsen.

Konfigurationsindstillinger:

Tillad ikke strippede billeder - Denne indstilling blokerer indlæsningen af billeder, der har fjernet virksomhedsoplysninger. Windows PE-filformatet indeholder absolutte adresser, og compileren genererer også en [basisflytningstabel, som indlæseren kan bruge til at finde alle relative hukommelsesreferencer og deres forskydning, så de kan opdateres, hvis den binære fil ikke indlæses på den foretrukne basisadresse. Nogle ældre programmer fjerner disse oplysninger i produktionsbuilds, og derfor kan disse binære filer ikke oprettes igen. Denne afhjælpning blokerer sådanne binære filer fra at blive indlæst (i stedet for at give dem mulighed for at blive indlæst på deres foretrukne basisadresse).

Bemærk!

Gennemtving tilfældigheder for afbildninger (obligatorisk ASLR) har ingen overvågningstilstand.

Hardware-gennemtvunget stakbeskyttelse

Beskrivelse

Hardware-gennemtvunget stakbeskyttelse giver robust beskyttelse mod ROP-udnyttelser, da den vedligeholder en registrering af det tilsigtede udførelsesflow for et program. For at sikre problemfri indførelse af økosystem og programkompatibilitet tilbyder Windows denne beskyttelse som en tilvalgsmodel, så udviklere kan modtage denne beskyttelse i dit eget tempo.

Kompatibilitetsovervejelser

Hardware-gennemtvunget stakbeskyttelse fungerer kun på chipsæt med understøttelse af hardwareskyggestak, Intels CET (Control-flow Enforcement Technology) eller AMD-skyggestak.

Hvis du kører programmer, der er baseret på .NET Framework, fungerer hardware-gennemtvunget stakbeskyttelse sammen med .NET Framework 7 (tilvalg) eller nyere. Hvis du bruger en ældre version, kan du komme ud for nedbrud eller et højt CPU-forbrug. Disse problemer kan også opstå i overvågningstilstand, eller når du kun målretter kompatible moduler.

Konfigurationsindstillinger:

Kun overvågning – Du kan aktivere denne afhjælpning i overvågningstilstand for at måle den potentielle kompatibilitetsvirkning på et program. Overvågningshændelser kan derefter vises enten i Logbog eller ved hjælp af Avanceret jagt på trusler Defender for Endpoint.

Gennemtving for alle moduler i stedet for kompatible moduler – Du kan aktivere denne afhjælpning for at gennemtvinge for alle moduler i stedet for kompatible moduler.

Importadressefiltrering (IAF)

Beskrivelse

IAF-afhjælpningen (Import Address Filtering) hjælper med at afhjælpe risikoen for, at en modperson ændrer et programs kontrolflow ved at ændre importadressetabellen (IAT) for at omdirigere til vilkårlig kode efter hackerens eget valg, når denne funktion kaldes. En person med ondsindede hensigter kan bruge denne tilgang til at overtage kontrollen eller til at opsnappe, undersøge og potentielt blokere kald til følsomme API'er.

Hukommelsessiderne for alle beskyttede API'er har den PAGE_GUARD beskyttelse, der gælder for dem. Når nogen forsøger at få adgang til denne hukommelse, genereres der en STATUS_GUARD_PAGE_VIOLATION. Afhjælpningen håndterer denne undtagelse, og hvis adgangsinstruktionen ikke består valideringen, afsluttes processen.

Denne afhjælpning beskytter følgende Windows-API'er:

  • GetProcAddress
  • GetProcAddressForCaller
  • LoadLibraryA
  • LoadLibraryExA
  • LoadLibraryW
  • LoadLibraryExW
  • LdrGetProcedureAddress
  • LdrGetProcedureAddressEx
  • LdrGetProcedureAddressForCaller
  • LdrLoadDll
  • VirtualProtect
  • VirtualProtectEx
  • VirtualAlloc
  • VirtualAllocEx
  • NtAllocateVirtualMemory
  • NtProtectVirtualMemory
  • CreateProcessA
  • CreateProcessW
  • WinExec
  • CreateProcessAsUserA
  • CreateProcessAsUserW
  • GetModuleHandleA
  • GetModuleHandleW
  • RtlDecodePointer
  • DecodePointer

Kompatibilitetsovervejelser

Legitime programmer, der udfører API-opfangelse, kan blive registreret af denne afhjælpning og få nogle programmer til at gå ned. Eksempler omfatter softwaresikkerhed og programkompatibilitet shims.

Konfigurationsindstillinger:

Kun overvågning – Du kan aktivere denne afhjælpning i overvågningstilstand for at måle den potentielle kompatibilitetsvirkning på et program. Overvågningshændelser kan derefter vises enten i Logbog eller ved hjælp af Avanceret jagt på trusler Microsoft Defender for Endpoint.

Brug tilfældige placeringer til allokering (omvendt ASLR)

Beskrivelse

Randomisering af hukommelsesallokeringer (bottom-up ASLR) føjer entropi til flytninger, så deres placering er randomiseret og derfor mindre forudsigelig. Denne afhjælpning kræver obligatorisk ASLR for at træde i kraft.

Størrelsen på 32-bit adresseintervallet placerer praktiske begrænsninger på den entropi, der kan tilføjes, og derfor gør 64-bit programmer det sværere for en hacker at gætte en placering i hukommelsen.

Kompatibilitetsovervejelser

De fleste programmer, der er kompatible med Obligatorisk ASLR (rebasing), er også kompatible med den anden entropi af Bund-top-ASLR. Nogle programmer kan have problemer med afkortelse af pointer, hvis de gemmer lokale pointers i 32-bit variabler (forventer en basisadresse under 4 GB), og de vil derfor ikke være kompatible med indstillingen med høj entropi (som kan deaktiveres).

Konfigurationsindstillinger:

Brug ikke høj entropi – denne indstilling deaktiverer brugen af ASLR med høj entropi, som føjer 24-bit entropi (1 TB varians) til bottom-up allokeringen for 64-bit programmer.

Bemærk!

Randomize-hukommelsesallokeringer (bottom-up ASLR) har ingen overvågningstilstand.

Simuler udførelse (SimExec)

Beskrivelse

Simuler eksekvering (SimExec) er kun en afhjælpning til 32-bit programmer. Dette hjælper med at validere, at kald til følsomme API'er vender tilbage til legitime opkaldsfunktioner. Det gør den ved at opfange opkald til følsomme API'er og derefter simulere eksekveringen af disse API'er ved at gå gennem de kodede assemblysprog instruktioner, der søger efter RET-instruktionen, som skal vende tilbage til personen, der ringer op. Den undersøger derefter denne funktion og går tilbage i hukommelsen for at finde den foregående OPKALD-instruktion for at afgøre, om funktionen og OPKALD-instruktionen stemmer overens, og at RET ikke er blevet opfanget.

De API'er, der opfanges af denne afhjælpning, er:

  • LoadLibraryA
  • LoadLibraryW
  • LoadLibraryExA
  • LoadLibraryExW
  • LdrLoadDll
  • VirtualAlloc
  • VirtualAllocEx
  • NtAllocateVirtualMemory
  • VirtualProtect
  • VirtualProtectEx
  • NtProtectVirtualMemory
  • HeapCreate
  • RtlCreateHeap
  • CreateProcessA
  • CreateProcessW
  • CreateProcessInternalA
  • CreateProcessInternalW
  • NtCreateUserProcess
  • NtCreateProcess
  • NtCreateProcessEx
  • CreateRemoteThread
  • CreateRemoteThreadEx
  • NtCreateThreadEx
  • WriteProcessMemory
  • NtWriteVirtualMemory
  • WinExec
  • CreateFileMappingA
  • CreateFileMappingW
  • CreateFileMappingNumaW
  • NtCreateSection
  • MapViewOfFile
  • MapViewOfFileEx
  • MapViewOfFileFromApp
  • LdrGetProcedureAddressForCaller

Hvis der registreres en ROP-gadget, afsluttes processen.

Kompatibilitetsovervejelser

Programmer, der udfører API-opsnapning, især sikkerhedssoftware, kan forårsage kompatibilitetsproblemer med denne afhjælpning.

Denne afhjælpning er ikke kompatibel med afhjælpningen af den vilkårlige Code Guard-afhjælpning.

Konfigurationsindstillinger:

Kun overvågning – Du kan aktivere denne afhjælpning i overvågningstilstand for at måle den potentielle kompatibilitetsvirkning på et program. Overvågningshændelser kan derefter vises enten i Logbog eller ved hjælp af Avanceret jagt på trusler Microsoft Defender for Endpoint.

Valider API-aktivering (CallerCheck)

Beskrivelse

Valider API-aktivering (CallerCheck) er en afhjælpning af ROP-teknikker (return-oriented programming), der validerer, at følsomme API'er blev ringet op af en gyldig opkalder. Denne afhjælpning undersøger den videresendte returadresse og opdeler derefter heuristisk bagud for at finde et opkald over returadressen for at afgøre, om opkaldsmålet svarer til den parameter, der overføres til funktionen.

De API'er, der opfanges af denne afhjælpning, er:

  • LoadLibraryA
  • LoadLibraryW
  • LoadLibraryExA
  • LoadLibraryExW
  • LdrLoadDll
  • VirtualAlloc
  • VirtualAllocEx
  • NtAllocateVirtualMemory
  • VirtualProtect
  • VirtualProtectEx
  • NtProtectVirtualMemory
  • HeapCreate
  • RtlCreateHeap
  • CreateProcessA
  • CreateProcessW
  • CreateProcessInternalA
  • CreateProcessInternalW
  • NtCreateUserProcess
  • NtCreateProcess
  • NtCreateProcessEx
  • CreateRemoteThread
  • CreateRemoteThreadEx
  • NtCreateThreadEx
  • WriteProcessMemory
  • NtWriteVirtualMemory
  • WinExec
  • CreateFileMappingA
  • CreateFileMappingW
  • CreateFileMappingNumaW
  • NtCreateSection
  • MapViewOfFile
  • MapViewOfFileEx
  • MapViewOfFileFromApp
  • LdrGetProcedureAddressForCaller

Hvis der registreres en ROP-gadget, afsluttes processen.

Kompatibilitetsovervejelser

Programmer, der udfører API-opsnapning, især sikkerhedssoftware, kan forårsage kompatibilitetsproblemer med denne afhjælpning.

Denne afhjælpning er ikke kompatibel med afhjælpningen af den vilkårlige Code Guard-afhjælpning.

Konfigurationsindstillinger:

Kun overvågning – Du kan aktivere denne afhjælpning i overvågningstilstand for at måle den potentielle kompatibilitetsvirkning på et program. Overvågningshændelser kan derefter vises enten i Logbog eller ved hjælp af Avanceret jagt på trusler Microsoft Defender for Endpoint.

Valider undtagelseskæder (SEHOP)

Beskrivelse

Valider undtagelseskæder (SEHOP) er en afhjælpning mod SEH-overskrivningsteknikken (Structured Exception Handler ). SEH er den proces, som et program kan bruge til at håndtere en bestemt undtagelse. Undtagelseshandlere er sammenkædet, så hvis én undtagelseshandler vælger ikke at håndtere en bestemt undtagelse, kan den overføres til den næste undtagelseshandler i kæden, indtil den ene beslutter sig for at håndtere den. Da listen over handlere er dynamisk, gemmes den i stakken. En person med ondsindede hensigter kan bruge en stakoverløbssårbarhed til derefter at overskrive undtagelseshandleren med en pointer til den kode, som hackeren vælger.

Denne afhjælpning er afhængig af designet af SEH, hvor hver SEH-post indeholder både en pointer til undtagelseshandleren og en pointer til den næste handler i undtagelseskæden. Denne afhjælpning kaldes af undtagelsesafsenderen, som validerer SEH-kæden, når der aktiveres en undtagelse. Den bekræfter, at:

  • Alle posterne til undtagelseskæder er inden for stakgrænserne
  • Alle undtagelsesposter er justeret
  • Der er ingen markører til undtagelseshandlere, der peger på stakken
  • Der er ingen tilbagemarkører
  • Undtagelseskæden slutter ved en kendt endelig undtagelseshandler

Hvis disse valideringer mislykkes, afbrydes håndteringen af undtagelser, og undtagelsen håndteres ikke.

Kompatibilitetsovervejelser

Kompatibilitetsproblemer med SEHOP er relativt sjældne. Det er ikke normalt, at et program er afhængigt af, at undtagelseskæden beskadiges. Men nogle programmer er påvirket af de subtile ændringer i timing, som kan manifestere sig som en race betingelse, der afslører en latent multi-threading fejl i programmet.

Konfigurationsindstillinger:

Bemærk!

Validering af undtagelseskæder (SEHOP) har ingen overvågningstilstand.

Ugyldig anvendelse af handle

Beskrivelse

Validering af brug af handle er en afhjælpning, der hjælper med at beskytte mod en hacker ved hjælp af en eksisterende handle til at få adgang til et beskyttet objekt. En handle er en reference til et beskyttet objekt. Hvis programkoden refererer til en ugyldig handle, kan det indikere, at en modstander forsøger at bruge en handle, som den tidligere har registreret (men som optællingen af programreferencer ikke ville være opmærksom på). Hvis programmet forsøger at bruge et ugyldigt objekt i stedet for blot at returnere null, udløser programmet en undtagelse (STATUS_INVALID_HANDLE).

Denne afhjælpning anvendes automatisk på Windows Store-programmer.

Kompatibilitetsovervejelser

Programmer, der ikke nøjagtigt sporede referencer, håndterer referencer, og som ikke har ombrudt disse handlinger i undtagelseshandlere, vil muligvis blive påvirket af denne afhjælpning.

Konfigurationsindstillinger:

Bemærk!

Validering af brugen af handle har ingen overvågningstilstand.

Valider heap-integriteten

Beskrivelse

Afhjælpningen af validering af heap-integritet øger beskyttelsesniveauet for heap-afhjælpninger i Windows ved at få programmet til at afslutte, hvis der registreres en beskadigelse af heap. Afhjælpningerne omfatter:

  • Forhindrer, at en HEAP-handle frigøres
  • Udfører en anden validering af udvidede blokheadere til heap-allokeringer
  • Kontrollerer, at heaptildelinger ikke allerede er markeret som i brug
  • Tilføjelse af beskyttelsessider til store allokeringer, heap-segmenter og undersegmenter, der er over en vis minimumstørrelse

Kompatibilitetsovervejelser

Denne afhjælpning anvendes allerede som standard for 64-bit programmer og for 32-bit programmer, der er målrettet til Windows Vista eller nyere. Ældre programmer fra Windows XP eller tidligere er mest udsat, selvom kompatibilitetsproblemer er sjældne.

Konfigurationsindstillinger:

Bemærk!

Validering af heap-integritet har ingen overvågningstilstand.

Valider integriteten af afbildningsafhængighed

Beskrivelse

Afhjælpningen af validering af billedafhængighed hjælper med at beskytte mod angreb, der forsøger at erstatte kode med dll-filer, der statistisk er sammenkædet med binære Windows-filer. Teknikken i DLL misbruger indlæsningsfunktionens søgemekanisme til at indsætte skadelig kode, som kan bruges til at få skadelig kode til at køre i en kontekst med administratorrettigheder. Når indlæsningsprogrammet indlæser en Windows-signeret binær fil og derefter indlæser dll-filer, som den binære fil afhænger af, bekræftes disse binære filer for at sikre, at de også er digitalt signeret som en binær Windows-fil. Hvis det ikke lykkes at kontrollere signaturen, indlæses DLL-filen ikke, og der udløses en undtagelse, hvor der returneres en status på STATUS_INVALID_IMAGE_HASH.

Kompatibilitetsovervejelser

Kompatibilitetsproblemer er ikke almindelige. Programmer, der afhænger af at erstatte Binære Windows-filer med lokale private versioner, påvirkes, og der er også en lille risiko for at afsløre diskrete timingfejl i flertrådet programmer.

Konfigurationsindstillinger:

Kun overvågning – Du kan aktivere denne afhjælpning i overvågningstilstand for at måle den potentielle kompatibilitetsvirkning på et program. Overvågningshændelser kan derefter vises enten i Logbog eller ved hjælp af Avanceret jagt på trusler Microsoft Defender for Endpoint.

Valider stakintegritet (StackPivot)

Beskrivelse

Afhjælpningen af validering af stakintegritet (StackPivot) hjælper med at beskytte mod Stack Pivot-angrebet, et ROP-angreb, hvor en hacker opretter en falsk stak i heap-hukommelsen og derefter narrer programmet til at vende tilbage til den falske stak, der styrer kørslens flow.

Denne afhjælpning opfanger mange Windows-API'er og undersøger værdien af stakpointeren. Hvis adressen på stakmarkøren ikke ligger mellem bunden og toppen af stakken, registreres en hændelse, og hvis den ikke er i overvågningstilstand, afsluttes processen.

De API'er, der opfanges af denne afhjælpning, er:

  • LoadLibraryA
  • LoadLibraryW
  • LoadLibraryExA
  • LoadLibraryExW
  • LdrLoadDll
  • VirtualAlloc
  • VirtualAllocEx
  • NtAllocateVirtualMemory
  • VirtualProtect
  • VirtualProtectEx
  • NtProtectVirtualMemory
  • HeapCreate
  • RtlCreateHeap
  • CreateProcessA
  • CreateProcessW
  • CreateProcessInternalA
  • CreateProcessInternalW
  • NtCreateUserProcess
  • NtCreateProcess
  • NtCreateProcessEx
  • CreateRemoteThread
  • CreateRemoteThreadEx
  • NtCreateThreadEx
  • WriteProcessMemory
  • NtWriteVirtualMemory
  • WinExec
  • CreateFileMappingA
  • CreateFileMappingW
  • CreateFileMappingNumaW
  • NtCreateSection
  • MapViewOfFile
  • MapViewOfFileEx
  • MapViewOfFileFromApp
  • LdrGetProcedureAddressForCaller

Kompatibilitetsovervejelser

Programmer, der bruger falske stakke, påvirkes, og der er også en lille risiko for at afsløre subtile timingbugs i flertrådet programmer. Programmer, der udfører API-opsnapning, især sikkerhedssoftware, kan forårsage kompatibilitetsproblemer med denne afhjælpning.

Denne afhjælpning er ikke kompatibel med afhjælpningen af den vilkårlige Code Guard-afhjælpning.

Konfigurationsindstillinger:

Kun overvågning – Du kan aktivere denne afhjælpning i overvågningstilstand for at måle den potentielle kompatibilitetsvirkning på et program. Overvågningshændelser kan derefter vises enten i Logbog eller ved hjælp af Avanceret jagt på trusler Microsoft Defender for Endpoint.

Tip

Vil du vide mere? Engage med Microsoft Security-community'et i vores tech-community: Microsoft Defender for Endpoint Tech Community.