Počítačová havěť - vývoj a rozdělení malware
12.2.2009, Michal Koláček, článek
Veřejné komunikační kanály (počítačové sítě a zejména Internet) poskytují úrodnou půdu pro zákeřné programy, jež můžeme označit za malware. Nejstarším fenoménem jsou počítačové viry, s nimiž se setkal snad každý. Jedná se o škodlivý software různých podob.
Kapitoly článku:
- Počítačová havěť - vývoj a rozdělení malware
- Historický vývoj počítačových virů
- Rozdělení malware - 1. část
- Rozdělení malware - 2. část
Nyní jsme vás seznámili s postupným vývojem počítačových virů, červů, trojských koní a také si v úvodu vymezili rozsah počítačové infiltrace. Tu a tam jsme při tom použili specifické výrazy, jež by mohly nezkušené čtenáře zmást. O tom, že existuje velké množství jednotlivých druhů uvažované havěti, není zcela jistě pochyb. My si proto uvedeme základní delení těchto škodlivých programů s jejich slovním popisem a objasněním dosud nejasných souvislostí.
Základní rozdělení malware:
Termín "vir" zazněl poprvé na semináři počítačové bezpečnosti konaném 10. listopadu 1983. Později vyšla studie s názvem Computer Viruses - Theory and Experiments, kde Fred Cohen shrnul své dosavadní poznatky. Obsahovala dle všeho první definici viru jako kódu, který dokáže modifikovat jiné programy tak, aby obsahovaly jeho kopii. Ačkoliv Cohenovi je často přičítáno i autorství samotného pojmu "počítačový vir", on sám za otce tohoto výrazu označil profesora a odborníka na bezpečnost PC Leonarda Adlemana.
- Leonard Adleman -
Slova jako "vir" či "virus" zevšedněla, a proto jsou takto často zcela nesprávně označovány veškeré typy infiltrací. Ovšem nutno podotknout, že uvažovaná oblast je velmi propletená a mnoho škodlivého softwaru se navzájem prolíná. Někdy zkrátka nelze jednoduše rozhodnout, zda se jedná o virus, trojského koně, červa, atp. Než se pustíme do podrobnějšího rozboru, objasníme si pojem replikace viru.
- Poznáte, o jaký jde virus? -
Český ekvivalent znamená obnovení, zmnožení či opětovné uvedení. My budeme uvažovat množení sebe sama za přítomnosti vykonatelného hostitele, k němuž je připojen. Tím mohou být executable prvky, systémové oblasti pevného disku, případně soubory, jež nelze provádět přímo - nabízí se použití specifických aplikací Microsoft Office, skriptů programovacího jazyka etc. Rozdíl mezi formátem a příponou souboru, jenž souvisí s binárním kódem těla virů, zde není potřeba vysvětlovat.
Dělení virů podle způsobu umístění do paměti:
Podle napadených oblastí:
Podle chování a způsobu detekce:
Odborníci na IT bezpečnost by mohli připomínkovat, že jsme nezařadili dutinové, komprimující, náhodně přepisující, tunelující a další druhy PC virů. Naše členění je pouze orientační a pro účely tohoto článku plně dostačující. Kdo by chtěl více informací, doporučovali bychom zakoupení českého překladu knihy Počítačové viry - analýza útoku a obrana. Autorem je Peter Szor a na 576 stranách této publikace najdete opravdu vše.
Rezidentní viry přežívají v systémové paměti a běží na pozadí operačního systému. Mohou být aktivovány při prvním spuštění infikovaného souboru (souborový virus) nebo při prvotním zavedení systému z nakaženého boot sektoru (boot virus). Dokumentovány byly také přístupy přes systémový registr nebo rezervovanou paměť. Virus je aktivní až do chvíle vypnutí systému. Opakem jsou nerezidentní nebo-li viry přímé akce. Nezůstáváji trvale v paměti a po spuštění škodlivého kódu převezmou řízení - jsou aktivovány společně s hostitelským programem. Svoji činnost vykonají jako první a po replikaci či jiné destruktivní metodě mu předávají správu zpět.
Bootovací viry tvoří jednu z nejstarších skupin této havěti. Jejich cílem jsou určité systémové oblasti disku jako například boot sektor FDD nebo HDD, tabulka rozdělení disku MBR etc. V případě nakažení jsou při každém startu OS zavedeny z infikovaného úseku do paměti počítače a stávají se aktivními. Přebírají kontrolu nejnižší úrovně diskových služeb a až poté spouští správný zaváděcí kód (ten je uchovaný na jiném místě).
Druhou velkou skupinou jsou souborové viry. Připojují se k spustitelným (executable) souborům nebo přepisují jejich určitou část - programový kód. Aktivace je zajištěna spuštěním napadeného hostitele (známé přípony jako COM, EXE, BAT, BIN, SYS, DLL aj.). V souvislosti s nimi rozlišujeme několik druhů. Prodlužující (parazitické, linkové) se šíří připojením těla viru k napadenému programu tak, aby byla zachována jeho funkčnost. Mění obsah hostitele, a to před původní data (prepending), za ně (appending) nebo do jejich středu či jiných částí (inserting). Přepisující forma je velmi snadno odhalitelná. Princip činnosti spočívá v nalezení spustitelného programu a jeho přepsání sebou samým. Ten je pak zcela, nebo zčásti nefunkční.
Duplikující (množivé, doprovodné) viry byly rozšířené v prostředí MS-DOSu. Napadaly EXE programy tím způsobem, že vytvořily v daném adresáři skryté soubory stejného názvu i obsahu, avšak s příponou COM. Při vepsání jména programu na příkazovou řádku došlo ke spuštění duplicitního infikovaného kódu. Clusterové viry neprovádějí změny v souborech, ale mění informace v adresářové položce daného programu. Modifikují odkazy adresářové struktury, aby ukazovaly na kopii infikovaného kódu. Před spuštěním souboru je aktivován virus, přičemž jeho tělo je mimo hostitele.
Multiparitní řešení v sobě kombinuje výše uvedené přednosti souborových virů a odstraňuje problémy časného zavedení respektive nejnižší úrovně systémových služeb (bootovací záškodníci). Hodně velkým strašákem jsou tzv. makroviry. Není totiž nic jednoduššího, než vytvořit jednoduché makro, jež se při otevření infikovaného dokumentu samo spustí. Další možností je jeho vhodné pojmenování (Otevřít, Uložit atp.). Variant, jak škodit, se nabízí opravdu mnoho. Napadají především datové dokumenty vytvořené v kancelářských aplikacích, jejichž bezpečnost je minimální.
Retroviry jsou spíše okrajovou záležitostí a úmyslně se zaměřují proti známým antivirovým programům. Mohou infikovat nebo poškodit programový kód daného produktu, vyřadit činnost rezidentní ochrany nebo zastavit jeho provoz. Speciální skupinu tvoří utajené a poloutajené viry. Jedná se o rezidentní typ záškodníků s vysokým stupněm maskování (ukrývá změnu délky řetězců, údaje času vytvoření a datum modifikace, mění původní obsah bootovacího sektoru atp.). Vlastnost "stealth" je těžko odhalitená, a je potřeba použití speciálních technik (týká se antivirového programu). Substealth využívá jen některé výše popsané metody utajení. Často jde o kombinaci souborových či bootovacích virů.
Charakteristickým znakem polymorfních virů je skutečnost, že žádná ze dvou kopií (těla) viru není stejná. Mají schopnost měnit vlastní obsah a v postiženém souboru nelze najít typické sekvence stejného kódu. Generování probíhá mnoha způsoby, před spuštěním se aktivuje prvotní část, jež obsahuje algoritmus pro dekódování té zbylé. Pro každý nakažený soubor si vytváří zcela jinou dekryptovací funkci. Podotýkáme, že "klasické" viry zachovávají ve všech kopiích stejné tělo.
Dostáváme se k pomalým a rychlým virovým programům (slow and fast infectors). Rozdíl je pozorovatelný především v rychlosti šíření. U pomalé varianty je vir co nejobezřetnější, snadno může uniknout detekci ze strany antivirového programu (důležitá je zde kontrola integrity). Napadá například nově vytvářené soubory. Fast infector je mnohem živější a infikuje programy téměř při každé manipulaci s nimi (otevírání, kopírování, přesouvání). Tím se ovšem zvyšuje pravděpodobnost jeho odhalení.
Obrněné (kódované, šifrované) viry jsou schopné sebezakódování. Touto metodou ukrytí textu v těle viru velice znesnadňují antivirovým programům následnou detekci. Šifrování je řešeno proměnným klíčem s krátkou dekryptovací funkcí. Problematika úzce souvisí s "polymorfní havětí". V nemalém počtu se vyskytují také tzv. sparse viry, které napadají počítač příležitostně nebo při splnění určité podmínky. Velkým počtem zástupců je zastoupen segment generátorů a konstruktorů sloužících k jednoduchému sestrojení škodícího softwaru. Těm jsme se ovšem věnovali v předchozí kapitole.
Základní rozdělení malware:
- Počítačové viry
- Trojské koně
- Červi
- Backdoor
- Spyware
- Adware
- Phishing (sociální inženýrství)
- Hoax
- Dialer
- Rootkit
Počítačové viry
Termín "vir" zazněl poprvé na semináři počítačové bezpečnosti konaném 10. listopadu 1983. Později vyšla studie s názvem Computer Viruses - Theory and Experiments, kde Fred Cohen shrnul své dosavadní poznatky. Obsahovala dle všeho první definici viru jako kódu, který dokáže modifikovat jiné programy tak, aby obsahovaly jeho kopii. Ačkoliv Cohenovi je často přičítáno i autorství samotného pojmu "počítačový vir", on sám za otce tohoto výrazu označil profesora a odborníka na bezpečnost PC Leonarda Adlemana.
- Leonard Adleman -
Slova jako "vir" či "virus" zevšedněla, a proto jsou takto často zcela nesprávně označovány veškeré typy infiltrací. Ovšem nutno podotknout, že uvažovaná oblast je velmi propletená a mnoho škodlivého softwaru se navzájem prolíná. Někdy zkrátka nelze jednoduše rozhodnout, zda se jedná o virus, trojského koně, červa, atp. Než se pustíme do podrobnějšího rozboru, objasníme si pojem replikace viru.
- Poznáte, o jaký jde virus? -
Český ekvivalent znamená obnovení, zmnožení či opětovné uvedení. My budeme uvažovat množení sebe sama za přítomnosti vykonatelného hostitele, k němuž je připojen. Tím mohou být executable prvky, systémové oblasti pevného disku, případně soubory, jež nelze provádět přímo - nabízí se použití specifických aplikací Microsoft Office, skriptů programovacího jazyka etc. Rozdíl mezi formátem a příponou souboru, jenž souvisí s binárním kódem těla virů, zde není potřeba vysvětlovat.
Dělení virů podle způsobu umístění do paměti:
- Rezidentní
- Nerezidentní
Podle napadených oblastí:
- Bootovací
- Souborové
- Prodlužující
- Přepisující
- Duplikující (množivé, doprovodné)
- Clusterové
- Multiparitní
- Makroviry
- Retroviry (odvetné)
Podle chování a způsobu detekce:
- Stealth a substealth (utajené a poloutajené)
- Polymorfní
- Pomalé a rychlé infektory (virové programy)
- Obrněné (schopné sebezakódování)
- Sparse
Odborníci na IT bezpečnost by mohli připomínkovat, že jsme nezařadili dutinové, komprimující, náhodně přepisující, tunelující a další druhy PC virů. Naše členění je pouze orientační a pro účely tohoto článku plně dostačující. Kdo by chtěl více informací, doporučovali bychom zakoupení českého překladu knihy Počítačové viry - analýza útoku a obrana. Autorem je Peter Szor a na 576 stranách této publikace najdete opravdu vše.
Rezidentní viry přežívají v systémové paměti a běží na pozadí operačního systému. Mohou být aktivovány při prvním spuštění infikovaného souboru (souborový virus) nebo při prvotním zavedení systému z nakaženého boot sektoru (boot virus). Dokumentovány byly také přístupy přes systémový registr nebo rezervovanou paměť. Virus je aktivní až do chvíle vypnutí systému. Opakem jsou nerezidentní nebo-li viry přímé akce. Nezůstáváji trvale v paměti a po spuštění škodlivého kódu převezmou řízení - jsou aktivovány společně s hostitelským programem. Svoji činnost vykonají jako první a po replikaci či jiné destruktivní metodě mu předávají správu zpět.
Bootovací viry tvoří jednu z nejstarších skupin této havěti. Jejich cílem jsou určité systémové oblasti disku jako například boot sektor FDD nebo HDD, tabulka rozdělení disku MBR etc. V případě nakažení jsou při každém startu OS zavedeny z infikovaného úseku do paměti počítače a stávají se aktivními. Přebírají kontrolu nejnižší úrovně diskových služeb a až poté spouští správný zaváděcí kód (ten je uchovaný na jiném místě).
Druhou velkou skupinou jsou souborové viry. Připojují se k spustitelným (executable) souborům nebo přepisují jejich určitou část - programový kód. Aktivace je zajištěna spuštěním napadeného hostitele (známé přípony jako COM, EXE, BAT, BIN, SYS, DLL aj.). V souvislosti s nimi rozlišujeme několik druhů. Prodlužující (parazitické, linkové) se šíří připojením těla viru k napadenému programu tak, aby byla zachována jeho funkčnost. Mění obsah hostitele, a to před původní data (prepending), za ně (appending) nebo do jejich středu či jiných částí (inserting). Přepisující forma je velmi snadno odhalitelná. Princip činnosti spočívá v nalezení spustitelného programu a jeho přepsání sebou samým. Ten je pak zcela, nebo zčásti nefunkční.
Duplikující (množivé, doprovodné) viry byly rozšířené v prostředí MS-DOSu. Napadaly EXE programy tím způsobem, že vytvořily v daném adresáři skryté soubory stejného názvu i obsahu, avšak s příponou COM. Při vepsání jména programu na příkazovou řádku došlo ke spuštění duplicitního infikovaného kódu. Clusterové viry neprovádějí změny v souborech, ale mění informace v adresářové položce daného programu. Modifikují odkazy adresářové struktury, aby ukazovaly na kopii infikovaného kódu. Před spuštěním souboru je aktivován virus, přičemž jeho tělo je mimo hostitele.
Multiparitní řešení v sobě kombinuje výše uvedené přednosti souborových virů a odstraňuje problémy časného zavedení respektive nejnižší úrovně systémových služeb (bootovací záškodníci). Hodně velkým strašákem jsou tzv. makroviry. Není totiž nic jednoduššího, než vytvořit jednoduché makro, jež se při otevření infikovaného dokumentu samo spustí. Další možností je jeho vhodné pojmenování (Otevřít, Uložit atp.). Variant, jak škodit, se nabízí opravdu mnoho. Napadají především datové dokumenty vytvořené v kancelářských aplikacích, jejichž bezpečnost je minimální.
Retroviry jsou spíše okrajovou záležitostí a úmyslně se zaměřují proti známým antivirovým programům. Mohou infikovat nebo poškodit programový kód daného produktu, vyřadit činnost rezidentní ochrany nebo zastavit jeho provoz. Speciální skupinu tvoří utajené a poloutajené viry. Jedná se o rezidentní typ záškodníků s vysokým stupněm maskování (ukrývá změnu délky řetězců, údaje času vytvoření a datum modifikace, mění původní obsah bootovacího sektoru atp.). Vlastnost "stealth" je těžko odhalitená, a je potřeba použití speciálních technik (týká se antivirového programu). Substealth využívá jen některé výše popsané metody utajení. Často jde o kombinaci souborových či bootovacích virů.
Charakteristickým znakem polymorfních virů je skutečnost, že žádná ze dvou kopií (těla) viru není stejná. Mají schopnost měnit vlastní obsah a v postiženém souboru nelze najít typické sekvence stejného kódu. Generování probíhá mnoha způsoby, před spuštěním se aktivuje prvotní část, jež obsahuje algoritmus pro dekódování té zbylé. Pro každý nakažený soubor si vytváří zcela jinou dekryptovací funkci. Podotýkáme, že "klasické" viry zachovávají ve všech kopiích stejné tělo.
Dostáváme se k pomalým a rychlým virovým programům (slow and fast infectors). Rozdíl je pozorovatelný především v rychlosti šíření. U pomalé varianty je vir co nejobezřetnější, snadno může uniknout detekci ze strany antivirového programu (důležitá je zde kontrola integrity). Napadá například nově vytvářené soubory. Fast infector je mnohem živější a infikuje programy téměř při každé manipulaci s nimi (otevírání, kopírování, přesouvání). Tím se ovšem zvyšuje pravděpodobnost jeho odhalení.
Obrněné (kódované, šifrované) viry jsou schopné sebezakódování. Touto metodou ukrytí textu v těle viru velice znesnadňují antivirovým programům následnou detekci. Šifrování je řešeno proměnným klíčem s krátkou dekryptovací funkcí. Problematika úzce souvisí s "polymorfní havětí". V nemalém počtu se vyskytují také tzv. sparse viry, které napadají počítač příležitostně nebo při splnění určité podmínky. Velkým počtem zástupců je zastoupen segment generátorů a konstruktorů sloužících k jednoduchému sestrojení škodícího softwaru. Těm jsme se ovšem věnovali v předchozí kapitole.