More than Just Lines on a Map: Best Practices for U.S Bike Routes
Arvutiviirused
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. 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. 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. 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. 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. 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. 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
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. 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. 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. 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