Igiho strßnka o virech
Novinky
Kniha o virech
1.Pomoc
Testy
Odkazy
Download
AV-Konference
Akce
Autor

Konstrukce stealth vir∙

Stealth viry se aktivnφm zp∙sobem brßnφ prozrazenφ svΘ p°φtomnosti na poΦφtaΦi. Pro ·Φinnost stealth mechanism∙ musφ virus zajistit, aby jeho t∞lo bylo umφst∞no do pam∞ti rezidentn∞. Podstatou stealth technik je monitorovßnφ slu₧eb jßdra DOSu pro prßci se soubory, zejmΘna pak slu₧eb otev°enφ, uzav°enφ a spuÜt∞nφ souboru.
╪ada vir∙ se vyh²bß infikaci antivirov²ch Φi systΘmov²ch program∙. AntivirovΘ programy majφ na zavirovßnφ vlastnφho t∞la velkou senzitivitu, a proto viry se °ad∞ z nich zßm∞rn∞ vyh²bajφ. Je to jedna z mo₧nostφ, jak se viry brßnφ svΘmu prozrazenφ.
Snahu o minimßlnφ zm∞nu t∞la objektu ·toku demonstruje multipartitnφ virus StarShip, kter² v tabulce rozd∞lenφ pevnΘho disku (Partition Table) m∞nφ pouze t°i bajty v instrukcφch pro naΦtenφ boot sektoru (fyzickß adresa - hlava, stopa a sektor).

╚ßsteΦn² stealth mechanismus

╚ßsteΦn² stealth mechanismus maskuje zavirovanou dΘlku souboru. Virus obsahuje p°eruÜenφ jßdra DOSu (int 21h) a monitoruje funkce otev°enφ nebo vyhledßnφ souboru, kdy operaΦnφmu systΘmu vracφ dΘlky, tak jako kdyby soubor infikovßn nebyl.

virus_int21h:
	cmp	ah, 0fh		; sluzba "Otevri soubor pres FCB" ?
	je 	stealth_open_FCB
	cmp	ah, 11h		; sluzba "Najdi prvni soubor pres FCB" ?
	je	stealth_FCB
	cmp 	ah, 12h		; sluzba "Najdi dalsi soubor pres FCB" ?
	je	stealth_FCB
	cmp	ah, 4eh		; sluzba "Najdi prvni soubor" ?
	je	stealth_dir
	cmp	ah, 4fh		; sluzba "Najdi dalsi soubor" ?
	je	stealth_dir		
	... dalsi testy ...
stealth_open_FCB:
	... volej originalni obsluhu int 21h
	... je-li soubor infikovan, pak FCB sniz hodnotu jeho velikosti o virus ...
	... dalsi virove manipulace ...
stealth_FCB:
	... volej originalni obsluhu int 21h
	... zjisti adresu DTA, ve ktere je FCB ulozeno ...
	... je-li soubor infikovan, pak v DTA sniz hodnotu jeho velikosti o virus ...
	... dalsi virove manipulace ...
stealth_dir:
	... volej originalni obsluhu int 21h
	... zjisti adresu DTA, ve ktere jsou informace o souboru ulozeny ...
	... je-li soubor infikovan, pak v DTA sniz hodnotu jeho velikosti o virus ...
	... dalsi virove manipulace ...

V p°φpad∞ nßv∞Ütφ stealth_open_FCB a stealth_FCB se velikost souboru nachßzφ na adrese FCB[1dh] resp. DTA[1dh], v p°φpad∞ nßv∞Ütφ stealth_dir pak na adrese DTA[1ah]. V₧dy se jednß o dvojslovo (DWORD). P°i volßnφ funkce 0fh je p°φmo znßma adresa FCB, a proto ji nenφ pot°eba zjiÜ¥ovat prost°ednictvφm DTA. Stealth FCB dΘlky na ·rovni instrukcφ je uveden v rßmci konstrukce souborovΘho SYS viru.

┌pln² stealth mechanismus

Principem ·plnΘho stealth mechanismu je rozÜφ°enφ jeho ΦßsteΦnΘ podoby o manipulaci ·plnΘho odvirovßnφ ₧ßdanΘho souboru p°ed jeho p°edßnφm operaΦnφmu systΘmu a jeho op∞tovnΘho zavirovßnφ v dob∞, kdy p°φsluÜn² soubor ji₧ nenφ ₧ßdßn resp. je vyvolßn po₧adavek na jeho uzav°enφ.

virus_int21h:
	cmp	ah, 3dh	; sluzba "Otevri soubor" ?
	je	stealth
	cmp	ah, 4bh	; sluzba "Spust souboru - EXEC" ?
	je	stealth
	cmp   ah, 6ch	; sluzba "Rozsireneho otevreni souboru" ?
	je 	stealth
	cmp	ah, 3eh	; sluzba "Uzavri soubor" ?
	je	infect
	... dalsi testy ...
stealth:
	... je-li oteviran nebo spusten spustitelny soubor, pak jej odviruj ...
	... a predej odvirovany soubor pozadovane sluzbe ...
	... dalsi virove manipulace

D∙sledkem ·plnΘho stealth mechanismu je skuteΦnost, ₧e antivirovΘ kontroly nezachytφ p°φtomnost viru, nebo¥ v dob∞ testovßnφ je virus ze souboru ji₧ odstran∞n.

P°i manipulaci se souborem °ada vir∙ vyu₧φvß nedokumentovan² mechanismus p°φmΘho p°φstupu k souboru prost°ednictvφm SFT:

mov	bx, file_handle	; rukojet souboru
mov	ax, 1220h		; sluzba "zjisti cislo SFT"
int	2fh
mov 	bl, es:di		; cislo SFT (-1 pro neotevreny soubor )
mov 	ax, 1216h		; sluzba "zjisti adresu SFT"
int 	2fh
; adresa ES:DI ukazuje na SFT

Tato posloupnost p°φkaz∙ nynφ umo₧≥uje p°φmou manipulaci s atributy souboru, m≤dem otev°enφ, nastavenφ ukazatele posunu v souboru Φi manipulaci s datem a Φasem, bez volßnφ slu₧eb jßdra DOSu (int 21h), a tφm i bez hrozby zachycenφ operacφ antivirov²m hlφdaΦem.
Nap°φklad pro nastavenφ ukazatele posunu na zaΦßtek souboru m∙₧e virus mφsto volßnφ slu₧by DOSu 42h pou₧φt sekvenci:

mov	es:[di+15h], 0	; od offsetu 15h je v tabulce SFT ulozeno
mov	es:[di+17h], 0	; dvojslovo aktualniho posunu v souboru

Podobn∞ pro p°enastavenφ m≤du otev°enφ na zßpis:

mov	es:[di+02h], 2	; read/write m≤d

Zp∞t