Počítačové vírusy
Užívateľské hľadisko: Počítačový vírus je jednou z mnohých hrozieb bezpečnosti a integrity počítačových systémov. Programátorské hľadisko: Počítačový vírus je počítačový program, ktorý môže infikovať iný počítačový program takým spôsobom, že do neho skopíruje svoje telo, čím sa infikovaný program stáva prostriedkom pre ďalšiu aktiváciu víru. (Autor definície: Fred B. Cohen, antivírový priekopník)
Prvé publikácie v oblasti vírovej problematiky sa datujú do rokov 1984-85. V súčasnosti sa odhaduje, že existuje zhruba 10.000 základných vírových tvarov. Vlastnosti počítačového vírusu
Nutnosť hostiteľa:
a) systémová oblasť disku (zväčša boot sector)
b) spustiteľné programy (väčšina vírusov)
Malá veľkosť vírového programu
(jeden z najväčších vírusov je vírus MiniMax a má 32 kB)
Naprogramované priamo v assembleri
(vírusy vytvorené v Pascale, napr. Sentinel, RNA, alebo v jazyku C sú zriedkavé)
Symbióza s hostiteľom
vírus najmä vo svojom vlastnom záujme zabezpečuje po vykonaní vírových inštrukcií aj vykonanie tela pôvodného infikovaného programu
Počítačový vírus a operačné systémy
MS-DOS, OS/2, PC-DOS a iné, ktoré sú svojím spôsobom primitívne a patrili medzi najrozšírenejšie operačné systémy, sú svojou konštrukciou (napr. monoužívateľskosť, podpora rezidentných mechanizmov) najvhodnejšie na tvorbu počítačových vírusov. Takisto v prostredí Windows 3.11, keďže je len nadstavbou MS-DOSu, sa vírusy šíria bez veľkých problémov. Windows 9x založené na 32-bitovej architektúre a pracujúci v chránenom režime procesora napriek tomu, že obsahuje podstatné vylepšenia, nepatrí k bezpečným operačným systémom. Najhlavnejšou príčinou je spätná kompatibilita s MS-DOS a podpora 16-bitových Windows aplikácií. U Windows NT, ktorý rozoznáva štyri úrovne ochrany rozčlenené na úrovni jadra operačného systému, servisných programov a programov aplikačných, nie je odolnosť proti počítačovým vírom veľká. V DOSovskom okne môžu víry prevádzať svoju činnosť bez väčších problémov. Viacužívateľský a viacúlohový operačný systém UNIX svojou architektúrou de facto znemožňuje klasický mechanizmus počítačových vírusov DOSovského typu. Distribúcie UNIXu disponujú vstavanými kontrolami na úrovni jadra operačného systému a definujú užívateľské úrovne prístupu dané vstupným prihlasovacím systémom užívateľské meno/heslo. Jadro UNIX (kernel) je z hľadiska bezpečnosti pomerne odolné.
Jedinou známou formou užívateľom neasistovaného útoku a šírenia je Morrisov červ (1988), ktorý však využíval chybné naprogramovanie niektorých súčastí systému, čo sa ale vďaka prístupnosti zdrojových tvarov širokej verejnosti odstraňuje prakticky okamžite po vypustení distribúcie. Vírové infekcie zažívajú aj počítače rady Amiga a System x počítačov rady Macintosh. Proti infekcii nie je dostatočne zabezpečený ani operačný systém Novell Netware. Funkčné prejavy počítačových vírusov
Bez ohľadu na použité mechanizmy šírenia, alebo druh maskovania, prípadne cieľa infekcie, počítačový vírus je naprogramovaný vždy na základe istej motivácie. Väčšinou je ňou snaha uškodiť užívateľovi, a preto pri klasifikácii vírusu je kľúčovou otázkou to, či je vírus deštruktívny, alebo nedeštruktívny. Deštruktívne vírusy najčastejšie formátujú pevný disk, prepisujú náhodne vybrané sektory náhodnými dátami, menia obsah súborov, mažú súbory, zašifrujú dáta, atď.). U nedeštruktívnych vírusov majú aktivačné rutiny najčastejšie charakter vizuálnych prejavov (zobrazovanie rôznych textových správ, grafické prejavy nie sú časté) a akustických prejavov (drvivou väčšinou je nástrojom takéhoto prejavu zabudovaný reproduktor - PC-speaker). Každý z prejavov je vyvolaný podmienkou, čo väčšinou býva konkrétny časový moment, aktuálny dátum, prípadne vstup z klávesnice. Delenie počítačových vírusov
Podľa umiestnenia v pamäti:
nerezidentné (tzv. víry priamej akcie): po spustení infikovaného programu sa replikujú, najčastejšie do súborov v danom adresári, a predajú riadenie infikovanému programu
rezidentné programu: ostávajú v operačnej pamäti počítača aj po ukončení vykonávania infiko-vaného programu použitím mechanizmu TSR (terminate and stay resident)
Podľa cieľa infekcie:
bootovacie: Infikujú partition table (tabuľku rozdelenia), alebo častejšie boot sector (zavádzací sektor), čím si zabezpečia spustenie ešte pred zavedením samotného operačného systému. Originálny boot sector (ktorý musí byť zachovaný pre korektné zavedenie operačného systému) ukladajú buď na niektorý voľný sektor na 0. stope pevného disku, alebo na ľubovoľný iný sektor z dátovej oblasti pevného disku, pričom ho označia za vadný, aby nedošlo k jeho prepísaniu. súborové: Je to najrozšírenejšia skupina vírov. Infikujú EXE, COM, OVL, BIN, STS, OBJ, DLL súbory a niekedy aj keď sú uložené v komprimovaných archíve. Podľa spôsobu infekcie sa delia na:
predlžujúce - pripoja sa na koniec súboru a na začiatok pridajú inštrukciu skoku na telo vírusu. prepisujúce - nenávratne prepíšu úvod súboru, ktorý sa potom ako program stáva nefunkčný. adresárové - na disku sú uložené len raz, infikujú prepísaním odkazov priamo vo FAT tabuľke, pričom vzniká tzv.
cross-referencing (prekrývanie súborov), ktorý však zväčša maskujú
multipartitné: Častá skupina vírusov - infikujú boot sector a zároveň aj súbory. Najčastejšie koncepcie návrhu a prejavy chovania:
stealth: Názov pochádza z mena známeho amerického bombardéra, ktorý sa stáva pre radary "neviditeľný". Vírus skrýva akúkoľvek zmenu komponentov systému, napr. dĺžku súborov, dátum a čas vytvorenia, zmena boot sectora. Vírus je schopný dezinfikovať programy on-the-fly ("za letu") najčastejšie monitorovaním prerušenia int 21h). V praxi po požiadavke na otvorenie súboru vírus prevezme kontrolu ako prvý, odvíri súbor, predá ho programu, ktorý oň žiadal a po požiadavke na uzavretie ho najprv infikuje a až potom skutočne uloží. polymorfné (meniace sa): Základnou myšlienkou je, že žiadne z 2 kópií vírového tela nie sú totožné. Vírus sa teda skladá z dekódovacej rutiny a zakódovaného tela. Ak je dekódovacia rutina statická (nemenná), ide o tzv. semi-polymorfné vírusy. Ak je dekódovacia rutina generovaná, ide o tzv. plne polymorfné vírusy. tunelujúce: Tieto vírusy sa "pretunelujú" reťazcami ovládačov zariadení, pripoja sa na koniec reťazca a ovládajú priamo napr. radič pevného disku. Pri ich detekcii kontrola vektorov prerušení neuspeje. Ďalšie vírom podobné hrozby:
Trójsky kôň: Tento program najčastejšie okamžite po svojom spustení prevádza deštrukčnú rutinu. Častokrát trójske kone slúžia na vypustenie nového vírusu. Makro-víry: Ide o programy naprogramované v jazyku na tvorbu makier v textovom procesore, alebo tabuľkovom kalkulátore a vložené do takého dokumentu (prvýkrát v roku 1989 v kalkulátore Lotus 1-2-3). Väčšinou ide o makrá programu Microsoft Word, ktoré systém vykonáva pri každom otvorení dokumentu (tzv. auto makrá), AutoExec, AutoOpen, FileSaveAs, FilePrint, FileExit. Infikovaná je najčastejšie šablóna NORMAL.DOT. Kvalitný programovací jazyk im umožňuje replikáciu, ale je diskutabilné, či ich radiť medzi vírusy, pretože neobsahujú inštrukcie procesora. Červi-worms: Takýto program neinfikuje spustiteľné súbory, ale rozširuje sa počítačovou sieťou. červ nepotrebuje hostiteľa. Morrisov červ v novembri 1988 nakazil 6000 počítačov UNIX. Bomby: Programy, ktoré po spustení čakajú na aktivačný podnet (tzv. rozbuška), zväčša kľúč z klávesnice, zmena nejakého súboru, aktuálny dátum, alebo čas, a prevedú deštrukčnú rutinu. Antivírové prostriedky a mechanizmy prevencie a liečby
Scanner: Scanner zisťuje prítomnosť víru v pamäti, alebo na disku pomocou vírových identifikačných reťazcov. Vírový identifikačný reťazec je jednoznačne definovaná postupnosť bytov reprezentujúcich daný vírus.
Na zvýšenie účinnosti sa používa viac reťazcov na jeden vírus naraz (F-PROT používa dva), prípadne kombinácia nájdenia reťazca s jusov je chúlostivé hlavne preto, že môže dôjsť k poškodeniu súboru. Toto riziko sa zvyšuje u mutácií vírusov, t.j. vírusov, ktoré boli odvodené z niektorého zo známych vírusov. V prípade nesprávnej identifikácie vírusu nebude tento dôkladne odstránený a môže sa poškodiť funkčnosť pôvodného programu. Čiastočné riešenie prináša tzv. univerzálny clean (prvýkrát u systému AVAST!), ktorý si uchováva pôvodný dátum, dĺžku, atribúty, čas súboru a hlavičku EXE súboru, resp. úvodné inštrukcie u COM súboru. Rezidentný štít: Rezidentný štít je program, ktorý beží v reálnom čase. Najčastejšie je to program typu scanner, ktorý prevádza antivírovú kontrolu práve spracovávaných dát. Môže tak zakázať skopírovanie zavírených súborov z diskety na pevný disk, či zakázať spustenie infikovaného programu a pod. Monitor disru a hlavičku EXE súboru, resp. úvodné inštrukcie u COM súboru. Rezidentný štít: Rezidentný štít je program, ktorý beží v reálnom čase. Najčastejšie je to program typu scanner, ktorý prevádza antivírovú kontrolu práve spracovávaných dát. Môže tak zakázať skopírovanie zavírených súborov z diskety na pevný disk, či zakázať spustenie infikovaného programu a pod. Monitor diskových zmien: Monitor sa zameriava na sledovanie zmien stavu v počítači, najmä spustiteľných súborov. Uchováva databázu popisov základných vlastností súborov, najmä dĺžku, dátum a čas poslednej aktualizácie a hlavne kontrolný súčet (CRC). Slabinou je prípad vírusov zameraných na zmazanie kontrolnej databáze. Softwarové antivírové vybavenie
Jednoúčelové programy: Tieto programy sú zamerané špeciálne proti konkrétnemu vírusu, či vírusovej skupine. Iným častým použitím je v prípade komplikovaných vírusov, ako napr. Disk Killer, alebo známy One Half, ktorý pri nesprávnom odstránení ponechá dáta na disku zakódované a bez prítomnosti vírusu nečitateľné. Programové balíky: Sú to komplexné súhrny antivírových programov danej firmy. Kvalitný antivírový produkt by mal obsahovať: rýchly scanner s rozsiahlou databázou, kvalitnú heuristickú analýzu, bežný i univerzálny clean, rýchly rezidentný štít, možnosti úschovy/obnovy kritických systémových oblastí (CMOS, partition table, boot sector), kontrolu komprimovaných súborov, dostatočnú odolnosť proti falošným poplachom, databázu popisov detekovateľných vírusov. Známe programové balíky: NOD, AVG, AVAST!, F-PROT, McAfee VirusScan. Prevencia a liečba zo strany užívateľa
Základnou a spoľahlivou metódou prevencie je zálohovanie. Najvhodnejšie je zálohovanie viacerých verzií na viac médií naraz.
Keďže sú málo rozšírené vírusy napádajúce komprimované archívy, je vhodné do takýchto archívov svoje zálohované údaje ukladať. Zásadou pri výmene dát medzi počítačmi je používať mechanickú ochranu diskety write-protection všade tam, kde to situácia dovoľuje (kde sa nepredpokladá sa zápis na disketu). Dnešné BIOSy podporujú ochranu na najnižšej úrovni proti prepisu master boot record (tabuľky rozdelenia disku) a boot sectora, čo je spoľahlivá ochrana systémových oblastí pevného disku. Dôležitá je aj možnosť BIOSov nastaviť tzv. boot-up sequence, teda postupnosť diskov, kde sa má po poradí hľadať operačný systém, na "C:, A:", namiesto "A:, C:", aby sa zamedzilo nežiadúcemu naštartovaniu počítača z diskety zabudnutej v disketovej mechanike. Pri liečbe je vhodné používať viac druhov softwaru naraz, najlepšie domáci i zahraničný produkt. Vždy treba mať k dispozícii nezavírenú systémovú disketu obsahujúcu základné vybavenie pre čistenie master boot record (FDISK s prepínačom /MBR), boot sectora (SYS C:) spolu so sannerom, heuristickým analyzátorom a cleanerom. V každom prípade netreba pri nákaze prepadnúť panike, ale zistiť čo najviac informácii o víruse pred podniknutím ďalších krokov a v prípade neistoty prenechať odvírenie skúsenejšiemu antivírovému odborníkovi.
|