Anti-* techniky apod.
┌Φelem antivirov²ch program∙ je odhalit virus bu∩ jeÜt∞ d°φve ne₧ staΦφ
infikovat n∞jak² program na disku, nebo jej nalΘzt a usp∞Ün∞ infikovan²
program vylΘΦit. Odjak₧iva viry pou₧φvaly n∞kolik zp∙sob∙, jak zabrßnit
antivirov²m program∙m je odhalit, proto se Vßm tady pokusφm n∞jakΘ metody
nastφnit.
1. Polymorphismus
Ka₧d² urΦit∞ vφ, o co se jednß (pokud ne, tak koukn∞te sem), tak₧e je zbyteΦnΘ se o tomhle zmi≥ovat.
Stßle jeÜt∞ v∞tÜina vir∙ pou₧φvajφ tΘto metody k zamaskovßnφ svΘho t∞la.
2. Metamorphismus
Velice novß metoda, ukazujφcφ se pro viry jako nov² cφl do budoucnosti,
nebo¥ se jevφ nßdhernß zbra≥ proti vÜem antivorov²m program∙m. Jednß se
o to, ₧e narozdφl od polymorphismu, kter² vytvß°φ pouze dek≤dovacφ
algoritmus, tak metamorphismus obm∞≥uje veÜkerΘ instrukce viru. Tak₧e
po tomto procesu vznikß novß varianta t∞la viru, avÜak konajφcφ totΘ₧.
Vyu₧φvß se tak skuteΦnosti, ₧e veÜkerΘ instrukce (p°i°azovßnφ, sΦφtßnφ,
porovnßvßnφ, ...) lze nahradit jin²mi registry, dv∞ma t°emi instrukcemi
navφc - upln∞ je tedy zredukovat, rozÜφ°it. Existuje pouze n∞kolik mßlo
napsan²ch vir∙, kterΘ majφ nßznaky metamorphismu. Napsßnφ algoritmu
na jednoduch² metamorphismus je hodn∞ nßroΦnΘ na p°em²Ülenφ.
3. Anti-* techniky
Takhle se hromadn∞ naz²vajφ zp∙soby, jak vy°adit z Φinnosti kontroly
antivirov²ch scanner∙.
3.1. Anti-debugging
Pokud b∞hem Φinnosti virus zφskß dojem, ₧e jej sleduje n∞jak² debugger,
m∙₧e nap°φklad ukonΦit aktußlnφ process apod. Zp∙sob∙ jak jej zjistit je
n∞kolik p°es legßlnφ API funkci Windows, p°es SEH a₧ po tajnΘ zp∙soby
vedoucφ ke zjiÜt∞nφ nejlepÜφhoho debuggeru - SoftICE.
3.2. Anti-heuristics
Ka₧d² antivirov² emulßtor simuluje provßd∞nφ instrukcφ a na zßklad∞ jich
odchytßvß p°φznaky. Existuje n∞kolik zp∙sob∙ jak "oblbnout" emulßtor.
Jednou metodou jsou nap°φklad pou₧itφ nedokumentovan²ch instrukcφ,
instrukcφ pro koprocesor nebo pro mmx. V dneÜnφ dob∞ mß ji₧ v∞tÜina
antivir∙ zvlßdnut² emulßtor pro DOS platformu, ale skoro ₧ßdn²
ne pro Win32.
3.3. Anti-Antivirus
Pokud b∞hem svΘ Φinnosti virus v systΘmu narazφ na soubor, kter² slou₧φ
antivir∙m k uchovßnφ informacφ (datum, velikost, ...) tak jej jednoduÜe
sma₧e. Nestane-li se tak a antivir pou₧ije tento soubor k porovnßnφ zm∞n,
m∙₧e b²t virus odhalen.
3.4. Anti-Monitor
Slou₧φ k deaktivaci rezidentnφho hlφdaΦe. I rezidentnφ scanner je jenom
program a lze jej takΘ ukonΦit. V prost°edφ Win32 to v∙bec nenφ ₧ßdn²
problΘm a v DOSu ji₧ rovn∞₧ ne.
3.5. Anti-Bait
Aby mohly antivirovΘ programy ·sp∞Ün∞ nalΘzt virus, musφ jej porovnßvat
podle n∞kter²ch instrukcφ. Proto uvnit° firmy rozÜi°ujφ viry, aby z nich
mohli zφskat stejnΘ sekvence k≤du. Cφlem infekce se stßvajφ programy s
nßzvy nap°φklad 1.EXE, 2.EXE, AAAB.EXE apod. Virus m∙₧e
analyzovat nßzev programu, a pokud v n∞m nalezne podez°elΘ znaky tak jej
odmφtne infikovat.
4. Threads, Fibers, multi-process techniky
Pokud virus pou₧φvß tyto metody, tak m∙₧e velice znep°φjemnit provßd∞nφ
antivirov²ch anal²z v jeho k≤du. O co tedy jde: veÜkerΘ tyto v∞ci byly
vyvynuty v rßmci umo₧n∞nφ multitaskingu kdy windows rozd∞luje Φas procesoru
mezi ostatnφ aplikace. Chvφli provßdφ n∞co jedna aplikace, pak se p°edß
°φzenφ druhΘ a tak dßle. Virus ve svΘm k≤du m∙₧e vytvo°it jin² thread
(n∞co jako jin² process) a schvßln∞ poΦkß, a₧ jej windows obslou₧φ. Z
tohoto jinΘho threadu m∙₧e zm∞nit n∞kterΘ instrukce v pam∞ti, kde je
ulo₧en virus a a₧ se windows op∞t vrßti k provßd∞nφ viru, m∙₧e dφky zßsahu
z venΦφ provΘst jinΘ instrurkce. Co to znamenß: antivirovΘmu skeneru (emulßtoru)
se mu nepoda°φ "odsimulovat" k≤d odd∞lenΘho threadu a tφm pßdem
"skonΦφ" s jeho anal²zou.
Bli₧Üφ informace o poslednφm odstavci lze najφt zde.
Autorem tohoto Φlßnku je Prizzy/29A (prizzy@coderz.net). Tφmto mu velice d∞kuji !