AMSI-integrering (Anti-Malware Scan Interface) med Microsoft Defender Antivirus
Gäller för:
- Microsoft Defender XDR
- Microsoft Defender Antivirus
- Microsoft Defender för Endpoint P1 & P2
- Microsoft Defender för företag
- Microsoft Defender för enskilda användare
Plattformar:
- Windows 10 och senare
- Windows Server 2016 och senare
Microsoft Defender för Endpoint använder AMSI (Anti-Malware Scan Interface) för att förbättra skyddet mot fillös skadlig kod, dynamiska skriptbaserade attacker och andra icke-traditionella cyberhot. Den här artikeln beskriver fördelarna med AMSI-integrering, vilka typer av skriptspråk som stöds och hur du aktiverar AMSI för förbättrad säkerhet.
Fillös skadlig kod spelar en viktig roll i moderna cyberattacker, med hjälp av smygande tekniker för att undvika identifiering. Flera stora utpressningstrojanutbrott använde fillösa metoder som en del av sina dödskedjor.
Fillös skadlig kod använder befintliga verktyg som redan finns på en komprometterad enhet, till exempel PowerShell.exe eller wmic.exe. Skadlig kod kan infiltrera en process, köra kod i dess minnesutrymme och anropa dessa inbyggda verktyg. Angripare minskar avsevärt sitt fotavtryck och undviker traditionella identifieringsmekanismer.
Eftersom minnet är flyktigt och fillös skadlig kod inte placerar filer på disk kan det vara svårt att etablera beständighet med hjälp av fillös skadlig kod. Ett exempel på hur fillös skadlig kod uppnådde beständighet var att skapa en registerkörningsnyckel som startar en "one-liner" PowerShell-cmdlet. Det här kommandot startade ett dolt PowerShell-skript som lagrades i registerbloben. Det fördunklade PowerShell-skriptet innehöll en pe-inläsare (Reflective Portable Executable) som läste in en Base64-kodad PE från registret. Skriptet som lagras i registret säkerställde att den skadliga koden bevarades.
Angripare använder flera fillösa tekniker som kan göra skadlig kod implantat smygande och undvikande. Dessa tekniker omfattar:
Reflekterande DLL-inmatning Reflekterande DLL-inmatning innebär manuell inläsning av skadliga DLL:er i en process minne utan att nämnda DLL:er behöver finnas på disken. Den skadliga DLL-filen kan finnas på en fjärrangreppsstyrd dator och levereras via en mellanlagrad nätverkskanal (till exempel TLS-protokoll (Transport Layer Security) eller bäddas in i fördunklad form inuti infektionsvektorer som makron och skript. Detta leder till att os-mekanismen som övervakar och håller reda på inläsning av körbara moduler undanrundas. Ett exempel på skadlig kod som använder reflekterande DLL-inmatning är HackTool:Win32/Mikatz!dha.
Minnesexploateringar Angripare använder fillösa minnesexploateringar för att fjärrköra godtycklig kod på offerdatorer. Till exempel använder UIWIX-hotet EternalBlue-exploateringen, som användes av både Petya och WannaCry, för att installera DoublePulsar-bakdörren, som finns helt i kärnans minne (SMB Dispatch Table). Till skillnad från Petya och Wannacry släpper UIWIX inte några filer på disken.
Skriptbaserade tekniker Skriptspråk ger kraftfulla sätt att leverera körbara nyttolaster med endast minne. Skriptfiler kan bädda in kodade gränssnittskoder eller binärfiler som de kan dekryptera i farten vid körning och köra via .NET-objekt eller direkt med API:er utan att de behöver skrivas till disken. Själva skripten kan döljas i registret, läsas från nätverksströmmar eller köras manuellt på kommandoraden av en angripare utan att behöva röra disken.
Anteckning
Inaktivera inte PowerShell som ett sätt att blockera fillös skadlig kod. PowerShell är ett kraftfullt och säkert hanteringsverktyg och är viktigt för många system- och IT-funktioner. Angripare använder skadliga PowerShell-skript som teknik efter exploatering som bara kan ske när en första kompromiss redan har inträffat. Dess missbruk är ett symptom på en attack som börjar med andra skadliga åtgärder som programvaruexploatering, social teknik eller stöld av autentiseringsuppgifter. Nyckeln är att förhindra att en angripare hamnar i den position där de kan missbruka PowerShell.
- WMI-persistens Vissa angripare använder WMI-lagringsplatsen (Windows Management Instrumentation) för att lagra skadliga skript som sedan anropas regelbundet med hjälp av WMI-bindningar.
Microsoft Defender Antivirus blockerar de flesta skadliga program med hjälp av generiska, heuristiska och beteendebaserade identifieringar, samt lokala och molnbaserade maskininlärningsmodeller. Microsoft Defender Antivirus skyddar mot fillös skadlig kod med hjälp av följande funktioner:
- Identifiera skriptbaserade tekniker med hjälp av AMSI, som ger möjlighet att inspektera PowerShell och andra skripttyper, även med flera lager av fördunkling
- Identifiera och åtgärda WMI-beständighetstekniker genom att genomsöka WMI-lagringsplatsen, både regelbundet och när avvikande beteende observeras
- Identifiera reflekterande DLL-inmatning genom förbättrade minnesgenomsökningstekniker och beteendeövervakning
AMSI ger en djupare inspektionsnivå för skadlig programvara som använder fördunklings- och undandragandetekniker på Windows inbyggda skriptvärdar. Genom att integrera AMSI erbjuder Microsoft Defender för Endpoint extra skyddslager mot avancerade hot.
- PowerShell
- Jscript
- Vbscript
- Windows Script Host (wscript.exe och cscript.exe)
- .NET Framework 4,8 eller senare (genomsökning av alla sammansättningar)
- Windows Management Instrumentation (WMI)
Om du använder Microsoft Office 365 stöder AMSI även JavaScript, VBA och XLM.
AMSI stöder för närvarande inte Python eller Perl.
Om du vill aktivera AMSI måste du aktivera skriptgenomsökning. Se Konfigurera genomsökningsalternativ för Microsoft Defender Antivirus
Se även CSP för Defender-princip – Windows-klienthantering
AMSI-API:er (Anti-Malware Scan Interface) är tillgängliga för utvecklare och antivirusleverantörer att implementera.
Andra Microsoft-produkter som Exchange och Sharepoint använder även AMSI-integrering.
Windows Defender Application Control och AppLocker. Framtvingar starka kodintegritetsprinciper och tillåter endast att betrodda program körs. I samband med fillös skadlig kod låser WDAC PowerShell till begränsat språkläge, vilket begränsar de utökade språkfunktioner som kan leda till okontrollerbar kodkörning, till exempel direkt .NET-skriptning, anrop av Win32-API:er via cmdleten Add-Type och interaktion med COM-objekt. Detta minimerar i princip PowerShell-baserade DLL-inmatningsattacker med reflekterande DLL.
Minskning av attackytan hjälper administratörer att skydda mot vanliga attackvektorer.
Aktivera virtualiseringsbaserat skydd av kodintegritet. Minimerar sårbarheter i kernelminnet via Hypervisor Code Integrity (HVCI), vilket gör det svårt att mata in skadlig kod med hjälp av sårbarheter i kernelläge.