Jak fungují dnešní rootkity

15. 4. 2011

Sdílet

Výraz rootkit označuje sadu nástrojů, které umožní kompromitovat hlavní kořenový či administrátorský uživatelský účet, tak aby jeho tvůrce získal přístup do všech systémových prostředků, souborů a adresářů v počítači bez omezení.

Rootkity je možné definovat jako soubor programů a kódu, který umožňuje jejich trvalou či dočasnou, ale hlavně nezjistitelnou přítomnost v počítači.

Slovo rootkit pochází ze spojení dvou slov root (kořen) a toolkit (sada nástrojů). Root je v systémech typu Unix či Linux název administrátorského účtu, který má podobně jako ve Windows ta nejvyšší oprávnění vidět, instalovat a měnit komponenty operačního systému či jeho aplikací.

Unixový výraz „kořen" či „kořenový adresář"odkazuje také na stromovou strukturu systému souborů a hlavní či základní adresář, do kterého se postupně řadí a zapisují ostatní adresáře (složky) ve formě adresářového stromu. Běžní uživatelé, kteří nemají příslušná oprávnění, mají k takovým souborům či složkám zakázán či omezen přístup a nemohou je běžně mazat, měnit a někdy ani vidět.

Výraz rootkit tedy v tomto smyslu označuje sadu nástrojů, které umožní kompromitovat hlavní kořenový či administrátorský uživatelský účet, tak aby jeho tvůrce získal přístup do všech systémových prostředků, souborů a adresářů v počítači bez omezení.

 

Současné rootkity

Vzhledem k dnešní situaci na poli bezpečnosti se využívají rootkity především pro získání neomezeného přístupu k systému a následně k zamaskování stop své činnosti nebo činnosti přidružených škodlivých prográmků typu malware. Díky těmto vlastnostem se můžeme kromě pojmu rootkit setkat někdy i s výrazem stealthkit, kde „stealth" je výraz pro skryté jednání..

Nejlepším místem pro sledování činnosti aplikací a systému je API (rozhraní pro programování aplikací). V prostředí Windows např. nekomunikují programy s hardwarem přímo, ale předávají své příkazy operačnímu systému právě prostřednictvím rozhraní API. Operační systém pak zajistí spolupráci jednotlivých procesů a zadá provedení příkazu.

Změnou funkcí rozhraní API jde lehce ukrýt soubory, procesy či síťová spojení před všemi spuštěnými programy v systému. Je to také jeden ze způsobů, jak obelstít starší antivirové programy. V případě, že se antivirový software pokouší zjistit název rootkitu, vyfiltruje rootkit veškeré výpisy odpovídající požadovanému dotazu operačního systému, a zůstane tak nadále neviditelným. Obecně řečeno, systém se tváří, že je vše v pořádku a není aktivní žádný nebezpečný kód.

 

Cíle rootkitů

Prioritou dnešních rootkitů není vždy získat neomezený přístup do napadeného systému. K tomu může sloužit jiný malware k rootkitu přidružený. Prioritou je umožnit vetřelci nepozorovaně využívat svého přístupu k systému a tedy maskování jeho přítomnosti a všech aktivit.

Rootkity kromě toho maskují i přítomnost zranitelných míst, backdoorů, odinstalace nejrůznějších záplat a novějších verzí bránících napadení. Slouží i ke sběru údajů, ke kterým by jinak vetřelec neměl přístup. To může zahrnovat například data z napadeného počítače. Rootkity dále využívají napadený systém jako prostředníka k dalšímu napadání či útokům na jiné cíle. Některé umožňují skladovat jiný malware, který může fungovat jako zdroj pro bot servery, jejich aktualizace, atd.

 

Jak detekovat rootkity

Je si nutné uvědomit, že rootkit je klasickým programem a jako každý jiný program se musí do počítače dostat ve formě souboru, který uživatel stáhne např. z internetu a to ať už samostatně, nebo jako součást jiného programu.

Hledání havěti v souborech je pochopitelně hlavní náplní všech antivirových systémů, takže nic nebrání tomu, aby byla v těchto souborech detekována i havěť typu rootkit. Vlastnostmi může rootkit připomínat trojského koně, takže není potřeba antivirový systém ani nějak přizpůsobovat detekci rootkitů. Stačí pouze, aby antivirová společnost vydávala i aktualizace, konkrétně signatury pro detekci známých rootkitů.

Může ale nastat situace, kdy rootkit již běží (tj. je spuštěn - aktivován - uživatel ho spustil jako každý jiný program) v systému, například z důvodu, že prošel skrze antivirový systém, který daný exemplář rootkitu nezná/neznal, popřípadě že antivirový systém nebyl vůbec nainstalován. Pokud je rootkit opravdu kvalitní a dokáže se tak dokonale maskovat, nemusí ho antivirový systém v počítači detekovat do té doby, než antivirová společnost vydá aktualizaci databáze. Pokud antivirový program již běžící rootkit v databázi má, měla by ho odhalit antistealth technologie.

 

 

Rootkity a Sony

Možnost získat vyšší systémová oprávnění pomocí rooktitů nemusí být vždy čistě z nelegálních důvodů. Rootkity využívala například i společnost Sony pro svou protipirátskou ochranu originálních nosičů XCP (Extended Copy Protection). Pro přehrávání originálního hudebního nosiče na počítači bylo nutné nainstalovat prográmek, který následně nepozorovaně kontroloval počet vypálených kopií originálního disku nebo pokusy o grabování, tedy uložení jeho kopie např ve formě MP3 souborů. Ochrana se však setkala s rozhořčením veřejnosti, neboť některé její „utajené" funkce nebyly oficiálně oznámeny. Navíc samotná ochrana naprogramovaná formou rootkitu obsahovala zranitelnosti, které následně umožňovaly napadení počítače, na který byl program od Sony nainstalován.

ICTS24

 

Tento článek vyšel v tištěném Securityworldu 3/2011.