Läs på engelska

Dela via


Kör Microsoft Defender Antivirus i en sandbox-miljö

Gäller för:

Plattformar:

  • Windows

Vill du uppleva Microsoft Defender för Endpoint? Registrera dig för en kostnadsfri utvärderingsversion.

Den här artikeln beskriver hur du kör Microsoft Defender Antivirus i en sandbox-miljö för förbättrat skydd mot manipulering.

Microsoft Defender Antivirus med inbyggda antivirusfunktioner kan köras i en sandbox-miljö i Windows från och med den 26 oktober 2018. Det var den första kompletta antiviruslösningen som har den här funktionen och fortsätter att leda branschen när det gäller att höja ribban för säkerhet.

Förutsättningar

Innan du börjar måste du uppfylla följande krav:

  • Microsoft Defender Antivirus (aktivt läge)
  • Windows 11 eller Windows 10 version 1703 eller senare
  • Windows Server 2022 eller Windows Server 2019 eller Windows Server 2016 eller senare

Varför ska du köra Microsoft Defender Antivirus i en sandbox-miljö?

Säkerhetsforskare, både inom och utanför Microsoft, har tidigare identifierat hur en angripare kan dra nytta av sårbarheter i Microsoft Defender Antiviruss innehållsparsers som kan möjliggöra godtycklig kodkörning. Om du vill kontrollera hela systemet efter skadligt innehåll och artefakter körs antivirusprogrammet med hög behörighet (lokalt system, NT-utfärdare\SYSTEM), vilket gör det till ett mål för attacker.

Eskalering av privilegier från en sandbox-miljö är så mycket svårt för de senaste versionerna av Windows 10 eller senare, och att köra Microsoft Defender Antivirus i en sandbox-miljö säkerställer att skadliga åtgärder i den osannolika händelsen av en kompromiss begränsas till den isolerade miljön, vilket skyddar resten av systemet från skada. Detta är en del av Microsofts fortsatta investeringar för att ligga steget före angripare genom säkerhetsinnovationer.

Implementera sandbox-miljö för Microsoft Defender Antivirus

Moderna produkter mot skadlig kod inspekterar många indata, till exempel filer på disk, dataströmmar i minnet och beteendehändelser i realtid. Många av dessa funktioner kräver fullständig åtkomst till de aktuella resurserna. Den första stora sandbox-åtgärden var relaterad till skiktning Microsoft Defender Antiviruss inspektionsfunktioner i de komponenter som absolut måste köras med fullständig behörighet och de komponenter som kan sandbox-miljön. Målet med de begränsade komponenterna var att säkerställa att de omfattade de mest riskfyllda funktionerna, till exempel genomsökning av ej betrodda indata, expanderande containrar och så vidare. Samtidigt var vi tvungna att minimera antalet interaktioner mellan de två lagren för att undvika en betydande prestandakostnad.

Resursanvändning är också ett annat problem som kräver betydande investeringar. Både den privilegierade processen och sandbox-processen måste ha åtkomst till uppdateringar av Säkerhetsinformation, andra identifieringar och reparationsmetadata. För att undvika duplicering och bevara starka säkerhetsgarantier för att undvika osäkra sätt att dela tillstånd eller införa betydande körningskostnader för att skicka data/innehåll mellan processerna använder vi en modell där de flesta skyddsdata finns i minnesmappade filer som är skrivskyddade vid körning. Det innebär att skyddsdata kan lagras i flera processer utan extra kostnad.

Aktivera sandbox-miljö för Microsoft Defender Antivirus

Du kan följa de här stegen för att aktivera sandbox-miljö genom att ange en miljövariabel för hela datorn:

  1. Kör följande kommando som administratör i PowerShell eller CMD:

    setx /M MP_FORCE_USE_SANDBOX 1  
    

    Skärmbild som visar Windows PowerShell verktyg för administratörer med cmdlet-information för att aktivera sanbox.

  2. Starta om enheten. När du har startat om visas en ny process förutom MsMpEng.exe som finns MsMpEngCP.exe i följande mappar:

    Sökväg Process Beskrivning
    C:\ProgramData\Microsoft\Windows Defender\Scans MsMpEngCP.exe Process för körbart innehåll för tjänsten mot skadlig kod
    C:\Users\All Users\Microsoft\Windows Defender\Scans MsMpEngCP.exe Process för körbart innehåll för tjänsten mot skadlig kod

    Anteckning

    CP i MsMpEngCP.exe är innehållsprocessen.

Inaktivera sandbox-miljö

Om du vill inaktivera sandbox-miljön för Microsoft Defender Antivirus kör du följande kommando som administratör i PowerShell eller CMD:

setx /M MP_FORCE_USE_SANDBOX 0

Vanliga frågor och svar

Vad händer när sandbox-miljön är inaktiverad?

Microsoft Defender Antivirus utför en in-proc-återställning som är värd för innehållsgenomsökning i den privilegierade/överordnade processen för att ge skydd.

Hur stärks innehållsprocessen?

Innehållsprocesserna, som körs med låg behörighet, använder också aggressivt alla tillgängliga åtgärdsprinciper för att minska ytattacken. De aktiverar och förhindrar körningsändringar för moderna tekniker för sårbarhetsminskning, till exempel datakörningsskydd (DEP), slumpmässig adressutrymmeslayout (ASLR) och Control Flow Guard (CFG). De inaktiverar också Win32K-systemanrop och alla utökningspunkter, samt framtvingar att endast signerad och betrodd kod läses in.

Prestanda för MDAV med sandbox-miljön aktiverad

Prestanda är ofta det största problemet med sandbox-miljö, särskilt med tanke på att produkter mot skadlig kod finns i många kritiska sökvägar, till exempel synkront inspektera filåtgärder och bearbeta och aggregera eller matcha ett stort antal körningshändelser. För att säkerställa att prestandan inte försämras var vi tvungna att minimera antalet interaktioner mellan sandbox-miljön och den privilegierade processen. Samtidigt utför du bara dessa interaktioner i viktiga ögonblick där kostnaden inte skulle vara betydande, till exempel när I/O utförs.

Microsoft Defender Antivirus gör en orkestrerad ansträngning för att undvika onödig I/O, till exempel, minimera mängden dataläsning för varje inspekterad fil är av största vikt för att upprätthålla god prestanda, särskilt på äldre maskinvara (rotationsdisk, fjärrresurser). Därför var det viktigt att underhålla en modell där sandbox-miljön kan begära data för inspektion efter behov, i stället för att skicka hela innehållet.

Tillförlitlighet för MDAV med sandbox-miljö aktiverat

Anteckning

Att skicka referenser till sandbox-miljön (för att undvika kostnaden för att skicka det faktiska innehållet) är inte ett alternativ eftersom det finns många scenarier, till exempel realtidsgranskning, AMSI osv., där det inte finns något "delbart" handtag som kan användas av sandbox-miljön utan att bevilja betydande privilegier, vilket minskar säkerheten.

Ett annat viktigt problem med sandbox-miljön är att kommunikationsmekanismen mellan processer används för att undvika potentiella problem som dödlägen och prioriterad inversion. Kommunikationen bör inte medföra några potentiella flaskhalsar, varken genom att begränsa anroparen eller genom att begränsa antalet samtidiga begäranden som kan bearbetas. Dessutom bör sandbox-processen inte utlösa inspektionsåtgärder på egen hand. Alla inspektioner bör ske utan att utlösa fler genomsökningar. Detta kräver fullständig kontroll av funktionerna i sandbox-miljön och säkerställer att inga oväntade åtgärder kan utlösas. AppContainers med låg behörighet är det perfekta sättet att implementera starka garantier eftersom den funktionsbaserade modellen ger detaljerad kontroll över hur du anger vad sandbox-processen kan göra.

Reparation av MDAV med sandbox-miljön aktiverad

Slutligen gäller en betydande utmaning ur säkerhetsperspektiv innehållsreparation eller desinficering. Med tanke på åtgärdens känsliga natur (försök att återställa en binär fil till det ursprungliga preinfektinnehållet) behövde vi se till att detta sker med hög behörighet för att minimera fall där innehållsprocessen (sandbox-miljön) kan komprometteras och desinficering kan användas för att ändra den identifierade binära filen på oväntade sätt.

Vad ska jag göra när du felsöker MsMpEng.CP.exe processen om den startar och stoppas efter några minuter?

Samla in supportdiagnostikloggar och relevant dumpar/kraschinformation om det finns associerade Windows Felrapportering (WER) händelser runt den tidpunkt då processen stoppas.