Arvutiviirus

Allikas: Vikipeedia
Viiruse koodvaade assembleris.
Stoned Code

Arvutiviirus ehk viirus on programm, mis on võimeline end iseseisvalt kopeerima ning arvutit nakatama. Mõistet „viirus“ kasutatakse ekslikult ka muud tüüpi, ka isepaljunemisvõimeta pahavaraprogrammide puhul: nt reklaam, nuhkvara, ussid ning trooja hobused. Ehtne viirus levib ühest arvutist teise nakatunud peremees-programmi ümbertõstmisel. Selline levimine toimub näiteks failide saatmisel üle võrgu ja interneti või nende transportimisel erinevate andmekandjatega, nt flopiketas, CD, DVD ja USB-mälupulk.

Viirused suudavad suurendada oma levimisefektiivsust, nakatades võrgus paiknevaid või teise arvuti poolt sagedasti kasutatavaid failisüsteeme[1].

Eelmainitult mõistetakse termini „viirus“ all ekslikult kõiki pahavaraprogrammide tüüpe: näiteks „ussid“ ja „trooja hobused“, mis on toimeloogikalt täiesti erinevad. Ussviirused kasutavad ära süsteemis leiduvaid turvaauke, et end võrgu kaudu, võrku lülitatud arvutist uutesse arvutitesse levitada. Trooja hobune on aga ohutuna näiv programm, kuid peidab endas pahatahtlikke funktsioone. Selline pahavara kahjustab arvutis asuvaid andmefaile ja vähendab arvuti jõudlust. Kui ühtede pahavaraprogrammide tegevusel tekivad kasutajale märgatavad sümptomid, siis teised tegutsevad süsteemis kahtlust äratamata.

Ajalugu[muuda | redigeeri lähteteksti]

Viirusprogrammid[muuda | redigeeri lähteteksti]

1970.[2] aastatel avastati esmakordselt ARPANET-is (s.o interneti eelkäijas) viirus Creeper. Tegemist oli Bob Thomase eksperimentaalse isepaljuneva programmiga. Creeper kasutas ARPANET-i võrku, et nakatada TENEX-i operatsioonisüsteemiga DEC PDP-10 arvuteid. Olles saanud ligipääsu, kopeeris programm end teistesse süsteemidesse, kus kuvati sõnum „Mina olen Creeper, püüa mind kinni, kui suudad!“ (inglise I'm the creeper, catch me if you can!). Viiruse eemaldamiseks loodi programm nimega Reaper[3].

Elk Cloner oli esimene arvutiviirus, mis ilmus väljaspool selle loomiskeskkonda (arvutit või laborit). Kirjutatuna aastal 1981 Richard Skrenta poolt, kinnitas programm end operatsioonisüsteemile Apple DOS 3.3 ja levis diskettide abiga. See pahavara, mis loodi ilma tõsisemate eesmärkideta ajal, mil R. Skrenta õppis veel keskkoolis, levis andmekandjal oleva mänguga. Pärast 50 kasutuskorda aktiveeriti viirus ja kuvati lühike luuletus algusega: „Elk Cloner: iseloomuga programm“.

Enne arvutivõrkude ulatuslikku kasutamist levis enamik viirustest irdkandjatega, peamiselt diskettidel ehk flopiketastel. Viimased olid personaalarvutite algusaegadel peamisteks vahenditeks informatsiooni ja programmide vahetamisel. Osad viirused levisid nakatades andmekandjal olevaid programme ning teised paigaldasid end ketta alglaadesektorisse, et aktiveerimine toimuks arvuti vahendilt käivitamisel automaatselt. Kasutati ära tolle aja arvutite omadust käivitumisel diskette lugeda. Kuni selliste andmekandjate kasutusaja lõpuni olid alglaadesektorit kasutavad pahavaralised failid teiste arvutite nakatamisel. kõige tavalisemad ja edukamad

Traditsioonilised arvutiviirused tekkisid 1980. aastatel tänu personaalarvutite, BBS-i (hiljem FidoNet) ja modemite populaarsuse kasvule. Bulletin board-il (BBS) põhinenud tarkvara jagamine aitas otseselt kaasa trooja hobuste levikule ning viirusi hakati kirjutama enam kasutatavate programmide jaoks.

Makroviirused muutusid tavalisteks 1990. aastate keskpaigast. Enamik sellistest viirustest on kirjutatud Microsofti programmidele nagu Word ja Excel ning levivad läbi Microsoft Office’i nakatades dokumente ja arvutustabeleid. Macintoshi arvutid olid samuti haavatavad, sest mainitud programmid olid saadaval ka Mac OS-ile.

Mõned Microsoft Wordi vanemad versioonid lubavad makrodel imiteerida end tühjade ridadega. Kui kaks makroviirust nakatavad dokumendi samaaegselt, võib nende kombinatsioon olla tuvastatav täiesti uue pahalasena.[4]

Viirused on ka võimelised saatma arvutikasutaja nimekirjas olevatele kontaktidele linke veebisaitidele, mille eesmärgiks on külastajate tehnika nakatamine.

Aastal 2002[5] teatati viirustest, mis kasutavad murdskirptimist (lüh. XSS). Selliste pahavaraliste failidega on seotud mitmeid juhtumeid MySpace’i ja Yahoo saitidel.

Nakatamisstrateegiad[muuda | redigeeri lähteteksti]

Et viirus saaks paljuneda, peab olema võimaldatud programmijuppide jooksutamine ja arvuti mälusse kirjutamine. Selle tõttu kinnitavad paljud programmid end käivitatavate failide külge, mis võivad olla kasutaja installeeritud tarkvara osaks. Strateegia abil aktiveeritakse viirusi tavaprogrammidega samaaegselt. Oma käitumismudeli poolest jagatakse viirused kaheks: mitteresidentsed ja residentsed. Mitteresidentsed viirused otsivad uusi nakatatavaid peremeesfaile kohe pärast käivitamist, sobivaid leides paljundavad end ning annavad seejärel kontrolli üle protsessi esile kutsunud põhiprogrammile. Residentsed viirused laadivad end arvuti mälusse ja jäävad taustal aktiivseks. Uus faile nakatavad nende kasutamisel programmid või operatsioonisüsteem ise.

Mitteresidentsed viirused[muuda | redigeeri lähteteksti]

Koosnevad leidja- ja replikatsioonimoodulist. Esimene otsib uusi faile. Sobivate leidmisel nakatab teine moodul need failid.

Residentsed viirused[muuda | redigeeri lähteteksti]

Residentsed viirused sisaldavad mitteresidentsetega sarnast replikatsioonimoodulit, mis laaditakse aktiveerumisel arvuti mälusse. Moodulit kasutatakse iga kord, mil operatsioonisüsteem täidab kindlat ülesannet. Näiteks võib toimuda pahavara paljunemine iga käivitatava faili jooksutamisel, mille tulemusena nakatatakse kõik leitud sobivad programmid.

Residentsed viirused jagunevad kaheks: kiiresti ning aeglaselt levivateks. Kiiresti paljunevad residentsed viirused on kavandatud nakatama võimalikult paljusid süsteemi kasutatavaid faile ja nende efektiivsus sõltub suuresti levimiskiirusest. Kiiresti paljunev pahavara kujutab endast erilist probleemi viirusetõrjeprogrammidele, sest süsteemi mälus märkamata jäänud aktiivne viirus võib nakatada üldkontrolli käigus igat kontrollitud faili. Sellist meetodit kasutades suureneb pahavara avastamise tõenäosus, kuna võib langeda nakatunud arvuti töökiirus ja esineda muidki kahtlust äratavaid sümptomeid. Aeglased residentsed viirused paljunevad aga harva, näiteks ainult failide kopeerimisel. Selliste programmide eesmärgiks on jääda madalat profiili hoides tabamatuks: arvuti aeglustumise võimalus on väiksem ja halvimal tuvastavad tõrjeprogrammid väheseid viiruse jälgi.

Failinimelaiendid ja viirused[muuda | redigeeri lähteteksti]

Viirused on suunatud erinevatele failidele ja meediumitele, näiteks:

  • Binaarsed käivitatavad failid (nt COM- ja EXE-failid MS-DOS-is, kaasaskantavad käivitatavad failid Microsoft Windowsis, Mach-O formaat OSX-is ja ELF-failid Linuxis).

Kõvaketaste peabuutsektorid. - Üldotstarbelised skript-failid nagu batch failid MS-DOS- ja ka Microsoft Windowsis, VBScript failid ja kest-skript (shell script) failid Unixi platvormides.

  • Programmipõhised skriptfailid (nagu Telix-skriptid).
  • Süsteemipõhised automaatse käivitamise failid (nagu Autorun.inf fail Windowsi opsüsteemis, mida vajatakse tarkvara automaatseks jooksutamiseks USB-andmekandjatelt).
  • Dokumendid, mis võivad sisaldada makrosid (nagu Microsoft Wordi dokumendid, Microsoft Exceli arvutustabelid, AmiPro dokumendid ja Microsoft Access’i andmebaasi failid.
  • Cross-site skriptimise turvaaugud veebirakendustes (nagu XSS Uss).
  • Programmides esinevad ärakasutatavad vead nagu puhvri ületäitumine, formaat string ja võidu-olek (race condition), mille puhul on võimalik tarkvarasse peidetud pahavaralise koodi käivitamine. Sellise õelvara tööd on võimalik raskendada sisseehitatud kaitsefunktsioonidega nagu täitmist blokeeriv bit (execute disable bit) ja/või aadressiruumi suvaline paigutus (aadress space layout randomization).

PDF-ides, nagu HTML-failideski, on võimalik viitamine kuritahtlikule koodile. PDF-failid võivad ka ise olla pahavaraga nakatunud.

Operatsioonisüsteemides, kus kasutatakse failinimelaiendeid failide sidumiseks programmidega (nt Microsoft Windows), võivad laiendid olla vaikeseadmena kasutaja eest peidetud. Selle tõttu on võimalik luua faile, mille näiv tüüp ei vasta tegelikkusele (näiteks käivitatav fail „pilt.png.exe“, millest kasutajale kuvatakse „pilt.png“).

Teiseks meetodiks on tsükkelkoodkontrolli CRC16/CRC32 kasutades genereerida erinevate operatsioonisüsteemi failide osadest viiruse koodi. Moodust kasutades on võimalik lahti pakkida üsna mahukat pahavara. Selline rünnak on väga kergesti leitav traditsioonilise viiruse signatuuri tuvastamismeetodi poolt ning tänaseni pole seda avalikkuses leitud.

Viiruste avastamise vältimise meetodid[muuda | redigeeri lähteteksti]

Kasutaja poolt märkamata jäämiseks kasutasid osad viirustest, eriti MS-DOS platvormis, „viimati muudetud“ kuupäevaga manipuleerimist. Nimelt välditi nakatamisel selle faili kirje uuendamist. Meetod on viirusetõrjeprogrammide vastu ebaefektiivne.

Osad viirused (süvendviirused, inglise cavity viruses) on võimelised nakatama operatsioonisüsteemi osi muutmata suurusi ning kahjustamata nende sisu. Selleks kasutatakse failide poolt hõivamata jäänud alasid. Näiteks CIH viirus nakatab käivitatavaid faile, milles esinevate tühimike tõttu saab 1 KB suurune pahavara levida märkamatult.

Leidub ka õelvara, mis üritab tuvastamise vältimiseks katkestada tõrjeprogrammidega seotud protsesse.

Kuna arvutid ja operatsioonisüsteemid muutuvad üha suuremaks ja keerukamas, tuleb viiruste peitmistehnikaid pidevalt uuendada. Tulevikus võib arvuti pahavara eest kaitsmine nõuda failisüsteemidelt üksikasjalikuma ning rangema failide ligipääsupoliitika rakendamist.

Tahtmatud peremeesfailid[muuda | redigeeri lähteteksti]

Arvutiviirus peab edasi levimiseks nakatama uusi faile, mille seas võib leiduda ka viirusetõrjeprogramme. Kuna paljud neist viivad iseenda peal läbi regulaarset kontrolli, suureneb vale faili nakatades viiruse tuvastamise tõenäosus. Sellel põhjusel on teatud pahalased programmeeritud ignoreerima kindlate tunnustega faile: näiteks väikseid, kindlat sisu omavaid. Viimaste seas võib leiduda ka nn söötefaile, mis on spetsiaalselt anti-viiruse poolt nakatamiseks loodud.

  • Viirusetõrje spetsialistid saavad söötefaile kasutada viiruselt proovi võtmiseks. Selline väikse failiga opereerimine on palju praktilisem, kui töödelda kogu nakatunud programmi.
  • Söötefaile kasutatakse viiruse käitumismudeli õppimiseks ning tõrjeprogrammi efektiivsuse hindamiseks. See on eriti kasulik mitmekujuliste viiruste puhul, mil pahavara on suuteline nakatama suurt hulka söötefaile, sest viimaste abiga saab kontrollida kõikide viiruse variantide tuvastamist tõrje poolt.
  • Teatud viirusetõrjeprogrammid kontrollivad loodud söötefaile regulaarselt. Kui neid on muudetud, hoiatatakse kasutajat võimalikust pahavara olemasolust.

Et söötefailide kasutamist raskendada, on mõned viirustest programmeeritud ignoreerima kindla käitumismudeli järgi muidu nakatamiseks sobivaid faile. Näiteks võib levik toimuda kindlatel nädalapäevadel või lihtsalt pisteliselt.

Varjatud viirused[muuda | redigeeri lähteteksti]

Mõned õelvaralised programmid jälgivad tõrjeprogrammide tegevust ning aktiveeruvad, kui operatsioonisüsteemile esitatakse nende poolt päring faili avamiseks. Niimoodi on võimalik viirusetõrjetarkvarale tagastada nakatatud faili terve versioon ja programmile tundub, et fail on muutmata. Tänapäevased tõrjeprogrammid kasutavad sellega võitlemiseks erinevaid tehnikaid. Ainuke täielikult usaldusväärne meetod on arvuti nakatamata meediumilt käivitamine ja selle skannimine.

Moondumine[muuda | redigeeri lähteteksti]

Enamik viirusetõrjeprogrammidest kasutab pahavara leidmiseks signatuuridel põhinevat kontrollimist. Selle käigus võrreldakse andmebaasis olevaid baidimustreid kontrollitava faili sisuga. Kui selline muster leitakse, teavitatakse kasutajat õelvarast ning vastavalt paigaldatud tarkvarale lastakse valida järgmine toiming (nt kustutada/parandada fail, puhastada süsteem). Et sellist tuvastamist vältida, kasutavad osad viirused igal nakatamisel erinevat koodi ja tulemuseks on uus signatuur.

Krüpteeritud viirused[muuda | redigeeri lähteteksti]

Üheks viiruste kaitsemeetodiks on enese krüpteerimine. Selline pahavara koosneb väikesest dekrüptiast ja krüpteeritud viiruskoodist. Kui iga uue faili nakatamisel kasutatakse krüpteerimiseks erinevat võtit, püsib muutumatuna vaid dekrüptimismoodul. Nendel juhtudel ei suuda tõrjeprogrammid otseselt pahavara signatuuri skannimisega leida, kuid sellest hoolimata jääb dekrüptia osa tuvastatavaks. Kasutatavad võtmed on sümmeetrilised ning neid hoitakse nakatunud peremees-failis. Tänu sellele on võimalik krüpteeritud viirusi lahti kodeerida. Tihti pole aga viirusetõrjeprogrammidel selleks vajadust, kuna isemuutuv kood on piisavalt haruldane, et lugeda fail halvimal juhul kahtlaseks.

Mitmekujuline kood[muuda | redigeeri lähteteksti]

Polümorfne kood oli esimene tehnika, mis kujutas endas tõsist ohtu viirusetõrjeprogrammidele. Selline pahavara nakatab uusi faile oma krüpteeritud koopiaga, mille lahtikodeerimine toimub dekrüptija abiga. Lisaks toimub igal uuel nakatamisel dekrüptimismooduli muutmine, mille tõttu puuduvad hästi kirjutatud polümorfsel viirusel peremees-failides korduvad osad. Tõrjeprogrammidel on keeruline sellist pahavara signatuuride võrdlemisega leida, sest arvatav viirus tuleb ennem lahti krüptida või analüüsida selle struktuuri. Polümorfse koodi kasutamiseks peab viirusel olema oma krüpteeritud kehas vastav mootor.

Osa pahavarast rakendab polümorfset koodi viisil, mis vähendab oluliselt viiruse muteerumissagedust. Näiteks võib muutumine toimuda pikemate ajaperioodide vahel. Samuti saab selliseid viirusi programmeerida hoiduma mutateerumisest, kui toimub faili nakatamine, mis juba sisaldab sama viiruse krüpteeritud koopiaid. Selliste võimaluste kasutamine raskendab oluliselt viirusetõrjeprogrammide tööd õelvarale kindlate tunnuste leidmisel, sest nende loodud söötefailid sisaldavad endas tüüpiliselt identseid viiruse koopiaid. Nii suureneb tõenäosus, et skannimisel jäävad viiruse osakesed leidmata.

Haavatavus ja vastumeetmed[muuda | redigeeri lähteteksti]

Operatsioonisüsteemide haavatavus viirustele[muuda | redigeeri lähteteksti]

Tarkvarasüsteemide mitmekesisus vähendab viiruste hävitavat potentsiaali. Vastupidine olukord leidis aset 1990. aastatel, mil kasvas Microsofti operatsioonisüsteemi Windows ja kontoriprogrammide (Microsoft Office) turuosa. Firma tarkvara populaarsuse tõttu on selle kliendid kõige rohkem viirustest ohustatud. Palju kriitikat on olnud ka vigade ja turvaaukude suunas, mida pahavara kirjutajad saavad ära kasutada.

Kuigi Windows on populaarseim viirusekirjutajate sihtmärk, leidub sarnast tarkvara teistelgi platvormidel. Iga operatsioonisüsteem, mis lubab kolmandate osapoolte programme, võib endas kanda aktiivseid viirusi. Mõned opsüsteemid on turvalisemad kui teised. Unix’il baseeruvad keskkonnad lubavad kasutajatel käivitatavaid programme jooksutada vaid neile etteantud kaitstud mälupiirkonnas.

Internetipõhine uuring näitas, et leidub inimesi, kes vajutaks võimalusel tahtlikult viiruse allalaadimiseks vastavat nuppu. Turbeanalüütik Didier Stevens viis Google AdWords’i kaudu läbi reklaamikampaania loosungiga: „Kas sinu arvuti on viiruseta? Hangi nakkus siit!“. Klikkide koguarvuks saadi 6 kuu jooksul 409[6][7]. Inimeste arvuteid siiski ei nakatatud, sest tegemist oli eksperimendiga.

Aastast 2006 on leitud üsna vähe Mac OS X-ile suunatud pahavara. Apple’i vanematele operatsioonisüsteemidele valmistatud viiruste koguarv varieerub erinevate allikate väitel suuresti. Apple’i sõnul on selleks numbriks 4, sõltumatu allika väitel aga koguni 63. Windowsi ja Maci õelvarale haavatavus on ka nende müüginumbrite suurimaks mõjutajaks[8]. 2009. aasta jaanuaris avastas Symantec Apple’i opsüsteemidele suunatud troojalase.

Erinevalt Windowsist on Linuxi opsüsteemis kasutajal blokeeritud süsteemifailide muutmine. See erinevus on jätkunud tänapäevalgi peamiselt tänu laialdasele administraatorkontode kasutamisele Microsofti kaasaegsetes operatsioonisüsteemides. Unix’i süsteemides on viirusel võimalik nakatada ainult neid faile, millele aktiivsel kasutajal on ligipääs. Kuna erinevalt Windowsist ei logita sellistes opsüsteemides vaikimisi sisse administraatorina, ei saa viirus pärast käivitamist failisüsteemi kahjustada.

Tarkvaraarenduse roll[muuda | redigeeri lähteteksti]

Kuna tarkvarasse implementeeritakse omavolilise süsteemiressursside kasutamise vastu erinevaid turvaelemente, peavad viirused levimiseks ära kasutama programmides leiduvaid vigu. Vigased tarkvara arendusstrateegiad suurendavad tavaliselt ka nende ärakasutamise tõenäosust pahavara poolt.

Viirusetõrjetarkvara ja teised kaitsemeetmed[muuda | redigeeri lähteteksti]

Paljud kasutajad paigaldavad arvutisse viirusetõrjetarkvara, mis on võimeline viirusi tuvastama ja eemaldama. Lisaks signatuuride võrdlemisele on levinud veel sellise heuristilise algoritmi kasutamine, mille abil otsitakse pahavarale omaseid käitumismudeleid. Selline tehnika on võimeline leidma viirusi, mille baidimustrid veel andmebaasides puuduvad.

Osad tõrjeprogrammid kontrollivad faile nende kasutamisel n-ö lennult. Sellest hoolimata ei muutu vastuvõtlikkus pahavarale, mistõttu on turvaaukude parandamiseks tähtis programmide regulaarne uuendamine. Samuti vajab värskendamist viirusetõrjetarkvara, et sellega kontrollimisel viiruste avastamise efektiivsus suureneks.

Viiruste tehtava kahju vähendamiseks võib kasutaja teha tähtsamatest failidest regulaarseid koopiaid meediumitele, mis pole süsteemiga pidevalt ühendatud või selle poolt korduvalt kasutatavad. Näiteks kui teisaldada failid optilisele andmekandjale, nt CD või DVD, muutuvad need pahavarale immuunseks (juhul, kui viirust ei kopeeritud ühes).

Taastemeetodid[muuda | redigeeri lähteteksti]

Kui arvuti on juba viirusega nakatunud, pole tavaliselt turvaline jätkata selle kasutamist ilma operatsioonisüsteemi uuesti installeerimiseta. Siiski leidub mitmeid taastevõimalusi, mille valimisel tuleb lähtuda nakkuse tüübist ja ulatusest.

Viiruse eemaldamine[muuda | redigeeri lähteteksti]

Opsüsteemides Windows Me, Windows XP, Windows Vista ja Windows 7 on võimalik kasutada süsteemitaastet (inglise System Restore), mis taastab registri ja kriitilised süsteemifailid valitud kuupäeval olnud seisundisse. Teatud pahalased keelavad aga selle abivahendi kasutamise või teiste tähtsamate programmide nagu tegumihalduri ja käsurea käivitamise. Olukord saavutatakse administraatori õigusi kuritarvitades.

Microsofti operatsioonisüsteemi kasutajatele on firma veebilehel ligipääs tasuta viirusekontrollile. Külastajalt nõutakse 20 numbrikohaga registreerimiskoodi sisestamist. Leidub teisigi saite, kus on tavaliselt võimalik kasutada ainult piiratud puhastamisvõimalusi. Nii mõjutatakse inimesi oma tarkvara ostma. Internetis pakutakse ka ühe faili kontrollimist korraga mitme tõrjeprogrammiga.

Operatsioonisüsteemi uuesti paigaldamine[muuda | redigeeri lähteteksti]

Teiseks võimalikuks lähenemiseks viiruste eemaldamisel on opsüsteemi uuesti paigaldamine. See tähendab arvuti kõvaketta vormindamist ning platvormi ja programmide installeerimist või partitsiooni taastamist puhtalt varutõmmiselt. Niimoodi on garanteeritud pahavara täielik eemaldamine. Tuleb arvestada, et kogu operatsioonisüsteemi ja programmide uuesti paigaldamine vajab palju pingutust ja aega. Seevastu varutõmmise kasutamine on kiire, täiesti turvaline ja taastab probleemideta kõik koopia loomise seisuga kehtinud seaded.

Vaata ka[muuda | redigeeri lähteteksti]

Viited[muuda | redigeeri lähteteksti]

Välislingid[muuda | redigeeri lähteteksti]

Vabavaralised viirusetõrjeprogrammid[muuda | redigeeri lähteteksti]

Artiklid[muuda | redigeeri lähteteksti]