Skrito v alternativni podatkovni tok
Alternate Data Stream (ADS) je splošno znana funkcionalnost datotečnega sistema NTFS. Microsoft je alternativne podatkovne tokove v NTFS uvedel predvsem zaradi združljivosti z datotečnim sistemom Apple Hierarchical File System (HFS), ki uporablja t. i. vilice (forks) za shranjevanje metapodatkov (pomanjšane slike, ikone...). V Windows XP SP2 je Microsoft začel ADS tudi dejansko aktivneje uporabljati. Predvsem v povezavi z Attachment Execution Service (AES), ki shranjuje informacije o prenosu datotek iz medmrežja v alternativni tok. Koncept dodatnih podatkovnih tokov ni nov, uporabljajo ga namreč številni datotečni sistemi (Novell NNS/NWFS, Solaris ZFS, Veritas VxFS...). Iznajdljivi hekerji so seveda hitro odkrili, kako lahko uporabijo funkcionalnost ADS, da bi se izognili odkrivanju s strani protivirusnih programov in za skrivanje podatkov.
Poglejmo, kako alternativni podatkovni tokovi delujejo. Odprimo ukazni poziv in vnesimo naslednje:
C:\>mkdir ADS
C:\>cd ADS
C:\ADS>echo "Pozdravljen svet" > besedilo.txt
Z ukazom dir preverimo vsebino novo ustvarjene mape ADS. Kot vidimo, mapa (pričakovano) vsebuje le datoteko besedilo.txt, veliko 21 bajtov. Vsebino datoteke izpišemo z ukazom type besedilo.txt ali notepad besedilo.txt. Zdaj vnesimo naslednji ukaz:
C:\ADS>echo "Alternate data stream" > besedilo.txt:ads.txt
Ustvarili smo alternativni podatkovni tok. Na prvi pogled je originalna datoteka nespremenjena. Uporaba ukazov dir, type besedilo.txt in notepad besedilo.txt vrne enake rezultate kakor prvič. Če želimo odkriti spremembo, moramo uporabiti naslednji ukaz: more < besedilo.txt:ads.txt ali notepad besedilo.txt:ads.txt.
O alternativnih podatkovnih tokovih smo pisali tudi v našem preizkusu protivirusnih programov v junijski številki.
Če smo bili pazljivi, smo lahko opazili, da se z nastankom dodatnega toka velikost osnovne datoteke ne spremeni. Še vedno obsega 21 zlogov. Ali to pomeni, da lahko v alternativni tok "skrijemo" neomejeno podatkov (npr. film v formatu DivX), pa bo velikost originalne datoteke še vedno 21 zlogov? To drži le pogojno, saj se prostor na disku seveda vseeno zmanjša, le da Okna ne premorejo privzetega orodja za odkrivanje in manipulacijo z ADS in torej ne prikažejo sprememb. Na srečo so vrli programerji razvili orodja streams (Sysinternals) in LADS (Heysoft), ki so nam v veliko pomoč. Zelo zanimivo je tudi to, da Task Manager v Windows XP/2003 evidentira izvajanje alternativnega toka. Atributi in seznam nadzora nad dostopom (Access Control List, ACL) so pri dodatnem toku enaki primarni datoteki. Z drugimi besedami, če uporabnik nima pravice dostopa do originalne datoteke, ima onemogočen tudi dostop do ADS.
V dodatni tok pa lahko poleg preprostega besedila shranjujemo tudi izvršljive datoteke. Oglejmo si naslednje ukaze:
C:\ADS>type c:\windows\system32\calc.exe > besedilo.txt:calc.exe
C:\ADS>start .\besedilo.txt:calc.exe
ali
C:\ADS>start C:\ADS\besedilo.txt:calc.exe
Pravkar smo pognali kalkulator, ki smo ga prej skrili v podatkovni tok. Hekerji so to zvijačo brž izkoristili v svoj prid. Do nedavna so protivirusni programi namreč ignorirali pregledovanje alternativnih podatkovnih tokov (nekateri jih še vedno). Preprosto povedano, še tako znano škodljivo kodo je protivirusnik preprosto "spregledal", če je bila skrita v dodatnem toku. Stanje se je na srečo nekoliko izboljšalo. Novejše različice protivirusnih programov zdaj destruktivne ali škodljive alternativne tokove odkrijejo in onemogočijo. Nekateri izdelovalci, na primer Kaspersky, pa so ADS celo uvedli v svoje izdelke. Večina protivirusnikov dodatni tok odkrije šele pri poskusu izvajanja in ne pri rutinskem pregledu (so tudi izjeme, o katerih smo pisali v junijski številki). Privzeti okenski požarni zid namreč brezpogojno odpre zahtevana vrata TCP/UDP, če jih je zahteval program, izveden iz alternativnega podatkovnega toka. Evidence o odprtih vratih ne najdemo niti v nastavitvah Windows Firewall/Exceptions. S tem je padla še ena stopnja zaščite...
BitDefender odkrije škodljivi ADS
Ko jih enkrat spoznamo, dodatni podatkovni tokovi niso kritična varnostna grožnja za naš mlinček. Občasno je priporočljivo uporabiti programa streams ali LADS in preveriti krajevne diske, predvsem pa je nujno ugotoviti sposobnost protivirusnika za odkrivanje alternativnih tokov.
Uporabne povezave: