Emulaattori
Tietoja koodin emulointitekniikasta
Haittaohjelmien tunnistuksen käyttämä koodin emulointimenetelmä tarkistaa tiedoston toiminnan emuloimalla sen suorituksen virtuaalisessa (emuloidussa) ympäristössä. Yleisesti ottaen tämä menetelmä muistuttaa testiympäristössä tapahtuvaa haittaohjelmien tunnistusta, mutta emulointi ja kaikki ominaisuudet sisältävä testiympäristö eroavat toisistaan rakenteen ja soveltamisen osalta. Tutustutaanpa niiden eroihin.
Kaikki ominaisuudet sisältävä testiympäristö, toisin kuin emulaattori, on ”raskaan sarjan” menetelmä. Se emuloi koko ympäristön ja suorittaa tarkistettavan esimerkkikoodin virtuaalikoneessa, johon on asennettu oikea käyttöjärjestelmä ja sovellukset. Näin ollen tämä menetelmä vaatii paljon laskentatehoa ja aiheuttaa yhteensopivuusrajoituksia isäntäjärjestelmälle. Tästä syystä testiympäristö on tehokkain keskitetyissä paikallisissa ja pilvipohjaisissa ratkaisuissa. Se ei sovellu haittaohjelmien tunnistukseen käyttäjien koneilla tai muissa tavallisissa tietokoneissa.
Emulaattoriemuloi vain pelkän esimerkkikoodin suorituksen. Se luo tilapäisesti kohteita, joiden kanssa esimerkkikoodi on vuorovaikutuksessa: salasanoja, joita haittaohjelma haluaa varastaa, virustorjuntaohjelmia, joita se yrittää pysäyttää, muistin, järjestelmärekisterin jne. Nämä kohteet eivät ole oikeita käyttöjärjestelmän tai ohjelmiston osia, vaan emulaattorin luomia jäljitelmiä. Koska emuloitu ympäristö on emulaattorin hallinnassa, se voi siirtyä nopeasti ajassa eteenpäin, nähdä tiedoston tulevan toiminnan ja estää haittaohjelman aikaviiveeseen perustuvan väistötekniikan.
Emulaattori määrittää tarkistettavan tiedoston keskeisen toiminnan, mutta se käyttää paljon vähemmän resursseja kuin testiympäristö, ja se soveltuu käyttäjien koneisiin. Tuntemattomien tiedostojen suoritusta lykätään yleensä siihen saakka, että ne on tarkistettu emulaattorilla. Emulointi ei ole uusi lähestymistapa, mutta jotkin emulaattorit ovat hyvin edistyksellisiä ja niillä on huomattava merkitys haittaohjelmien tunnistuksessa. Nykypäivän emulaattoreissa käytetään pilvipohjaisia mainepalveluita, ja koneoppiminen parantaa niiden tehoa.
Kaspersky Emulator
Ratkaisumme sisältävät emulaattorin yhtenä suojauksen osana monitasoisessa suojauksessa. Se emuloi binaaritiedostoja ja komentosarjoja, ja viimeksi mainittujen merkitys kasvaa komentosarjapohjaisten tiedostottomien hyökkäysten yleistyessä.
Emulointi on optimoitu tietokoneen rajallisia resursseja silmällä pitäen. Se vie paljon vähemmän RAM-muistia kohdetta kohti kuin testiympäristö, ja se tarkistaa samanaikaisesti useita kohteita kuormittamatta järjestelmää merkittävästi. Laitteistokiihdytyksen ansiosta emulaattori voi käyttää suoritinta turvallisesti tarkistuksen nopeuttamiseen noin 20-kertaiseksi.
Ratkaisumme käynnistävät emuloinnin tarkistuksen tarvittaessa, käyttäjän pyytäessä levyn tarkistusta tai käytön aikana, kun kohde tarkistetaan automaattisesti ennen kuin sitä käytetään tai se suoritetaan. Emulointi voi käynnistyä samanaikaisesti muiden tunnistusmenetelmien kanssa, kuten pyydettäessä prosessin mainetta pilvipalvelusta.
Emulaattoreita käytetään Kasperskyn päätepisteratkaisuissa, yhdyskäytävätason ratkaisuissa (esim. välitys- ja sähköpostipalvelimissa) ja virtuaaliympäristöjen suojauksessa. Kasperskyn infrastruktuurissa tehokkaat emulaattorit ovat osa kohteiden luokittelun työnkulkua.
Emulaattorin tehtävät:
- Emuloi suoritettavien tiedostojen (PE) suorituksen: *.exe, *.dll, *.sys ja muut Windows-ympäristössä.
- Käsittelee JavaScript-, VBScript- ja AutoIT-komentosarjatyypit ja erilliset komentosarjat (ladattu tiedostoina).
- Tarkistaa verkkolinkin (verkkosivulla, sähköpostiviestissä, viestissä) kautta vastaanotetut komentosarjat, jotka on upotettu PDF- ja MS Office -tiedostoihin.
Päivitykset
Emulointitekniikka on toteutettu emulointiytimellä ja tunnistuksen tietueilla, jotka analysoivat ytimen tarjoamat tiedot. Tietueet ovat Kasperskyn luomia, ja ratkaisut lataavat päivitykset tunneittain. Yksi tunnistuksen tietue voi tunnistaa useita haittaohjelmakoodeja, joissa on erilainen binaarisisältö, mutta samankaltainen toiminta.
Haittaohjelmien tunnistuksen työnkulku
- Emulaattori saa toiselta suojausratkaisun komponentilta pyynnön tarkistaa kohteen (suoritettavan tiedoston tai komentosarjan).
- Emulaattori suorittaa kohteen käskyt turvallisesti yksi kerrallaan virtuaaliympäristössä aloittaen kohteen sisäänpääsykohdasta. Jos komento on vuorovaikutuksessa ympäristön (käyttöjärjestelmän, rekisterin, muiden tiedostojen, Internetin, muistin jne.) kanssa, emulaattori jäljittelee näiden kohteiden antamaa vastausta.
- Emulaattori kerää artefaktit ja siirtää ne heuristiselle analyysitoiminnolle. Analyysitoiminto antaa näiden artefaktien perusteella tuloksen komponentille, joka pyysi analyysin.
- Emulointi päättyy, kun haittaohjelman tunnistamiseen on riittävästi artefakteja, tai aikakatkaisun takia.
Emulaattorin keräämät artefaktit
Suoritettaville tiedostoille (binaaritiedostoille):
- ohjelmointirajapinnan kutsuloki
- kaikki tiedostojärjestelmän ja järjestelmärekisterin muutokset
- muistivedokset
Komentosarjoille:
- merkkijonotoimintojen argumentit ja palautukset
- upotettujen toimintojen ja ympäristön tarjoamien toimintojen kutsut
- tapahtumat
- asennukset tiedostojärjestelmään ja alikomentosarjat
Väistötekniikoiden torjunta
Osaavat haittaohjelmien kirjoittajat varustavat haittaohjelmansa ominaisuuksilla, joiden tarkoituksena on estää emulointia havaitsemasta niitä. Emulaattorimme seuraa ja torjuu näitä uusia väistötekniikoita. Esimerkkejä:
Väistötekniikka A:Haittaohjelma on purettava ennen suoritusta. Tämä vie paljon laskenta-aikaa ja riittää yleensä tunnistuksen välttämiseen emuloinnin aikakatkaisun takia.
Väistötekniikan A torjunta:Emulaattori tunnistaa pakatut tiedostot ja säätää emuloinnin syvyyttä sen mukaisesti. Laitteistokiihdytys tarjoaa emulaattorille riittävästi tehoa purkamiseen.
Väistötekniikka B:Ennen haitallisen sisältönsä suoritusta haittaohjelma saattaa käyttää verkkoresursseja tai ympäristönsä parametreja (esim. tietokoneen nimeä, levyn kokoa) ja tarkistaa, ovatko ne saatavilla ja hyödyllisiä. Jos hyödyllistä vastausta ei saada, haittaohjelma ei suorita sisältöään ja välttää tunnistamisen.
Väistötekniikan B torjunta:Kun emulaattori saa tarkistettavan tiedoston pyynnön, se jäljittelee ympäristöä ja järjestelmäresursseja koskevia tietoja tehden niistä mahdollisimman hyödyllisiä. Se esimerkiksi satunnaistaa tietokoneiden nimet, jotta haittaohjelma ei voi käyttää tiettyjen tietokoneiden nimiä merkkinä siitä, että sitä suoritetaan emulaattorissa.