Article View: sfnet.atk
Article #79Ongelmanratkaisua (Re: Virusten torjunta)
From: Set{l{ Manu
Date: Mon, 13 Apr 1992 06:48
Date: Mon, 13 Apr 1992 06:48
94 lines
4378 bytes
4378 bytes
Puhun siis puucee ymp{rist|st{:
Jos minun pit{isi tehd{ (voisin tehd{, jos olisi aikaa) virusten
(_kaikkien_) etsint{ohjelma niin jakaisin ongelman osiin:
- ohjelman itsens{ verifiointi (1)
- k{yttistason ajurien verifiointi (2)
- k{ytt|j{rjestelm{n verifiointi (3)
- kovalevyll{ (tms. olevien ohjelmien verifiointi) (4)
Kaupallinen (tietty) softa manvirus toimitettaisi tietysti
kirjoitussuojatulla korpulla/lerpulla (eiv{t luuserit
sit{ kuitenkaan kirjoitussuojaisi).
Levykkeell{ voisi olla viruksia valmiina (kaukomaiden
monistuskeskukset), siihen on varauduttava.
(mv = virussofta)
Kone k{ynnistet{{n buuttaamalla se mv-levykkeelt{.
Buutin j{lkeen levykkeelt{ k{ynnistyisi (automaagisesti
esim. autoexec.batista) ver1.com. Ver1 kielt{isi keskeytykset,
ja alkaisi ajaa koodiaan. DMA luvulla luettaisi _levykkeelt{_
ver1.com, jolle lasketaan tarkistussummat (v.maisia algoritmeja
on joka oksalla, ja niit{ on helppo muuttaa). _Levykkeen_
k{sittelyn dma on varsin suoraviivainen homma (ei triviaali,
mutta teht{viss{), eik{ erilaisia dma-ohjaimia pc-koneissa
juurikaan ole (tiet{{kseni ainakaan kovin montaa tyyppi{).
(Lukemalla ohjelma vain levykkeelt{ voitetaan usean eri-
tyyppisen kovalevyn ongelmat.) Lis{ksi tutkitaan, ett{ koodi
levyll{ on sama kuin keskusmuistissa (siksi ohjelma .com).
(osatavoite 1)
Ver1.comin tarkistuksen j{lkeen tutkittaisi koko levykkeen
tarkistussummat (edelleen ne kyps{t algoritmit). T{m{kin
teht{isi keskeytykset kiellettyn{ ja dma-lukuna.
(osatavoitteet 2, 3 osittain)
Seuraavaksi voisi tutkia sen, ett{ toimitaan "oikeassa"
koneessa, eik{ virtuaalisessa. Tutkintaa voisi kokeilla
esim. pinon tutkinnalla yhdistettyn{ suoraan prosan
tyypin tutkintaan (pinon pit{{ olla 8086 pino, jos
prosa v{itt{{ olevansa sellainen). T{ss{ on fiksun viruksen
paikka, mutta sen on edelleen ollut oltava minun koneessa
tai monistamossa, joten riski on pieni.
Jos n{m{ testit on l{p{isty on levyke varmasti virukseton.
Sill{ ainoa paikka, jossa virus olisi voinut oleskella
on ver1.com, mutta silloin viruksen olisi pit{nyt tiet{{
tarkistussumman laskentamenetelm{, mik{ voidaan olettaa
mahdottomaksi (kukaan ei tied{ mink{laisen algoritmin
olisin koodannut, joten sille spesialisoitunutta virusta
on jokseenkin mahdotonta olla olemassa ennen ohjelman markki-
noilletuloa (eli omassa koneessani tai monistuskeskuksessa)).
N{iden testien j{lkeen tyhjennet{{n keskusmuisti, kaikilta
mahdollisilta osilta (mahdollinen virus lakkaa olemasta,
eik{ keskeytysten kiellon takia sill{ ole mahdollisuutta
edes puolustautua (raukka parka)). Com tyyppisen ohjelman
sijainti on tiedossa jo konekoodia naputellessa. Rommissa
oleville viruksille ei voida mit{{n toistaiseksi (eik{
stealth-viruksille koskaan), mutta rommien vaihto onkin jo
rautatason juttu, eik{ sille voi mik{{n softa mit{{n.
(osatavoitteet 2, 3 lopullisesti)
Koska keskusmuisti ja levyke ovat puhtaat voidaan keskey-
tykset sallia, ja k{ynnistet{{n normaali fprot tai scan
tyyppinen ohjelma (ver2.exe), joka tarkistaa kovalevyn.
Pc koneissa eiv{t virukset onneksi tartu pelk{n luku-
tapahtuman yhteydess{ muuten puhtaaseen keskusmuistiin.
(osatavoite 4)
Jos muuten levyke on puhdas niin my|hemmin siihen ei
virukset iske (kirjoitussuojaus).
Jos virus l|ytyy (miss{ tahansa vaiheessa) niin siit{
annetaan k{ytt{j{lle ilmoitus, ja toiminnot keskeytet{{n.
Kommentteja, kiitos. No kaikkia viruksia ohjelma ei v{ltt{-
m{tt{ l|yd{, riippuen hieman ver2.exen toiminnasta, mutta
varsin turvallinen selusta etsinn{lle on saatu.
Kellon k{yntiongelma poistuu buuttaamalla kone uudelleen
(reaaliaikakello k{y useimmissa koneissa keskeytyksist{
riippumatta).
Jos t{m{ on hyv{, niin sit{ saa k{ytt{{, kunhan mahdollisesta
voitosta muistaa minua k|yh{{ opiskelijaakin.
Patenttia sille ei ainakaan en{{ saa (julkisuus) hah hah.
manu
--
Arvatkaapa koettaisivatko virusten tekij{t murtaa tuota systeemi{
Technical Details
Message-ID:
<1992Apr13.064831.14374@funet.fi>Path:
arc1-ca.pugleaf.net!sparky!uunet!mcsun!news.funet.fi!manuShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!mcsun!news.funet.fi!manu
From: manu@cs.tut.fi (Set{l{ Manu)
Newsgroups: sfnet.atk
Subject: Ongelmanratkaisua (Re: Virusten torjunta)
Message-ID: <1992Apr13.064831.14374@funet.fi>
Date: 13 Apr 92 06:48:31 GMT
Sender: manu@tut.fi (Set{l{ Manu)
Distribution: sfnet
Organization: Tampere University of Technology (tut)
Lines: 94
Nntp-Posting-Host: kiiruna.cs.tut.fi