V prehistorických dobách, kdy našim počítačům vládnul Friday 13th, Michellangelo nebo One-Half, byla koncepce viru podstatně jiná. Virus využíval standardní metody dostupné pod systémem MS-DOS a obrana proti virům tohoto druhu víceméně závisela na aktuálnosti použitého antivirového programu, na dostupných informacích a na obezřetnosti uživatele. S nezastaralým programem, trochou rozvahy a malou dávkou štěstí se dalo nebezpečí nákazy podstatně snížit. Minimálně na známou hodnotu „jednou se s tím každý potká“, která je podle mého soudu pod systémy se zabezpečením jakou májí DOS/9x běžná.
Techniky e-mailový červů, které se derou do našich schránek dnes, jsou odlišné. Staré dobré schéma „EXE v příloze + adresář Outlooku “, jak jej známe z počátků e-mailových virů, je sice omíláno pořád dokola, nicméně nové techniky využívání bezpečnostních chyb prohlížečů a poštovních klientů, které se objevují, rozhodně stojí programátorskému oku za povšimnutí.
Podporuje Microsoft replikaci červů záměrně?
Asi ne, ale podle Important Macro Virus Tips FAQ na microsoft.com by to tak skoro mohlo vypadat. V dokumentu najdete i tuto otázku a odpověď:
Q: Will the virus impact my Macintosh if I am using a non-Microsoft e-mail program, such as Eudora?
A: If you are using an Macintosh e-mail program that is not from Microsoft, we recommend checking with that particular company. But most likely other e-mail programs like Eudora are not designed to enable virus replication.
Maximálně střízlivý překlad :
Q: Ohrožují viry můj Macintosh, když používám ne-Microsftí e-mailový klient, jako Eudroa?
A: Pokud používáte e-mailový program, který není od Microsoftu, doporučujeme obrátit se na patřičnou společnost (která program produkuje). Velmi pravděpodobně ale ostatní programy, jako Eudora, nejsou navrženy tak, aby umožňovaly rozmnožování virů.
Podotknout je snad už možné jen to, že autoři FAQ mají pravdu. Použití jiného e-mailového software, než od Microsoftu, podstatně snižuje riziko zasažení e-mailovým červem.
Pořád to samé
Ukažme si nejprve základní mechanizmus funkce typického viru. Je jasné, že nevítaný hostitel musí žít tam, kde je kód, tedy posloupnost instrukcí v jazyce, který disponuje dostatečnými programátorskými funkcemi pro replikaci.
Pod platformou DOS byly spustitelné soubory EXE, COM a BAT. Dávkové soubory (BAŤáky) jsou spustitelné nadále, ale pro tento účel se nehodí, neboť nesplňují výše uvedenou podmínku. COM je v dnešní době přežitek a nepoužívá se. Zbývá tedy EXE, který ovšem dneska může být skryt například pod koncovku šetřiče obrazovky, SRC. Mají stejný formát, ale pro účely screensaverů se používá odlišná přípona. Dále hrozí použití přípony PIF, ze stejného důvodu. Upozorňuji, že soubor může mít ve jméně tečku, což se jeví jako kdyby měl přípon více. Platí ovšem ta poslední. Třeba soubor obrazek.jpg.src může obsahovat virus, neboť jde o spustitelný soubor.
Po přijetí e-mailu s virem musí nějakým způsobem dojít ke spuštění jeho kódu. Zde červ útočí na několika frontách – snaží se budit dojem zajímavého dopisu (vtip, porno…), snaží se zamaskovat příponu (photos.jpg.exe)… V neposlední řadě se ale snaží zneužít chyby v e-mailovém klientovi ke spuštění automatickému. Doufat, že uživatel kline na přílohu je dnes známka „technické zaostalosti“ tvůrce. Popis nejrůznějších technik tohoto druhu začneme na konci tohoto dílu a bude hlavní náplní dílů příštích.
Převzali jsme tedy vládu nad počítačem, co nyní? Je třeba se šířit a k tomu nutně potřebujeme e-mailové adresy. Samozřejmě se přímo nabízí použití adresáře v poštovním programu, ale i na tomto poli je jistý vývoj. Kupříkladu velmi rafinovaný způsob je sbírání adres z cache www prohlížečů, dále virům může hrát do noty, pokud předmět zprávy bude vypadat jako odpověď (Re: ) na skutečný dopis. Po úspěšném odeslání svých replikací virus víceméně splnil svojí hlavní úlohu a nabízí se otázka, zda dále setrvávat v počítači, popř. co s infikovaným počítačem provést. Jak se ukazuje, metoda okamžitého smazání ať už sebe či celého harddisku není nejlepší. Uživatel například při čtení e-mailu nemusí být k připojen k internetu. Vir se tedy do systému zahnízdí a svojí činnost provádí opakovaně.
Kde je?
Nejčastěji na disku, v podobě nějakého rádoby systémového souboru. Čím více slov win, 32, kernel, system a dll v názvu, tím lépe. V adresářích system a system32 se tak dokonale skryje. Opakované spouštění může být zajišťováno několika způsoby, od win.ini v raných dobách Windows 9x, po registry, nejčastěji využívanou cestu. V klíči HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows \Current Version najdete několik podklíčů, jejichž obsah se vykonává vždy při spuštění počítače. Nejznámější je podklíč Run, kde najdete také většinu regulérních programů. Obdobným způsobem se dá využít klíč HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
. Název proměnné je taktéž obvykle něco šíleně sysémového a odborného…
Virus tak přebírá kontrolu nad počítačem po každém spuštění. Sofistikované typy se samozřejmě urputně brání odhalení i odstranění ze strany uživatele. Například kontrolují použitou větev v registrech každých 10 sekund a v případě její neexistence ji opět doplní. Brání vlastní soubory proti vymazání a používají záložní kopie k opětovnému uložení. Mažou kontrolní součty v databázích antivirových programů (především soubory Anti-Vir.dat, Chklist.dat, Chklist.ms, Chklist.cps, Chklist.tav, Ivb.ntz, Smartchk.ms, Smartchk.cps, Avgqt.dat a Aguard.dat), mažou volání jejich rezidentních štítů (taktéž v registrech), popřípadě celé antivirové programy. Na jejich odstranění bude zvláště v budoucnu pravděpodobně nutné používat jednoúčelové programy.
Mezi oblíbené triky patří asociování virového programu se spustitelnými soubory typu EXE. Virus přepíše klíč
HKEY_CLASSES_ROOT\exefile\shell\open\command
z původního nastavení %1 % (spuštění vlastního programu - vlastně prvního paramteru příkazové řádky – s ostatními parametry) na hodnotu například virus.exe %1 %. Virus.exe poté provede vlastní spuštění. Tělo viru se tak skrz program viru spouští s každým startem nějaké aplikace, čehož může být virem využito ledajak. Prosté smazání viru z disku po varovné hlášce antivirového programu může zablokovat spuštění čehokoliv jiného.
Tuto techniku využíval například ve své době rozšířený Sircam.
Časovaná bomba
Jak jsem již říkal, spoléhat se na spuštění přílohy je jednak „neznalost možností“, jednak nuda. Zkusme se zamyslet, jak může pisatel viru dosáhnout tohoto cíle minimálně s větší pravděpodobností.
Nejprve je nutné si vysvětlit, jak funguje posílání příloh. Pokud má e-mail více částí, posílá se jako tzv. multi-part mail. Každá takováto část má svoje unikátní ID, ID obsahu, jméno souboru, označení MIME typu, formátu kódování a znakovou sadu. V hlavičce mailu s přílohami najdeme MIME typ multipart/mixed; a odkaz na ID textu zprávy, např. takto :
boundary="----=_NextPart_000_0012_01C1E628.849C4A40" .
Základní trik je v použití IFRAMU v HTML mailu. HTML soubor musí být nastaven jakožto vlastní text zprávy. V jednotlivých částech HTML mailu se totiž můžeme odkazovat na části jiné, pokud známe jejich ID obsahu. Pokud například použijeme tag IMG s parametrem SRC=”obrazek”, kde řetězec v závorkách je ID části s obrázkem (typ image/gif nebo image/jpeg), cesta bude nalezena a obrázek se zobrazí.
Část zdroje zprávy by vypadala takto (Všimněte si, že SRC obrázku z mailu se značí identifikátorem „cid“, tedy content-id):
------=_NextPart_001_001C_01C17D7E.1BFBC280
Content-Type: text/html; charset="iso-8859-1"
<IMG Src=cid:OBR>
------=_NextPart_000_001B_01C17D7E.1BFBC280
Content-Id: <OBR>
Content-Type: image/jpeg; name="photo.jpg"
Content-Transfer-Encoding: quoted-printable
Stejně tak ale můžeme použít tag IFRAME, například následovně.
------=_NextPart_001_001C_01C17D7E.1BFBC280
Content-Type: text/html; charset="iso-8859-1"
<IFRAME = src="cid:VIR" width=3D0 height=3D0></iframe>
------=_NextPart_000_001B_01C17D7E.1BFBC280
Content-Id: <VIR>
Content-Type: application/executable; name="virus.exe"
Prohlížeč (tedy IE komponenta) bude mít tendenci obsah spustit standardním způsobem a v našem případě se při otevření zprávy stane totéž, co by se stalo při kliknutí na přílohu. V případě EXE souboru je to „jen“ zobrazení dialogu (otevřít nebo uložit), v případě txt souboru by to bylo jeho okamžité otevření. Zobrazení tohoto dialogu závisí také na aktuálním nastavení („Vždy zobrazit dotaz před otevřením souboru tohoto typu“).
Toto byla, je a jak se zdá v nejbližší době bude věčná součást e-mailových červů.
O dalších technikách si povíme příště.