Anpassa exploateringsskydd
Gäller för:
- Microsoft Defender för Endpoint Abonnemang 1
- Microsoft Defender för Endpoint Abonnemang 2
- Microsoft Defender XDR
Vill du uppleva Microsoft Defender för Endpoint? Registrera dig för en kostnadsfri utvärderingsversion.
Sårbarhetsskydd tillämpar automatiskt ett antal tekniker för att reducera exploateringar för operativsystemprocesser och appar.
Konfigurera de här inställningarna med appen Windows Säkerhet på en enskild enhet. Exportera sedan konfigurationen som en XML-fil så att du kan distribuera till andra enheter. Använd grupprincip för att distribuera XML-filen till flera enheter samtidigt. Du kan också konfigurera åtgärder med PowerShell.
I den här artikeln visas var och en av de åtgärder som är tillgängliga för sårbarhetsskydd. Den anger om åtgärden kan tillämpas i hela systemet eller på enskilda appar och ger en kort beskrivning av hur åtgärden fungerar.
Den beskriver också hur du aktiverar eller konfigurerar åtgärder med hjälp av Windows Säkerhet, PowerShell och MDM-konfigurationstjänstleverantörer (CSP:er). Det här är det första steget när du skapar en konfiguration som du kan distribuera i nätverket. Nästa steg omfattar generera, exportera, importera och distribuera konfigurationen till flera enheter.
Varning
Vissa tekniker för riskreducering kan ha kompatibilitetsproblem med vissa program. Du bör testa exploateringsskyddet i alla målanvändningsscenarier med hjälp av granskningsläget innan du distribuerar konfigurationen i en produktionsmiljö eller i resten av nätverket.
Åtgärder för sårbarhetsskydd
Alla åtgärder kan konfigureras för enskilda appar. Vissa åtgärder kan också tillämpas på operativsystemnivå.
Du kan ställa in var och en av åtgärderna som på, av eller till deras standardvärde. Vissa åtgärder har ytterligare alternativ som anges i beskrivningen i tabellen.
Standardvärden anges alltid inom hakparenteser vid alternativet Använd standard för varje åtgärd. I följande exempel är standardvärdet för datasårbarhetsskydd "På".
Konfigurationen Använd standard för var och en av inställningarna för åtgärder anger vår rekommendation om en grundläggande skyddsnivå för daglig användning för hemanvändare. Företagsdistributioner bör överväga det skydd som krävs för deras individuella behov och kan behöva ändra konfigurationen från standard.
De associerade PowerShell-cmdletarna för varje åtgärd finns i PowerShell-referenstabellen längst ned i den här artikeln.
Riskreducering | Beskrivning | Kan tillämpas på | Granskningsläge tillgängligt |
---|---|---|---|
Control Flow Guard (CFG) | Säkerställer kontrollflödesintegritet för direkta anrop. Du kan också ignorera exporter och använda strikt CFG. | System- och appnivå | Nej |
Dataexekveringsskydd (DEP) | Förhindrar att kod körs från endast dataminnessidor, till exempel heap och stacks. Endast konfigurerbar för 32-bitars (x86) appar, permanent aktiverad för alla andra arkitekturer. Kan även aktivera ATL-emulering. | System- och appnivå | Nej |
Framtvinga slumpmässighet för bilder (obligatorisk ASLR) | Tvingande flyttning av avbildningar som inte kompilerats med /DYNAMICBASE. Du kan också misslyckas med att läsa in avbildningar som inte har flyttinformation. | System- och appnivå | Nej |
Slumpmässiga minnesallokeringar (ASLR nedifrån och upp) | Randomiserar platser för virtuell minnesallokering. Den innehåller systemstruktur heaps, staplar, TEB och PEB. Du kan också använda en bredare randomiseringsavvikelse för 64-bitarsprocesser. | System- och appnivå | Nej |
Verifiera undantagskedjor (SEHOP) | Säkerställer integriteten för en undantagskedja under undantagssändning. Kan endast konfigureras för 32-bitars (x86) applikationer. | System- och appnivå | Nej |
Verifiera integritet för heap | Avslutar en process när heapskada identifieras. | System- och appnivå | Nej |
ACG (Arbitrary code guard) | Förhindrar introduktion av körbar kod som inte är avbildningsbaserad och förhindrar att kodsidor ändras. Du kan också tillåta att tråden avregistreras och tillåta fjärrnedgradering (kan endast konfigureras med PowerShell). | Endast appnivå | Ja |
Blockera bilder med låg integritet | Hindrar inläsningen av avbildningar som markerats med låg integritet. | Endast appnivå | Ja |
Blockera fjärrbilder | Hindrar inläsning av avbildningar från fjärrenheter. | Endast appnivå | Nej |
Blockera teckensnitt som inte är betrodda | Förhindrar inläsning av GDI-baserade teckensnitt som inte är installerade i systemets teckensnittskatalog, särskilt teckensnitt från webben. | Endast appnivå | Ja |
Kodintegritetsskydd | Begränsar inläsning av bilder som signerats av Microsoft, WHQL eller senare. Kan också tillåta Microsoft Store signerade avbildningar. | Endast appnivå | Ja |
Inaktivera tilläggspunkter | Inaktiverar olika utökningsmekanismer som tillåter DLL-inmatning i alla processer, till exempel AppInit-DLL:er, fönsterhooks och Winsock-tjänstleverantörer. | Endast appnivå | Nej |
Inaktivera Win32k-systemanrop | Förhindrar att en app använder tabellen för Win32k-systemanrop. | Endast appnivå | Ja |
Tillåt inte blockering av underordnade processer | Förhindrar att en app skapar underordnade processer. | Endast appnivå | Ja |
EAF (Export address filtering) | Identifierar farliga åtgärder som löses av skadlig kod. Du kan också verifiera åtkomsten via moduler som ofta används av sårbarheter. | Endast appnivå | Ja |
IAF (Import address filtering) | Identifierar farliga åtgärder som löses av skadlig kod. | Endast appnivå | Ja |
Simulera körning (SimExec) | Säkerställer att anrop till känsliga API:er återgår till legitima anropare. Kan endast konfigureras för 32-bitars (x86) applikationer. Inte kompatibel med ACG. | Endast appnivå | Ja |
Verifiera API-anrop (CallerCheck) | Säkerställer att känsliga API:er anropas av legitima anropare. Kan endast konfigureras för 32-bitars (x86) applikationer. Inte kompatibelt med ACG | Endast appnivå | Ja |
Verifiera referensanvändning | Gör att ett undantag utlöses för alla ogiltiga handtagsreferenser. | Endast appnivå | Nej |
Verifiera integritet för bildberoende | Framtvingar kodsignering för inläsning av Windows-avbildningsberoende. | Endast appnivå | Nej |
Verifiera stackintegritet (StackPivot) | Säkerställer att stacken inte har omdirigerats för känsliga API:er. Inte kompatibel med ACG. | Endast appnivå | Ja |
Viktigt
Om du lägger till en app i avsnittet Programinställningar och konfigurerar enskilda åtgärdsinställningar där, kommer de att respekteras ovanför konfigurationen för samma åtgärder som anges i avsnittet Systeminställningar . Följande matris och exempel hjälper till att illustrera hur standardvärden fungerar:
Aktiverad i Programinställningar | Aktiverad i Systeminställningar | Beteende |
---|---|---|
Ja | Nej | Enligt definitionen i Programinställningar |
Ja | Ja | Enligt definitionen i Programinställningar |
Nej | Ja | Enligt definitionen i systeminställningarna |
Nej | Nej | Standard enligt definitionen i Använd standardalternativ |
Exempel 1Mikael konfigurerar Dataexekveringsskydd (DEP) i avsnittet Systeminställningar som ärinaktiverade som standard. Mikael lägger till appen test.exe i avsnittet Programinställningar. Under Dataexekveringsskydd (DEP) i alternativen för den appen aktiverar han alternativet Åsidosätt systeminställningar och anger växlingen till På. Det finns inga andra appar i avsnittet Programinställningar . Resultatet blir att DEP endast aktiveras för test.exe. Alla andra appar kommer inte att ha DEP tillämpat.
Exempel 2 Josie konfigurerar Dataexekveringsskydd (DEP) i avsnittet Dataexekveringsskydd (DEP) i avsnittet Systeminställningar som ärinaktiverade som standard. Josie lägger till appen test.exe i avsnittet Programinställningar. Under Dataexekveringsskydd (DEP) i alternativen för den appen aktiverar hon alternativet Åsidosätt systeminställningar och anger växlingen till På. Josie lägger också till appen miles.exe i avsnittet Programinställningar och konfigurerar Control Flow Guard (CFG) till På. Hon aktiverar inte alternativet Åsidosätt systeminställningar för DEP eller andra åtgärder för den appen. Resultatet blir att DEP aktiveras för test.exe. DEP aktiveras inte för någon annan app, inklusive miles.exe. CFG aktiveras för miles.exe.
Obs!
Om du har hittat några problem i den här artikeln kan du rapportera det direkt till en Windows Server/Windows-klientpartner eller använda Microsofts tekniska supportnummer för ditt land/din region.
Konfigurera åtgärder på systemnivå med appen Windows Säkerhet
Öppna Windows-säkerhet-appen genom att välja sköldikonen i aktivitetsfältet eller genom att söka i Start-menyn efter Windows-säkerhet.
Välj panelen App- & webbläsarkontroll (eller appikonen på den vänstra menyraden) och välj sedan Sårbarhetsskydd.
Under avsnittet Systeminställningar sök efter den åtgärd du vill konfigurera och välj sedan någon av följande. Appar som inte konfigureras individuellt i avsnittet Programinställningar använder de inställningar som konfigureras här:
- På som standard – Begränsningen är aktiverad för appar som inte har den här begränsningen angiven i det appspecifika avsnittet Programinställningar
- Av som standard – Begränsningen är inaktiverad för appar som inte har den här begränsningen angiven i det appspecifika avsnittet Programinställningar
- Använd standard – Åtgärden är antingen aktiverad eller inaktiverad, beroende på vilken standardkonfiguration som konfigureras av Windows 10 eller Windows 11-installation; standardvärdet (På eller Av) anges alltid bredvid Använd standard för varje åtgärd
Obs!
Du kan se ett User Account Control-fönster när du ändrar vissa inställningar. Ange administratörsautentiseringsuppgifter för att tillämpa inställningen.
Om du ändrar vissa inställningar kan det krävas en omstart.
Upprepa för alla åtgärder på systemnivå som du vill konfigurera.
Gå till avsnittet Programinställningar och välj den app som du vill tillämpa åtgärder på:
- Om appen du vill konfigurera redan finns med i listan markerar du den och väljer sedan Redigera
- Om appen inte finns med i listan väljer du Lägg till program att anpassa överst i listan och väljer sedan hur du vill lägga till appen:
- Använd Lägg till efter programnamn om du vill att åtgärden ska tillämpas på alla processer som körs med det namnet. Du måste ange en fil med ett filnamnstillägg. Du kan ange en fullständig sökväg för att begränsa begränsningen till endast appen med det namnet på den platsen.
- Använd Välj exakt filsökväg om du vill använda ett standardfönster för utforskaren för att söka efter och välja den fil du vill använda.
När du har valt appen visas en lista över alla åtgärder som kan tillämpas. Om du vill aktivera åtgärden markerar du kryssrutan och ändrar skjutreglaget till On. Välj eventuella ytterligare alternativ. Om du väljer Granska tillämpas begränsningen endast i granskningsläge. Du meddelas om du behöver starta om processen eller appen eller om du behöver starta om Windows.
Upprepa stegen för alla appar och åtgärder som du vill konfigurera. Välj Använd när du är klar med konfigurationen.
Du kan nu exportera dessa inställningar som en XML-fil eller fortsätta att konfigurera appspecifika åtgärder.
Om du exporterar konfigurationen som en XML-fil kan du kopiera konfigurationen från en enhet till andra enheter.
PowerShell-referens
Du kan använda appen Windows Säkerhet för att konfigurera sårbarhetsskydd, eller så kan du använda PowerShell-cmdletar.
Konfigurationsinställningarna som senast ändrades tillämpas alltid – oavsett om du använder PowerShell eller Windows Säkerhet. Det innebär att om du använder appen för att konfigurera en åtgärd och sedan använder PowerShell för att konfigurera samma åtgärd, uppdateras appen för att visa de ändringar du gjort med PowerShell. Om du sedan skulle använda appen för att ändra åtgärden igen skulle den ändringen gälla.
Viktigt
Ändringar som distribueras till en enhet via grupprincip åsidosätter den lokala konfigurationen. När du konfigurerar en första konfiguration använder du en enhet som inte har någon grupprincipskonfiguration för att säkerställa att ändringarna inte åsidosättas.
Du kan använda PowerShell-verbet Get
eller Set
med cmdleten ProcessMitigation
. Om du använder Get
visas den aktuella konfigurationsstatusen för alla åtgärder som har aktiverats på enheten – lägg till -Name
-cmdleten och app-exe för att se åtgärder för just den appen:
Get-ProcessMitigation -Name processName.exe
Viktigt
Åtgärder på systemnivå som inte har konfigurerats visar statusen NOTSET
.
För inställningar på systemnivå anger NOTSET
standardinställningen för den begränsningen har tillämpats.
För inställningar på appnivå anger NOTSET
att inställningen på systemnivå för åtgärden kommer att tillämpas.
Standardinställningen för varje åtgärd på systemnivå visas i Windows-säkerhet.
Använd Set
för att konfigurera varje åtgärd i följande format:
Set-ProcessMitigation -<scope> <app executable> -<action> <mitigation or options>,<mitigation or options>,<mitigation or options>
Var:
-
<Omfång>:
-
-Name
för att ange att åtgärder ska tillämpas på en specifik app. Ange appens körbara fil efter den här flaggan. -
-System
för att ange att riskreduceringen ska tillämpas på systemnivå
-
-
<Åtgärd>:
-
-Enable
för att aktivera åtgärden -
-Disable
för att inaktivera åtgärden
-
-
<Åtgärd:>
- Åtgärdens cmdlet enligt definitionen i tabellen åtgärds-cmdlets nedan, tillsammans med eventuella underalternativ (omgivna av blanksteg). Varje åtgärd avgränsas med kommatecken.
Om du till exempel vill aktivera dataexekveringsskydd (DEP) med ATL-tonkemulering och för en körbar fil som heter testing.exe i mappen C:\Apps\LOB\tests, och för att förhindra att den körbara filen skapar underordnade processer, använder du följande kommando:
Set-ProcessMitigation -Name c:\apps\lob\tests\testing.exe -Enable DEP, EmulateAtlThunks, DisallowChildProcessCreation
Viktigt
Avgränsa varje åtgärdsalternativ med kommatecken.
Om du vill tillämpa DEP på systemnivå använder du följande kommando:
Set-Processmitigation -System -Enable DEP
Om du vill inaktivera åtgärder kan du ersätta -Enable
med -Disable
. För åtgärder på appnivå tvingas åtgärden att endast inaktiveras för den appen.
Om du behöver återställa begränsningen till systemets standardvärde måste du även ta med cmdleten -Remove
, som i följande exempel:
Set-Processmitigation -Name test.exe -Remove -Disable DEP
Du kan också ställa in vissa åtgärder på granskningsläge. Använd cmdleten Granskningsläge som anges i tabellen åtgärds-cmdlets nedan i stället för att använda PowerShell-cmdleten för att åtgärden.
Om du till exempel vill aktivera Arbitrary Code Guard (ACG) i granskningsläge för testing.exe som användes tidigare använder du följande kommando:
Set-ProcessMitigation -Name c:\apps\lob\tests\testing.exe -Enable AuditDynamicCode
Du kan inaktivera granskningsläget med samma kommando men ersätta -Enable
med -Disable
.
PowerShell-referenstabell
I den här tabellen visas de PowerShell-cmdletar (och tillhörande cmdlet för granskningsläge) som kan användas för att konfigurera varje åtgärd.
Riskreducering | Gäller för | PowerShell-cmdletar | Cmdlet för granskningsläge |
---|---|---|---|
Control Flow Guard (CFG) | System- och appnivå | CFG, StrictCFG, SuppressExports | Granskningen är inte tillgänglig |
Dataexekveringsskydd (DEP) | System- och appnivå | DEP, EmulateAtlThunks | Granskningen är inte tillgänglig |
Framtvinga slumpmässighet för bilder (obligatorisk ASLR) | System- och appnivå | ForceRelocateImages | Granskningen är inte tillgänglig |
Slumpmässiga minnesallokeringar (ASLR nedifrån och upp) | System- och appnivå | BottomUp, HighEntropy | Granskningen är inte tillgänglig |
Verifiera undantagskedjor (SEHOP) | System- och appnivå | SEHOP, SEHOPTelemetry | Granskningen är inte tillgänglig |
Verifiera integritet för heap | System- och appnivå | TerminateOnError | Granskningen är inte tillgänglig |
ACG (Arbitrary code guard) | Endast appnivå | DynamicCode | AuditDynamicCode |
Blockera bilder med låg integritet | Endast appnivå | BlockLowLabel | AuditImageLoad |
Blockera fjärrbilder | Endast appnivå | BlockRemoteImages | Granskningen är inte tillgänglig |
Blockera teckensnitt som inte är betrodda | Endast appnivå | DisableNonSystemFonts | AuditFont, FontAuditOnly |
Kodintegritetsskydd | Endast appnivå | BlockNonMicrosoftSigned, AllowStoreSigned | AuditMicrosoftSigned, AuditStoreSigned |
Inaktivera tilläggspunkter | Endast appnivå | ExtensionPoint | Granskningen är inte tillgänglig |
Inaktivera Win32k-systemanrop | Endast appnivå | DisableWin32kSystemCalls | AuditSystemCall |
Tillåt inte underprocesser | Endast appnivå | DisallowChildProcessCreation | AuditChildProcess |
EAF (Export address filtering) | Endast appnivå | EnableExportAddressFilterPlus, EnableExportAddressFilter [1] | Granskning är inte tillgänglig[2] |
IAF (Import address filtering) | Endast appnivå | EnableImportAddressFilter | Granskning är inte tillgänglig[2] |
Simulera körning (SimExec) | Endast appnivå | EnableRopSimExec | Granskning är inte tillgänglig[2] |
Verifiera API-anrop (CallerCheck) | Endast appnivå | EnableRopCallerCheck | Granskning är inte tillgänglig[2] |
Verifiera referensanvändning | Endast appnivå | StrictHandle | Granskningen är inte tillgänglig |
Verifiera integritet för bildberoende | Endast appnivå | EnforceModuleDepencySigning | Granskningen är inte tillgänglig |
Verifiera stackintegritet (StackPivot) | Endast appnivå | EnableRopStackPivot | Granskning är inte tillgänglig[2] |
[1]: Använd följande format för att aktivera EAF-moduler för dlls för en process:
Set-ProcessMitigation -Name processName.exe -Enable EnableExportAddressFilterPlus -EAFModules dllName1.dll,dllName2.dll
[2]: Granskning för den här åtgärden är inte tillgänglig via PowerShell-cmdletar.
Anpassa aviseringen
Information om hur du anpassar meddelandet när en regel utlöses och en app eller fil blockeras finns i Windows Säkerhet.
Se även
- Skydda enheter från exploateringar
- Utvärdera sårbarhetsskydd
- Aktivera exploateringsskydd
- Konfigurationer för att import, export och distribuering av exploateringsskydd
Tips
Vill du veta mer? Engage med Microsofts säkerhetscommunity i vår Tech Community: Microsoft Defender för Endpoint Tech Community.