Emulator
Informatie over technologie voor code-emulatie
Bij code-emulatie voor malwaredetectie wordt het gedrag van een bestand gescand door de uitvoering te simuleren in een virtuele (gesimuleerde) omgeving. Over het algemeen is deze benadering gelijk aan die van malwaredetectie in een sandbox, maar emulatie en volledige sandboxing zijn verschillend in de details van ontwerp en toepassing. We gaan het verschil bekijken.
Een volledige sandbox is in tegenstelling tot een simulator een krachtige methode. Deze simuleert de hele omgeving en voert een gescande sample uit op een virtuele machine waarop een echt besturingssysteem en echte applicaties zijn geïnstalleerd. Hierdoor is er voor deze methode veel rekenkracht nodig en is de compatibiliteit op het hostsysteem beperkt. Daarom is een sandbox het effectiefst in gecentraliseerde, lokale- en cloudoplossingen. Het is niet geschikt voor malwaredetectie op gebruikershosts en andere reguliere computers.
Een emulator simuleert alleen de uitvoering van de sample zelf. Deze maakt tijdelijk objecten waarmee de sample interactie heeft: wachtwoorden die de malware wil stelen, anti-virus die de malware wil stoppen, het systeemregister enzovoort. Deze objecten zijn geen echte onderdelen van het besturingssysteem of software, maar de emulator kan imitaties maken. Door het beheer over de geëmuleerde omgeving kan de emulator de tijd snel vooruit spoelen, toekomstig gedrag van bestanden bekijken en omzeiling door tijdvertraging voorkomen.
Een emulator bepaalt essentiële gedragskenmerken van een gescand bestand terwijl het veel minder bronnen gebruikt dan een sandbox en bovendien ook geschikt is voor gebruikershosts. Uitvoering van onbekende bestanden wordt meestal uitgesteld tot deze zijn gescand met een emulator. De emulatiemethode is niet nieuw, maar sommige emulators zijn zeer geavanceerd en hun aandeel in malwaredetectie is aanzienlijk. De huidige emulators zijn uitgerust met cloudgebaseerde reputatieservices en hun effectiviteit wordt verhoogd door machine learning.
Kaspersky Emulator
Onze oplossingen omvatten een emulator als één verdedigingslinie in een meerlaagse beveiliging. Hiermee worden binaire bestanden en scripts geëmuleerd. Het belang van scripts neemt toe door de stijgende populariteit van bestandsloze aanvallen met scripts.
Emulatie is geoptimaliseerd voor beperkte computerbronnen. Per object is er veel minder RAM nodig dan voor een sandbox en er worden gelijktijdig meerdere objecten gescand zonder grote belasting op het systeem. Door hardwareversnelling wordt bij emulatie de processor op een veilige manier ongeveer 20 keer versneld.
Onze oplossingen starten emulatiescans “on demand” (op verzoek) wanneer een gebruiker een schijfscan aanvraagt of “on access” (bij toegang) wanneer een object automatisch wordt gescand voordat het wordt geopend of uitgevoerd. Emulatie kan parallel starten met andere detectiemethoden, zoals verzoeken voor procesreputatie in de cloud.
Emulators zijn geïmplementeerd in de endpoint-oplossingen en de oplossingen op gateway-niveau (bijvoorbeeld proxy- en e-mailservers) van Kaspersky, en in de beveiliging van de virtualisatieomgeving. In de Kaspersky-infrastructuur zijn krachtige emulators onderdeel van de objectclassificatiepijplijn.
Taken van emulator:
- Simuleren van de uitvoering van uitvoerbare bestanden (PE): *.exe, *.dll, *.sys en andere in een Windows-omgeving.
- Verwerken van scripts in JavaScript, VBScript en AutoIT, en van zelfstandige scripts (gedownload als bestanden).
- Scannen van scripts die worden ontvangen via een weblink (op een webpagina, in een e-mail, in een bericht), ingesloten in PDF- en MS Office-bestanden.
Updates
De emulatietechnologie wordt geïmplementeerd met een emulatiecore en detectiebestanden, die de gegevens verstrekt door de core analyseren. De records worden gemaakt in Kaspersky en updates worden elk uur gedownload door de oplossingen. Een detectierecord kan veel verschillende malware-samples met verschillende binaire inhoud, maar met vergelijkbaar gedrag detecteren.
Workflow van malwaredetectie
- De emulator ontvangt van een andere component van een beveiligingsoplossing het verzoek om een object (een uitvoerbaar bestand of een script) te scannen.
- De emulator voert veilig de instructies van het object één voor één in een virtuele omgeving uit, te beginnen vanaf het toegangspunt van het object. Als een instructie interactie heeft met een omgeving (besturingssysteem, register, andere bestanden, internet, geheugen enz.), dan imiteert de emulator de respons van deze objecten.
- De emulator verzamelt artefacten en geeft deze door aan het heuristisch analyseprogramma. Het analyseprogramma geeft op basis van deze artefacten een oordeel door aan de component die de analyse heeft gevraagd.
- De emulatie stopt wanneer er voldoende artefacten zijn om malware te detecteren of wanneer er een time-out optreedt.
Artefacten verzameld door de emulator
Voor uitvoerbare bestanden (binair):
- API-aanroepenlogboek
- Alle wijzigingen in bestandssysteem, systeemregister
- Geheugendumps
Voor scripts:
- Argumenten en retourneringen van stringbewerkingen
- Aanroepen van ingesloten functies en functies die door de omgeving worden geboden
- Gebeurtenissen
- Plaatsingen in bestandssysteem en onderliggende scripts
Omzeiling voorkomen
Deskundige schrijvers van malware zorgen dat hun malware uitgerust is met functies om detectie bij emulatie te voorkomen. Onze emulator spoort deze nieuwe omzeilingstechnieken op een bestrijdt deze. Voorbeelden:
Omzeiling A: Vóór uitvoering moet malware worden uitgepakt. Dit kost veel verwerkingstijd en is meestal genoeg om detectie te omzeilen via time-out van de emulatie.
Omzeiling A bestrijden: Emulator herkent verpakte bestanden en past het emulatieniveau hierop aan. Door hardwareversnelling krijgt de emulator voldoende kracht om door het uitpakken heen te dringen.
Omzeiling B: Voordat u de schadelijke payload uitvoert, heeft malware mogelijk toegang tot webbronnen of parameters van de omgeving (bijvoorbeeld computernaam, schijfgrootte) en kan de malware controleren of deze beschikbaar en nuttig zijn. Als de malware geen nuttige reactie ziet, zal deze de payload niet uitvoeren en detectie omzeilen.
Omzeiling B bestrijden: Na verzoek door de gescande bestanden, imiteert de emulator informatie over de omgeving en systeembronnen, en maakt deze zo essentieel mogelijk. De emulator gebruikt bijvoorbeeld willekeurige computernamen, waardoor de malware geen specifieke computernamen kan gebruiken als teken dat deze in een emulatie wordt uitgevoerd
Gerelateerde producten
ARTICLE
A Modern Hypervisor as a Basis for a Sandbox
ARTICLE
“The evolution of technologies used to...