Kaspersky Lab - Vislabākā aizsardzība!
Sākumlapa » Aizsardzība » Jevgēņijs Kasperskis: Gudra „mēģene” ļaunai programmatūrai

Jevgēņijs Kasperskis: Gudra „mēģene” ļaunai programmatūrai

Laiku pa laikam viens no kiberdrošības pasaules lielākajiem guru Jevgēņijs Kasperskis ļauj mums ieskatīties nemitīgās tehnoloģiskās cīņas aizkulisēs. Piedāvājam jums nesenu viņa stāstu par vienu no pamata tehnoloģijām jaunu draudu noteikšanā un atvairīšanā. Tālāk vārds viņam.

Vai kādreiz esat padomājuši, kāpēc datorvīrusi nosaukti tieši par “vīrusiem”? Šis jautājums būtībā ir retorisks, bet, ja kādam tas nav skaidrs, tad mūsu enciklopēdijā ir atrodama īsa un izsmeļoša atbilde.

 

 

Es izmantoju šo uzvedinājumu citam nolūkam: kāpēc joprojām visi datorkaitēkļi tiek dēvēti “vīrusiem”, ja patiesībā īstie datorvīrusi jau gadus divdesmit nav sastopami “brīvā dabā”?

Iemesls ir viens: vēl mūsdienās datoru drošības tehnoloģijas raisa ļoti spēcīgas asociācijas ar cilvēkiem baltos kombinezonos, ar karantīnu, mēģenēm un ar citiem mikrobioloģijas pētījumu atribūtiem. Tieši tā — datorvīrusi vairs nav sastopami, bet to analīzes un pretlīdzekļu izstrādāšanas metodes ir palikušas, attīstījušās un ļoti labi kalpo cīņā ar mūsdienu ļaunprogrammatūru. Piemēram, emulators.

Īsi sakot, emulators ir nepazīstamu draudu noteikšanas metode, kad aizdomīgā datne tiek aktivizēta virtuālā telpā, kura imitē reālu datoru. Antivīruss* reāllaikā uzrauga datnes uzvedību un, atklājot bīstamas darbības, drošības labad izolē šo datni, lai veiktu papildu izpēti.

Vai tagad redzat analoģiju sākotnējai mikrobioloģijas nozarei viroloģijai? Kāpēc veikt bīstamu injekciju dzīvam cilvēkam un tad vērot, kā viņš mokās? Ir taču iespējams atdarināt vīrusa dzīves vidi “mēģenē” un novērot aizdomīgā objekta uzvedību, lai konstatētu tā kaitīgās īpašības.

Tomēr gan šeit, gan mikrobioloģijā uzdevums ir sarežģīts — atdarināt dabisko dzīves vidi tā, lai kaitēklis nenojaustu, ka vide nav īsta. Es nezinu, kā tas izdodas mūsu kolēģiem baltajos kombinezonos 🙂 , bet mēs (Kaspersky) bez liekas kautrības varam atzīties, ka darām to sen un darījām pirmie pasaulē.

Pasaulē pirmo emulatoru es izstrādāju tālajā DOS laikmetā, 1992. gada vasarā. Drīz eksperti sāka apbrīnot mūsu antivīrusa detektēšanas metodi (jā, toreiz tas vēl bija “antivīruss”), kas pārspēja konkurentus neatkarīgajos testos — arī ar emulatora palīdzību.

Ritēja laiks, draudu ainava kļuva sarežģītāka: klasiskie vīrusi nogāja no skatuves, tos aizstāja tīkla tārpi, Trojas zirgi un citi “daudzšūnu organismi”. Parādījās jaunas datoru, mobilās, IoT un visas pārējās digitālās tehnoloģijas, bet līdz ar tām — jauni kibernoziedznieku instrumenti; vienlaikus paplašinājās arī emulatora pielietojums. Mēs pielāgojām emulatoru darbam ar drošības mākoni KSN, iemācījām jaunas programmēšanas valodas, salāgojām ar pārlūkprogrammām un citiem operētājsistēmas objektiem, lai tas automātiski medītus nepazīstamas ļaunprātīgās programmas. Bez mākslīgā intelekta mārketinga makaroniem, tikai ar roku veiklību un domas spēku, ar Humachine — inovatīvu reālo izstrādņu labākajās tradīcijās 🙂

 

 

Šodien tikai daži mūsu konkurenti var lepoties ar šādu tehnoloģiju, un tas ir saprotams: emulators ir ļoti grūts uzdevums, kam nepieciešama daudzus gadus ilga pieredze, darbietilpīga integrācija “kaujas” produktos un pastāvīga attīstīšana. Daudzi jaunpienācēji kiberdrošības nozarē dod priekšroku investīcijām bla bla mārketingā. Īstermiņā tāda pieeja var būt efektīvs stimuls uzņēmējdarbības attīstībai, taču lietotājus nevarēs ilgi mānīt — tikai līdz pirmajai lielajai neveiksmei. Citiem vārdiem sakot, emulatora klātbūtne liecina par izstrādātāja kompetences un brieduma līmeni, bet tā trūkums ir droša tehnoloģiskās viendienītes pazīme.

Taču esmu novirzījies no tēmas.

Patiesībā arī kibernoziedznieki, atvainojiet, “nav ar pirkstu taisīti” (c) un cenšas aizsargāt savu biznesu un kiberspiegošanas operācijas, tostarp arī pret emulatoru.

Visgudrākās grupas izmanto dažādus trikus, lai noteiktu, vai ļaunprogrammatūra nonākusi emulatora “mēģenē”. Piemēram, ļaunprogrammatūra iedarbina nedokumentētu funkciju, pārbauda izsaukumu izpildes īstumu pēc procesora reģistru izmaiņām, analizē kļūdu kodus, meklē atmiņā konkrētu kodu, izmanto “loģiskās bumbas”, kas ievelk emulatoru bezgalīgā cilpā, un tā tālāk. Ja kaitēklis “sajūt” kaut ko aizdomīgu, tas pārtrauc kaitīgās funkcijas izpildi un izliekas “balts un pūkains”. Bet mēs “neesam taisīti ar pirkstu” labāk nekā viņi 🙂 un veiksmīgi cīnāmies ar šīm viltībām un dažādām citām tehnoloģiskām problēmām (galvenokārt ar emulatora resursietilpību). Piemēram, lai paātrinātu tā darbību, izmantojam dažādus ierobežotājus, optimizētājus un konfigurācijas profilus — līdz pat šīs funkcijas pilnīgai atspējošanai noteiktos apstākļos, kad aizkave var līdzināties BSoD.

Un nesen mūsu patentu speciālisti atnesa vēl vienu labu ziņu: esam saņēmuši patentu (US10275597) programmas koda emulatoram ar nepazīstamu objektu interpretācijas funkciju! Cik man zināms, nevienam konkurējošam produktam nav šādas funkcijas: lai aizsargātu emulatoru pret ļaunprogrammatūras trikiem, šiem produktiem ir jāpārveido viss emulators, kas, protams, nav ātri iespējams. Bet mēs esam iemācījuši emulatoru bez apstājas atjaunināties no lokālās datu bāzes! Vārdu sakot, tā ir ļoti noderīga funkcija, tāpēc nav iemesla jums par to nestāstīt, jo zināšanas par to, kā mēs jūs aizsargājam, kā zināms, ir spēks! 🙂

Lieta tāda, ka dažas datnes tiek izplatītas nevis mašīnas kodā, bet uzreiz programmatūras kodā. Lai tās izpildītu datorā, ir nepieciešams interpretators (piemēram, JavaScript vai VBA), kas šo kodu reāllaikā “tulko” datoram saprotamā valodā. Un skaidrs, ka arī šādās datnēs bieži ir sastopama ļaunprogrammatūra.

Lai atklātu nepazīstamus šāda veida draudus, mēs pirms daudziem gadiem izveidojām programmatūras koda emulatoru, kas datnes pirms izpildīšanas pārbauda “mēģenē”. Tomēr visa interpretatora emulēšana ir pārāk resursietilpīga. Aizkavēšanās tīmekļa lapu apstrādē ar skriptiem droši vien nepatiktu lietotājiem. Tāpēc emulatori veido virtuālās telpas kompromisa versiju, kur ir gan pieņemama veiktspēja, gan pietiekama aizsardzības kvalitāte. Bet ko darīt, ja emulators kodā atrod nepazīstamu objektu, metodi vai funkciju, bez kuras nav iespējams veikt pilnvērtīgu datnes analīzi?

Problēmu “droši un ātri” mēs te atrisinājām citādā veidā — ar viedinterpretatora palīdzību, kas spēj ātri iemācīties emulēt šādus objektus. Atjauninoties no KSN mākoņa, produkts saņem papildu kodu analizējamā objekta valodā (JavaScript, VBA, VB Script, AutoIt — sarakstu var papildināt ar citām valodām) un, izmantojot jaunās zināšanas, vēlreiz veic datnes pārbaudi. Sarežģītos gadījumos, kad palīgkods vēl nav pieejams, uzdevums tiek automātiski nodots mūsu analītiķiem, kuri veic izstrādi un nekavējoties pievieno to datubāzē.

Rezultātā lietotājs saņem ne tikai efektīvu, bet arī ātrdarbīgu tehnoloģiju, kas spēj ātri reaģēt uz kiberdraudiem, negaidot, kad no jauna tiks izlaists viss emulators. Tieši tas, kas vajadzīgs!

* “Antivīruss” — vēl viens novecojis vārds no datorvīrusu laikmeta. Mūsdienu antivīrusi cīnās ne tikai ar vīrusiem, bet ar visu ļaunprogrammatūru kopumā, kā arī ir apveltīti ar daudzām tādām noderīgām funkcijām, kā, piemēram, paroļu pārvaldnieks, VPN, vecāku kontrole, dublējumkopēšana un citām. T.i., ja vēlamies saukt antivīrusu jaunā vārdā, tad šis vārds varētu būt anti-viss-plus-vēl-daudz-kas 🙂

Birkas:
Iepriekšējais raksts
Nākošais raksts

Komentēt

Jūsu e-pasts netiks publicēts. Obligātie lauki ir iezīmēti *

*

61 − = 58

Kaspersky Lab - Vislabākā aizsardzība, lieliskas cenas!
Uz augšu