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 !