ODHALOVÁNÍ ROOTKITŮ A DETEKCE SPYWARU

Spyware

Definice spywaru

Obecně můžeme spyware (spy = špion) definovat jako aplikaci, která se do počítače dostane ať už nechtěnou náhodou nebo jako součást jiných aplikací (podrobnosti viz kapitola 2.1.1). Všeobecně se spyware dostal do podvědomí jako aplikace, která má za úkol narušit soukromí uživatele. Dokáže shromažďovat statistické informace (navštívené stránky, používané programy apod.), případně i jinak citlivé informace – jako jsou například hesla, piny platebních karet atd. Takto nashromážděná data jsou následně poslána autorovi této aplikace a ten je použije dle svého uvážení. Spyware lze tedy chápat jako převážně nechtěnou aplikaci, která se skrytě dostane do systému a následně shromažďuje a odesílá data o daném uživateli.

Sběr informací

Sběr informací je převažující činnost, kterou v dnešní době spyware vykonává. Spyware může být součástí shareware, free programů jako cena za bezplatné využívání. Výjimečně může být součástí i placených programů, ale to není již tak časté. Nehledě na způsob přenosu, má spyware obvykle za úkol sbírat statistické informace, jako jsou např. informace o navštívených internetových stránkách, používaných programech, nákupních zvycích atd. Tvůrci se hájí tím, že chtějí dnešnímu uživateli nabízet jen to, o co má konkrétně zájem. Pokud budeme uvažovat např. tzv. adware (viz kapitola 2.2.1), mohli by tito tvůrci říct, že chtějí uživateli směřovat jen reklamu, která je v okruhu jeho zájmu, šlo by tedy o tzv. „cílenou reklamu“. Tato činnost je z právního hlediska legální. Na druhou stranu může spyware sbírat statistické informace mnohem citlivějšího rázu, jako například uživatelská jména a hesla, piny kreditních karet anebo dokonce může sloužit jako zadní vrátka (= backdoor) do uživatelova systému. Tato činnost je jiným extrémem a ukazuje na nelegálnost toho programového kódu. Hranice mezi „legálním“ a „nelegálním“ spywarem je velice tenká a nikdo nemůže s přesností říct, kdy jde o legální a kdy o nelegální činnost. Pokud budeme opět uvažovat např. adware, mohlo by se říct, že velká většina dnešních běžných uživatelů má k jakékoliv reklamě negativní postoj a legální spyware tedy zcela odmítá. Informace o přítomnosti spywaru by měli být součástí licenčních ujednání, které musí uživatel před začátkem instalace programu odsouhlasit, bohužel mnoho uživatelů si tato ujednání nepročte celé nebo vůbec.

Kategorie spyware

K upřesnění by se dalo říci, že se jedná o produkty, které pracují na bázi spyware nebo alespoň splňují některou z jeho vlastností.

Adware

Adware (advertising-supported software) je označení pro produkty, které znepříjemňující práci na počítači pomocí ať už vyžádané nebo nevyžádané reklamy. Nepatří mezi nebezpečné, ale úspěšně se mu daří zpomalovat prohlížení webových stránek a celkově činnost s počítačem spojenou. Děje se tak díky neustále vyskakujícím (pop-up) oknům zobrazujících reklamu. Dalším projevem může být změna domovské stránky v prohlížeči. Adware může být součástí některých programů výměnou za bezplatné využívání nadstandardních funkcí, které v původní verzi nejsou k dispozici. Tvůrci programů skutečnost přítomnosti adwaru obvykle zahrnují do licenčních ujednání, které si je možné přečíst před instalaci produktu, například firmou Microsoft používaná tzv. „EULA“ (End User Licence Agreement = Licenční smlouva s koncovým uživatelem).

Dialer

Dialer postihuje majitele modemových připojení. Jde o program, který mění druh připojení k Internetu. Myšleno jako změna běžně používaného telefonního čísla pro Internetové připojení na číslo se zvláštní tarifikací (až několik desítek korun za hodinu). V určitých případech se může jednat o legální činnost, například pokud tímto způsobem uživatel platí za nějaké služby. Za hranicí legálnosti je situace, jakmile je informace o přesměrování na dražší linku v nějakém cizím jazyce. Nelegální případy jsou samozřejmě také všechny, u kterých dochází k přesměrování bez vědomí uživatele.

Keylogger

Mohou být buď hardwarové, nebo softwarové. O spyware se jedná v případě softwarových keyloggerů. Nejsou přímo nebezpečné pro počítač. Jejich úkolem je zachytávat veškeré stisknuté klávesy na klávesnici. Výstup této činnosti může být například textový, ten se následně přeposílá tvůrci nebo původci této nákazy. Jsou využívány především k získávání hesel.

Backdoor

Jak již napovídá název „backdoor“ (= zadní vrátka) jedná se o program, který umožňuje vzdálený přístup do počítače. Útočník pomocí tohoto programu může obejít autentizaci a skrytě tak pracovat na vzdáleném počítači. Princip programu je na bázi komunikace klient-server. Na vzdáleném počítači musí být nainstalována serverová část programu, potom může klient - útočník klást různé požadavky na server a ten mu je vyplní.

Malware

Vznikl složením slov Malicious (= zákeřný, škodlivý) software. Dalo by se ale říci, že se spíše jedná o takové všeobecné označení pro veškeré škodlivé softwarové produkty, které mohou počítač potkat. Tímto termínem se spíše označuje záměr nežli produkt.

Rootkyty

Aby mohl útočník pokračovat ve využívání jím napadeného počítače, měl by na něj nainstalovat backdoor. Potom bude moci například kontrolovat činnost napadeného počítače, případně do jeho činnosti i zasáhnout. Mnohem jednodušší metodou pro zajištění utajení činnosti na počítači, je za využití rootkitů.

Definice rootkitu

Z laického pohledu by se dal rootkit popsat jako program (viz obr. 1), který se snaží skrýt jak svou činnost, tak i pro útočníka nežádoucí aplikaci. Největší nebezpečí tedy spočívá v tom, že tato aplikace zamaskuje působení škodlivého softwaru před uživatelem. Ten si potom není vědom, že se stal obětí útoku a nepodnikne tedy potřebné kroky k odstranění této infekce. Rootkit se tedy dá na(ne)štěstí instalovat pouze na úspěšně napadený systém. Důležitým faktorem obrany je tedy samotná prevence.

Módy rootkitu v operačním systému

V operačním systému Windows existují dva možné režimy – režim jádra a uživatelský režim. Zatímco v uživatelském režimu jsou práva k práci v systému jen omezená, v režimu jádra jsou práva prakticky neomezená. Většina aplikací běží v uživatelském režimu, v režimu jádra běží veškeré systémové procesy, ovladače zařízení. Proces běžící v režimu jádra může změnit nebo dokonce zničit datové struktury v paměti. V uživatelském režimu tyto činnosti provádět nejdou, lze ale přistupovat k adresovému prostoru daného procesu (k instrukcím a datům daného programu).

Rootkit v uživatelském režimu může být buď jako samostatný program, nebo může být součástí jiného programu. Kdežto v režimu jádra má rootkit větší možnosti působení v systému nežli v uživatelském režimu. Ať už je tedy naprogramován jakkoliv, jeho účelem je skrývat aplikace, soubory případně adresáře, klíče v registrech nebo procesy. Většinou ale slouží k filtrování, úpravě informací, které posílá operační systém uživateli. Pokud bude chtít například uživatel provést výpis jistého adresáře, rootkit zachytí volání aplikace, odchytí posílaný výpis od operačního systému, pozmění jej podle sebe a pozměněný nebo zcela jiný výsledek odešle uživateli/aplikaci.

Typy rootkitů

Ve skutečnosti ale existují celkem čtyři různé druhy rootkitů, rozdělených podle toho, na které úrovni systému pracují.

Virtuální rootkity (=VMBR)

VMBR (Virtual Machine Based Rootkit) pracuje na té nejnižší úrovni, na které jsou rootkity schopny pracovat, a proto patří k velmi obtížně zjistitelným. Tyto rootkity upraví pořadí při bootovaní počítače. Nejdříve se spustí BIOS, který dále spustí inicializaci rootkitu, místo toho aby přímo spustil operační systém. Jakmile se rootkit nahraje do paměti, spustí původní operační systém, ale pouze v režimu virtuálního počítače. Uživatel tedy bude pracovat s právy hosta (guest). Tím si rootkit zajistí odchytávání veškerých hardwarových volání od operačního sytému (viz obr. 2). Jak již bylo psáno výše, takto zavedený rootkit je obtížně zjistitelný, pokud totiž uživatel nemá ponětí o tom, že jeho počítač byl infikován, tak nemůže ani podniknout nezbytné kroky k odstranění této infekce. Jedním z nejtypičtějších příznaků infekce tímto rootkitem je zpomalení výkonu počítače. Příkladem takového typu rootkitu je „SubVirt“ [12], který byl vyvinut firmou Microsoft ve spolupráci s Michiganskou univerzitou.

Režim jádra

Jde o rootkity, které pracují v režimu jádra. Přidávají další kód a/nebo nahradí část kódu jádra, aby pomohly ke skrytí backdooru v počítačovém systému. Toho je obyčejně dosaženo přidáním nového kódu do jádra systému přes ovladače k různým zařízením (v OS Windows) nebo modulů jádra (v Linuxu). Infikování na této úrovni není lehké dosáhnout, ale jakmile se jednou podaří, rootkit může vykonávat prakticky jakoukoliv aktivitu, aniž by byl detekován. Nejedná se pouze o kompromitování zabezpečení systému počítače, ale může to mít i drastický dopad na stabilitu systému a jeho budoucí rozšiřitelnost. Bez pomoci specializovaného softwaru je tyto rootkity velmi těžké odhalit

Rootkity v DLL knihovnách

Používají metody jako je „patchování“1 , „hookování“2 a nahrazování systémových volání upravenou verzí, která neprozradí skrytou činnost útočníka. Tyto funkce mohou ovlivnit chování legitimních programů, tím že je nechají vykonat další přídavné funkce, které nejsou v jiných případech povoleny. Například otevření nového spojení a vysílání důvěrných dat za použití oprávnění onoho legitimního programu.

Aplikační rootkity

Rootkity na této úrovni mohou nahrazovat části kódu aplikací trojským koněm nebo jiným malwarem. Mohou také nahradit činnost programu činností jiného škodlivého softwaru (metodě se říká „hijackig“). Metody, které slouží pro úpravu chodu aplikace, mohou být - patchování, hookování, vkládání kódu atd.

Druhy hookování

IAT hooking

IAT (Import Address Table) je jedna z částí spustitelného souboru. Je to tabulka ukazatelů na funkce nacházející se v různých DLL (Dynamic Link Library) knihovnách. Mohou teoreticky nastat dvě situace, program má vlastní funkce a další funkce DLL knihoven nepotřebuje (téměř nenastává), nebo se jedná o komplexnější program a bude tedy potřebovat IAT. IAT se využívá při spouštění programu, ten totiž dopředu neví, kde se nalézají DLL knihovny obsahující potřebné funkce. Umístění DLL totiž není statické, jakmile se vytvoří nová verze knihovny, může se stávající poloha změnit. Během nahrávání spustitelného souboru prochází loader3 tuto oblast a hledá potřebné funkce v různých knihovnách. Poté ukládá tyto adresy funkcí zpět do IAT daného programu.

Úpravou adres v IAT může útočník přesměrovat původní volání na volání kódu rootkitu. Rootkit může potom sám zavolat tuto funkci a její výsledky upravit podle sebe (viz obr. 4). Rootkit nemusí napadat pouze IAT, může pracovat v režimu jádra. Jako takový může přímo nahrazovat adresy systémových funkcí za škodlivý kód. Tato technika je z hlediska napadeného velmi nebezpečná a těžce odhalitelná. Rootkit nenapadá jednotlivé aplikace, ale přímo jádro, což má za následek ovlivnění funkčnosti celého sytému [3], [9], [11].

Inline function hooking

Tento druh hookování je dokonalejší než předchozí, nedochází zde totiž k pouhému nahrazení ukazatele, ale dochází přímo k modifikaci dané funkce. Rootkit si odebere několik prvních bytů dané funkce a sám se na toto místo nahraje4 . Aby nedošlo k narušení běhu dané funkce a aby se ztížila možnost detekce, rootkit těch několik prvních bytů funkce zachová – funkce se tedy tváří, že pracuje, tak jak má. S touto technikou se můžeme setkat i u Windows firmy Microsoft5 . Díky této technice se může provést aktualizace operačního systému, aniž bychom ho museli restartovat. To je výhodné pro uživatele, protože nemusí ztrácet čas restartováním systému. Firma Microsoft uvedla, že se díky tomuto způsobu sníží celkový počet restartů přibližně o 53%.

IRP hooking

Každý ovladač zařízení se dá chápat jako tabulka odkazů na funkce, pomocí kterých se obsluhují různá I/O zařízení. Tyto funkce jsou získány buď od systému, nebo od klientské aplikace. Komunikace s ovladačem je ve většině případů realizována pomocí IRP (I/O Request Packet). V případě infekce je některá hodnota v tabulce nahrazena kódem rootkitu. Místo požadované operace se vykoná kód samotného rootkitu (obr. 5 – plnými čarami je naznačen normální průběh, čerchovanými čarami po infekci rootkitem) [13]. Dokonalejší variantou je, podobně jako u inline hookingu, že si rootkit nejprve zazálohuje původní hodnotu z tabulky, vykoná původní žádost, ale následně pozmění výsledky [1], [3].

Pokusy o legální rootkit

Sony rootkit

Jedná se o příklad využití rootkitů v komerční sféře. Firma Sony ke konci roku 2005 uvolnila spolu s prodávanými CD nosiči i program na přehrávání hudby od MediaMax. Tento program na přehrávání se spustil automaticky po vložení CD do mechaniky. Nikdo však tehdy netušil, že se jim kvůli spuštění přehrávače do systému dostane i rootkit. Tento rootkit umožnil vypálení jen určitého počtu kopií tohoto média a umožňoval přehrávání hudby pouze pomocí dodávaného přehrávače.

Tento DRM (Digital Rights Management) rootkit odhalil až o rok později odborník na Windows Mark Russinovich (viz lit. [17], [19]) při testování svého programu na odhalování rootkitů „RootkitRevealeru“ 6 . Po spuštění programu na svém počítači objevil řadu skrytých souborů a klíčů v registru, všechny podezřelé řádky začínaly na řetězec $sys$. Zjistil, že ovladač „Aeries.sys“ ukrývá činnost těchto spuštěných procesů. Dalším pátráním se dostal k tomu, že za to může DRM od firmy First 4 Internet s názvem XCP (nyní už The Amergence Group).

Aby přišel na to, co to přesně dělá, nechal si toto CD přehrát v mechanice. Po spuštění hudebního přehrávače z CD si všiml, že program $sys$DRMServer.exe, který byl skrytý, začal zatěžovat výkon procesoru. Po zavření přehrávače tento program však pokračoval v činnosti, ale již ne s takovou zátěží procesoru. Dalším zkoumáním zjistil, že tento program každé dvě sekundy zjišťuje informace o dvou systémových souborech na disku. Rozhodl se tyto soubory odstranit jak fyzicky z disku tak i z registrů. Po restartu počítače ale zjistil, že mu zmizely všechny optické mechaniky. Dalším šetření se dopátral k tomu, že za to mohl jeden jím smazaný soubor $sys$creater, který má za úkol inicializaci ovladačů optických mechanik při startu systému.

startu systému. Firma Sony se této kauze bránila dlouho, neustále se hájila tím, že tento rootkit není pro uživatele nijak nebezpečný. Svědčí o tom i výrok firmy Sony [7]: “Většina lidí vůbec netuší, co to rootkit je, takže proč by se o to měli zajímat? 7 ” Firma Sony kauzu prohrála a jako odškodné vyplatila každému poškozenému uživateli něco kolem 100$.

USB flash disky od Sony

Počátkem září roku 2007 objevili bezpečnostní experti z firmy F-Secure na internetu další rootkit - aplikace používaná firmou Sony [22]. Tentokráte se jedná o USB flash disky MicroVault řady USM-F, které disponují čtečkou otisků prstů. Rootkit se nachází v softwaru na přiloženém CD.

Rootkit si vytvoří skrytou složku pod \WINDOWS, která je tak skrytá, že se do ní normální cestou přes průzkumníka Windows nedostaneme. Pokud známe jméno složky, tak již není problém se do tohoto umístění dostat. Dále již rootkit „neškodí“, problém je ale v tom, že dané místo je „neviditelné“ pro antivirové programy. Problém je tedy v tom, že se na dané umístění může nahrát škodlivý software, který může skrytě a nerušeně provádět svou činnost. Sony tuto mezeru v bezpečnosti doposud neopravila.

Firma F-Secure oznámila, že stávající rootkit není tak nebezpečný jako ten předchozí (viz kapitola 3.5.1). Liší se hlavně v tom, že software pro USB zařízení si uživatel instaluje vědomě, zatímco přehrávač u hudebních CD byl instalován automaticky. Přestože je méně nebezpečný, stále může být zneužit potencionálními útočníky.

Detekce

V této části jsou prezentovány běžně používané metody detekce spywaru a rootkitů.

Techniky detekce spywaru

Shoda názvů souborů

Nejjednodušší metodou detekce je pomocí shody názvů. Jak název metody napovídá, detekční program skenuje disk a hledá názvy souboru shodujících se s doposud známými názvy spywaru. Soubory pozitivní na výskyt spywaru jsou potom označeny k vymazání. Tato forma detekce funguje, ale má velké nevýhody. Ve snaze zmařit úsilí detekujícího softwaru, spywarové společnosti změní název souboru nebo používají strategii náhodného pojmenování souborů. Jakmile se jednou název souboru změní, program na detekci již není schopen takto upravený spyware rozpoznat. Další problém je, že programy na detekci nejsou schopny rozlišit rozdíl mezi spywarem a regulérním programem. Například, předpokládejme, že známá spywarová aplikace má soubor pojmenovaný example.dll, který je s ní spojen. Jakmile by regulérní program používal také soubor pojmenovaný example.dll, program na detekci by ho označil k vymazání, bez ohledu s jakou aplikací je spojen.

Shoda vlastností souboru

Další metodou detekce spywaru je porovnávání vlastností souboru s vlastnostmi známého spywaru v databázi. Tato metoda se obvykle používá spolu s předchozím typem detekce a vytváří tak o trochu spolehlivější řešení detekce spywaru. Jakmile program pro detekci označí soubor pomocí metody shody názvů, zkontroluje potom ještě vlastnosti souboru, jako jsou velikost, vydavatel a verzi souboru. Pokud se alespoň jedna nebo více vlastností shoduje s vlastnostmi uvedených v databázi, je soubor označen pro odstranění.

Kombinace shody názvů a porovnání vlastností dělá detekční software mnohem výkonnějším. Autoři spywaru jsou schopni tuto formu detekce snadno obcházet a to přejmenováváním názvu souboru, změnou názvu vydavatele, jednoduchou úpravou velikosti souboru nebo nahráním nové verze. Naštěstí se pomocí této metody detekce spywaru zmenší pravděpodobnost chybného označení regulérního souboru.

Shoda podle vzorku kódu v souboru

Metody jako jsou Shoda názvů a Shoda vlastností souboru se, zjednodušeně řečeno, dívají pouze na „obal“ kolem samotného kódu souboru. Jedinou možností, jak zjistit s čím se potýkáme, je podívat se „dovnitř“ toho obalu. Při hledání spywaru program pro detekci prohledává „vnitřní“ část souboru a hledá tam jisté znaky/vzorky shodné s těmi, které má uložené v databázi. Jakmile se najde znak, který se shoduje s tím v databázi, soubor je označen pro odstranění.

V následujícím textu je jednoduše popsán postup algoritmu detekce pomocí vzorku kódu z obr. 6. Nejdříve je potřeba načíst do paměti podezřelý soubor (odpovídá poznámce 1 na obr. 6), načtený soubor by mohl vypadat asi jako na obr. 7. Poté se zjistí velikost daného souboru a uloží se do příslušné proměnné.

Analogicky k postupu načtení souboru se provede načtení (viz obr. 8) 8 a zjištění délky vzorku spywaru (odpovídá poznámce 2 z obr. 6).

Jakmile je načtený soubor i vzorek spywaru, začne se porovnávat (tomuto odpovídá část č. 3 na obr. 6). Nejprve se vytvoří tzv. „okénko“, které má stejnou velikost jako vzorek daného spywaru. Ze souboru se tedy vezme tolik bytů, jaká je velikost okénka. Takto získaná část kódu se porovná se vzorkem spywaru, jestliže se kódy neshodují – nebyla nalezena infekce, okénko se posune o jednu pozici doprava a opět proběhne testování, jakmile je nalezena shoda těchto dvou kódu – byla nalezena infekce (viz například obr. 9).

 

Jakmile se projde celý soubor, aplikace se podívá do databáze spywaru, zda se zde nenachází ještě další vzorky, jestliže ano, celý proces testování se opakuje, jinak se aplikace ukončí. Přestože autoři spywaru mohou lehce změnit název souboru, případně pozměnit jeho vlastnosti, je mnohem složitější upravit samotný program. Shoda podle vzorku kódu je tedy spolehlivá metoda a hodně známých programů pro detekci spywaru ji používá.

Heuristická analýza

Heuristická analýza pracuje na podobném principu jako při vyhledávání určitého vzorku v kódu programu. Rozdíl je v tom, že hledá instrukce nebo příkazy, které za normálních okolností nejsou součástí programu, jako například příkaz na mazání věcí na disku. Tato metoda se převážně používá na detekci malwaru a jiných aplikací podobného typu. Heuristická analýza je dobrou metodou pro odhalování spywaru, ale jednoduchý heuristický systém odhaluje pouze škodlivé kódy nikoliv cookies nebo adware. Modernější programy pro detekci sypwaru kombinují heuristickou analýzu spolu s dalšími metodami uvedenými dříve.

Prohledávání registrů

Stejně jako většina běžných a neškodných aplikací i spyware upravuje během své instalace systémové registry. Časem mohou tyto hodnoty způsobit zmatek v registrech a zpomalit počítač. Registry se také mohou stát nepoužitelnými. Prakticky všechny detekční programy hledají v registrech jakoukoliv stopu po spywaru. Dosahují toho pomocí porovnávání vzorků z registrů se vzorky uloženými v aplikační databázi detekčního programu.

Detekce rootkitů

Rootkity se za posledních pár let vyvinuly a stávají se mnohem komplikovanějšími. O to větší nebezpečí hrozí, jakmile se spojí se spywarem. Čím jsou tedy rootkity složitější, tím se samozřejmě komplikuje jejich detekce - odstranění. Navíc, pokud je počítač jednou napaden, nikdy už mu nelze plně důvěřovat. Existuje několik různě úspěšných technik, které lze k odhalení rootkitů použít. Většina metod je podobná již popsaným metodám detekce spywaru (viz kapitola 4.1)

Shoda s referenční kopií systému

Jedna z teoreticky nejúčinnějších metod detekce rootkitů je využití neinfikované kopie systému. Podezřelý počítač se po zapnutí nechá nabootovat z neifikované kopie systému. Na této verzi systému se spustí aplikace, která bude procházet systém a porovnávat jednotlivé soubory. Podezřelá verze systému bude brána jako data a rootkit bude zcela neúčinný, nebude tedy moct skrýt svou přítomnost. Tato metoda potřebuje neinfikovanou referenční kopii systému, což by mohl být problém. Systémy totiž nejsou neměnné, ale dochází v nich k neustálým změnám. Proto realizace této metody by byla velmi komplikovaná

Prohledávání disku z bootovacích médií

Přestože je předchozí metoda pro své nároky obtížně realizovatelná, myšlenka prohledávání neaktivního systému má něco do sebe. Mít neustále aktuální neinfikovanou referenční kopii systému je náročné. Objevila se tedy myšlenka mít médium (CD, USB flash disk, …), které obsahuje pouze nejnutnější věci potřebné pro nabootování. Navíc by mělo ještě obsahovat nějakou aplikaci, pomocí které se bude prohledávat systém. Počítač se nechá nabootovat například z CD nebo USB flash disku, poté se spustí aplikace, která bude prohledávat podezřelý systém. Rootkit ukrytý v počítači bude neaktivní a nebude tedy moct ukrýt svou přítomnost nebo se jinak zamaskovat. Schopnost odhalovat rootkity závisí pouze na spuštěné aplikaci na bootovacím médiu.

Cross-view detection

Tato metoda využívá faktu, že neexistuje pouze jediná cesta jak získat požadované informace. Při použití této metody jsou skryté soubory identifikovány díky porovnání výsledků, které jsou získány pomocí různých přístupů k datům. Metoda porovnává výstup API funkcí (vysoká úroveň) s výstupem získaných pomocí metod používajících velmi nízkou úroveň. Například pokud budeme chtít najít ukryté soubory, metoda nejdříve použije funkce Windows API, aby získala informace o daném souboru ze systému. Následně použije nízko-úrovňové metody k provedení analýzy souborového systému. Metoda potom porovnává získané informace s informacemi získaných pomocí API, díky tomu je schopná odkrýt soubory, které jsou běžně pro úroveň API skryté [5]. Tato metoda má však nevýhodu, není schopná detekovat rootkity, které pracují na stejně nízké nebo dokonce nižší úrovni než použitá metoda. I přes tuto nevýhodu patří tato metoda k těm úspěšnějším, nepoužívá totiž vyhledávání na základě specifických znaků nebo podle informací z databáze.

Další detekční metody

Další metody, které se běžně používají, pracují uvnitř napadeného systému. Jedním z možných postupů detekce je vyhledávání stop v systému, které po sobě rootkity zanechávají. Z jistého hlediska probíhá tato detekce obdobně jako u spywaru nebo u virů. Odhalování probíhá na základě databáze vzorků, podle které jsou identifikovány infikované soubory. Na rozdíl od spywaru nebo virů nemůže být tato technika příliš účinná. Jednak jsou detekční programy schopny odhalit pouze známé rootkity, jednak je obtížné prohledávat soubory, které bývají pomocí rootkitů skryty.

Předchozí metodu lze skombinovat s některou vyspělejší metodou jako je například heuristická analýza. Opět je zde jistá podobnost s detekcí spywaru. Programy pro detekci, které pracují na principu heuristické analýzy spolu s porovnáváním vzorků, mohou odhalit doposud neznámé rootkity. Nástroje, které tato metoda poskytuje, jsou schopny odhalit i různé nesrovnalosti v systému případně odchylky od běžného chování.

Kernel patch protection

Z předchozích kapitol lze pochopit, že největší nebezpečí číhá od rootkitů, které napadají přímo jádro systému, manipulují s ním nebo v něm provádí různé změny. Tyto zásahy do jádra však mívají za následek problémy s jeho stabilitou, spolehlivostí a výkonem. S přechodem na 64-bitovou architekturu je možné zvýšit zabezpečení jádra. Nové 64-bitová Windows Vista podporují technologii KPP (Kernel Patch Protection), nazývanou též PatchGuard. Tato technologie zabraňuje neoprávněným zásahům do jádra, jeho modifikace atd. KPP neustále hlídá, zda nedochází k neoprávněné (neautorizované) úpravě jádra systému. Pokud by k tomu došlo a nedokázala by tomu zabránit, bylo by zahájeno okamžité vypnutí tohoto systému. Výrazně tak dochází ke zvýšení bezpečnosti a stability jádra operačního systému.

Občas je ale nutné nějakou tu modifikaci jádra provést, může jít o ovladače zařízení, různé zabezpečovací produkty atd. Proto zavedla firma Microsoft systém, který bude využívat podepsaných ovladačů. Tyto ovladače jsou testovány a následně schváleny přímo Microsoftem a 64-bitové Visty, respektive 64-bitové XP Professional, nedovolí instalaci nepodepsaných ovladačů. Ideální by bylo tyto změny aplikovat i na stávající 32-bitové operační systémy, ale to by mělo za následek nemalé problémy s kompatibilitou již vydaného hardwaru. Proto se zavedla tato technika až pro 64-bitové operační systémy, na ty ještě neexistuje takové množství softwaru.

Přestože tato technologie nezaručí absolutní bezpečnost systému, je to jistě krok kupředu. Bude to mít za následek i zvýšení stability systému, protože většina havárií systému je způsobena použitím nekvalitních ovladačů. Na druhou stranu objevují se i názory, které říkají, že tuto metodu lze překonat. Objevují se stížnosti některých antivirových firem, které říkají, že jejich antivirové programy nebudou schopny stoprocentně pracovat za použití této obrany jádra [15].

Detekce na síťovém rozhraní

Spoléhat se pouze na detekční programy a firewall počítače může být pro někoho postačující, ale v dnešním světě sítí je to již nedostatečné. Je tedy vhodné mezi již používané vrstvy ochrany vložit ještě jednu vrstvu, která bude detekovat pokusy o průnik přes síťové rozhraní. Karta síťového rozhraní může teoreticky pracovat ve dvou módech, kdy zachytává:

· pakety, které jsou určeny právě pro daný počítač (určeno IP adresou, MAC adresou)

· všechny pakety, které „vidí“ na přenosovém médiu

Detekce pracuje na principu kontrolování provozu na síťovém rozhraní. Je tedy vhodné, aby síťová karta pracovala ve druhém z uvedených režimů [8]. Jedna z možností kontroly provozu spočívá v porovnávání paketů s již známými vzorky podezřelých kódů, které jsou uloženy v lokální databázi. Toto chování je tedy velmi podobné principu popsanému v kapitole 4.1.3. Porovnávají se byty v celém paketu nebo pouze v jejich hlavičkách (rychlejší způsob). Problémem ovšem může být velikost databáze, případně nemožnost detekování nových typů útoků [2].

Další možností je kontrolovat příchozí pakety v souvislosti s odchozím provozem počítače – zda je příchozí paket reakcí na požadavek zaslaný počítačem apod. Kontrolovat se dá i na základě „povahy“ případně množství příchozích paketů. Velké množství příchozích paketů, které jsou nasměrovaných na různé porty (tzv. skenování portů), může naznačovat, že se někdo snaží zjistit slabiny daného počítače. Případně velké množství příchozích ICMP9 paketů, aniž bychom například použili příkaz ping, naznačuje, že se někdo pokouší o zahlcení naší sítě (tzv. DoS10 útok) apod.

Výše popsané techniky by se daly popsat jako pasivní – tzv. IDS11, obecně vzato mají tyto techniky za úkol pouze upozornit na přicházející nebo právě probíhající útok. Jestliže by měl systém podniknout i kroky k zastavení přicházející hrozby (například zablokování zranitelného portu, případně celého síťového rozhraní atd.), jednalo by se již o aktivní řešení – tzv. IPS12 . Za základní nástroje, které by se daly používat k „ruční“ kontrole provozu, by se mohly považovat například analyzátory síťového provozu13 .

Prevence

Úkol první linie obrany je vždy v zabránění vstupu jakéhokoliv rootkitu, spywaru a jiného škodlivého softwaru do počítače. Je proto dobré dodržovat, alespoň pár základních pravidel:

· používat personální firewall, který bude chránit proti neautorizovaným vstupům

· využívat antivirové a antispywarové řešení pro počítač

· zapojení nějakého druhu síťového „štítu“

· pravidelně kontrolovat aktualizace pro veškeré nainstalované softwarové produkty (obzvláště pro antivirové a antispywarové programy)

· stahovat nejnovější záplaty systému

· používat silná hesla

Přestože jsou bezpečnostní programy neustále vylepšovány, stejně tak se zlepšují i programy, proti kterým bojují. Využíváním těchto základních pravidel včetně zdravého rozumu, je krok správným směrem z hlediska zabezpečení systému.