Emulator
Om kodemuleringsteknik
Vid användning av kodemulering för att identifiera skadlig programvara skannas filen genom att efterlikna utförandet i en virtuell (emulerad) miljö. Metoden påminner om den som används vid identifiering av skadlig programvara i begränsade lägen (sandbox) men metoderna skiljer sig gällande utformning och tillämpning. Skillnader:
Ett begränsat läge med fulltaliga funktioner är, till skillnad från en emulator, en "tung" metod. Hela miljön återskapas och kör ett skannat exempel i en virtuell maskin med ett verkligt operativsystem (OS) och installerade program. Den här metoden behöver därför mer beräkningsprestanda och innebär begränsad kompatibilitet i värdsystemet. Begränsade lägen är därför mer effektivt för centraliserade system på plats och för molnlösningar, men är inte lämpligt för identifiering av skadlig programvara i användarvärdsystem eller andra vanliga datorer.
En emulator efterliknar bara exemplets utförande. Objekt som exemplet kan interagera med skapas tillfälligt, till exempel lösenord som skadlig programvara gärna vill komma åt, antivirusskydd som försöker att stoppa minnet, systemregister m.m. Dessa objekt tillhör inte operativsystemet eller programvaran, utan är kopior som skapats av emulatorn. Emulatorn styr den återskapade miljön och kan därmed avancera tidsmässigt för att se framtida filbeteenden och förhindra skadlig programvara från att få åtkomst på grund av tidsförskjutningar.
Emulatorn bedömer den skannade filens väsentliga beteendefunktioner med betydligt färre resurser än vid begränsat läge, vilket gör den lämplig för alla användarvärdsystem. Okända filer kommer i de flesta fall inte köras i systemet förrän de har skannats av en emulator. Emuleringsmetoden är inte ny men vissa emulatorer är mycket mer avancerade än andra och de identifierar betydligt mer skadlig programvara. Dagens emulatorer inkluderar molnbaserade ryktestjänster och har blivit alltmer effektiva med hjälp av maskininlärning.
Kaspersky-emulatorn
Emulatorn i våra lösningar är ett led i vår säkerhetshantering på flera nivåer. Den återskapar binära filer och skript, vilket är väldigt användbart då många av de nya hoten består av skriptbaserade, fillösa attacker.
Emulering är optimerat för begränsade datorresurser. Metoden använder avsevärt mindre RAM-minne per objekt än vid användning av begränsat läge (sandbox) och kan skanna stora antal objekt utan att överbelasta systemet. Tack vare maskinvaruaccelerationen kan emulatorn använda processorn för att accelerera skanningen ca 20 gånger på ett säkert sätt.
Emuleringsskanningen utförs antingen ”på begäran” i våra lösningar när du ber om en diskskanning eller ”vid åtkomst” när objektet skannas automatiskt innan det har körts eller du har fått åtkomst till det. Emuleringsprocessen kan startas i samband med andra identifieringsmetoder, som begäran av processryktet i molnet.
Emulatorerna är implementerade i Kasperskys klientlösningar, lösningar på gateway-nivå (dvs. proxy- och e-postservrar) och i skydd för virtuella miljöer. Kraftfulla emulatorer är en väsentlig del av Kaspersky-infrastrukturen för objektsklassificering.
Emulatorns uppgifter:
- Återskapa utförandet av alla typer av körbara filer (PE) som *.exe, *.dll, *.sys och övriga i Windows-miljön.
- Bearbeta JavaScript-, VBScript- och AutoIT-skripttyper samt fristående skript (hämtas som filer).
- Skanna skript som skickas via webblänkar (webbplatser, e-postmeddelanden, meddelanden) infogade i PDF- och MS Office-filer.
Uppdateringar
Emuleringstekniken inkluderar en emuleringskärna och identifieringsarkiv där data som tillhandahålls av kärnan analyseras. Arkiven skapas i Kaspersky-lösningen och uppdateringar hämtas varje timme. Ett identifieringsarkiv kan identifiera ett flertal exempel på skadlig programvara med olika binära innehåll men liknande beteenden.
Arbetsflöde vid identifiering av skadlig programvara
- Emulatorn mottar en begäran om att skanna ett objekt (en körbar fil eller körbart skript) från en annan komponent i säkerhetslösningen.
- Emulatorn utför instruktionerna för varje objekt säkert med start vid objektets ingångspunkt i en virtuell miljö. Om instruktionen interagerar med miljön (operativsystem, arkiv, andra filer, webben, minnet m.m.) återskapar emulatorn åtgärden från dessa objekt.
- Emulatorn samlar in felaktigheter och skickar dem vidare för heuristisk analys. Efter analysen görs en bedömning för komponenten som begärt analysen baserat på dessa felaktigheter.
- Emulering upphör när det finns tillräckligt med felaktigheter för att identifiera skadlig programvara eller om tidsgränsen har uppnåtts.
Felaktigheter som samlas in av emulatorn
För körbara filer (binära):
- API-anropslogg
- Samtliga ändringar i filsystem och filarkiv
- minnesdumpar
För skript:
- Argument för och returer av strängåtgärder
- Anrop för inbäddade funktioner och funktioner som tillhandahålls av miljön
- Evenemang
- Sändningar till filsystem och underordnade skript
skydd mot undvikande beteenden.
Avancerade utvecklare av skadlig programvara utrustar sina koder med funktioner som förhindrar att de upptäcks vid emulering. Vår emulator spårar och motarbetar de senaste typerna av undvikande teknik. Exempel:
Undvikande beteende A: Den skadliga programvaran måste packas upp innan den kan köras. Detta är resurskrävande och brukar räcka för att de skadliga koderna ska kunna undvika upptäckt när tidsgränsen för emuleringen har uppnåtts.
Motåtgärd A: Emulatorn upptäcker de komprimerade filerna och justerar emuleringsdjupet i enlighet med detta. Maskinvaruaccelerationen tillhandahåller tillräckligt med prestanda för att emulatorn ska ta sig igen uppackningen av filen.
Undvikande beteende B: Innan den skadliga programvaran sprider sina koder försöker den få åtkomst till webbresurser eller miljöparametrar (som datornamn eller diskstorlek) för att se om de är tillgängliga och värdefulla. Om resurserna inte är intressanta kommer den skadliga programvaran inte att köra sina koder och kan därmed undvika upptäckt.
Motåtgärd B: Vid uppmaning från den skannade filen återskapar emulatorn informationen relaterad till miljön och systemresurser för att göra filerna så intressanta som möjligt. Detta innebär till exempel slumpmässigt valda datornamn, så att den skadliga programvaran inte tolkar specifika datornamn som tecken på emulering.