Arvutiviirus

Viirusprogrammid

1970ndatel avastati ARPANET-is (interneti eelkäija) viirus Creeper. Tegemist oli Bob Thomase eksperimentaalse isepaljuneva programmiga. Creeper kasutas ARPANET-i võrku TENEX-i operatsioonisüsteemiga DEC PDP-10 arvutite nakatamiseks. 
Olles saanud arvutile 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 Reaper.
Elk Cloner oli esimene arvutiviirus, mis ilmus väljaspool selle loomiskeskkonda (arvutit või laborit). Kirjutatud 1981. aastal 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 veel R. Skrenta keskkoolis õppimise ajal, levis koos andmekandjal oleva mänguga. Pärast 50 kasutuskorda viirus aktiveeriti ja kuvati lühike luuletus algusega: "Elk Cloner: iseloomuga programm".
Enne arvutivõrkude ulatuslikku kasutama hakkamist levis enamik viirustest irdkandjate abil, peamiselt diskettidel ehk flopiketastel. Viimased olid personaalarvutite algusaegadel peamisteks vahenditeks informatsiooni ja programmide vahendamisel. Osad viirused levisid andmekandjal olevaid programme nakatades ning teised paigaldasid end ketta alglaadesektorisse, et viiruse aktiveerimine toimuks arvuti vahendilt käivitamisel automaatselt, seega 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 boardil (BBS) põhinenud tarkvara jagamine aitas otseselt kaasa Trooja hobuse tüüpi viiruste levikule ning viirusi hakati kirjutama enamkasutatavate programmide jaoks.
Makroviirused muutusid tavalisteks 1990. aastate keskpaigast. Enamik sellistest viirustest olid kirjutatud sellistele Microsofti programmidele nagu Word ja Excel ning levisid 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.
Viirused on ka võimelised saatma arvutikasutaja nimekirjas olevatele kontaktidele linke veebisaitidele, mille eesmärgiks on külastajate tehnika nakatamine.
Aastal 2002 teatati viirustest, mis kasutavad murdskirptimist (XSS). Selliste pahavaraliste failidega on seotud mitmeid juhtumeid MySpace’i ja Yahoo saitidel.

Nakatamisstrateegiad

Et viirus saaks paljuneda, peab arvutis 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

Need viirused koosnevad leidja- ja replikatsioonimoodulist. Esimene otsib uusi faile, sobivate leidmisel nakatab teine moodul need failid.

Residentsed viirused

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 ja 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.

Viiruste avastamise vältimise meetodid

Kasutaja poolt märkamata jäämiseks kasutasid osad viirustest, eriti MS-DOS platvormil, "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 pahavara, 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 ja rangema failide ligipääsupoliitika rakendamist.

Varjatud viirused

Mõned pahavaralised 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 skanneerimine.

Moondumine

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 pahavarast 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

Ü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üptija 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

Polümorfne kood oli esimene tehnika, mis kujutas endast viirusetõrjeprogrammidele tõsist ohtu. Selline pahavara nakatab uusi faile oma krüpteeritud koopiaga, mille lahtikodeerimine toimub dekrüptimisprogrammi abiga. Lisaks toimub igal uuel nakatamisel dekrüptimismooduli muutmine, mille tõttu puuduvad hästi kirjutatud polümorfsel viirusel peremeesfailides korduvad osad. Tõrjeprogrammidel on keeruline sellist pahavara signatuuride võrdlemisega leida, sest arvatav viirus tuleb enne 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 muteerumisest, kui toimub faili nakatamine, mis juba sisaldab sama viiruse krüpteeritud koopiaid. Selliste võimaluste kasutamine raskendab oluliselt viirusetõrjeprogrammide tööd pahavarale kindlate tunnuste leidmisel, sest nende loodud söötefailid sisaldavad tüüpiliselt identseid viiruse koopiaid. Nii suureneb tõenäosus, et viiruste otsimisel jäävad viiruse osakesed leidmata.

Operatsioonisüsteemide haavatavus viirustele

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. Kiitikat on põhjustanud vead ja turvaaugud, 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. Unixil 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 AdWordsi kaudu läbi reklaamikampaania loosungiga: "Kas sinu arvuti on viiruseta? Hangi nakkus siit!". Klikkide koguarvuks saadi 6 kuu jooksul 409. 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 pahavarale haavatavus on ka nende müüginumbrite suurimaks mõjutajaks. 2009. aasta jaanuaris avastas Symantec Apple’i opsüsteemidele suunatud Trooja hobuse.
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 nüüdisaegsetes operatsioonisüsteemides. Unixi 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

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

Viirusetõrjetarkvara ja muud kaitsemeetmed

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 turvaaukude parandamiseks on oluline programmide regulaarne uuendamine. Samuti vajab värskendamist viirusetõrjetarkvara, et selle abil 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 viirus kopeerimisega kaasa ei tulnud).

Taastemeetodid

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

Viiruse eemaldamine

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-kohalise 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

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