NejΦast∞jÜφ techniky Win32 vir∙

V tΘto kapitole si budeme vyklßdat o n∞kter²ch tzv. "advanced Win32" technikßch, kterΘ zaΦaly vznikat p°ed necel²mi dv∞ma lety a Φasem se velmi rozÜφ°ily.

╚asy, kdy Win32 viry byly nerezidentnφ a jedinΘ co um∞ly bylo infikovat vÜechny soubory v aktußlnφm adresß°i, jsou pryΦ. NovΘ viry pou₧φvajφ stßle vφce "vylepÜen²ch" technik pro zv²Üenφ Üance rozÜφ°enφ a snφ₧enφ Üance odhalenφ viru. T∞chto technik je mnoho, dalo by se °φci desφtky.

Za jistou dobu, co viry programuji jsem se mnohΘ techniky nauΦil a n∞kterΘ pou₧φvanΘ techniky jsem i vymyslel. O n∞kter²ch z nich zde budu hovo°it.

Technika 1: Multithreading

Tato technika vyu₧φvß schopnosti operaΦnφch systΘm∙ zalo₧en²ch na Win32 vykonßvat vφce ne₧ jeden k≤d jednoho programu v "jeden Φas".

P°φklad: PφÜete ve Wordu dopis. Pokud ho budete chtφt vytisknout, Word vytvo°φ nov² thread (Φesky: provßd∞cφ tok), kter² se bude starat o tisk. Mezitφm co druh² thread tiskne, vy m∙₧ete dopis psßt dßl, proto₧e ten prvnφ thread se starß o psanφ. Takto se v programu m∙₧e provßd∞t vφce v∞cφ v relativn∞ stejnΘm Φase.

Viry tΘto vlastnosti vyu₧φvajφ k ochran∞ p°ed emulßtorem/heuristikou (souΦasnΘ emulßtory zatφm neumφ simulovat vykonßvßnφ vφce ne₧ jednoho k≤du v jeden Φas), p°ed trasovßnφm (zatφmco antivirov² nadÜenec krokuje n∞jak² nev²znamn² k≤d, ten v²znamn² virov² k≤d b∞₧φ "·pln∞ jinde") a taky pro zlepÜenφ funkΦnosti viru (p∙vodnφ program pracuje normßln∞ (t°eba Word), b∞₧φ ván∞m vÜak virov² thread û zatφmco vy pφÜete dopis, virov² thread infikuje vÜechny soubory na disku).

Viry vyu₧φvajφcφ multithreadingu: Win32.Leviathan, Win32.Legacy, Win32.Vulcano.

Technika 2: Fibery

Fibery majφ blφzko k thread∙m. Ale zatφmco plßnovßnφ thread∙ °φdφ sßm operaΦnφ systΘm (plßnovßnφm rozum∞j urΦovßnφ, co v dan² Φas pob∞₧φ), fibery °φdφte vy sami. V²hodou je, ₧e se fibery snadn∞ji ovlßdajφ (mßte nad nimi stoprocentnφ kontrolu), nev²hodou je, ₧e neb∞₧φ pod Win95. Fibery jsou podporovßn² ve Win98+ a WinNT 3.51+ (+SP3).

Prvnφ, a pokud je mi znßmo, tak i poslednφ virus, kter² fibery vyu₧φvß je Win98.Milennium.

Technika 3: Multiprocessing & IPC

Tato technika je vcelku novß. Vyu₧φvß schopnosti Win32 platforem mφt spuÜt∞no vφce ne₧ jeden program (proces). InterProcess Communication (IPC) je komunikace mezi dv∞ma a vφce procesy.

Pou₧itφ t∞chto technik se liÜφ snad u ka₧dΘho viru. Virus Win98.BeGemot nap°φklad umo₧≥uje u₧ivateli komunikovat s virem, pokud je v pam∞ti, pomocφ externφho programu: textovΘ konzole. Virus to d∞lß tak, ₧e ve sdφlenΘ pam∞ti vytvo°φ strukturu, kterß se bude ke komunikaci vyu₧φvat. Externφ program tuto strukturu najde a pomocφ dohodnut²ch pravidel do nφ zapisuje a Φte z nφ. Vstupem jsou povely, na kterΘ umφ virus reagovat, v²stupem jsou v²stupnφ data zobrazenß u₧ivateli.

P°φklad: U₧ivatel se p°es konzoli zeptß, co prßv∞ virus d∞lß, a virus mu odpovφ, ₧e prßv∞ infikuje soubor. VeÜkerß "internφ" komunikace je na bßzi struktury, "externφ" komunikace je na bßzi konzole. Toto je p°φklad multiprocessingu a IPC.

Virus Win32.Vulcano zase umφ komunikovat mezi vφce instancemi stejnΘho viru v pam∞ti. V praxi to znamenß, ₧e pokud chce virus infikovat n∞jak² soubor, tak se pokusφ najφt "stejn² virus spuÜt∞n² v jinΘm programu", a pokud ho najde, tak mu dß p°φkaz, a¥ infikaci provede za n∞j. Vtip je v tom, ₧e pokud ladφte n∞jak² program, ladφte pouze a jenom ten jeden program. Pokud se n∞co d∞je v jinΘm programu, nezjistφte to. Proto ten, kdo bude trasovat tento virus, uvidφ jen n∞jakΘ nev²znamnΘ instrukce - hlavnφ k≤d, tedy infikace programu, bude proveden ·pln∞ n∞kde jinde, tedy v jinΘm programu. A na to nep°ijde jak heuristika/emulßtor, tak ani ten, kdo virus zb∞₧n∞ trasoval.

Tyto techniky v sob∞ skr²vajφ hodn∞ uplatn∞nφ. Zatφm je toto teritorium mßlo probßdanΘ, co₧ se ale jist∞ Φasem zm∞nφ.

Technika 4: EPO

Technika EntryPoint Obscuring, zkrßcen∞ EPO, je znßma u₧ z dob star²ch DOS vir∙. Hlavnφ myÜlenkou bylo a je nep°edßvat °φzenφ viru okam₧it∞, ale a₧ za n∞jak² Φas - uprost°ed vykonßvßnφ programu, na konci apod. Nap°φklad virus, kter² je aktivovßn a₧ p°i volßnφ ukonΦovacφ rutiny programu nebude s nejv∞tÜφ pravd∞podobnostφ zachycen heuristikou. Heuristika, jak jist∞ vφte, se sna₧φ krokovat k≤d a p°φpadn∞ varovat u₧ivatele, je-li k≤d podez°el².

OvÜem emulovßnφ chodu programu nesmφ trvat dΘle ne₧ pßr sekund. Pokud je tedy virus aktivovßn a₧ p°ed ukonΦenφ programu, heuristika se kán∞mu nedostane a virus z∙stane neodhalen. Technika EPO je velmi ·Φinnß.

P°φkladem viru, kter² EPO vyu₧φvß je Win32.Vulcano nebo t°eba Win32.CTX.


Autorem tohoto Φlßnku je Benny/29A (Benny_29a@privacyx.com). Tφmto mu velice d∞kuji !