|
Detekce a dezinfekce vir∙ pomocφ antivirov²ch program∙Skener (Scanner)
Na poΦßtku technologie skenovßnφ program∙ (zkrßcen∞ skener∙) byl genißlnφ nßpad: Vybrat z t∞la
vir∙ n∞jakΘ charakteristickΘ skupiny instrukcφ a takto zφskanΘ sekvence pou₧φt pro hledßnφ
napaden²ch program∙. Tato koncepce sice vy₧aduje pravidelnou aktualizaci (skener umφ najφt
pouze viry, kterΘ znß), ale nabφzφ za to jedineΦnou schopnost rozpoznat napaden² program
jeÜt∞ p°ed tφm, ne₧ ho zaΦneme pou₧φvat.
Pokud je u₧ivatel zvykl² prohlφ₧et p°ichßzejφcφ programy a diskety aktußlnφ verzφ n∞jakΘho
kvalitnφho skeneru, sni₧uje tak v²razn²m zp∙sobem pravd∞podobnost napadenφ svΘho systΘmu.
DobrΘ skenery jsou sice do jistΘ mφry schopnΘ rozpoznat i novΘ varianty starÜφch vir∙, ale
na tuto vlastnost nenφ mo₧nΘ p°φliÜ spolΘhat. Autor viru je zde ve v²hod∞ a mß mo₧nost si
vyzkouÜet, zda aktußlnφ verze pou₧φvan²ch skener∙ jeho dφlko odhalφ, Φi nikoliv.
Skenery zvyÜujφ svΘ Üance na zachycenφ novΘ varianty tak, ₧e pou₧φvajφ vφce r∙zn²ch sekvencφ
pro jeden virus. To takΘ umo₧≥uje p°esn∞jÜφ rozpoznßnφ konkrΘtnφho viru a sni₧uje
pravd∞podobnost faleÜnΘho poplachu.
Ani vφce sekvencφ vÜak nedovoluje dostateΦn∞ p°esn∞ rozliÜit jednotlivΘ varianty vir∙ tak,
jak to vy₧aduje t°eba CARO konvence pojmenovßnφ vir∙ (nejblφ₧e k nφ je F-PROT antivirus).
N∞kterΘ skenery se proto sna₧φ o tzv. exaktnφ identifikaci, kdy po nalezenφ sekvence
jeÜt∞ spoΦφtajφ kontrolnφ souΦty konstantnφch oblastφ v t∞le viru a pak teprve mohou s
jistotou tvrdit, ₧e se jmenuje t°eba Vienna.648.Reboot.A. Pro praktickΘ pou₧itφ sice nenφ
takto detailnφ rozliÜenφ nezbytn∞ nutnΘ, ale n∞jakß forma p°esn∞jÜφ identifikace sni₧uje
pravd∞podobnost, ₧e se antivirov² systΘm pokusφ lΘΦit napaden² soubor nevhodn²m postupem a
znφΦφ ho.
V²b∞r spolehlivΘ sekvence b²val relativn∞ snadnou zßle₧itostφ. Auto°i vir∙ se proto pokouÜeli
znesnadnit detekci sv²ch dφlek tφm, ₧e zaΦali psßt zak≤dovanΘ viry. V takovΘm p°φpad∞ je
mo₧nΘ sekvenci vybrat pouze z velmi malΘ Φßsti k≤du - dekryptovacφ smyΦky. Zbytek t∞la viru
je v ka₧dΘm exemplß°i jin².
Opravdovß legrace ovÜem zaΦφnß a₧ s p°φchodem polymorfnφch vir∙, kterΘ umφ generovat r∙znΘ
tvary dekryptovacφch smyΦek. Pro n∞kterΘ z nich je sice mo₧nΘ stvo°it sekvence (nebo n∞kolik
sekvencφ), kterß vir zachytφ, ale ta u₧ obsahuje tolik variabilnφch Φßstφ, ₧e se Φasto najdou
i zdravΘ programy, ve kter²ch n∞jak² fragment k≤du nebo dat takovΘ sekvenci vyhovuje. V∞tÜina
polymorfnφch vir∙ ale generuje takovΘ dekryptory, ₧e nelze hledßnφ podle sekvencφ pou₧φt.
Skenery se n∞jak² Φas sna₧ily o rozpoznßvßnφ polymorfnφch vir∙ pomocφ jedno·Φelov²ch funkcφ,
ale to byl vlastn∞ krok zp∞t k vyhledßvacφm program∙m se vÜemi jejich nev²hodami. Modernφ
skenery proto obsahujφ emulßtor strojovΘho k≤du, kter²m se pokouÜφ emulovat provedenφ smyΦky, a pak mohou hledat
sekvence a₧ v dekryptovanΘm t∞le viru.
K≤dovßnφ viru nenφ jedinou metodou, jak skener∙m znep°φjemnit ₧ivot. Skenery toti₧ obvykle
nehledajφ sekvence v celΘm souboru, ale pouze v jeho vybran²ch Φßstech. StaΦφ tedy umφstit
t∞lo viru na nßhodn∞ vybranΘ mφsto uprost°ed napadenΘho programu a vytvo°it k n∞mu "cestiΦku".
Kvalitnφ skener se s tφm vypo°ßdß, ale jeho tup∞jÜφ brat°φΦci majφ sm∙lu.
Kvalitnφ skenery obsahujφ tzv. anti-stealth techniky, kterΘ dokß₧ou obchßzet aktivnφ stealth
viry. Pokud je toti₧ takov² virus rezidentnφ v pam∞ti, a antivirus nemß anti-stealth techniky,
bude se nßm systΘm jevit jako Φist² - nezavirovan². V takovΘm p°φpad∞ musφ skener spolΘhat
pouze na test operaΦnφ pam∞ti, kter² m∙₧e (ale nemusφ virus) prozradit.
LepÜφ skenery dokß₧ou prohlφ₧et i komprimovanΘ soubory (PKLITE, LZEXE, ARJ, ZIP, RARà).
Ukßzkov²m antivirem je v tomto sm∞ru nap°φklad Kaspersky Anti-Virus.
Skenery jsou celkov∞ z°ejm∞ nejd∙le₧itejÜφ Φßstφ v∞tÜiny antivir∙. Pokud jsou dopln∞ny
heuristickou anal²zou dokß₧ou detekovat i neznßmΘ viry. Skenery dokß₧ou prohlφ₧et na v²skyt
vir∙: operaΦnφ pam∞t, soubory, dokumenty Wordu, seÜity Exceluà, systΘmovΘ oblasti disku (boot
sektor, MBRà). Skenery mohou b²t navφc ve dvou provedenφch:
- pam∞¥ov∞ rezidentnφ skener (on-access scanner)
Podobn∞ jako pam∞¥ov∞ rezidentnφ viry hlφdß on-acces skener systΘm z operaΦnφ pam∞ti. Kontroluje veÜkerou
Φinnost u₧ivatele se soubory (kopφrovßnφ, spouÜt∞nφ soubor∙) a pokud zjistφ, ₧e manipuluje s infikovan²m
programem, okam₧it∞ ho na tuto skuteΦnost upozornφ. Hlavnφ v²hodou je, ₧e u₧ivatel je upozorn∞n
na tuto skuteΦnost t∞sn∞ p°ed nejhorÜφm (p°ed aktivacφ samotnΘho viru). On-access skenery jsou tak v dneÜnφ
dob∞ velice d∙le₧itou a oblφbenou souΦßstφ v∞tÜiny antivirov²ch program∙. Pou₧itφ on-access skeneru pro DOS
sice viditeln∞ spomalovalo chod poΦφtaΦe, ale to u₧ prakticky neplatφ v dob∞ rychl²ch poΦφtaΦu s operaΦnφm systΘmem MS Windows.
Windows je toti₧ sßm o sob∞ velice "nßladov²" produkt, a tak i bez on-access skeneru b∞hß n∞kdy rychleji a n∞kdy pomaleji :)
N∞kterΘ viry mohou pam∞¥ov∞ rezidentnφ skenery ovlivnit, Φi dokonce vypnout (viz. tunelujφcφ viry).
- skener "na po₧ßdßnφ" (on-demand scanner)
Manußlnφ typ skeneru. U₧ivatel obvykle definuje oblasti (pevn² disk, adresß°, disketa) kterΘ chce on-demand skenerem prohlΘdnout
a stiskne tlaΦφtko pro zahßjenφ testu. On-demand skener pak hromadn∞ prohlΘdne vÜechny vybranΘ oblasti na v²skyt vir∙.
On-demand skener lze obvykle spojit s kalendß°em ·loh (scheduler) a kontrolu provßd∞t automaticky v p°edem definovan²ch Φasech.
Bli₧Üφ informace o modernφch skenerech lze najφt v Φlßnku "Skenery - detaily".
Kontrola integrity (integrity checker, CRC checkerà)
Kontrola integrity je zalo₧ena na porovnßvßnφ aktußlnφho stavu d∙le₧it²ch program∙ a oblastφ
na disku s informacemi, kterΘ si o nich kontrolnφ program ulo₧il p°i jejich p°φchodu do
systΘmu nebo p°i svΘ instalaci.
Jestli₧e se do takto chrßn∞nΘho poΦφtaΦe dostane vir, tak na sebe zdvo°ile upozornφ zm∞nou
n∞kterΘho z kontrolovan²ch objekt∙ a je zßhy detekovßn. Takto je mo₧nΘ spolehliv∞ zachytit
i novΘ viry, o kter²ch zatφm nic nevφ skenery a kterΘ nemusφ odhalit ani heuristickß anal²za.
Aby se tato idylka prom∞nila v realitu je nutnΘ kontrolu integrity sprßvn∞ nainstalovat.
To p°edevÜφm znamenß zahrnout do seznamu kontrolovan²ch objekt∙ pokud mo₧no vÜechny d∙le₧itΘ
a Φasto pou₧φvanΘ programy.
Existujφ ovÜem i soubory, jejich₧ kontrola nemß smysl. Sem pat°φ n∞kterΘ starÜφ programy,
kterΘ si svou konfiguraci zapisujφ p°φmo do svΘho EXE-souboru (nap°φklad TC.EXE - kompilßtor
Turbo C od firmy Borland). Jejich kontrola je samoz°ejm∞ takΘ mo₧nß, ale p°i zm∞n∞ nastavenφ
spustφ faleÜn² poplach. Pak u₧ zßle₧φ je na znalostech u₧ivatele, jestli dokß₧e rozpoznat, o
co se jednß.
To ovÜem nenφ jedin² problΘm. Snadno m∙₧e dojφt k tΘto situaci: Na poΦφtaΦ napaden² boot
virem, je nainstalovßna kontrola integrity, kterß si mimo jinΘ uschovß i kopii boot sektoru.
Po Φase je vir nalezen a odstran∞n n∞jak²m jin²m antivirov²m programem. P°i svΘm dalÜφm
spuÜt∞nφ kontrola zjistφ, ₧e obsah boot sektoru u₧ nenφ, co b²val. Oznßmφ to u₧ivateli a
dotß₧e se, zda je vhodnΘ obnovit sprßvn² stav. Pravd∞podobn∞ dostane souhlas a s pocitem
dob°e vykonanΘ prßce vrßtφ vir do boot sektoru.
Tato situace jist∞ nenφ p°φliÜ milß. Proto jsou v∞tÜinou i antivirovΘ systΘmy zalo₧enΘ na
kontrole integrity obvykle vybaveny n∞jak²m skenerem. I tak se ovÜem p°ed jejich instalacφ
vyplatφ zkontrolovat i disk n∞jak²m jin²m, kvalitnφm, skenerem.
Viry v∞tÜinou napadajφ soubory tak, ₧e modifikujφ jejich zaΦßtek a za konec se p°ipojφ. Na
zßklad∞ odlo₧en²ch informacφ o souboru se tak se ho m∙₧e program pro kontrolu integrity pokusit
odstranit, ani₧ by o n∞m cokoliv v∞d∞l. A proto₧e si musφ u₧ kv∙li detekci pamatovat
kontrolnφ souΦty celΘho souboru, m∙₧e snadno kontrolovat, zda byl jeho pokus o lΘΦenφ
·sp∞Ün².
Dφky tomu pat°φ odstra≥ovßnφ viru programem pro kontrolu integrity k relativn∞ bezpeΦn²m
postup∙m. (Tedy ne ₧e by bylo tak ·sp∞ÜnΘ, ale program pro kontrolu integrity je schopen
zkontrolovat, jestli se soubor skuteΦn∞ poda°ilo uvΘst do korektnφho stavu).
Klasick²ch program∙ pro kontrolu integrity pomalu ale jist∞ ub²vß. V∞tÜinou se vyskytujφ ve spojenφ
s on-demand skenerem, co₧ znaΦn∞ sni₧uje nßroky na u₧ivatele. U₧ivatel v tomto p°φpad∞ toti₧
nemusφ ruΦn∞ analyzovat zm∞ny v souborech, mφsto toho takto posti₧enΘ soubory automaticky otestuje
on-demand skener, kter² je Φasto obohacen i o heuristickou anal²zou pro detekci neznßm²ch vir∙.
Heuristickß anal²za (Heuristic Analyzer - Code Analyzer)
Heuristickß anal²za je dalÜφ z mnoha kouzeln²ch termφn∙, kterΘ v∞rn∞ doprovßzejφ modernφ
antivirovΘ programy. V podstat∞ jde o rozbor k≤du hledajφcφ postupy pro Φinnost vir∙ typickΘ
nebo n∞jak podez°elΘ. Tφmto zp∙sobem lze odhalit i dosud neznßmΘ viry. Z propagaΦnφch materißl∙ a Φlßnk∙ v populßrnφch poΦφtaΦov²ch
Φasopisech je snadno mo₧nΘ zφskat dojem, ₧e heuristickß anal²za nav₧dy vy°eÜila vÜechny
problΘmy se souΦasn²mi i budoucφmi viry.
Nenφ tomu tak. Stßle se jeÜt∞ objevuje mnoho vir∙, kterΘ heuristickß anal²za nepoznß a snahy
o zv²Üenφ jejφ "citlivosti" jsou doprovßzeny nßr∙stem poΦtu faleÜn²ch poplach∙. Prßv∞
faleÜnΘ poplachy pat°φ k velmi nep°φjemn²m pr∙vodnφm jev∙m heuristickΘ anal²zy. Obt∞₧ujφ
u₧ivatele a ti pak provßd∞jφ totΘ₧ v²robc∙m antivirovΘho systΘmu.
Jestli₧e program dovoluje urΦenφ typ∙ soubor∙, kter²m se mß anal²za t²kat, nebo jakΘkoliv
nastavenφ jejφ citlivosti, je dobrΘ mφt na pam∞ti, ₧e tv∙rce systΘmu z°ejm∞ v∞d∞l jakΘ
hodnoty (a proΦ) pou₧φt. Jejich zm∞nu by m∞l provßd∞t pouze n∞kdo, kdo vφ, co d∞lß. V opaΦnΘm
p°φpad∞ se vaÜe heuristickß anal²za m∙₧e stßt zcela flegmatickou a ignorovat i zcela zjevnΘ
viry, nebo propadne hysterii a zaΦne za podez°elΘ oznaΦovat vÜe, co uvidφ.
Krom∞ heuristickΘ detekce vir∙ existujφ i pokusy o jejich heuristickΘ odstra≥ovßnφ. Vir se
toti₧ po svΘm spuÜt∞nφ d°φve nebo pozd∞ji pokusφ p°edat °φzenφ p∙vodnφmu programu. Pokud se
poda°φ odsimulovat jeho b∞h a₧ k tomuto bodu, staΦφ napaden² soubor sprßvn∞ zkrßtit a vÜechno
je v nejlepÜφm po°ßdku.
Heuristickß anal²za b²vß v∞tÜinou souΦßstφ skener∙ (on-access i on-demand), samostatn∞ ji provozovat nelze (v∞tÜinou).
Monitorovacφ program (Behavior Blocker)
Monitorovacφ programy obecn∞ hlφdajφ zm∞ny v nastavenφ systΘmu a chrßnφ systΘm p°ed replikacφ
viru (i p°ed provedenφm on∞ch ne₧ßdoucφch akcφ trojsk²ch konφ), a to na zßklad∞ neustßle
kontroly a poslΘze aktivnφho zastavenφ takovΘ ilegßlnφ akce.
Monitorovacφ programy jsou tedy aktivnφmi nßstroji pro detekci vir∙ na zßklad∞ zm∞n v chovßnφ
systΘmu, a to v reßlnΘm Φase. Tyto programy zabra≥ujφ nelegßlnφm akcφm a signalizujφ,
kdykoliv se cokoliv v systΘmu pokouÜφ o n∞jakou podez°elou akci, kterß mß charakteristiky
chovßnφ viru, pop°. jinak ÜkodlivΘho, ilegßlnφho chovßnφ, nap°. pokus o zßpis do chrßn∞n²ch
soubor∙, zm∞na tabulky vektor∙ p°eruÜenφà Proto₧e vÜak virus nenφ niΦφm jin²m ne₧ sekvencφ
p°φkaz∙, je zde znaΦnß pravd∞podobnost, ₧e i legitimnφ programy mohou provßd∞t stejnΘ akce,
a povedou tedy ve svΘm d∙sledku k signalizaci stejn∞ jako virus (nap°. sebemodifikujφcφ
programy). P°i tvorb∞ takovΘho systΘmu se zaΦφnß s modelem "ilegßlnφho" chovßnφ, pak se stavφ
moduly, kterΘ zachycujφ a zastavujφ pokus o provedenφ takov²ch akcφ. Tyto moduly pak pracujφ
jako souΦßst operaΦnφho systΘmu.
Monitorovacφ program p°edpoklßdß, ₧e viry provßd∞jφ akce, kterΘ jsou svou povahou podez°elΘ,
a proto mohou b²t detekovßny. To vÜak nemusφ b²t v₧dy platnΘ tvrzenφ. NovΘ viry mohou
vyu₧φvat novΘ metody, kterΘ moho b²t mimo p∙sobnost naprogramovan²ch modul∙. Takov² virus pak
nebude monitorovacφm programem detekovßn.
Techniky, kterΘ se vyu₧φvajφ u monitorovacφch prost°edk∙ pro detekci chovßnφ podobnΘho chovßnφ
viru, rovn∞₧ nejsou neselhßvajφcφ. Osobnφ poΦφtaΦe majφ v∞tÜinou slabinu v nedostateΦnΘ
ochran∞ pam∞ti, tak₧e virov² program m∙₧e obvykle obejφt v∞tÜinu pokus∙ operaΦnφho systΘmu
o kontrolu. Navφc jako souΦßst operaΦnφho systΘmu jsou monitorovacφ programy rovn∞₧
napadnutelnΘ. Existujφ toti₧ viry, kterΘ obejdou nebo zcela vypnou cel² monitorovacφ systΘm,
nap°. virus Tremor a tunelujφcφ viry.
Na rozdφl od skener∙ nenφ tak snadnΘ pou₧φvat monitorovacφ programy. Dost toti₧ zßle₧φ na
jejich nastavenφ. Obecn∞ °eΦeno, je-li nastavenφ p°φliÜ jemnΘ, bude program neustßle hlßsit
poplach (a u₧ivatele zßkonit∞ otrßvφ a snφ₧φ jeho d∙v∞ru v software). Je-li naopak nastavenφ
p°φliÜ hrubΘ, program nebude detekovat tΘm∞° nic (tedy ani n∞kterΘ viry).
V p°φpad∞, ₧e monitorovacφ program ohlßsφ pokus o n∞jakou z jeho pohledu podez°elou akci, je
na u₧ivateli, aby byl schopen posoudit, zda se jednß o faleÜn² poplach (zda dan² program
provßdφ legitimnφ Φinnost), nebo o pokus viru. Tφm je kladen na u₧ivatele znaΦn² nßrok. TakΘ
instalace (a ji₧ zmφn∞nΘ nastavenφ) monitorovacφho programu nenφ snadnΘ.
Na druhΘ stran∞ jsou tu vÜak i v²hody monitorovacφch program∙:
- Tyto programy mohou b²t p°i optimßlnφm nastavenφ velmi citliv²mi detekΦnφmi prost°edky a
mohou zachytit i n∞kterΘ dosud neznßmΘ viry.
- Monitorovacφ software nemusφ b²t tak Φasto obnovovßn. Nenφ zßvisl² na konkretnφch virech,
a proto v podstat∞ nevy₧aduje obnovu, pokud nedojde ke vzniku n∞jakΘ novΘ virovΘ techniky.
- Balφky monitorovacφch program∙ jsou Φasto integrovßny s operaΦnφm systΘmem tak, aby bylo
dosa₧eno dodateΦnΘ bezpeΦnosti. Z toho samoz°ejm∞ vypl²vß jistΘ zatφ₧enφ p°i spuÜt∞nφ ka₧dΘho
programu. Toto zatφ₧enφ je vÜak minimßlnφ. P°esto, jak u₧ bylo uvedeno, je zde i mo₧nost,
₧e virus dokß₧e cel² takov² balφk monitorovacφch program∙ prost∞ obejφt a tφm vy°adit z
Φinnosti.
|
|