Arvutiviirused
Autor : Margus Sakk
See uurimistöö on on avaldatud autori teadmisel ja nõusolekul.

Sisukord

Sissejuhatus....
mitmeid eri viiruseklassidele iseloomulikke jooni. Seega on üsna raske neid mingi
kindla tüübi alla paigutada.
Üldiselt võ...
võtavad ja elektronposti annavad) ning ühe augu finger deemonis fingerd, mis
teenindab fingeri kutseid.
Kui worm seadis en...
2.2. Ainult COM-faili nakatavad viirused.
2.2.1. COMMAND.COM nakatavad viirused.
1. Boot-sektori viirused.
3.1. Kõvaketta ...
4.2 Katalooge nakatav viirus (DIR II).

DIR II (alias Creeping Death, FAT) avastati Ida-Euroopas (Bulgaaria, Ungari, Poola...
järgmine:
"Your PC is now Stoned!"
või:
"Your Computer is now Stoned."
Pärast seda kui Stoned on mälus residentne, nakatub...
4.6 Zaraza.

1994.a. oktoobri keskel leiti Moskvast uus bootviirus, millele pandi nimeks Zaraza
(vene keeles nakkus). Viir...
off-set (teised kaks baiti).
Kuidas viirus tegutseb? Viirus püüab nakatada ainult neid OBJ mooduleid, millest
peaksid saam...
ülekirjutamist on viirusel ülesanne muuta need failid *.COM failideks, aga kui
samanimeline fail juba eksisteerib, siis *....
Polümorfsus viiruse juures tähendab seda, et viiruse kood eri failides erineb
üksteisest, aga viiruse põhiülesanne jääb sa...
Selliseid viiruseid kutsutakse Multi-Partite viirusteks.
On välja mõeldud palju nn. "abi"tehnoloogiaid, mis raskendavad vi...
7. Peterman, Doug "What are computer viruses (and why should I worry about
them)?"
USA '1995
8. Stiller, Wolfgang "Integri...
Upcoming SlideShare
Loading in …5
×

Arvutiviirused

2,424 views

Published on

Published in: Business, Economy & Finance
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,424
On SlideShare
0
From Embeds
0
Number of Embeds
77
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Arvutiviirused

  1. 1. Arvutiviirused Autor : Margus Sakk See uurimistöö on on avaldatud autori teadmisel ja nõusolekul. Sisukord Sissejuhatus. 1.Esimesed arvutiviirused. 2.Interneti uss. 3.Good Times. 4.Viiruste klassifitseerimine neid iseloomustava "käitumise" järgi. 4.1. Spawning tüüpi viirus 4.2. Katalooge nakatav viirus (DIR II). 4.3. MBR- (Partitsiooni tabeli) viirus (Stoned). 4.4. Ülekirjutav viirus (Bad Brian). 4.5. Parasiitviirused. 4.6. Zaraza. 4.7. Shifting Objective. 4.8. *.BAK ja *.PAS failide viirus. 5. Viiruste klassifitseerimine nakatamiskiiruse järgi. 6. Arvutiviiruste "abi"tehnoloogiad 6.1. Stealth tehnoloogia. 6.2. Polümorfsus 6.3. Koodi pakkimine. 6.4. Ketta krüpteerimine. 6.5. "Antiviirus" viirus. Kokkuvõte. Summary. Kasutatud kirjandus. Lisa1. Kasulikke näpunäiteid viirustest hoidumiseks Käesolevas uurimustöös olen vaadelnud peaasjalikult personaalarvuti DOS keskkonna viiruseid kuna selles keskkonnas on minu arvutialased teadmised suurimad. Tegelikult on väga raske identifitseerida ja klassifitseerida arvutiviiruseid. Igaüks, kes avastab arvutiviiruse annab sellele nime ja iseloomustab seda. Paljudel juhtudel aga pole see viirus aga hoopiski uus, teda on juba kirjeldatud mitmeid kordi varem. Sageli ei kattu need kirjeldused täielikult. On üsna võimatu kirjeldada kõiki viiruste liike ja nakatumiste eri variatsioone. Seega on probleem number üks nakatumisraportite filtreerimine ja näidete kogumine. Teiseks suurimaks probleemiks on see, kuhu tõmmata joon originaalse viiruse või mõne teise viiruse variatsiooni vahele. Näiteks suudab originaalne Brian viirus nakatada vaid flopikettaid. Kas pidada Briani variatsioone, mis suudavad nakatada ka kõvaketast, aga mis kõiges muus on täiesti analoogsed, uuteks viirusteks või mitte? Aga kuidas suhtuda tulevastesse modifikatsioonidessse, mis sisaldavad juba destruktiivset (hävitavat) koodi? Kas see on juba uus viirus? Aga mida teha juhul, kui keegi võtab ühe segmendi Brian viirusest ja kasutab seda uue viiruse loomise baasina? Samasugused raskused on ka viiruste klassifitseerimisega. Paljud viirused sisaldavad
  2. 2. mitmeid eri viiruseklassidele iseloomulikke jooni. Seega on üsna raske neid mingi kindla tüübi alla paigutada. Üldiselt võib viiruseid klassifitseerida nelja eri moodi: 1.Kahjustuste järgi. (kas viirus sisaldab destruktiivset koodi või mitte) 2.Tõrjutavuse järgi. 3.Töökeskkonna järgi. 4.Viiruste (nakatamise) käitumise järgi. Käesolevas töös on põhiliselt vaadeldud DOS-keskkonna viiruseid iseloomulike nakatamisviiside järgi. 1. Esimesed arvutiviirused. Esimene laialt esinenud "metsik" (mitte teaduslikel eesmärkidel loodud) arvutiviirus oli Pakistanist pärit Brian Virus, mis sai avalikuks 1986. aastal. Järgmisel aastal alustasid tegevust Jerusalem -levinumaid ja visamaid raaliviirusi, millest on ohtralt erinevaid variante. Samal ajal tekitati ka viirus Stoned, mis on tänaseni levinuim ning üks raskesti tõrjutavaid. Tema päritolumaaks peetakse Itaaliat või Uus-Meremaad. Viiruse tunneb ära ekraanile ilmuva fraasi "Your PC is Stoned" järgi; stoned tähendab argoos meelemõistuse kaotanult purjus või narkootikumiuimas olemist. Sellest ajast muutusid raaliviiruse nakkusjuhud üha sagedamateks. Tuli ette esimesi suurkahjustusi, kui viiruse ohvriks langes suur hulk arvuteid või siis suured terviksüsteemid. 1988.a. said lühikese aja jooksul nakkuse paljud Iisraeli arvutid Weitzmanni-nimelises Instituudis, Haridusministeeriumi teadus- ja pedagoogikakeskuses, ühes Tel-Avivi tarkvarafirmas ning Juudi Ülikoolis, mille mälu järk-järgult üle koormati ning lõpuks täielikult blokeeriti. Samal ajal said nakkuse ka paljud USA firmade ja ülikoolide arvutid. Juba 1991. aastal sai USA-s viirusnakkuse keskmiselt neli personaalarvutit tuhandest ning see arv kasvab kogu aeg. 1993.aasta lõpuks oli identifitseeritud juba 2300 viirust ja nende modifikatsiooni. Raaliviiruste suhtes tundlikuks on osutunud IBM PC- ühilduvad arvutid, millele on suunatud ka viirusekirjutajate peamised jõupingutused. 1992.a. augustiks oli teada 1350 PC-viirust. Teistel arvutitüüpidel tunduvalt vähem -Amigat ähvardas 200 viirust, Macintoshi vaid 35. 2. Interneti uss. Esimene tõeline raaliviiruse epideemia puhkes USA-s 2.novembril 1988. Täpsemalt öeldes ei olnud tegu mitte viirusega, vaid vagelprogrammiga, mis erinevalt viirusest ei haaku mõne olemasoleva peremeesprogrammi külge, vaid levib ja paljune arvutivõrgus iseseisvalt. Vagla autoriks osutus Cornelli Ülikooli üliõpilane Robert Morris Jr, kes muide oli Rahvusliku Julgeolekuagentuuri Rahvusliku Arvutiturvakeskuse peateaduri poeg. Oma vaglale andis Morris nimeks worm (ingl.keeles: uss). Vagel ründas arvutivõrku Internet kell 5 pärast lõunat nakatades lühikese ajaga 6200 VAX- ja Sun-arvutit, mis töötasid operatsioonisüsteemi Unix teatud versioonidega. Paljud organisatsioonid, sealhulgas suured teaduskeskused nagu Lawrence Livermore Rahvuslik laboratoorium, olid sunnitud ennast mõneks ajaks Internetist täielikult lahti ühendama. Kahjud ründe tagajärgede likvideerimiskuludest moodustasid ühtekokku 98 miljonit dollarit. Worm ise töötas järgmisel põhimõttel: nimelt kasutas ta ära muidu väga turvaliseks peetava operatsioonisüsteemi Unix-i augu programmi sendmail silumisreziimis (see meiliprogramm töötab ootereziimil ja ootab, kuni teised süsteemid temaga ühendust
  3. 3. võtavad ja elektronposti annavad) ning ühe augu finger deemonis fingerd, mis teenindab fingeri kutseid. Kui worm seadis end mõnes süsteemis sisse, hakkas ta koguma teavet teiste sellega ühendatud hostarvutite kohta ning tegi siis katset neisse siirduda, üritades seda teha järgemööda mitmel erineval viisil. Kui nakatumine õnnestus, katkestati side. Uues kohas oli vagla esimene ülesanne ennast maskeerida, kustutades kõik sissetungimise käigus loodud failid. Seejärel hakkas vagel üritama tungida mõne kasutaja pangaarvesse, püüdes leida parooli ning seejärel end kasutajaks maskeerides. Et maskeering oleks veelgi täiuslikum, tekitas vagel nakatatud süsteemis aeg-ajalt enda koopiaid ning seejärel kustutas esialgse versiooni, nii et wormi ei saanud leida mingi ühe programmi poolt kasutatud ülemäärase protsessoriaja järgi. Iga 12 tunni järel kustutas ta tema poolt nakatatud arvutite nimekirja (s.t. viirus pidas jooksvat arvestust arvutite kohta, mida ta oli juba nakatanud). Seetõttu võis ta mõnda vahepeal vaglast puhastatud süsteemi uuesti nakatada. Mõne päeva pärast hakkasid asjad aegamööda normaliseeruma. Robert T. Morris Jr. mõisteti süüdi arvutipettuse ja -kuritarvitusakti (§ 18) rikkumises ning ta sai kolm aastat tingimisi, 400 tundi paranduslikke töid ja 10 050 $ trahvi, lisaks pidi ta tasuma enda järelvalve kulud. 1990.aasta detsembris andis ta sisse appellatsiooni, mis lükati tagasi järgmise aasta märtsis. 3. Good Times 1994.a. detsembris levis interneti uudistegruppides haruldane Good Times nimeline worm. Good Times ei olnud viirus mitte tavalises mõttes: täpsemalt väljendudes oli ta asjatundlikult käimalastud kirjakett. Selle asemel, et ise arvutist arvutisse levida, usaldas Good Times selle inimestele. Good Times töötas umbes järgmisel ideel: autor lasi ringlusse e-maili teate, mille pealkirjaks < Subject: > pani Good Times. Kiri ise sisaldas hoiatust, et mööda e-mail süsteeme liigub ringi ohtlik viirus nimega Good Times, mis aktiviseerub siis, kui lugeda viirust sisaldavat kirja. Kiri selgitas, et nakatunud kirja võib ära tunda pealkirja järgi, milleks on Good Times. Hoiatuse järgi tuli kõik sellist pealkirja kandvad kirjad kohe ilma lugemata hävitada. Paljud kasutajad ei mõistnud, et see hoiatus oli nali -üldiselt ei võimalda elektrooniline kirjasüsteem teatud kirja lugemise peale programmide käivitamist. Teisest küljest, kuna hoiatus oli kirjutatud väga siiras vormis, siis saatsid inimesed selle edasi oma sõpradele, pealegi soovitas seda ka hoiatus. Varem või hiljem tuli kiri sõprade sõpradelt või veel suurema ringiga tagasi. Esimese asjana märkas inimene loomulikult pealkirja, milleks oli Good Times. Uskudes, et teda ründab ohtlik viirus, kustutas ta selle kirja ilma lugemata. Loomulikult sisaldas see kiri vaid esialgset hoiatust. Pärast sellist pääsemist saatis see inimene arvatavasti veel mõned hoiatused... 4. Viiruste klassifitseerimine neid iseloomustava "käitumise" järgi. 1. Käivitusfaile pakkivad viirused -pakivad koodi kokku, nii et saadud fail on kas sama suur või väiksem. 2. Kõiki programmifaile (*.EXE, *.COM) nakatavad viirused. 2.1. Ainult EXE-faili nakatavad viirused.
  4. 4. 2.2. Ainult COM-faili nakatavad viirused. 2.2.1. COMMAND.COM nakatavad viirused. 1. Boot-sektori viirused. 3.1. Kõvaketta DOS Boot-sektorit nakatavad viirused. 3.2. 360 kB flopiketta viirused. 4. Ülekirjutavad viirused. 5. Parasiitviirused. 6. Mälus mitteresidentselt paiknevad viirused. 7. Mälus residentselt asetsevad viirused. 7.1. Alla 640 kB (segmendis A000). 7.2. Üle 640 kB. 7.2.1. Viirused mis kasutavad BIOS/Video/Shadow RAM-i (segment A000 - FFFF). 7.2.2. Viirused, mis kasutavad extended/expanded mälu. 8. Spawning (companion) viirused. 9. Viirused, mis manipuleerivad failipaigutustabeliga (FAT - File Allocation Table). 10.Viirused, mis nakatavad MBR-i (Master Boot Record, Partition Table). 1. Katalooge nakatavad viirused. 4.1 Spawning virus. Esimene Spawning või Companion tüüpi viirus avastati 1990.aasta aprillis. Selleks oli AIDS II. See oli esimene teadaolev viirus, mis kasutas "korrespondeeriva faili tehnikat", nii et nakatatav sihtmärk: EXE-fail jäi tegelikult muutmata. Viirus kasutas ära DOS-i omapära lugeda kõigepealt COM-faili ja seejärel alles EXE-faili, juhul kui nad on samanimelised. Viirus ei nakatanud tegelikult EXE-faili. Ta lõi samanimelise korrespondeeriva viiruse koodi sisaldava COM-faili suurusega 8,064 baiti. Uus fail asetses tavaliselt samanimelise EXE-failiga ühes kataloogis, kuid see ei ole kõikide Spawning tüüpi viiruste puhul nii. Mõned neist võisid COM- faili luua täiesti suvalisse DOS-i pathi. Viirus ise levis nii: kui inimene otsustas käivitada mõnd programmi, millel oli juba olemas korrespondeeriv COM-fail, siis käivitus kõigepealt viiruse koodi sisaldav COM-fail. Kõigepealt lõi viirus veel nakatamata EXE- failidele samanimelised aga viiruse koodi sisaldavad korrespondeerivad COM-failid. Pärast uute COM-failide loomist mängis AIDS II mingi meloodia ja kuvas ekraanile järgmise teate: "Your computer is infected with ... ? Aids Virus II ? - Signed WOP & PGI of DutchCrack -" Seejärel käivitas viirus EXE-faili ning programm käivitus probleemideta. Pärast töö lõpetamist programmiga võttis AIDS II jälle kontrolli enda kätte. Monitorile kuvati järgmine teade: "Getting used to me? Next time, use a Condom . . . . ." Viiruse koodis need teated nähtavad ei ole. Kuna EXE-fail töötas tõrgeteta, siis mõned viirusetõrje programmid ei suutnud viirust leida.
  5. 5. 4.2 Katalooge nakatav viirus (DIR II). DIR II (alias Creeping Death, FAT) avastati Ida-Euroopas (Bulgaaria, Ungari, Poola) 1991. aasta septembris. DIR II on residentselt mälus asetsev stealth-tüüpi viirus, mis kasutab täiesti uudset nakatamise tehnoloogiat. Ta on üsna raskesti avastatav, kuna tal ei ole kergesti nähtavaid ja mõõdetavaid suurusi. Kui arvuti käivitatakse nakatunud kettalt, siis sel ajal kui DOS käivitab peidetud süsteemifaile, loeb DOS ka DIR II residentselt mällu. Viirus loetakse residentseks süsteemi alumisse mällu, kus asub informatsioon (IO ja MSDOS) süsteemi konfiguratsiooni kohta. Kui kasutaja peaks vaatama mälu jaotust mõne DOS-i tööriistaga, siis näeb ta seal, et Config on 1 552 baiti suurem kui oodatud. Kui süsteemi kõvaketas ei olnud enne nakatunud, siis juhtus see viirusega nakatunud kettalt käivitamise ajal. Kuna DIR II on mälus residentselt, siis iga ketas, mis pole kaitstud ülekirjutamisseadmega, nakatatakse kasutamisel. Viirus paigutab oma koodi ketta viimasesse klastrisse (cluster). Süsteemi kõvakettal asetab viirus end eelnevalt kasutamata klastrisse. Seejärel kodeerib viirus õiged käivitusfailide viidad ja kopeerib need ketta kataloogi kasutamata osasse. Siis muudetakse õiged viidad nii, et need osutaksid viiruse koodile kõvakettal. Vaadates nakatunud kataloogi ei märka kasutaja mingit erinevust. Kõik käivitusfailid säilitavad oma esialgse suuruse ja kuupäeva/kellaaja stambi. Tegelikult ei muudeta originaalprogramme üldse. Kui kasutaja käivitab mõne programmi, siis käivitub viirus. Kasutades kodeeritud viitasid, mis sisaldasid programmi tegelikke viitasid laeb DIR II programmi, mille kasutaja kavatses käivitada. Üks põhilisi DIR II sümptomeid on see, et viirus on ka siis süsteemis, kui käivitatakse viirusvabalt kettalt. Kopeerides faile nakatunud kettalt on tulemuseks see, et failid ei kopeeru korralikult. Uued kopeeritud failid sisaldavad viiruse koodi, mis on paigutatud ketta viimasesse klastrisse. Juhul kui DIR II ei ole mälus residentne, käivitamisel DOS-i programmi CHKDSK, on resultaadiks teade suurest hulgast kadunud klastritest. Kõikide käivitusfailide kohta öeldakse, et nad on cross-linked ühes ja samas sektoris. See sektor on viiruse koodi asukoht kettal. Kui kasutada aga veel parameetrit /F, siis on tulemuseks kõigi käivitusfailide jääv moonutus. Käivitades aga CHDSK ajal, mil viirus on mälus residentne, ei järgne mingit teadet kahjustuste kohta. 4.3 MBR- (Partitsiooni tabeli) viirused. (Stoned). Viirus Stoned avastati esmakordselt Wellingtonis, Uus-Meremaal 1988. aasta alguses. Originaalne Stone nakatas ainult 360Kb 5¼'' flopisid, tegemata mingit destruktiivset kahju. Enamus ülejäänud Stoned-i modifikatsioonidest on võimelised nakatama master boot sector-t (partitsiooni tabelit) ja hävitama katalooge või failipaigutustabeli (FAT) informatsiooni. Paljud modifikatsioonidest on vaid väikese muudatusega teates, mis kuvatakse käivitamise ajal. Kui arvuti käivitatakse viirusega nakatunud kettalt, siis installeerib Stoned end süsteemimälu algusesse residentselt. Katkestusvektor 12 liigutatakse ära ja CHKDSK teatab, et arvutil on 2Kb vähem mälu kui installeeritud. Tehes algkäivituse flopikettalt püüab viirus samuti nakatada kõvaketta master boot sector-t kui see on veel eelnevalt nakatamata. Algkäivituse ajal võib Stoned suvalisel hetkel kuvada teate, mis enamasti näeb välja
  6. 6. järgmine: "Your PC is now Stoned!" või: "Your Computer is now Stoned." Pärast seda kui Stoned on mälus residentne, nakatub iga kopeerimiskaitseta ketas süsteemi lülitumisel. Nakatamisel lükkab Stoned õige boot-sektori (sektor 0) sektoriks 11 ja kopeerib end sektorisse 0. Kuna 11. sektor on tavaliselt 360Kb 5¼'' flopi juurkataloogi osa, siis kõik failid, mille kataloogi kirjed asuvad selles sektoris, on määratud kaduma. Mõnede DOS-i versioonide korral on 11. sektor osa failipaigutustabelist (FAT) -seega ketta FAT rikutakse. Kui Stoned nakatab süsteemi kõvaketast, siis kopeeritakse master boot sector uude kohta, milleks enamasti on side 0, cyl 0, sector 7. Viiruse enda koopia tehakse aga master boot sector-i endisse kohta side 0, cyl 0, sector 1. Juhul kui kõvaketas oli formaaditud tarkvaraga, mis paigutas boot-sektori, failipaigutustabeli või ketta kataloogi side 0, cyl 0 kohe peale master boot sector-t, siis on kõvaketas kahjustatud. 4.4 Ülekirjutavad viirused. Üheks ülekirjutavaks viiruseks on näiteks Bad Brian (samuti tuntud kui BB). Bad Brian avastati 1992.aasta aprillis. BB on destruktiivne viirus, sest kõik failid, mida ta nakatab, on seejärel kahjustunud. Nakatamise objektiks valib ta COM-failid, sealhulgas ka COMMAND.COM. Kui käivitatakse programm, mis on nakatatud BB poolt, siis nakatab viirus ühe COM- faili, mis asub teises alamkataloogis. Failis, mis on nakatunud BB-ga, on 576 baiti faili algusest viiruse poolt üle kirjutatud. See osa sisaldab seejärel ainult viiruse koodi. Kuna esialgset koodi kuskile ümber ei kopeerita, siis faili pikkus pärast nakatumist ei muutu, küll aga kaotab fail oma endise ülesande. Samuti ei muutu ka faili modifitseerimise kuupäev ja kellaaeg. Kuna ülekirjutavad viirused kirjutavad oma koodi peremees-faili koodi peale, siis ei saa neid faile enam pärast taastada. Need tuleb lihtsalt asendada viiruspuhaste failidega. 4.5 Parasiitviirused. Parasiitviirused on viirused, mis kirjutavad oma koodi peremees-faili otsa (EXE- ja COM-failid). Seega muutub fail viiruse koodi võrra pikemaks. Viirus kasutab ära faili alguses olevat käsku JMP, mida muudetakse nii, et see osutaks kõigepealt viiruse koodile faili lõpus ja seejärel käivitaks selle. Õige JMP-käsk kopeeritakse aga viiruse koodi lõppu. Pärast seda, kui viirus on nakatanud veel mõned EXE- või COM-failid, pannakse käima õige programm. Üsna tihti ei sisalda need viirused hävitavat koodi. Ainus asi, mis annab märku viiruse olemasolust, on faili suurenemine viiruse koodi võrra ja mingi viirusele iseloomulik string faili lõpus. Kuid uuematel viirustel ei peagi faili suurus kasvama, sest peremees-faili kood pakitakse kokku.
  7. 7. 4.6 Zaraza. 1994.a. oktoobri keskel leiti Moskvast uus bootviirus, millele pandi nimeks Zaraza (vene keeles nakkus). Viirus kasutab täiesti ainulaadset nakatamismeetodit. Zaraza nakatab flopide boot-sektoreid nagu tavaliselt. See-eest kõvakettal nakatab viirus DOS-i tuuma: faili IO.SYS. Seetõttu mõeldi välja kohe uus viiruste klass: kernel infectors. Viiruse pikkus on 1024 baiti (s.t. kaks sektorit). Flopil on viiruse esimene osa boot-sektoris, ülejäänud osa viirusest ja esialgset boot sektorit hoitakse juurkataloogi kahes viimases sektoris. Kui arvuti käivitatakse nakatatud disketilt, siis püüab viirus nakatada esimest faili aktiivse DOS-partitioni juurkataloogis (tavaliselt on see IO.SYS). Kõigepealt teeb viirus failist koopia ja siis kirjutab faili algusse oma koodi. Hiljem pannakse nakatatud faili atribuudiks Volume label. Kui arvuti järgmine kord käivitatakse, siis aktiviseerub ka viirus ja tegutseb edasi nagu tavaline boot-sektori viirus. Kõik arvutis kasutatavad kopeerimiskaitseta flopid muutuvad viirusekandjateks. Nakatunud kõvaketta nimeks on IO.SYS (Label seda nime muuta ei suuda!). Kuna Zaraza asub failis IO.SYS, siis ei aita ka FDISK/MBR, kuna see asendab vaid MBR-i ja boot-sektori. Samuti ei aita ka SYS C:, kuna see muudab/kustutab vaid IO.SYS faili nakatumata koopia. Lisaks kõigele muule on Zaraza veel kergelt polümorfne: nakatunud ketaste boot- sektorid erinevad vähesel määral teineteisest. Ainult string MS DOS 5.0 sektori alguses ja 55AA sektori lõpus on alati nähtavad. Viirus sisaldab teksti "V boot sektore zaraza". Tekst on kodeeritud ja seda ei ole näha isegi mälus. Augusti jooksul näitab viirus seda teadet igal käivitamisel. Zaraza ei sisalda hävitavat koodi. Vea tõttu koodis jääb viirus sageli 386/486 protsessoriga arvutitel rippuma. Zaraza suudab nakatada vaid neid kõvakettaid, mille aktiivne DOS-partition on suurem kui 10,6 MB. 4.7 Shifting Objective. Siiamaani on kõikide viiruste üheks vältimatuks omaduseks olnud käivituvate failide nakatamine. Ent seda vaid 1994.a. alguseni. Nimelt siis tuli avalikkuse ette Shifting Objective, esimene viirus, mis ei nakata käivituvat koodi. Selle asemel lisab ta end hoopis OBJ moodulitele. (OBJ fail on vaheaste programmide lähtetekstide ja käivitatava koodi vahel.) Mitte kõik inimesed ei kirjuta programme ja mitte kõik programmeerijad ei kasuta selleks C -d või assemblerit -seega nende arvutites Shifting Objective ei levi. OBJ fail on põhimõtteliselt muutuva pikkusega kirjete jada. Iga kirje alguses on 3 baiti pikk päis ja lõpus kontrollsumma. Päise esimene bait defineerib kirje tüübi ja ülejäänud kaks baiti sisaldavad endas kirje pikkust baitides. Osad kirjete tüüpidest on: 80h -OBJ faili esimene kirje 8Ah -OBJ faili viimane kirje 8Ch -väliste andmete definitsioonid A0h -tavaline kood A2h -kokkusurutud kood. Tavaline OBJ fail algab esimese ja lõpeb viimase kirjega. Need kirjed sisaldavad OBJ mooduli nime, koodi algusaadressi ja muud taolist infot. Väliste andmete definitsioonide kirje sisaldab endas teistes OBJ moodulites paiknevate andmete ja koodide nimekirja. Viimased kaks kirjetüüpi sisaldavad tegelikku koodi ja andmeid (A0h) või korduvaid mustreid (DUP käskude tulemus lähtetekstis). Nendel kirjetel on pärast kolmebaidist koodi veel kolm baiti:segmendi indeks (esimene bait) ja koodi
  8. 8. off-set (teised kaks baiti). Kuidas viirus tegutseb? Viirus püüab nakatada ainult neid OBJ mooduleid, millest peaksid saama *.COM failid. Ta lisab end OBJ moodulile nii, et pärast linkimist on COM-failis viiruse kood esimene. Käivitamisel alustab viirus tegevust. Kõigepealt kontrollib ta, kas ta on juba residentne. Kui ei, siis see viga parandatakse. Edasi kutsub viirus välja residentse osa, mis tõstab vana koodi õigele kohale tagasi ja laseb selle käima. Viirus ronib DOS -le kättesaadava 640 KB lõppu, vähendades seda 2 KB võrra. Samuti haarab ta enda kätte katkestusvektori 2Ih. Residentsena jälgib viirus failide sulgemist. Kui suletav fail on OBJ moodul, siis püütakse teda enne sulgemist nakatada. Viirus kontrollib iga kirje päist. Kui kirje on väliste andmete definitsiooni kirje, siis jäetakse fail puutumata. Kui kirje on koodikirje (A0h või A2h), siis muudetakse tema koodi off-set, liites sinna juurde viiruse pikkuse, ja lõpus kontrollsummat. Kui kirje on esimene koodikirje ja koodi off-set ei ole 100h, siis otsustatakse, et tegemist ei ole COM-faili jaoks mõeldud OBJ mooduliga ja jäetakse fail puutumata. Kui tegemist on viimase kirjega, siis loetakse see mällu, kirjutatakse asemele tavalise koodi kirjena viiruse kood ja pannakse viimane kirje tagasi faili. Mingeid muid kõrvalefekte peale paljunemise viiruses ei esine. Samuti ei sisalda ta mingi hävitavat koodi. Viiruse koodis on lahtiselt näha teksti: Shifting Objective Virus 3.0 © 1994 Stormbringer [Phalcon/Skism] Kudos go to The Nightmare! Viirusega seoses tekib üks probleem. Nimelt on Shifting Objective võimeline korralikult töötama vaid COM-failis, aga OBJ-failis ei ole kuskil kirjas, et konkreetne moodul peaks saama COM-failiks. Keegi ei keela meil COM-failina mõeldud OBJ- moodulit linkimast EXE-failiks. Samuti võib EXE-faili lähteaadressiks olla 100h. Shifting Objective ei kujuta endast suurt ohtu. Kui mitte arvestada ülaltoodud probleemi, siis ei tekita viirus mingeid kahjusid. Pealegi ei levi see viirus just eriti aktiivselt. 4.8 *.BAK ja *.PAS failide viirus. Üheks selliseks viiruseks, mis tegeleb *.BAK ja *.PAS failidega on Anti-Pascal. See viirus avastati 1990 aasta juunis Sofias Vesselin Bontchevi poolt. Arvatakse, et tegelikult kirjutati see viirus kas Venemaal või Poolas. Üldiselt on Anti-Pascal *.COM faili viirus (sealjuures on ta võimeline nakatama ka COMMAND.COM-i). Kui viirus ei ole veel mälus residentselt, siis nakatamise käigus hõivatakse vektor 24. Kui käivitatakse nakatunud programm, siis on viirusel ülesandeks nakatada teisi *.COM faile aktiivsel kettal või D: kettal, aga ainult neid faile mis asuvad vahemikus 605 ja 64 930 baiti. Samuti ei tohi need failid sisaldada read-only atribuuti. Kui leitakse selline nakatumata *.COM fail, mis vastab viiruse kriteeriumitele, siis esimesed 605 baiti *.COM failis kirjutatakse üle viiruse koodiga. Õige kood kirjutatakse aga faili lõppu. Seega kasvab faili suurus 605 baidi võrra, muudetakse ka faili kuupäeva/kellaaja stampe, mis saavad nakatumise hetke andmed. Nakatunud fail sisaldab stringi "combakpas???exe". Kui Anti-Pascal ei leia nakatamiseks vähemalt kahte *.COM faili, siis otsib ta aktiivsest kataloogist *.PAS ja *.Bak faile. Kui leitakse mõni sellise laiendiga fail, siis kirjutatakse esimesed 605 baiti viiruse koodiga üle. Kui ülekirjutavaks failiks oli *.PAS fail, siis kaotab kasutaja osa Pascali koodist. Pärast *.PAS ja *.BAK failide
  9. 9. ülekirjutamist on viirusel ülesanne muuta need failid *.COM failideks, aga kui samanimeline fail juba eksisteerib, siis *.EXE failiks. Kuna Anti-Pascali esialgse variandi koodis oli viga sees, siis viimast ülesannet ei suutnud viirus täita. See viga parandati viiruse hilisemate versioonidega. Anti-Pascal II koodis muudeti aga ümbernimetamise käsk ära kustutamiskäsuks. Seega mitte leides vähemalt kahte nakatamata *.COM faili, kustutas Anti-Pascal II ära kõik *.PAS ja *.BAK ja veel ka *.BAT failid, mis ta leidis. Anti-Pascal II erinevuseks tema eelkäijast on veel see, et selle viiruse kood kirjutatakse *.COM faili lõppu. Programmi käivitamisel suunatakse esimese JMP käsuga viiruse koodile ja alles seejärel käivitatakse õige kood. Samuti ei muudeta kuupäeva/kellaaja stampe. Anti-Pascal II nakatab kõigepealt iga ketta juurkataloogis asuva esimese *.COM faili (tavaliselt on selleks COMMAND.COM). Üheks oluliseks Anti-Pascal II sümptomiks on veel see, et ta võib kahjustada ketta boot-sektorit nii, et enne käivitatav ketas seda enam ei ole. 5. Viiruste klassifitseerimine nakatamiskiiruse järgi. Nakatamiskiiruse (aktiivsuse) järgi saab viiruseid klassifitseerida kas aktiivseteks (Fast Infectors) või väheaktiivseteks (Slow Infectors). Aktiivne viirus on viirus, mis olles aktiivselt mälus ei nakata ainult parajasti käivitatavaid faile, vaid ka neid, mis on lihtsalt avatud. Sellise viiruse resultaadiks on see, et pärast mõne käivitusfailide kontrollprogrammi käivitamist on enamus käivitusfaile korraga nakatunud. Ühtedeks sellisteks viiruseks on Dark Avenger ja Frodo. Terminit -"väheaktiivne viirus" kasutatakse põhiliselt viiruste kohta, mis olles aktiivselt mälus nakatab ainult neid faile, mida kas modifitseeritakse või parasjagu luuakse. Näiteks võib tuua viiruse nimega Darth Vader. 6. Arvutiviiruste "abi"tehnoloogiad. 6.1 Stealth tehnoloogia. Paljud arvutiviirused kasutavad oma paremaks maskeerimiseks niinimetatud stealth tehnoloogiat. See käib eeskätt residentselt mälus asuvate viiruste kohta. Üheks selliseks on Venemaalt pärit AntiEXE. Näiteks kui viirus on aktiivselt mälus, siis iga kutse, mis tehakse Master Boot Record- le, võetakse vastu viiruse poolt ja MBR kutsutakse välja. Kui aga proovida kirjutada midagi MBR-i, siis teeb arvuti algkäivituse. Veel üks stealth tehnoloogiat kasutavate viiruste omaduseks on see, et nad nakatavad faile "lennult", s.t. kui mällu hakatakse lugema nakatunud programmi, siis desinfitseerib viirus selle faili. See raskendab aga tunduvalt viirusetõrje programmidel nakkust avastamast. Kolmas omadus on viiruste suutlikkus nakatada ka neid käivitusfaile, mis antud hetkel on avatud. See aga avab suuremad võimalused levida kiiresti üle kogu süsteemi. 6.2 Polümorfsus. Bulgaaria üks tuntumaid viirusekirjutajaid Dark Avanger on lasknud välja mootori, millega saab praktiliselt igasuguse viiruse polümorfseks teha. seega ei ole see võimalus enam kitsa ringi viirusekirjutajate käes. See raskendab tunduvalt viiruse tabamist viirusetõrje programmide poolt.
  10. 10. Polümorfsus viiruse juures tähendab seda, et viiruse kood eri failides erineb üksteisest, aga viiruse põhiülesanne jääb samas endiseks. 6.3 Koodi pakkimine. Seda tehnoloogiat kasutavad peamiselt parasiit-viirused. Pakkides põhiprogrammi koodi kokku ja seejärel enda koodi tekkinud vabale kohale kirjutades, ei ole näha, et fail suureneks, saadud fail võib olla isegi esialgsest väiksem. Käivitades sellist pakitud faili, hakkab viirus kõigepealt koodi lahti pakkima. Programm käivitub ja pärast töö lõpetamist pakib viirus faili koodi kokku tagasi. Ühed selliseid viiruseid on Cruncher-i "perekonda" kuuluvad viirused. Pakkimiseks kasutavad nad Lempel-Zev-Huffman-i pakkimismeetodit. 6.4 Ketta krüpteerimine. Esimesena tuli sellise idee peale mitmete viirusealaste raamatute autor Mark Ludwig. Põhimõte on selles, et viirus, saades mälus residentseks, hakkab kettal olevaid andmeid tugeva algoritmiga kodeerima. sellised viirused on väga destruktiivsed, sest on oht jääda ilma kõikidest andmetest, mis asuvad kõvakettal. Põhiline probleem sellistel boot-viirustel on see, et nad satuvad tihti vastuollu Windowsiga kuna seal kasutatakse 16bitise andmevahetuse asemel 32 bitist. Seega tuleb Windowsi peamine swap-fail jätta kodeerimata. 6.5 "Antiviirus"-viirus. Mõned arvutiviirused ei ole disainitud ainult nakatama käivitusfaile, vaid sisaldavad ka teatud antiviiruse koodi. Need viirused sisaldavad mootorit, mis on võimelised võimetuks tegema või kõrvaldama antiviiruse programme ja konkureerivaid viiruseid. Üheks selliseks on näiteks Den_Zuko (kustutab ära Brian või Ohio viiruse ja kirjutab oma koodi selle asemele), aga ka Yankee_Doodle (selle viiruse uuematel versioonidel on võime upgrade-da oma vana versioon, kustudades vana koodi ja kirjutades sinna peale uuema versiooni koodi aga ka muuta viiruse Ping Pong koodi nii, et pärast sajandat nakatamist hävitab Ping Pong end), Neuroquila seevastu suudab teha võimetuks mõningaid viirusetõrjeprogramme. Kokkuvõte. Arvutiviiruste suhtes kõige tundlikumaks on osutunud IBM PC-ühilduvad arvutid. Nendel arvutitel on avastatud praktiliselt kümme korda rohkem viiruseid kui teistel. Seni on viiruste suhtes kõige töökindlamaks osutunud Macintosh tüüpi arvutid. Üldiselt võib IBM tüüpi arvuti viirused jagada kahte suurde gruppi. Esimeseks oleksid viirused, mis kasutavad oma levikuks faile (nakatades neid). Enamasti osutuvad nakatunuteks *.EXE ja *.COM failid, aga on olemas viiruseid, mis suudavad nakatada ka teistsuguste laienditega (*.SYS, *.OVL, *.PRG) faile. Faile nakatavad viirused võib omakorda jaotada kaheks: a)viirused, mis loevad end residentselt mällu b)viirused, mis ei loe end residentselt mällu Teiseks viiruste rühmaks oleksid süsteemi või buut-sektori viirused. Siia gruppi kuuluvad viirused, mis kirjutavad oma koodi ketta buut-sektorisse. Seega tehes algkäivituse nakatunud kettalt aktiviseeritakse ka viirus. Sellised viirused on tavaliselt üsna destruktiivsed, sest kirjutades viiruse koodi buut-sektorisse, kirjutatakse üle seal eelnevalt asunud info ketta kohta. Kuid on olemas ka viiruseid, mis suudavad nakatada nii faile, kui ka buut-sektorit.
  11. 11. Selliseid viiruseid kutsutakse Multi-Partite viirusteks. On välja mõeldud palju nn. "abi"tehnoloogiaid, mis raskendavad viirustõrje programmidel viirusi leidmast. Need on "mootorid", mida saab viiruse koodi juurde panna, et viirus oleks raskesti avastatav või oleks tema levik kiirem/laialdasem. Sellisteks abivahenditeks on: 1.ketta krüpteerimine 2.polümorfsus 3.failide pakkimine 4.stealth tehnoloogia 5."antiviirus" viirus. Summary. Generally, in PC-compatible computers are two main classes of viruses. The first class consists of the File Infectors which attach themselves to ordinary program files. These usually infect arbitrary *.COM and/or *.EXE programs, though some can infect any program for which execution is requested, such as *.SYS, *.OVL, *.PRG and *.MNU files. File infectors can be either direct Action or Resident. A direct - action virus selects one or more other programs to infect each time the program which contains it is executed. A resident virus hides itself somewhere in memory the first time an infected program is executed, and thereafter infects other programs when "they" are executed or when certain other conditions are fulfilled. Most viruses are resident. The second category is System or Boot-Record Infectors: those viruses which infect executable code found in certain system areas on a disk which are not ordinary files. On DOS systems, there are ordinary boot-sector viruses, which infect only DOS boot- sector, and MBR viruses which infect the Master Boot Record on fixed disks and the DOS boot sector on diskettes. Examples include Brain, Stoned, Empire, Azuza and Michelangelo. Such viruses are always resident viruses. But a few viruses are able to infect both (the Tequila virus is one example). These are often called Multi-Partite viruses, though there has been criticism of this name; another name is Boot-and-File virus. File System or Cluster viruses (e.g. DIR II) are those which modify directory table entries so that the virus is loaded and executed before the desired program is. Note that the program itself is not physically altered, only the directory entry is. Some consider these infectors to be a third category of viruses, while others consider them to be a sub-category of the file infectors. KASUTATUD KIRJANDUS. 1. Bontchev, Vesselin"Are Good Computer Viruses Still a Bad Idea?" University of Hamburg. 2. Brunnstein, Klaus "MSDOSVIR.791" University of Hamburg 14.02.91. 3. Chess, David M. "Some Common PC-DOS Viruses and What They Mean To You." IBM Thomas J. Watson Research Center Yorktown Heights, NY '1991. 4. Hoffman, Partica M. "The Virus Information Summary List" '1996. 5. Kehoe, Brendan P. "Interneti Zen" 1994 lk 48. 6. LeRoy H. Pedone, Kevin J. Ziese "The Virus" '1993.
  12. 12. 7. Peterman, Doug "What are computer viruses (and why should I worry about them)?" USA '1995 8. Stiller, Wolfgang "Integrity Master" version 2.61, Colorado Springs, USA '1996. 9. van Wyk, Ken R. "Virus-L., FAQ." '1996 10. Ajakiri "Arvutimaailm" '1994 nr 3 lk 61-62.Ustus Agur "The Virus Story." 11. Ajakiri "EXE" '1995.a. nr 7. lk 53. 12. Ajakiri "EXE" '1995.a. nr 7. lk 54. 13. Ajakiri "EXE" '1995 nr 8. lk 56. 1. Ajaleht "Äripäev" 11.03.1992. Jaak Ennuste "Arvutiviirused." LISA 1. Sõnaseletused. Boot sector alglaadimissektor (sektor, kus asub info arvuti algkäivituse kohta) File Allocation Table (FAT) failipaigutustabel (kirjeldab paigutust välissalvestist), info failide ja nende asukoha kohta. Master Boot Record (MBR) info failisüsteemi ja kõvaketta kohta (operatsioonisüsteemi alguse aadress jne.). Esimene füüsiline sektor (track 1, head 0, sector 1) PC kõvakettal. See ei ole sama, mis esimene DOS-i sektor (logical sektor 0). Partition Table info ketta kohta (kas ketas on buuditav, sektorite ja silindrite arv kõvakettal jne.) CHKDSK MS DOS-i tööriist, mis näitab arvuti mälujaotust ja kas failid asuvad kettal samal aadressil kui FAT-is (cross-linked files). Path kataloogide nimekiri, kust otsitakse sisestatavat käivitusfaili Swap-file fail, kuhu salvestatakse operatsioonimälust teatud andmehulgad, mida ei kasutata aktiivselt. Upgrade vanema tarkvara versiooni asendamine uue versiooniga

×