Počítačové viry - analýza útoku a obrana, část II.

Page 109

Počítačové viry – analýza útoku a obrana

431

12.1 Úvod Autoři virů si dobře uvědomují, že se vir replikuje rychleji, pokud je aktivní v paměti a zachytává přitom volání operačního systému. Už první viry, jako například Brain, nebo Jerusalem, zůstávaly vždy rezidentní v paměti. Nejúspěšnější infektoři souborů a boot sektorů používají všechny typy strategií zavěšení. Viry, které nepoužívají techniku TSR (Terminate and Stay Resident), mají v systému DOS mnohem menší šanci. Když se virus napojí na funkce souborového systému, může snadněji získat přístup k jednotlivým programům nebo oblastem systému a za běhu je infikovat. To samozřejmě znamená, že se velice rychle nakazí většina důležitých a často používaných aplikací a oblastí systému. Je tedy velká šance, že virus pronikne z jednoho systému do druhého, aniž by to uživatel zaznamenal. Další výhodou rezidentních virů je to, že mohou použít technologii stealth, aby se skryly před skenery a kontrolory integrity. Technologie úplného skrytí (full-stealth) je implementována v mnoha starších virech (například Frodo) a v budoucnu bude nepochybně rovněž použita v 32bitových a 64bitových virech pro Windows. Virus Tremor byl jeden z prvních 16bitových polymorfních virů pro DOS, který využíval technik úplného ukrytí. Je-li aktivní v paměti, je zcela ukrytý. Po dobu, po kterou je virus aktivní, zůstává velikost infikované aplikace i jejího obsahu "virtuálně" stejná. Dokud je virus aktivní v paměti, nedokáže vyhledávač virů snadno detekovat napadené soubory. Dalším problémem je to, že on-demand skenery virů, zpřístupňují během skenování všechny důležité aplikace a oblasti systému, takže se do nich aktivní virus může zreplikovat. (Viry, které infikují soubory v době, kdy jsou zpřístupňovány a to jakýmkoliv způsobem, se nazývají jako rychlé infektory.) Vývojářům antivirových řešení bylo tedy zřejmé, že by do svých produktů měli implementovat skenování a dezinfekci paměti. Skenování paměti bylo v systému DOS relativně jednoduchou úlohou. Protože DOS používá procesory Intel pracující v reálném módu (real mode), nebylo možné zpřístupnit více než 1 MB fyzické paměti; virtuální paměť nebyla podporována vůbec. DOS kromě toho neimplementuje žádný mechanismus ochrany kódu operačního systému. Aktuálně zavedené jádro DOSu a všechny aplikace sdílí stejnou ohraničenou paměť, a protože mají v počítači stejná práva, mohou si navzájem překážet (náhodně se přepisovat). Paměť v DOSu může být skenery virů přímo adresována a zpřístupňována pro čtení i zápis, takže vývoj takových skenerů byl jednoduchý. Většina skenerů ani nekontroluje, jestli je v aktuální oblasti paměti vůbec zaveden nějaký kód nebo data a provádějí vyhledávání signatury viru v celé fyzické paměti, pěkně bajt po bajtu. O několik let později se v paměti objevovaly tisíce signatur virů a antivirové programy se kvůli zvýšení rychlosti a vyloučení falešných detekcí snazily prohledávat pouze aktivní oblasti paměti. Takové skenery procházejí paměť pomocí MCB (Memory Control Block). V systému DOS je paměť alokována v "arénách" (v sekcích paměti). Každá taková aréna začíná jejím ovladačem, nazvaným MCB. Získání odkazu na první MCB je možné pouze s pomocí nedokumentované funkce DOSu (funkce Int 21h/52h). Tato funkce byla zpočátku plánována jako "interní" v DOSu, a proto nebyla nakonec zdokumentována. Rozlouskávání nedokumentovaných rozhraní je u systémů firmy Microsoft bohužel každodenním problémem. (Není tedy překvapující, že pro implementaci efektivních skenerů paměti pro Windows NT muselo být rovněž objeveno mnoho podobných nedokumentovaných rozhraní.)


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.