Bescherming tegen misbruik aanpassen

Van toepassing op:

Wilt u Defender voor Eindpunt ervaren? Meld u aan voor een gratis proefversie.

Gebruiksbeveiliging past automatisch een aantal technieken voor het beperken van exploits toe op zowel de processen van het besturingssysteem als op afzonderlijke apps.

Configureer deze instellingen met de Windows-beveiliging app op een afzonderlijk apparaat. Exporteer vervolgens de configuratie als een XML-bestand, zodat u deze kunt implementeren op andere apparaten. Gebruik Groepsbeleid om het XML-bestand te distribueren naar meerdere apparaten tegelijk. U kunt de risico's ook configureren met PowerShell.

In dit artikel vindt u een overzicht van alle risico's die beschikbaar zijn voor de bescherming van exploits. Hiermee wordt aangegeven of de beperking kan worden toegepast op het hele systeem of op afzonderlijke apps, en wordt een korte beschrijving gegeven van de manier waarop de beperking werkt.

Er wordt ook beschreven hoe u de beperking kunt in- of configureren met Windows-beveiliging, PowerShell en MDM-configuratieserviceproviders (MDM). Dit is de eerste stap in het maken van een configuratie die u in uw netwerk kunt implementeren. De volgende stap bestaat uit het genereren, exporteren, importerenen implementeren van de configuratie op meerdere apparaten.

Waarschuwing

Sommige technologieën voor misbruikbeveiliging kunnen compatibiliteitsproblemen hebben met sommige toepassingen. Test misbruikbeveiliging in alle scenario's voor doelgebruik met behulp van controlemodus, voordat u de configuratie implementeert in een productieomgeving of de rest van uw netwerk.

Beschermingsbeperkende maatregelen benutten

Alle mitigaties kunnen worden geconfigureerd voor afzonderlijke apps. Sommige risico's kunnen ook worden toegepast op het besturingssysteemniveau.

U kunt elk van de beperkingswaarden instellen in, uit of op de standaardwaarde. Sommige risico's hebben extra opties die worden aangegeven in de beschrijving in de tabel.

Standaardwaarden worden altijd tussen haakjes opgegeven bij de optie Standaard gebruiken voor elke beperking. In het volgende voorbeeld is de standaardinstelling voor preventie van gegevensuitvoering 'Aan'.

De standaardconfiguratie gebruiken voor elk van de instellingen voor risicobeperking geeft onze aanbeveling aan voor een basisniveau van beveiliging voor dagelijks gebruik voor thuisgebruikers. Ondernemingsimplementaties moeten rekening houden met de beveiliging die nodig is voor hun individuele behoeften en moeten mogelijk de configuratie wijzigen buiten de standaardinstellingen.

Zie de PowerShell-verwijzingstabel onder aan dit artikel voor de bijbehorende PowerShell-cmdlets voor elke beperking.

Risicobeperking Omschrijving Kan worden toegepast op Auditmodus beschikbaar
Control Flow Guard (CFG) Zorgt voor de integriteit van de besturingsstroom voor indirecte oproepen. U kunt desgewenst exporten onderdrukken en strikte CFG gebruiken. Systeem- en app-niveau Nee
Preventie van gegevensuitvoering (DEP) Hiermee voorkomt u dat code wordt uitgevoerd op geheugenpagina's met alleen gegevens, zoals de stapel en de stapels. Alleen configureerbaar voor 32-bits (x86)-apps, die permanent zijn ingeschakeld voor alle andere architecturen. Kan optioneel ATL-thunk-emulatie inschakelen. Systeem- en app-niveau Nee
Randomisering voor afbeeldingen forceren (verplichte ASLR) Met geweld verplaatst u afbeeldingen die niet zijn gecompileerd met /DYNAMICBASE. Kan desgewenst mislukken bij het laden van afbeeldingen die geen bedrijfsverplaatsingsgegevens bevatten. Systeem- en app-niveau Nee
Geheugentoewijzingen willekeurig toekennen (bottom-up ASLR). Willekeurig locaties voor virtuele geheugentoewijzingen. Het omvat systeemstructuurhopen, stapels, TEB's en PEBs. U kunt desgewenst een bredere variantie van randomisatie gebruiken voor 64-bits processen. Systeem- en app-niveau Nee
Uitzonderingsketens valideren (SEHOP) Zorgt voor de integriteit van een uitzonderingsketen tijdens het verzenden van uitzonderingen. Alleen configureerbaar voor 32-bits (x86)-toepassingen. Systeem- en app-niveau Nee
Integriteit van heap valideren Beëindigt een proces wanneer er enorm veel beschadiging wordt gedetecteerd. Systeem- en app-niveau Nee
Beveiliging van arbitraire code (ACG) Voorkomt de introductie van niet-afbeeldingsgebackde uitvoerbare code en voorkomt dat codepagina's worden gewijzigd. Kan desgewenst threadopt-out toestaan en externe downgrade toestaan (alleen configureerbaar met PowerShell). Alleen app-niveau Ja
Afbeeldingen met lage integriteit blokkeren Hiermee voorkomt u het laden van afbeeldingen die zijn gemarkeerd met Lage integriteit. Alleen app-niveau Ja
Externe afbeeldingen blokkeren Hiermee voorkomt u dat afbeeldingen van externe apparaten worden geladen. Alleen app-niveau Nee
Niet-vertrouwde lettertypen blokkeren Hiermee voorkomt u dat op GDI gebaseerde lettertypen worden geladen die niet zijn geïnstalleerd in de systeemlettertypenmap, met name lettertypen op het web. Alleen app-niveau Ja
Beveiliging van code-integriteit Hiermee wordt het laden van afbeeldingen die zijn ondertekend door Microsoft, WHQL of hoger, beperkt. Kan desgewenst toestaan dat Microsoft Store ondertekende afbeeldingen. Alleen app-niveau Ja
Uitbreidingspunten uitschakelen Hiermee schakelt u diverse extensibility-mechanismen uit waarmee DLL-injectie in alle processen mogelijk is, zoals AppInit-DLL's, vensterhaken en Winsock-serviceproviders. Alleen app-niveau Nee
Systeemoproepen van Win32k uitschakelen Hiermee voorkomt u dat een app de win32k-systeemoproeptabel gebruikt. Alleen app-niveau Ja
Onderliggende processen niet toestaan Voorkomt dat een app onderliggende processen maakt. Alleen app-niveau Ja
Export address filtering (EAF) Detecteert gevaarlijke bewerkingen die worden opgelost met schadelijke code. Kan desgewenst de toegang valideren door modules die veel worden gebruikt door exploits. Alleen app-niveau Ja
Filteren op adressen importeren (IAF) Detecteert gevaarlijke bewerkingen die worden opgelost met schadelijke code. Alleen app-niveau Ja
Uitvoering simuleren (SimExec) Zorgt ervoor dat oproepen naar gevoelige API's terugkeren naar legitieme bebellen. Alleen configureerbaar voor 32-bits (x86)-toepassingen. Niet compatibel met ACG. Alleen app-niveau Ja
API-aanroep valideren (CallerCheck) Zorgt ervoor dat gevoelige API's worden aangeroepen door legitieme beroepers. Alleen configureerbaar voor 32-bits (x86)-toepassingen. Niet compatibel met ACG Alleen app-niveau Ja
Ingangsgebruik valideren Hierdoor wordt een uitzondering opgeheven voor ongeldige greepverwijzingen. Alleen app-niveau Nee
Integriteit van afhankelijkheid van afbeelding valideren Dwingt code ondertekening af voor het Windows het laden van afbeeldingen. Alleen app-niveau Nee
Integriteit van stack valideren (StackPivot) Zorgt ervoor dat de stapel niet is omgeleid voor gevoelige API's. Niet compatibel met ACG. Alleen app-niveau Ja

Belangrijk

Als u een app toevoegt aan de sectie Programma-instellingen en daar afzonderlijke instellingen voor beperking configureert, worden deze boven de configuratie geëerd voor dezelfde beperking die is opgegeven in de sectie Systeeminstellingen. De volgende matrix en voorbeelden geven aan hoe standaardinstellingen werken:

Ingeschakeld in programma-instellingen Ingeschakeld in systeeminstellingen Gedrag
Ja Nee Zoals gedefinieerd in programma-instellingen
Ja Ja Zoals gedefinieerd in programma-instellingen
Nee Ja Zoals gedefinieerd in systeeminstellingen
Nee Ja Standaard zoals gedefinieerd in de standaardoptie Gebruiken
  • Voorbeeld 1

    Mikael configureert preventie van gegevensuitvoering (DEP) in de sectie Systeeminstellingen om standaard uit te zijn.

    Mikael voegt vervolgens de app-test.exe toe aan de sectie Programma-instellingen. In de opties voor die app, onder Preventie van gegevensuitvoering (DEP), schakelt hij de optie Systeeminstellingen overschrijven in en stelt hij de schakeloptie in op Aan. Er worden geen andere apps weergegeven in de sectie Programma-instellingen.

    Het resultaat is dat DEP alleen wordt ingeschakeld voor test.exe. Voor alle andere apps is DEP niet toegepast.

  • Voorbeeld 2

    Josie configureert preventie van gegevensuitvoering (DEP) in de sectie Systeeminstellingen om standaard uit te zijn.

    Vervolgens voegt Josie de app-test.exe toe aan de sectie Programma-instellingen. In de opties voor die app, onder Preventie van gegevensuitvoering (DEP), schakelt ze de optie Systeeminstellingen overschrijven in en stelt ze de overschakeling in op Aan.

    Josie voegt ook de app-miles.exe toe aan de sectie Programma-instellingen en configureert Control Flow Guard (CFG) in aan. De optie Systeeminstellingen overschrijven voor DEP of andere risico's voor die app wordt niet ingeschakeld.

    Het resultaat is dat DEP wordt ingeschakeld voor test.exe. DEP is niet ingeschakeld voor een andere app, inclusief miles.exe. CFG wordt ingeschakeld voor miles.exe.

Notitie

Als u problemen hebt gevonden in dit artikel, kunt u dit rechtstreeks melden bij een Windows Server/Windows Client-partner of de technische ondersteuningsnummers van Microsoft voor uw land gebruiken.

Beperking op systeemniveau configureren met de Windows-beveiliging app

  1. Open de Windows-beveiliging app door het schildpictogram in de taakbalk te selecteren of door te zoeken in het startmenu voor Defender.

  2. Selecteer de tegel App & browserbesturingselement (of het app-pictogram op de linkermenubalk) en selecteer vervolgens Beveiliging van exploit.

  3. Zoek onder de sectie Systeeminstellingen de beperking die u wilt configureren en selecteer een van de volgende opties. Apps die niet afzonderlijk zijn geconfigureerd in de sectie Programma-instellingen, gebruiken de instellingen die hier zijn geconfigureerd:

    • Standaard ingeschakeld: de beperking is ingeschakeld voor apps die deze beperking niet hebben ingesteld in de app-specifieke sectie Programma-instellingen
    • Standaard uitgeschakeld: de beperking is uitgeschakeld voor apps die deze beperking niet hebben ingesteld in de app-specifieke sectie Programma-instellingen
    • Standaard gebruiken: de beperking is ingeschakeld of uitgeschakeld, afhankelijk van de standaardconfiguratie die is ingesteld door Windows 10 installatie. de standaardwaarde (Aan of Uit) wordt altijd opgegeven naast het standaardlabel Gebruiken voor elke beperking

    Notitie

    Mogelijk ziet u een venster Gebruikersaccountbeheer wanneer u bepaalde instellingen verandert. Voer beheerdersreferenties in om de instelling toe te passen.

    Als u bepaalde instellingen wilt wijzigen, moet u mogelijk opnieuw beginnen.

  4. Herhaal dit voor alle mitigaties op systeemniveau die u wilt configureren.

  5. Ga naar de sectie Programma-instellingen en kies de app op wie u beperking wilt toepassen:

    1. Als de app die u wilt configureren al wordt weergegeven, selecteert u deze en selecteert u Vervolgens Bewerken
    2. Als de app niet wordt weergegeven, selecteert u boven aan de lijst Programma toevoegen om aan te passen en kiest u vervolgens hoe u de app wilt toevoegen:
      • Gebruik Toevoegen op programmanaam om de beperking te laten toepassen op een lopend proces met die naam. U moet een bestand opgeven met een extensie. U kunt een volledig pad invoeren om de beperking te beperken tot alleen de app met die naam op die locatie.
      • Gebruik Het exacte bestandspad kiezen om een standaardvenster Windows Verkenner te gebruiken om het juiste bestand te zoeken en te selecteren.
  6. Nadat u de app hebt geselecteerd, ziet u een lijst met alle risico's die kunnen worden toegepast. Als u de beperking wilt inschakelen, selecteert u het selectievakje en wijzigt u de schuifregelaar in Aan. Selecteer eventuele extra opties. Als u Audit kiest, wordt de beperking alleen toegepast in de auditmodus. U krijgt een melding als u het proces of de app opnieuw wilt starten of als u de app opnieuw wilt Windows.

  7. Herhaal deze stappen voor alle apps en mitigaties die u wilt configureren. Selecteer Toepassen wanneer u klaar bent met het instellen van de configuratie.

U kunt deze instellingen nu exporteren als een XML-bestand of doorgaan met het configureren van app-specifieke mitigaties.

Als u de configuratie exporteert als een XML-bestand, kunt u de configuratie van het ene apparaat naar andere apparaten kopiëren.

PowerShell-verwijzing

U kunt de app Windows-beveiliging gebruiken om exploitbeveiliging te configureren of u kunt PowerShell-cmdlets gebruiken.

De configuratie-instellingen die het laatst zijn gewijzigd, worden altijd toegepast, ongeacht of u PowerShell of Windows-beveiliging. Dit betekent dat als u de app gebruikt om een beperking te configureren en vervolgens PowerShell gebruikt om dezelfde beperking te configureren, de app wordt bijgewerkt om de wijzigingen weer te geven die u met PowerShell hebt aangebracht. Als u vervolgens de app zou gebruiken om de beperking opnieuw te wijzigen, zou deze wijziging van toepassing zijn.

Belangrijk

Wijzigingen die zijn geïmplementeerd op een apparaat via groepsbeleid, overschrijven de lokale configuratie. Wanneer u een eerste configuratie instelt, gebruikt u een apparaat waarop geen groepsbeleidsconfiguratie is toegepast om ervoor te zorgen dat uw wijzigingen niet worden overgenomen.

U kunt het werkwoord PowerShell Get of Set met de cmdlet ProcessMitigation gebruiken. Met behulp van wordt de huidige configuratiestatus weergegeven van eventuele risico's die zijn ingeschakeld op het apparaat: voeg de cmdlet en app exe toe om mitigaties voor alleen die Get -Name app te zien:

Get-ProcessMitigation -Name processName.exe

Belangrijk

Risicobeperking op systeemniveau die niet is geconfigureerd, geeft een status van NOTSET .

Voor instellingen op systeemniveau geeft u aan dat de standaardinstelling voor die beperking NOTSET is toegepast.

Voor instellingen op app-niveau geeft u aan dat de instelling op systeemniveau voor de beperking NOTSET wordt toegepast.

De standaardinstelling voor elke beperking op systeemniveau is zichtbaar in de Windows-beveiliging.

Gebruik Set deze indeling om elke beperking in de volgende indeling te configureren:

Set-ProcessMitigation -<scope> <app executable> -<action> <mitigation or options>,<mitigation or options>,<mitigation or options>

Waarbij:

  • <Scope>:
    • -Name om aan te geven welke risico's moeten worden toegepast op een specifieke app. Geef de uitvoerbare app op na deze vlag.
    • -System om aan te geven dat de beperking moet worden toegepast op systeemniveau
  • <Action>:
    • -Enable om de beperking in te stellen
    • -Disable om de beperking uit te schakelen
  • <Mitigation>:
    • De mitigatie cmdlet zoals gedefinieerd in de onderstaande cmdlets voor risicobeperking, samen met eventuele suboptions (omgeven door spaties). Elke beperking wordt gescheiden met een komma.

Als u bijvoorbeeld de preventie van preventie van gegevensuitvoering (DEP) wilt inschakelen met ATL-thunk-emulatie en voor een uitvoerbare testing.exein de map C:\Apps\LOB\tests, en om te voorkomen dat deze uitvoerbare onderliggende processen maakt, gebruikt u de volgende opdracht:

Set-ProcessMitigation -Name c:\apps\lob\tests\testing.exe -Enable DEP, EmulateAtlThunks, DisallowChildProcessCreation

Belangrijk

Scheid elke optie voor risicobeperking met komma's.

Als u DEP op systeemniveau wilt toepassen, gebruikt u de volgende opdracht:

Set-Processmitigation -System -Enable DEP

Als u beperking wilt uitschakelen, kunt u deze -Enable vervangen door -Disable . Voor risicobeperking op app-niveau wordt de beperking echter alleen uitgeschakeld voor die app.

Als u de beperking wilt herstellen naar de standaardinstelling van het systeem, moet u ook de -Remove cmdlet opnemen, evenals in het volgende voorbeeld:

Set-Processmitigation -Name test.exe -Remove -Disable DEP

U kunt ook bepaalde risico's instellen op de auditmodus. In plaats van de PowerShell-cmdlet te gebruiken voor de beperking, gebruikt u de cmdlet Auditmodus zoals is opgegeven in de onderstaande tabel mitigatie cmdlets.

Als u bijvoorbeeld Arbitrair Code Guard (ACG) wilt inschakelen in de auditmodus voor detesting.exeeerder gebruikt, gebruikt u de volgende opdracht:

Set-ProcessMitigation -Name c:\apps\lob\tests\testing.exe -Enable AuditDynamicCode

U kunt de auditmodus uitschakelen met dezelfde opdracht, maar vervangen door -Enable -Disable .

PowerShell-referentietabel

Deze tabel bevat de PowerShell-cmdlets (en de bijbehorende cmdlet auditmodus) die kunnen worden gebruikt om elke beperking te configureren.

Risicobeperking Van toepassing op PowerShell-cmdlets Cmdlet auditmodus
Control Flow Guard (CFG) Systeem- en app-niveau CFG, StrictCFG, SuppressExports Audit is niet beschikbaar
Preventie van gegevensuitvoering (DEP) Systeem- en app-niveau DEP, EmulateAtlThunks Audit is niet beschikbaar
Randomisering voor afbeeldingen forceren (verplichte ASLR) Systeem- en app-niveau ForceRelocateImages Audit is niet beschikbaar
Geheugentoewijzingen willekeurig toekennen (bottom-up ASLR). Systeem- en app-niveau BottomUp, HighEntropy Audit is niet beschikbaar
Uitzonderingsketens valideren (SEHOP) Systeem- en app-niveau SEHOP, SEHOPTelemetry Audit is niet beschikbaar
Integriteit van heap valideren Systeem- en app-niveau TerminateOnError Audit is niet beschikbaar
Beveiliging van arbitraire code (ACG) Alleen app-niveau DynamicCode AuditDynamicCode
Afbeeldingen met lage integriteit blokkeren Alleen app-niveau BlockLowLabel AuditImageLoad
Externe afbeeldingen blokkeren Alleen app-niveau BlockRemoteImages Audit is niet beschikbaar
Niet-vertrouwde lettertypen blokkeren Alleen app-niveau DisableNonSystemFonts AuditFont, FontAuditOnly
Beveiliging van code-integriteit Alleen app-niveau BlockNonMicrosoftSigned, AllowStoreSigned AuditMicrosoftSigned, AuditStoreSigned
Uitbreidingspunten uitschakelen Alleen app-niveau ExtensionPoint Audit is niet beschikbaar
Systeemoproepen van Win32k uitschakelen Alleen app-niveau DisableWin32kSystemCalls AuditSystemCall
Geen onderliggende processen toestaan Alleen app-niveau DisallowChildProcessCreation AuditChildProcess
Export address filtering (EAF) Alleen app-niveau EnableExportAddressFilterPlus, EnableExportAddressFilter [ 1 ] Audit niet beschikbaar [ 2 ]
Filteren op adressen importeren (IAF) Alleen app-niveau EnableImportAddressFilter Audit niet beschikbaar [ 2 ]
Uitvoering simuleren (SimExec) Alleen app-niveau EnableRopSimExec Audit niet beschikbaar [ 2 ]
API-aanroep valideren (CallerCheck) Alleen app-niveau EnableRopCallerCheck Audit niet beschikbaar [ 2 ]
Ingangsgebruik valideren Alleen app-niveau StrictHandle Audit is niet beschikbaar
Integriteit van afhankelijkheid van afbeelding valideren Alleen app-niveau EnforceModuleDepencySigning Audit is niet beschikbaar
Integriteit van stack valideren (StackPivot) Alleen app-niveau EnableRopStackPivot Audit niet beschikbaar [ 2 ]

[ 1 ] : Gebruik de volgende indeling om EAF-modules voor dlls in te stellen voor een proces:

Set-ProcessMitigation -Name processName.exe -Enable EnableExportAddressFilterPlus -EAFModules dllName1.dll,dllName2.dll

[ 2 ] : Controle voor deze beperking is niet beschikbaar via PowerShell-cmdlets.

De melding aanpassen

Zie voor meer informatie over het aanpassen van de melding wanneer een regel wordt geactiveerd en een app of bestand blokkeert, Windows-beveiliging.

Zie ook