Virusų klasifikacija
Virusus galima klasifikuoti pagal įvairius požymius. Vienas jų - viruso algoritmo ypatybės ir veikimo būdas. Šiuo atveju galima išskirti tokias pagrindines jų grupes.
Tikrasis virusas. Tai mažos apimties programa, kuri prisiklijuoja prie kitų programų. Kai infekuota programa ruošiama vykdyti, valdymą pirmiausia gauna viruso kodas. Jis randa ir užkrečia kitas programas, taip pat gali atlikti konkrečius kenkėjiškus veiksmus, pvz., gadinti failus. Atlikęs visus nustatytus veiksmus, virusas gali grąžinti valdymą infekuotai programai. Tokie virusai sunkiai aptinkami, nes dažniausiai infekuotos programos veikia įprastai ir sėkmingai baigia savo darbą. Tikrojo viruso pagrindinis tikslas - savo paties kopijų kūrimas.
Kirminas. Tai programa, kuri paprasčiausiai visą laiką dauginasi. Palaipsniui kirminai užima visą kompiuterio ar tinklo atmintį, ir tada negalimas joks tolimesnis naudingas darbas.
Loginė bomba. Tai programa, kuri pradeda veikti, įvykus konkrečiam loginiam įvykiui, pvz., prisijungus prie tinklo naujam vartotojui.
Laiko bomba. Tai loginė bomba, kuri sprogsta (pradeda veikti programa) iš anksto numatytu laiko momentu (pvz., kai kompiuterio data pasiekia penktadienį, kuris yra mėnesio 13 diena).
Trojos arklys. Tai programa, kuri gali egzistuoti tik pasislėpusi kitoje programoje. Ji išoriškai atrodo kaip naudinga programa, bet realiai atlieka kenkėjiškus veiksmus (pvz., groja nustatytą melodiją). Trojos arklys, kitaip negu tikrasis virusas, nesidaugina (negamina savo kopijų). Tačiau pasislėpęs (pvz., kompiliatoriuje) jis gali lengvai įdiegti kenkėjiškas programas į kompiliuojamų programų kodą.
Virusai palydovai. Tai programos, kurios nemodifikuoja egzistuojančių failų. Jos sukuria naujas programas, vykdomas vietoj tų, kurias norėjo įvykdyti vartotojas.
Polimorfinis virusas. Tai programa, kuri generuoja nepanašias, nors visiškai veiklias savo kopijas. Šis virusas šifruoja savo esminę dalį ir dažniausiai turi jos šifruotojo ir dešifruotojo kodą. Generatorius įvairiais laiko momentais kuria vis kitokius šifruotojus ir juos atitinkančius dešifruotojus. Polimorfiniuose virusuose dešifruotojas nėra vienodas - keičiasi kiekvienam infekuotam failui. Dėl šios priežasties dažnai negalima nustatyti infekuoto failo pagal charakteringą viruso eilutę-parašą (signatūrą).
Nematomi virusai. Šios programos paslepia jų atliktus pakeitimus failuose ar išorinės atminties sektoriuose pakeisdamos sistemines funkcijas, kurias naudoja tuos failus ar sektorius skaitančios programos. Šis virusas, sakysim, gali perimti operacinės sistemos funkcijas, nustatančias failo ilgį, ir sumažinti užkrėstų failų ilgį iki ilgio, buvusio iki užkrėtimo.
Kitas virusus klasifikuojantis požymis yra jų kenksmingumas. Pagal tai virusai gali būti skirstomi į nepavojingus, pavojingus ir labai pavojingus. Nepavojingi virusai kompiuterio veikimui nedaro jokios įtakos, tik daugindamiesi užima tam tikrą atminties dalį. Be to, jie gali išvesti į ekraną grafinius vaizdus, pranešimus, imituoti įvairius garsus ir pan. Pavojingi virusai gali gerokai sutrikdyti kompiuterio darbą. Labai pavojingi virusai naikina programas ir duomenis, ištrina būtiną kompiuteriui sisteminę informaciją (pvz., failų išdėstymo lenteles).
Pagal užkrėtimo būdą virusai skirstomi į rezidentinius ir nerezidentinius. Pirmieji kompiuterio operatyviojoje atmintyje saugo savo rezidentinę dalį ir yra aktyvūs iki kompiuterio išjungimo ar sistemos pakartotinės kelties. Nerezidentiniai virusai kompiuterio atminties neužkrečia ir yra aktyvūs tik tam tikrą laiko tarpą.
Pagal gyvenimo aplinką virusus galima skirstyti į failų ir kelties. Pagrindiniai failų, kurie dažniausiai infekuojami, tipai yra šie: .BAT, .COM, .EXE, .SYS, .OVL, .LIB, .OBJ, .PRG, .DOC, .DOT. Kai kuriuos jų panagrinėsime detaliau.
Virusas, esantis užkrėstuose vykdomuosiuose failuose (.BAT, .EXE, .COM), pradeda savo darbą, paleidus vykdyti tą programą, kurioje jis slepiasi. Tiesa, .BAT tipo failų virusai labai primityvūs, juos lengva surasti ir sunaikinti. Ypač pavojinga, jei bus užkrėstas OS DOS komandų procesorius, t.y. failas COMMAND.COM, nes šiuo atveju virusas dirbs, vykdant bet kokią DOS komandą, ir visos vykdomos programos bus užkrėstos (jei virusas jas gali užkrėsti). .EXE ir .COM tipų failų virusai daugindamiesi gali prijungti savo kodą infekuojamo failo pradžioje, viduryje ar pabaigoje.
Pavojingas yra keliamų tvarkyklių (t.y. failų, turinčių plėtinį .SYS ir nurodomų sakiniu DEVICE konfigūravimo faile (CONFIG.SYS)) užkrėtimas. Šiuo atveju virusas pradeda savo darbą kiekvieną kartą kreipiantis į atitinkamą (tvarkyklės valdomą) įrenginį. Keliant užkrėstą tvarkyklę, virusas patenka į operatyviąją atmintį, perima operacinės sistemos užklausą, perduoda šią užklausą tvarkyklei, sulaukia tvarkyklės atsakymo ir jį koreguoja. Šie virusai lieka operatyviojoje atmintyje kartu su tvarkykle. Jie labai gyvybingi, nes į atmintį patenka atkeliant operacinę sistemą, t.y. anksčiau už bet kurią antivirusinę programą.
Winword sistemos dokumentų failus (.doc tipo) puola virusai, kurie plinta per makrokomandas. Jie užkrečia naujus dokumentų failus bei šablonų failus (.dot tipo).
Kelties virusai įsiskverbia į pradinės kelties sektorius, turinčius sistemos veikimui būtiną informaciją. Dažniausiai virusas užkrėtimo metu perkelia šį įrašą į kitą laisvą disko sektorių. Po to virusas kopijuoja sisteminę kelties informaciją į savo programą ir persikelia į pradinės kelties sektorių. Jei viruso kodas netelpa šiame sektoriuje, tai dalis viruso kodo pereina į kitus laisvus sektorius. Kelties virusai yra rezidentiniai. Nuskaičius pradinės kelties sektoriaus turinį, sisteminė programa perkelia ten saugomą viruso programą į operatyviąją atmintį ir perduoda jai valdymą. Gavęs valdymą, virusas atlieka tokius įprastinius veiksmus: a) sumažina laisvos atminties kiekį; b) skaito iš disko savo tęsinį (jei tęsinys yra); c) perkelia viruso kodą į kitą operatyviosios atminties vietą; d) nustato reikalingus pertraukimų vektorius; e) atlieka papildomus veiksmus - tai gali būti garsiniai ar vaizdiniai efektai, kenkėjiški veiksmai ir pan.; f) kopijuoja į atmintį originalią disko ar diskelio pradinės kelties programą ir perduoda jai valdymą. Po to virusas veikia kaip rezidentinis vykdomųjų failų virusas: perima operacinės sistemos kreipinius į diskus ir juos užkrečia. Yra paplitę ir mišrūs virusai, kurie užkrečia ne tik, sakysim, vykdomuosius failus, bet ir diskų pradinės kelties sektorius.
Prie kelties virusų gali būti priskirti ir virusai, modifikuojantys disko failų sistemą. Šie virusai slepiasi kuriame nors disko fragmente, pažymėdami jį failų išdėstymo lentelėje (FAT) kaip failo pabaigą. Katalogo elementuose, turinčiuose nuorodas į pirmus vykdomųjų (.com ir .exe) failų fragmentus, jos keičiamos nuorodomis į disko fragmentus, kuriuose pasislėpęs virusas. Teisinga nuoroda saugoma koduotu pavidalu katalogo elemento nenaudojamoje dalyje. Pradėjus vykdyti bet kurią programą, į atmintį atkeliamas virusas, kuris ten lieka ir veikia kaip rezidentinis vykdomųjų failų virusas.
Toliau apibūdinsime kai kuriuos žinomus virusus.
WORD CONCEPT - tai 1997m. labiausiai paplitęs pasaulyje virusas, kuris priklauso WORD MACRO 9508 šeimai. Jis veikia Microsoft Word redaktoriaus terpėje, kuri gali funkcionuoti DOS, Macintosh, OS/2 ar WINDOWS bazėje. Jo pasirodymo simptomai: keičia makrokomandas WORD dokumentuose ir šablonuose, standartines makrokomandas papildo kitomis: AAAXAO, AAAZFS, File Save As, Payload.
STONED - tai labai pavojingų kelties virusų šeima (joje daugiau kaip 10 išvestinių virusų), kuri 1997m. buvo šešta pasaulyje pagal paplitimą. Veikia OS DOS terpėje. Jų pasirodymo simptomai: užkrečia diskų pradinės kelties sektorius, suardo failų paskirstymo lentelės informaciją, kompiuterio pradinės kelties metu gali išvesti tokio tipo pranešimus: Your computer is now stoned, Your PC is now stoned ir pan.
MICHELANGELO - tai 1997m. dešimtas pasaulyje pagal paplitimą virusas, veikiantis DOS terpėje. Tai rezidentinis virusas. Pasirodymo simptomai: mažina sisteminės atminties dydį 2048 baitais, užkrečia diskelių ir sisteminio disko pradinės kelties sektorius. Jis dažniausiai pasireiškia kovo 6 dieną ir paprasčiausiai formatuoja diską, užrašydamas į jį atsitiktinius duomenis iš operatyviosios atminties.
Virusus klasifikuoti bei atpažinti padeda ir specialus trumpas jų aprašymas, kuris paprastai susideda iš trijų elementų: kodo, aprašo (deskriptoriaus) ir parašo (signatūros).
Kodą sudaro raidinis priešdėlis (prefiksas), skaitinė šaknis (charakteristika) ir nebūtina raidinė priesaga (sufiksas). Pvz., viruso RCE-1813c priešdėlis yra RCE, šaknis - 1813, priesaga - c. Be to, kodo gale, atskirtas nuo jo tašku, gali būti užrašomas plėtinys, rodantis šeimą (grupę), kuriai priklauso virusas. Nagrinėjamas virusas RCE-1813c.IER priklauso Jeruzalės šeimai. Šios grupės virusas pirmą kartą (1989m. gruodžio mėn.) aptiktas Izraelyje (Jeruzalėje). Tai failų virusas, kuris gali sukelti OS DOS pakibimą su pranešimu Stack overflow (steko persipildymas). Kairiajame ekrano kampe gali atsirasti juodas kvadratas (todėl šis virusas dar vadinamas Black Hole - Juoda skylė). Penktadieniais, kurie yra 13 mėnesio diena, šis virusas naikina infekuotoje sistemoje vykdomas programas (todėl jis dar vadinamas Black Friday - Juodasis penktadienis).
Priešdėlis nurodo, kur virusas yra. Raidės C, E rodo, kad virusas yra .COM ir .EXE tipo failuose. Raidės B,D,M nurodo kelties virusus. Raidė J rodo, kad virusas yra eilutė arba programa, parašyta OS užduočių valdymo kalba (Job Control Language). Jei virusas yra mišrus, tai priešdėlyje naudojamas atitinkamų raidžių junginys: pvz., BRCE arba MRCE.
Viruso šaknis yra skaičius. Failų virusams jis paprastai parodo užkrėsto failo padidėjimą.
Priesagos vartojamos, norint atskirti virusus, turinčius vienodus priešdėlius ir šaknis.
Viruso aprašas koduoja pagrindines jo charakteristikas. Kodavimą sudaro simbolių grupė. Kiekvienos grupės pradžioje rašoma didžioji raidė, o už jos mažosios - raidės ar skaičiai. Didžioji raidė rodo savybės tipą, kiti simboliai - jo reikšmę. Pvz., aprašas Xab Yc Zdmt nurodo, kad savybė X nagrinėjamam virusui turi reikšmę ab, savybė Y - reikšmę c, savybė Z - reikšmę dmt.
Viruso parašas - tai simbolių eilutė, padedanti identifikuoti konkretų virusą.
Išoriškai infekuotos sistemos veikimas užkrėtimo pradžioje gali atrodyti kaip ir neužkrėstos. Tačiau vėliau gali atsirasti įvairūs sistemos darbo sutrikimai. Tai gali būti:
Virusų padaroma žala gali būti įvairi - labai didelė ir neištaisoma arba nežymi. Galima būtų išskirti tokius jos atvejus:
fiziškas kai kurių kompiuterio įrenginių sugadinimas, pvz., kai kurie virusai nuolat rašo į tą patį disko takelį, ir todėl nusitrina jo magnetinis sluoksnis, kiti virusai gadina diskus, atlikdami nekorektiškas skaitymo ir rašymo operacijas, ar gadina monitorius, suvesdami visus simbolius į vieną ekrano tašką.