Vírusvédelmi technikák vizsgálata. Tanulmány. Veszprog Kft. 2002.



Hasonló dokumentumok
Történet. Számítógépes vírusok. Mik a vírusok? A vírusok felépítése

Számítógépes vírusok. Barta Bettina 12. B

SZÁMÍTÓGÉPES KÁRTEVŐK (MALWARE)

Vírusok típusai, működési elvük

A vírusok Végi András¹, Antal Krisztina¹, Kiss Zsófia¹, Szécsényi Hajnalka¹, Demeter Lehel²

IV. Számítógépes vírusok és védekezési módszerek

Szoftver alapfogalmak

Vírusok. - önreprodukcióra képes, károkat okozó program

17. témakör Vírusok - Víruskeresés

1982-ben az akkor 15 éves amerikai diák, Rich Skrenta úgy döntött, hogy megvicceli ismerőseit, ezért írt egy programot. A kilencvenes évek közepén,

A L I N U X f e l é p í t é s e

Nyíregyházi Egyetem Matematika és Informatika Intézete. Fájl rendszer

SZOFTVER = a számítógépet működtető és az azon futó programok összessége.

tovább használhatjuk a Windows-t.

Az operációs rendszer. Az operációs rendszer feladatai, részei, fajtái Az operációs rendszer beállítása

Vírusok és kártékony programok A vírus fogalma, típusai Vírusirtás Védelem

Mértékegységek a számítástechnikában

Hardver és szoftver követelmények

OE-NIK 2010/11 ősz OE-NIK ősz

Alkalmazások típusai Szoftverismeretek

A KÖZÉPSZINTŰ ÉRETTSÉGI VIZSGA INFORMATIKA TÉMAKÖREI: 1. Információs társadalom

Adatbázis rendszerek. dr. Siki Zoltán

MS Windows XP Professional SP2 telepítés virtuális gépre.

OPERÁCIÓS RENDSZEREK I. HÁTTÉRTÁRAK

1. A Windows Vista munkakörnyezete 1

Merevlemez üzembe helyezése, particionálása

Vírusok Vírusjelenségek:

Automatikus vírusvédelmi megoldások az Interneten

Hardverkarbantartó programok

5.4.2 Laborgyakorlat: A Windows XP telepítése


Munka a fájlokkal. Az általánosan használt fájltípusok. Programfájlok. Adatfájlok

Elektronikus levelek. Az informatikai biztonság alapjai II.

Nyíregyházi Egyetem Matematika és Informatika Intézete. Fájl rendszer

Az operációs rendszer fogalma

Számítógép kártevők. Számítógép vírusok (szűkebb értelemben) Nem rezidens vírusok. Informatika alapjai-13 Számítógép kártevők 1/6

A számítógép egységei

Telepítési útmutató a Solid Edge ST7-es verziójához Solid Edge

Informatika szóbeli vizsga témakörök

BaBér bérügyviteli rendszer telepítési segédlete év

SZÓBELI ÉRETTSÉGI TÉMAKÖRÖK

Informatikai biztonság alapjai

Telepítési Kézikönyv

Teljes vírusirtás a NOD32 Antivirus System segítségével. vírusirtási útmutató

Az internet az egész világot behálózó számítógép-hálózat.

2. modul - Operációs rendszerek

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés

Tét Város Polgármesteri Hivatal

BaBér. Bérügyviteli rendszer. Telepítési segédlet 2014.

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

HÁLÓZATBIZTONSÁG III. rész

Telepítés, újratelepítés több számítógépre, hálózatos telepítés Kulcs-Bér program

iseries Client Access Express - Mielőtt elkezdi

Elektronikusan hitelesített PDF dokumentumok ellenőrzése

3 A hálózati kamera beállítása LAN hálózaton keresztül

ÁNYK53. Az Általános nyomtatványkitöltő (ÁNYK), a személyi jövedelemadó (SZJA) bevallás és kitöltési útmutató együttes telepítése

A vírus olyan program, amely önmagáról másolatokat készít és terjeszt, miközben rejtőzködik. Egy idő után kárt okozhat a számítógépes rendszerben.

Alapismeretek. Tanmenet

Védené értékes adatait, de még nem tudja hogyan?

A vírus olyan program, amely önmagáról másolatokat készít és terjeszt, miközben rejtőzködik. Egy idő után kárt okozhat a számítógépes rendszerben.

Információ és kommunikáció

Kezdő lépések Microsoft Outlook

1. tétel. A kommunikáció információelméleti modellje. Analóg és digitális mennyiségek. Az információ fogalma, egységei. Informatika érettségi (diák)

INFORMATIKA EGYRE NAGYOBB SZEREPE A KÖNYVELÉSBEN

Opensuse automatikus telepítése

Számítógépes alapismeretek 2.

A Microsoft terminálszolgáltatás ügyfél oldali hardverigényének meghatározása

DIGITÁLIS ALÁÍRÁS HASZNÁLATA A MICROSOFT OFFICE2000-BEN A MAKRÓK VÉDELMÉRE

Informatika érettségi vizsga

Számítógép felépítése

Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat

Java-s Nyomtatványkitöltő Program Súgó

Windows 8.1 frissítés, részletes útmutató

Fájlrendszerek. A Windows operációs rendszerek fájlrendszere

Programférgek Trójai programok Baktériumok

1. tétel: A kommunikációs folyamat

SZOFTVEREK (programok)

13. Fájlformátumok. Schulcz Róbert Madarassy László 13. Fájlformátumok v

A telepítési útmutató tartalma

Gyakorlati vizsgatevékenység. Graf Iskola

VBA makrók aláírása Office XP/2002/2003 esetén

IT hálózat biztonság. A hálózati támadások célpontjai

RapidMiner telepítés i. RapidMiner telepítés

Ú J B E L É PŐK RÉSZÉRE NYÚJTOTT

12. tétel. Lemezkezelés

A Novitax ügyviteli programrendszer első telepítése

Telenor Webiroda. Kezdő lépések

ÉRETTSÉGI TÉTELCÍMEK 2018 Informatika

BBS-INFO Kiadó, 2016.

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor

Iman 3.0 szoftverdokumentáció

PTE-PROXY VPN használata, könyvtári adatbázisok elérhetősége távolról

Informatikai biztonság a kezdetektől napjainkig

Programozás alapjai Bevezetés

Távolléti díj kezelése a Novitax programban

A FileZilla program beállítása az első belépés alkalmával

Az SQL*Plus használata

TESZ INTERNET ÉS KOMMUNIKÁCIÓ M7

ÜGYFÉL OLDALI BEÁLLÍTÁSOK KÉZIKÖNYVE

Átírás:

Vírusvédelmi technikák vizsgálata Tanulmány Veszprog Kft. 2002.

Tartalomjegyzék Bevezetés... 7 1. Néhány alapfogalom... 9 1.1. Háttértárolók felépítése... 10 1.1.1. A diszkek fizikai felépítése... 10 1.1.2. Diszkek logikai felépítése... 11 1.1.3. Partíciók felépítése... 12 1.1.4. Directory- és fileszerkezet... 13 1.1.5. Diszkhozzáférési lehetőségek... 15 1.2. Fájlok és fájlrendszerek... 17 1.3. Hasznos és jóindulatú programok... 20 1.4. Spam... 21 1.5. Script nyelvek... 22 1.5.1. A VBScript... 22 1.5.2. A JavaScript... 22 1.5.3. A CorelScript... 23 1.5.4. IRC, mirc... 23 1.5.5. INF-ektorok... 23 1.5.6. A Unix ShellScript és a PERL... 23 1.5.7. Egyéb Script nyelvek... 24 2. Támadáspontok a rendszereken... 25 2.1. A DOS rendszerek gyenge pontjai... 26 2.2. Windows rendszerek támadható pontjai... 27 2.2.1. A Windows 9x/ME támadható pontjai... 30 2.2.2. A Windows NT és Windows 2000 támadható pontjai... 30 2.3. Az MS Office rendszerek gyengeségei... 32 2.4. Az Outlook programok biztonsága... 35 2.5. A Unix és Linux rendszerek támadható pontjai... 37 2.5.1. A Linux sem sebezhetetlen... 38 3. Malware, avagy rosszindulatú programok... 44 3.1. Vírusok... 48 3.1.1. A vírusok szerkezeti elemei és funkciói...51 3.1.2. Vírusalfajok a terjedési mód szerint... 52 3.1.2.1. Bootvírusok... 53 3.1.2.2. Fájlvírusok... 54 3.1.2.3. Makróvírusok... 56 2

3.1.2.4. Scriptvírusok... 57 3.1.2.5. Levelező vírusok... 58 3.1.3. Vírusalfajok a rejtőzködés eszközei szerint... 60 3.1.3.1. Felülíró vírusok... 61 3.1.3.2. Append (hozzáíró) vírusok... 61 3.1.3.3. Vírusátiratok, mutáló vírusok, polimorf vírusok... 62 3.1.3.4. Companion (CEB) vírusok... 63 3.1.3.5. Dropperek (pottyantók)...63 3.1.3.6. Vírusgyártó kitek... 63 3.1.3.7. Multitarget (többcélpontú) vírusok... 64 3.1.4. Kis vírustörténelem... 64 3.1.4.1. Az 1960-as évek végétől az 1970-es évek elejéig... 65 3.1.4.2. Az 1970-es évek első felében... 65 3.1.4.3. Az 1980-as évek elején...65 3.1.4.4. 1981 eseményei... 66 3.1.4.5. 1986 eseményei... 66 3.1.4.6. 1987 eseményei... 66 3.1.4.7. 1988 eseményei... 67 3.1.4.8. 1988. november... 68 3.1.4.9. 1988. december... 68 3.1.4.10. 1989 eseményei... 68 3.1.4.11. 1990 eseményei... 69 3.1.4.12. 1991 eseményei... 70 3.1.4.13. 1992 eseményei... 70 3.1.4.14. 1993 eseményei... 71 3.1.4.15. 1994 eseményei... 72 3.1.4.16. 1995 eseményei... 73 3.1.4.17. 1996 eseményei... 73 3.1.4.18. 1997 eseményei... 74 3.1.4.19. 1998 eseményei... 75 3.1.4.20. 1999 eseményei... 77 3.1.4.21. 2000 eseményei... 78 3.1.4.22. 2001 eseményei... 79 3.1.4.23. 2002 eseményei... 80 3.2. Programférgek (Wormok)... 80 3.3. Trójai programok... 81 3

3.4. Backdoor programok, root-kitek... 82 3.4.1. Ismert (nevesebb) backdoor programok:... 82 3.4.2. Root-kitek... 83 3.5. Hoaxok, rémhírek, lánclevelek... 83 3.5.1. Hoax kategóriák... 85 3.5.1.1. Vakriasztások, rémhírek...87 3.5.1.2. Városi mítoszok és legendák... 88 3.5.1.3. Ingyen Ajándékok (Give Aways)... 89 3.5.1.4. Zagyva, elévült, elavult figyelmeztetések (Inconsequential Warnings)... 90 3.5.1.5. Szimpátia-felkeltő levelek, segítségkérések másoknak... 91 3.5.1.6. Hagyományos lánclevelek (Traditional Chain Letters)... 91 3.5.1.7. Fenyegető lánclevelek (Threat Chains)... 93 3.5.1.8. Hamis céges levelek (Scam Chains)... 94 3.5.1.9. Tréfák (Jokes)... 94 3.5.1.10. Igazi legendák (True Legends)... 94 3.5.2. A Hoax levelek felismerése... 95 3.6. Vírusfejlesztő kitek... 96 3.7. Levelező vírusok... 97 3.7.1. Levelezés útján (is) terjedő bináris vírusok...98 3.7.2. Klasszikus levelező programférgek... 98 3.7.3. Bináris kódú levelező vírusok... 99 3.7.4. A klasszikus makróvírusok és az elektronikus levelezés... 99 3.7.5. Scriptvírusok és a script alapú programférgek... 100 3.7.6. Nevezetes Internet wormok... 101 3.7.7. Levelező 32 bites programférgek Windows környezetben... 101 3.8. E-mail-re szakosodott makróvírusok... 102 3.8.1. A levelező makróvírusok célpontjai... 102 3.8.2. Levelező Word makróvírusok...103 3.8.3. Levelező Excel makróvírusok... 104 3.8.4. Levelező PowerPoint makróvírusok... 105 3.8.5. Többtámadáspontú levelező Office makróvírusok... 106 3.8.6. A megelőzés lehetőségei és eszközei... 106 3.8.7. Mit okozhatnak a levelező makróvírusok?... 108 3.9. Scriptvírusok, -férgek és dropperek... 109 3.9.1. VBScript malware... 110 3.9.2. JavaScript kártevők... 110 4

3.9.3. CorelScript vírusok, férgek... 110 3.9.4. A LoveBug (LoveLetter) eset utóélete... 111 3.10. Backdoor típusú programok... 111 3.10.1. BackOrifice, BO... 112 3.10.2. BackOrifice 2000, BO2K... 114 3.10.3. NetBus... 114 3.10.4. Sub7... 116 3.10.5. További backdoor programok...119 3.10.5.1. Phase, Backdoor.Phase, Phase Server... 119 4. Védekezési stratégiák... 120 4.1. Néhány gyakorlati kérdés... 120 4.1.1. Miről ismerhető fel egy fertőzés?... 121 4.1.2. Mit okozhatnak a vírusok? - Vírus okozta károk... 123 4.1.3. A kárérték kiszámolása... 124 4.1.4. Miért nincsenek "hasznos" vírusok?... 124 4.1.5. Honnan jönnek a vandál programok?... 128 4.1.5.1. Kik írnak vírusokat?... 128 4.1.5.2. Miért írnak vírusokat?...129 4.1.5.3. Miért eresztik rá a világra a vírusokat?... 130 4.1.6. Hackerek és crackerek... 131 4.1.6.1. Az információ szabad!... 135 4.1.6.2. A hackerek 12 parancsolata... 137 4.1.6.3. Egy hírhedt cracker - Kevin D. Mitnick... 139 4.1.6.4. Social Engineering (társadalommérnökség)... 145 4.1.6.5. A Chaos Computer Club (CCC)... 146 4.1.6.6. KGB-s Hackerek...147 4.1.7. Miért veszélyesek az Internet wormok... 148 4.1.7.1. Mit okozhatnak?... 148 4.2. Megelőzés... 152 4.2.1. Biztonsági mentés Backup... 153 4.2.2. Biztonságos géphasználat... 155 4.2.2.1. Munka floppykkal...156 4.2.2.2. Jelszavak használata... 157 4.2.2.3. Jelszónyilvántartás vállalati környezetben... 158 4.2.2.4. Képernyővédők használata... 158 4.2.2.5. A szabályos kikapcsolás fontossága... 158 5

4.2.2.6. A szünetmentes áramellátás fontossága és biztosítása... 159 4.2.3. Szervezeti és szervezési eszközök... 159 4.2.4. Backup stratégiák... 160 4.2.5. Lemezek, programok, bejövő anyagok ellenőrzése... 162 4.2.6. Megelőző védekezés programférgek ellen... 164 4.3. Folyamatos ellenőrzés... 165 4.4. Antivírus- és adathelyreállító szoftverek... 166 4.4.1. On access keresők... 167 4.4.2. Ad hoc keresők... 168 4.4.3. Levelező rendszerek vírusvédelme... 169 4.5. Antivírus programok a srcipt- és makrókártevők ellen... 170 4.6. Az antivírus szoftverek adatbázisainak frissítése... 171 4.7. Vészhelyzetterv, katasztrófaterv... 172 4.8. Vállalati adatvédelmi és vírusvédelmi stratégiák, IBSZ... 172 4.9. Az oktatás szerepe és szükségessége... 173 4.10. A vírusmentesítés és az adathelyreállítás eszközei, lehetőségei, korlátai... 174 4.10.1. Víruskereső programok... 174 4.10.2. Víruseltávolító programok... 176 4.10.3. Backup és Restore, azaz Adatmentés és Visszaállítás... 177 4.10.4. Adatjavító, adat-helyreállító, adat-visszaállító programok... 178 4.10.5. A helyreállítás ismert korlátai... 178 5. Irodalomjegyzék... 180 6. Függelék... 182 6

Bevezetés A számítógépvírusok és egyéb számítógépes programkártevők története az 1980-as évek elején kezdődött, bár egyes előzmények még ennél is régebbre nyúlnak vissza. Az előzmények közé kell sorolnunk az életjáték típusú programokat és természetesen a féregprogramokat. Ezek azonban csak elszigetelt, zárt rendszerekben léptek fel, terjedésük korlátozott volt, károkat nem okoztak. Kifejlesztésük célja egyfajta mesterséges intelligencia megalkotása volt, ami sikerült is. A helyzet csak akkor változott meg, és akkor vált nagy tömegeket érintő jelenséggé, amellyel már komolyan kellett foglalkozni, amikor tömegesen kerültek ki a nem programozói alapképzettségű felhasználókhoz az IBM által bevezetett számítógépek (vagyis a PC-k), valamint az IBM kompatibilis PC-kre írt programok és fejlesztőrendszerek. A mesterséges intelligenciákkal való, már nem csupán elméleti kutatások az Unix világában indultak, ám igazi kiterjedésüket az olcsó és mindenki számára hozzáférhető PC és a DOS, később a Windows és a könnyen megtanulható, hatékony eszközökkel rendelkező makró- és scriptnyelvek megjelenésének és széleskörű elterjedésének köszönhetik. A nyolcvanas években a víruskészítők a bootvírusok és a futtatható bináris kódot tartalmazó fájlvírusok fejlesztésére koncentráltak. Az 1990-es években nagy számban jelentek meg a vírusfejlesztő kitek, készletek, és ugyancsak az 1990-es évek második felére tehető a makróvírusok és scriptvírusok megjelenése és korábban elképzelhetetlen mértékű elterjedése. A nyolcvanas évek vége felé az információbiztonsági szakemberek és a vírusszakértők még jókat derültek, ha valaki olyan potenciális programkártevőkről (vírusokról, trójai programokról és programférgekről) vizionált, amelyek elektronikus leveleken keresztül terjedhetnek. Ez a nevetés mára erősen megkeseredett és okafogyottá vált. A vírusokkal foglalkozó központok, szervezetek és kutatók már 1997 első felében jeleztek olyan vadon, azaz már a zárt víruslaboratóriumokon kívül is előforduló és robbanásszerűen terjedő programkártevőket, amelyek szaporodásukhoz vagy büntetőrutinjaikhoz különféle, a megtámadott gépeken telepített és használt levelező programokat használtak fel. A VBScript, valamint JavaScript nyelven megírt vírusok és programférgek (wormok) első díszpéldányait még 1998 őszén csípték nyakon, 1999 első felében pedig a Melissa néven elhíresült Word makróvírus-család és a Papa néven közismertté vált Excel makróvírus-sorozat pusztításai borzolták fel világszerte a kedélyeket. Néhány hónappal később, de még ugyanazon év őszén és telén a BubbleBoy nevű VBScript programféreg szolgáltatott nem kevés munkát a vírusvadászoknak, a rendszergazdáknak, és nem utolsósorban az újságíróknak. 2000 májusától az I love you (más néven a LoveBug vagy LoveLetter), pár héttel később ennek egy speciális átirata, a New love, majd júniusban a VBS.Stages néven 7

elhíresült Internet programférgek tették próbára az Outlook ügyfélprogramokat alkalmazó levelező rendszereket, és számos esetben egészen a működésképtelenségig terhelték túl azokat. Az I love you család névadó példányának megalkotóját az FBI a helyi hatóságokkal karöltve fogta el. A hírek szerint várható, hogy ezúttal végre példásan szigorú bírói ítélettel honorálják majd a programféreg és átiratai által okozott több milliárd dolláros veszteségeket eredményező akciót. Természetesen tanulmányunkban külön fejezetet kapnak a Melissa és az I love you eset eseményei, történései. Ez akár önmagában is igen tanulságos olvasmány lehet a hálózatbiztonságért felelős vezetők és az Outlook levelező program megrögzött használói számára. Összeállításunkban kiemelten is foglalkozunk két fő víruscsaláddal, a makróvírusokkal és a scriptvírusokkal. Bemutatjuk e programkártevők működésének főbb alapelveit, támadáspontjaikat, eddig megismert és várható típusaikat. Áttekintjük, milyen károkat okozhatnak, hol és hogyan támadnak, miként akadályozható meg bejutásuk védeni kívánt rendszereinkbe. Foglalkozunk a fertőzések felismerésének és megelőzésének lehetőségeivel, eszközeivel, valamint azokkal a halaszthatatlan teendőkkel is, amelyeket sorban el kell végeznünk, amennyiben gépeinken, rendszereinken valamilyen vírusfertőzésre gyanakszunk. Külön fejezetet kap a vírusmentesítés és az okozott károk helyreállítása. A fent említett dokumentum-kártevők bemutatásán túl áttekintően összefoglaljuk a Magyarországon szélesebb körben elterjedt/használt anti-vírus szoftverek lehetőségeit, korlátait, előnyeit és gyengéit. Lehetőségeinkhez mérten részletesen ismertetjük azokat a beállításokat, amelyeket módosítanunk kell a víruskereső programok alapértelmezett gyári beállításain, hogy az esetleges fertőzéseket jó hatásfokkal megtalálhassuk és azokat eredményesen ki is iktathassuk a bejövő levelekről, valamint az Internetről, a BBS-ekről vagy egyes bizonytalan forrásokból beszerzett CD lemezekről letöltött fájlokról. Összeállításunk megírását többéves gyűjtő, elemző és rendszerező munka előzte meg. Elkészítéséhez rengeteg segítséget kaptunk a hazai vírusvadászoktól és a nemzetközi forgalomban is lévő anti-vírus szoftverek hazai szakképviseleteitől, akik vírusismertetésekkel, mintákkal, sajtóanyagokkal segítettek, valamint programjaik tiszteletpéldányaival. 8

1. Néhány alapfogalom Összeállításunkat nem csupán az információbiztonsággal foglalkozó szakmabelieknek szánjuk, hanem meglehetősen széles olvasókörnek. Reményeink szerint egyaránt hasznos információforrásul szolgál mind a számítógépekkel professzionális módon dolgozó rendszergazdák, mind a számítógépükkel most ismerkedő, az Internet gazdag világát felfedező felhasználók számára. A vírusok működésének megértéséhez és az ellenük való védekezésre történő felkészüléshez szükség van néhány informatikai, számítástechnikai alapfogalom megismerésére és elfogadására. Aki már gyakorlott géphasználó és nem csak felhasználója, de ismerője is a számítógépeknek, az átugorhatja e fejezet lapjait, bár azt javasoljuk, hogy a közös nevező érdekében legalább egyszer olvassa el, mi mit értünk e fogalmak alatt. A számítógépek programkártevői, a vírusok, programférgek, trójai programok, időzített bombák, stb. nem maguktól, nem a semmiből keletkeznek. Létrejöttüket programozói tudással vagy automatikus programfejlesztő készlettel rendelkező, viszont az alapvető erkölcsi neveltetést nélkülöző programozóknak, hackereknek és crackereknek köszönhetik. Egy backdoor program önmagában semmiképp sem vírus, bár a vírusok elméletileg rendelkezhetnek backdoor szolgáltatásokkal, és a trójai programok sem vírusok, bár egyes vírusok trójai programokon keresztül is terjedhetnek, vagy büntetésként trójai programokat is elengedhetnek. Ezekre bőségesen találhatunk példát a magyar és angol nyelvű szakirodalomban. A számítógép alapvető részei a központi egység és a perifériák. A központi egység tartalmazza az alaplapot és fizikai memóriát, valamint a BIOS-t és a CMOS memóriát. Ezekről érdemes tudni, mi is a funkciójuk. Minden számítógépnek van valamilyen operációs rendszere, amely a gépbe épített hardverelemek (memória, háttértárak, bővítőkártyák, ki- és bemeneti eszközök, perifériák, stb.) működését fogja össze, és lehetővé teszi a számítógéppel való kommunikációt és a programok, szoftverek futtatását. A számítógépek és háttértáraik nem mentesek a hibáktól, s ugyanez igaz a programokra, ráadásul mi felhasználók sem vagyunk tökéletesek. Éppen ezért feltétlenül érdemes gondoskodni adataink rendszeres biztonsági mentéséről, valamint arról is, hogy képesek legyünk a mentett anyagok tetszés szerinti visszaállítására. 9

A továbbiakban hat idetartozó témakört tekintünk át részletesebben: - Háttértárolók felépítése - Fájlok és fájlrendszerek - Hasznos és jóindulatú programok - Spam - Script nyelvek 1.1. Háttértárolók felépítése A számítógépes vírusok fertőzésük során a számítógép háttértárán valamilyen programterületet fertőznek meg. A vírusok működésének a megértéséhez alapvető szükség van a háttértárolók belső felépítésének a megismerésére. 1.1.1. A diszkek fizikai felépítése A diszkek kétdimenziós felületű lemezekből épülnek fel. A floppy diszkek egy lemezt, a merevlemezek általában több lemezt tartalmaznak. A lemezeknek mind a két oldalát használják, mind a két oldalon találhatók író/olvasó fejek (head). Előfordulhat azonban, hogy a merevlemez egy lemezoldalát szinkronizálási célokra használják. Egy-egy lemezoldal kétdimenziós felépítésű: sávoknak (track, vagy cylinder) nevezett körgyűrűkre, minden körgyűrű szektorokra van osztva. Egy szektor mérete a diszk formázásának a függvénye, MS- DOS operációs rendszer alatt általában 512 byte. Megjegyzés: Elképzelhető, hogy egyes oprációs rendszerek ettől eltérő szektorméretet használnak. Például a TandomDOS 1024 byte-os szektorokat kezel, ami néhány vírus esetén problémákat okoz. A Cluster Buster (vagy DIR2/FAT) vírus feltételezi, hogy egy szektor mérete 512 byte, így a TandomDOS rendszerű gépeken a fertőzés révén a fertőzött programok használhatatlanná válnak. Mind az egyes lemezoldalak, azaz az író/olvasó fejek (head), mind a sávok (cylinder), mind pedig a sávokon belüli szektorok (sector) sorszámozottak. A sector-szám 1-től, a cylinder- és a head-szám pedig 0-tól kezdődik. Így egy szektort a (cylinder, head, sector) hármassal azonosíthatunk. A merevlemez szektorainak ezt az azonosítási módját fizikai címzésnek nevezzük. A merevlemez szektorai logikailag egy meghatározott sorrendet alkotnak. Ebben a sorrendben az első helyen a 0. cylinder 0. head-jének szektorai állnak (1-től kezdődően). Ezt 10

követik a 0. cylinder 1. head-jének szektorai, majd a 0. cylinder utolsó head-jének szektorai után az 1. cylinder 0. head-jének szektorai következnek. Így a merevlemez egy szektorára a szektor sorszámával is hivatkozhatunk. A szektoroknak ezt az azonosítási módját abszolút címzésnek nevezzük, ahol tehát az 1-es abszolút című szektor fizikai paraméterei: 0. cylinder, 0. head, 1. sector. A merevlemezek paramétereit (cylinder-szám, head-szám, sector-szám) a CMOS memória tartalmazza. 1.1.2. Diszkek logikai felépítése A diszkeket kezelő operációs rendszerek a merevlemezeket logikai egységekre partíciókra osztják. A partíciókra osztás operációs rendszertől, hálózati rendszertől független. Az egyes partíciók információit (kezdet, vég, boot-olható vagy sem) a partíciós táblázat tartalmazza, amely a partíciós táblában vagy más néven Master Boot Recordban (MBR) található. Az MBR a partíciók információin, a partíciós táblázaton túlmenően egy programrészletet is tartalmaz, amely a gép bekapcsolásakor, illetve minden boot-oláskor hajtódik végre. Megjegyzés: Az MBR és a partíciós tábla egyaránt ugyanazt, a lemezegység fizikailag első szektorát (0.head, 0.cylinder, 1.sector) jelenti. A partíciós táblázat viszont ennek a szektornak csupán a partíciós információkat tartalmazó részét (1BEh címtől kezdődően). 1. ábra: Merevlemezek partíciókra osztása 11

Mint az az ábrán látható, a 0. cylinder 0.head 1. szektora az MBR, a 0. cylinder 0.head-jének többi szektora pedig nem tartozik egyetlen partícióhoz sem. Általában igaz ugyanis, hogy az első partíció nem az MBR-t követő szektorral kezdődik, hanem a 0.cylinder 1.head 1.sectorral. Megjegyzés: Boot-oláskor a ROM-ban lévő BIOS program indul el, amely elvégzi a szükséges inicializálásokat, teszteléseket, majd betölti a boot-lemez fizikailag első szektorát (0.head, 0.cylinder, 1.sector), és a betöltött szektor elejére adja a vezérlést. Floppy lemezek esetén (ahol egy partíció található), a partíció első szektora hajtódik végre. Merevlemezek esetén az MBR töltődik be, melynek programja megkeresi partíciós táblázatban az első bootolható partíciót, betölti annak első szektorát és annak az elejére adja a vezérlést. A partíciós táblázat maximum négy partíció információit tartalmazza. A DOS operációs rendszer ennél több logikai partíciót is képes kezelni. Ehhez úgynevezett Extended partíciót hoz létre, amelyet logikailag további egységekre oszt. 1.1.3. Partíciók felépítése A DOS operációs rendszer a partíciókat, mint logikai egységeket további részekre osztja. Egy partíció DOS-szektorokra osztódik. Megjegyzés: A szakirodalomban a fizikailag elérhető szektorok, és a DOS-on keresztül elérhető szektorok esetén is a szektor elnevezést használja. A könnyebb áttekinthetőség kedvéért a DOS-on keresztül kezelhető szektorokat DOS-szektoroknak nevezzük. A DOS-szektorok szintén sorszámozottak, 0-tól kezdődően. A 0. szektor tartalmazza a partíció Boot-sector-át. Ezt követi a File Allocation Table (FAT, File Allokációs Tábla) két példányban, majd a Root Directory (Főkönyvtár), és végül a Data Area (Adatterület), amely a partíción elhelyezett alkönyvtárakat, illetve file-okat tartalmazza. Ezt a címzési módszert DOS szektor címzésnek nevezzük. A 0. szektor, a boot-sector felépítése az MS-DOS operációs rendszer esetén részletesen [1]-ben a 199 oldalon található. A lényegesebb változók az alábbiak: 12

Eltolás Méret Tartalom Jelentés +3 8 Name A formázó program, illetve operációs rendszer neve. +0Bh 2 SectSize Egy szektor mérete byte-okban. +0Dh 1 ClustSize +0Eh 2 ResSecs Egy cluster mérete szektorokban. Foglalt szektorok száma az 1. FAT előtt. +10h 1 FatCnt A FAT-ek száma. +11h 2 RootSize A főkönyvtár bejegyzéseinek a száma. +13h 2 TotSecs A partíció mérete szektorokban. +15h 1 Media A lemez médialeíró byte-ja: 0F8h: merevlemez 0F9h-0FFh: floppy lemez +16h 2 FatSize Egy FAT mérete szektorokban. +18h 2 CylSecs Egy sáv mérete szektorokban. +1Ah 2 HeadCnt A head-ek száma. +1Ch 2 HidnSecs Rejtett szektorok. 1.1.4. Directory- és fileszerkezet A lemezegységen lévő file-ok és alkönyvtárak a partíció adatterületén találhatók. Az adatterület cluster-ekre osztódik, melyek 2-től kezdődően sorszámozottak. Egy-egy cluster a szektorméret egész számú többszöröse. A cluster-ek tartalmazzák az alkönyvtárak és a file-ok információit. Minden alkönyvtárhoz és minden file-hoz (ha az nem 0 byte hosszúságú) egy cluster-sorozat tartozik. Alkönyvtárak esetén ezek a clusterek tartalmazzák az alkönyvtárban elhelyezett további alkönyvtárak, illetve file-ok információit. Minden file-hoz és alkönyvtárhoz tartozik egy könyvtár-bejegyzés (directory entry), amely tehát a "tartalmazó" alkönyvtár cluster-sorozatában, míg a főkönyvtár esetén a főkönyvtárnak fenntartott helyen található. Ez utóbbi független a clusterektől, egy fix hosszúságú szekvenciális DOS-sector- 13

sorozatot jelent. A file-okhoz, illetve alkönyvtárakhoz tarozó könyvtár-bejegyzés felépítése MS-DOS 5.00 esetén az alábbi: Eltolás Méret Tartalom Jelentés +0 8 FileName +8 3 Ext A file neve balra igazítva, végét a ' ' jelzi, ha nem tölti ki az összes byte-ot. A file kiterjesztése balra igazítva, végét a ' ' jelzi, ha nem tölti ki az összes byte-ot. +0Bh 1 Attr A file attributuma. +0Ch 0Ah Reserved DOS számára fenntartott. +16h 2 Time +18h 2 Date +1Ah 2 FirstCuls A file létrehozásának, illetve utolsó módosításának ideje. A file létrehozásának, illetve utolsó módosításának ideje. A file tartalmának első clustere. +1Ch 4 > Size A file mérete. A könyvtár-bejegyzés tartalmazza a file-ok, illetve alkönytárak cluster-sorozatának első elemét (FirstClus). A cluster-lánc további tagjait a FAT írja le (2. ábra). A FAT tábla minden egyes clusterhez tartalmaz ugyanis egy értéket, ami a következő cluster-számot jelenti. A FAT bejegyzések a partíció cluster-számának függvényében 12 vagy 16 bitesek lehetnek. A FAT bejegyzések 0-tól sorszámozottak. Az első két FAT bejegyzés speciális jelentéssel bír. Ennek első byte-ja a lemezegység Media leíró byte-ja, melynek meg kell egyeznie a bootsector Media leíró byte-jával. A többi byte (12 bites FAT esetén 2 byte, 16 bites FAT esetén 3 byte) értéke FFh. A FAT-bejegyzések a láncoláson túlmenően speciális tartalommal is rendelkezhetnek. Ezek a következők: (0)000h (F)FF0h - (F)FF6h (F)FF7h (F)FF8h - (F)FFFh üres cluster. fenntartott cluster. hibás cluster. a cluster-lánc vége. 14

2. ábra: Clusterek láncolása Az ábrán szereplő példában az egyszerűség kedvéért a FAT 8 bit, azaz egy byte méretű. Egy file kezelése során tehát a könyvtárbejegyzésből kiindulva clusterenként kell olvasni a file tartalmat. Ezt a kezelési módszert DOS cluster címzésnek nevezzük. 1.1.5. Diszkhozzáférési lehetőségek A lemezegységek tartalma többféleképpen érhető el. Hagyományos működést feltételezve a felhasználói program a DOS operációs rendszerhez fordul, amely a ROM-ban lévő BIOS programját használja a diszk eléréséhez. A BIOS pedig vagy közvetlenül fordul a hardwarehez I/O utasítások segítségével vagy előfordulhat, hogy a lemezkezelő kontroller kártya külön eprom-ot, saját ROM programot tartalmaz, amely elvégzi a lemezegység kezelését. Ezen ROM program is végső soron I/O utasításokat használ. Szerencsére nem létezik még olyan számítógépes vírus, amely I/O utasítások segítségével terjedne. Ez a megoldás ugyanis csak ugyanazon a lemezkezelő kontroller kártyán működne csak megbízhatóan. A legalacsonyabb szintű általánosan használható lemezkezelési módszer a BIOS programjának használata. A lemezkezelés a 13h-as interrupt meghívásával valósítható meg, amely fizikailag kezeli a lemezegységet, azaz hívási paraméterként az elérni kívánt szektor fizikai címét (head, cylinder, sector) kell megadni. A DOS operációs rendszer többfajta lemezkezelési eljárást is biztosít. A lemezegységeken elhelyezett file-ok, alkönyvtárak kezelésére a 21h-es interrupt több alfunkciója is lehetőséget nyújt. A DOS partíciók DOS-szektoronkénti kezelése a 25h-ös, illetve a 26h-os interrupton keresztül lehetséges. Itt hívási paraméterként az elérni kívánt szektor DOS szektor címét kell megadni. Az operációs rendszer a lemezkezelésre device driver-eken keresztül is lehetőséget biztosít. 15

A különböző lemezkezelési műveletek az elérni kívánt szektor paramétereit más és más címzés szerint igénylik. Szükség van tehát ezen címzési módok közötti konverzióra, átváltásra. A képletekben szereplő valamennyi dőlt betűs változó a boot sector változója, a vastag betűs változók pedig a partíciós táblázatban találhatók. DOS cluster-szám <--> DOS sector-szám A főkönyvtár által elfoglalt szektorok száma: RootDirSects = (RootSize * 32) / SectSize A FAT-ek által elfoglalt szektorok száma: FATSecs = FatCnt * FatSize Az első adatszektor DOS szektor címe: DataStart = ResSecs + RootDirSecs + FATSecs Mindezek után megadhatjuk a CLUSTER sorszámú cluster első szektorának DOS szektor címét: DOSSect = DataStart + (CLUSTER-2) * ClustSize Hasonlóan a SECTOR DOS szektor-számú szektort tartalmazó cluster sorszáma: CLUSTER = (DOSSect - DataStart) / ClustSize + 2, feltéve, ha CLUSTER > 2. Abszolút sector-szám <--> DOS sector-szám A DOSSect DOS szektorszámú szektor abszolút szektorcíme: AbsSect = DOSSect + RelSecs Az AbsSect abszolút szektorcímzésű szektor DOS szektorszáma: DOSSect = AbsSect - RelSecs Az utóbbi képlet esetén természetesen feltételezzük, hogy 0 Ł DOSSect < PartSize. 16

Abszolút sector-szám <--> Fizikai paraméterek Az AbsSect abszolút szektorszámú szektor fizikai paraméterei: SECT = (AbsSect -1) % SectNum + 1 HEAD = ((AbsSect -1) / SectNum) % HeadCnt CYL = ((AbsSect -1) / SectNum) / HeadCnt A (CYL, HEAD, SECT) fizikai paraméterű szektor abszolút szektorszáma: AbsSect = CYL * HeadCnt * SectNum + + HEAD * SectNum + SECT Az egy sáv egy oldalán lévő szektorok számát a CMOS tartalmazza, de a boot szektor ismeretében is számítható: SectNum = CylSecs / HeadCnt 1.2. Fájlok és fájlrendszerek A számítógépek programjaikat és adataikat a háttértárakon elhelyezkedő megfelelő fájl- és könyvtárrendszerekben tárolják. E fájlrendszerek némelyike általánosan elfogadott és használt (például a FAT16), mások az adott operációs rendszer által alkalmazott egyedi megoldások (HPFS az OS/2-nél, NTFS az NT-nél, FAT32 a Windows rendszereken vagy az Ext2fs és Ext3fs a Linux változatoknál). A fájlrendszerek különbözősége sok egyéb mellett a bootvírusok működésére, életképességére" is alaposan kihat. A 16 bites FAT-ra írt bootvírusok képesek arra, hogy egy fertőzött floppyról indítva a számítógépet megfertőzzék a merevlemezt, tekintet nélkül arra, hogy azon milyen fájlrendszer lett korábban telepítve. Így akár egy Novell, egy HPFS vagy egy NTFS partíciót is megfertőzhet egy 16 bites bootvírus, bár az igaz, hogy onnan már nem fog tovább fertőzni, hiszen a partíciós tábla és a bootszektor sérülése miatt (a vírus ezeket felülírja) már nem töltődik be az operációs rendszer, és így a számítógép a fertőzés előtti állapot helyreállításáig használhatatlanná válik. Amennyiben gondoskodunk arról, hogy gépeink ne indulhassanak floppyról (csak a CMOS setup-ban kell a bootsorrendet megfelelően beállítani, például C only, vagy C-A esetleg C-CD-A, stb.), a bootvírusoknak nem lesz többé esélye hagyományos" technológiákat alkalmazva bejutni a gépbe. 17

A fájlokat elvileg két csoportra oszthatjuk: programokra és adatfájlokra. Azonban a valóságban már nem ilyen egyértelmű a helyzet. Egyrészt amíg futtatni nem próbáljuk, a rendszer a programfájlokat is közönséges adatfájlokként tárolja, másrészt az interpreter (értelmező) típusú makró- és script nyelvek (WordBasic, Visual Basic, JavaScript, CorelScript, stb.) megjelenésével, s a különböző Windowsos alkalmazásokban való robbanásszerű elterjedésével ma már a dokumentumfájlok is tartalmazhatnak és nagy számban tartalmaznak is futtatható programkódot. A DOS-nál a fájlok típusát a kiterjesztés (is) jelezte. Ezt az örökséget a Windows és az OS/2 is tovább vitte, s általános gyakorlat az, hogy a kiterjesztésekhez programindítási lehetőséget lehet operációs rendszer szinten kötni. A számtalan kiterjesztés közül néhány tucat általánosan ismert és használják is, másokkal csak a hozzájuk tartozó programok telepítésekor találkozhatunk. A leggyakoribb fájlkiterjesztések Az operációs rendszer által végrehajtható programfájlok.com Bináris programkódot tartalmazható futtatható program.exe Bináris programkódot tartalmazható futtatható program.bat Kötegelt parancsfájl batch és DOS parancsokkal.sys Bináris programkódot tartalmaz (a CONFIG.SYS kivételével).drv Bináris programkódot tartalmaz.dll Bináris programkódot tartalmaz.ocx Bináris programkódot tartalmaz.vxd Bináris programkódot tartalmaz.bin Bináris programkódot tartalmaz.scr Bináris programkódot tartalmaz Konfigurációs, inicializáló fájlok.kbd Billentyűkiosztást tartalmazó segédfájl.ttf TrueType fontfájl.inf Telepítési segédfájl, amely a telepítési és beállítási adatokat tartalmazza.cfg Konfigurációs állomány.bak Biztonsági másolat.tmp Átmeneti állomány, amelyet az azt létrehozó programok a futás végén törölnek.ini Windows konfigurációs fájlok.reg Registry fájlok 18

Szövegfájlok.TXT Egyszerű szövegfájl.asc Egyszerű ASCII szövegfájl.doc Word dokumentumfájl.dot Word sablonfájl.ppt PowerPoint prezentáció.rtf Rich Text formátumú dokumentumfájl.xls Excel számolótábla fájl.htm Weboldal HTML (HyperText Markup Language) formátumban.html Adatbázis fájlok.dbf dbase adatbázisfájl.prg dbase vagy egyéb xbase programfájl.ndx dbase indexállomány Képfájlok.GIF Tömörített képfájl.jpg Tömörített képfájl.bmp Bittérképes grafika.tif Képfájl.PCX Képfájl.WMF Windows Meta File, klipfájlok MS Office alatt.pdf.hlp Dokumentum- és súgófájlok Adobe Acrobat nyomtatható dokumentumfájl Windows súgófájl Microsoft Reader dokumentumfájlja Hangfájlok.WAV Hangfájl.MP3 Erősen tömörített zenei fájlformátum.mod Zenei fájlformátum 19

Tömörített fájlok.zip Tömörített archívumfájl, amit PKZIP vagy PKZIP-klón programokkal kezelhetünk.arj Tömörített ARJ archívumfájl.rar RAR/WinRAR, Linux RAR tömörített archívumfájlja.tgz Tar/GZip tömörített archívumfájl.cab A Microsoft által használt (tömörített) kabinetfájl 1. táblázat Egyéb kiterjesztések ügyében az operációs rendszerek kézikönyvei és a használt programok kézikönyvei további támpontot adnak. A felsorolt és a további kiterjesztésekről részletesebb információ az FFE (File Format Encyclopedia) aktuális kiadásában (például a SAC programgyűjteményében) található [1]. A szoftverek típusait pénzügyi-terjesztési szempontból vizsgálva kereskedelmi, shareware, freeware és még néhány egyéb kategóriába sorolhatjuk. Adattartalom szerint program-, konfigurációs-, segéd- és adatfájlokat szokás emlegetni. Az adatfájlok között különösen kiemelkedik a szövegfájlok fontossága. A rendszerint.txt kiterjesztésű valódi szövegfájlokon kívül tágabb értelemben ide tartoznak a Word.DOC kiterjesztésű dokumentumfájlok is, amelyeknek belső szerkezete a bennük tárolt formázások, makrók, képek és egyéb objektumok miatt sokkal közelebb áll a bináris kódot tartalmazó programfájlokéhoz. A program és dokumentumfájlok szerkezete rendszerint kötött, az adott adattípusra jellemző struktúrákat tartalmaznak, így vírusellenőrzéskor jelentősen lerövidíthető az ellenőrzés időszükséglete, ha nem az egész néha több megabájtos fájlt kell ellenőrizni, hanem csupán azon részeit, amelyekbe víruskód épülhet. 1.3. Hasznos és jóindulatú programok Hasznosnak akkor nevezünk egy programot, ha valamely számunkra előnyös feladatot végez, tudunk jelenlétéről és működéséről. A hasznos program legálisan, vagyis szándékaink szerint van és működik gépünkben. Minden olyan programot, amely utólagosan, a felhasználó szándéka, sőt tudomása nélkül vagy annak ellenére kerül a gépre, rosszindulatú programnak kell tekintenünk, függetlenül attól, hogy a programban vannak-e kifejezetten pusztító, romboló célú rutinok, algoritmusok vagy sem. 20