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.