Maskovaná jehla v kupce sena
Rootkity jsou dnes jednou z největších hrozeb v oblasti bezpečnosti počítačů. Ukážeme vám, jak se jim bránit, jak je najít a jak se jich zbavit.
PETR KRATOCHVÍL
Většina počítačových uživatelů už si na malware a viry zvykla. Podobné hrozby zkrátka v současnosti patří k rizikům surfování a jen málokdo se nechá vyděsit nepříjemnými statistikami. Přesto existuje jedna hrozba, o níž s respektem mluví i počítačoví odborníci. Ano, rootkity stále ještě patří k poněkud mytickým nebezpečím a jejich odhalování je zahaleno větším tajemstvím než recept na becherovku. My vám prozradíme vše, co byste o rootkitech měli vědět, a ukážeme vám, jak je najít a jak se jich (možná i) zbavit.
Dar přítele "roota"
Většinu uživatelů, kteří znají úroveň bezpečnosti prvních Windows, určitě nepřekvapí, že původ rootkitů je nutné hledat v Unixu. Tento relativně bezpečný systém byl už ve svých počátcích cílem útoků hackerů. A právě zde se na scéně objevily rootkity. Zjednodušeně by se dalo říci, že šlo o sadu programů sloužících k získání práv "roota" (správce), zamaskování vstupu hackera a odstranění stop po útoku. Ve svých počátcích se rootkity proslavily především díky masivnímu použití u script kiddies. Ti po proniknutí na konkrétní počítač upravili systémové nástroje nebo přidali další utility pro pozdější použití, například upravený telnet (pro snadnější přístup), packet sniffery (pro odchyt důležitých informací) nebo nástroje na úpravu a mazání logů (pro zamaskování stop). Sada těchto nástrojů (kit) spuštěná s právy správce (root) tedy začala být označována jako rootkity. Ve svých počátcích, v osmdesátých letech, sloužily rootkity především k mazání záznamů o činnosti (tzv. logů), komplikovanější schopnosti získaly rootkity až později. Za první skutečně nebezpečné nástroje lze označit rootkity pro SunOS 4.x a Linux Slackware, které se objevily v roce 1996. Ty už dokázaly téměř vše, co umí moderní malware – odchytávat přihlašovací údaje, otevřít zadní vrátka k systému a především maskovat svou přítomnost. Podrobnější informace o těchto dědečcích současných rootkitů lze najít například na adrese www.cs.wright.edu/~pmateti/Courses/499/Fortification/obrien.html v dokumentu z roku 1996. První rootkity pro operační systém Windows se objevily až po roce 2000 – prvenství se přisuzuje nástroji ruského programátora "he4hook", skrývajícímu soubory ve Windows. Prvním skutečně masivně využívaným rootkitem byl Hacker Defender (HacDef), jehož schopnosti už byly mnohem rozsáhlejší – dokázal nejen skrývat soubory, ale také maskovat procesy a klíče v registrech.
Dnešní rootkity
V současnosti už "klasických rootkitů" ubývá. Jejich univerzálnost (a schopnost zakrýt téměř jakékoliv stopy) je pro autory malwaru zbytečná. Naopak přibývá klasických škůdců, kteří využívají některé techniky rootkitů ke svému skrytí před běžnými antiviry a detekčními nástroji (dalo by se říci, že se vrací ke svým kořenům – tzv. stealth virům). Běžně se také využívá tzv. modulární struktura, kdy na míru vytvořený malware využívá knihovny z rootkitu pro své maskování (například z Hacker Defenderu nebo z rootkitu FU). Před několika lety se rootkit technologie objevily například v červu označovaném jako Bagle, trojském koni Goldun nebo nástroji na tvorbu sítě botů Rustock.
Jak takový rootkit funguje? Zjednodušeně lze říci, že mezi hardwarem a požadavky uživatele stojí operační systém, který pomocí speciálního rozhraní API (Application Programmer Interface) plní zadané úkoly. Pokud tedy například uživatel při práci v textovém editoru stiskne klávesu T (nebo požádá systém o zobrazení běžících procesů), následuje sekvence činností (vedoucích k zobrazení T, případně zobrazení procesů ve správci úloh), ve kterých hraje klíčovou roli právě API. Rootkit může specifické funkce API nahradit a přesměrovat. Díky tomu může být stisk klávesy T nejprve zaznamenán ve speciálním souboru (pro autora rootkitu) nebo z výpisu procesů odstraněny vybrané položky. V praxi to tedy znamená, že pokud se antivir pokusí odhalit malware v počítači (nebo dokonce samotný rootkit) a požádá operační systém o výpisy souborů, procesů či registrů, rootkit odfiltruje veškeré podezřelé záznamy a soubory, a počítač je tedy pro antivir na první pohled "čistý".
Klíčovým prvkem je zde skutečnost, že činnost rootkitu probíhá na úrovni operačního systému a běžné nástroje (například správce úloh, antivir…) doposud téměř neměly šanci tuto manipulaci odhalit. Až donedávna totiž většina bezpečnostních nástrojů předpokládala, že operace na úrovni operačního systému (potažmo jeho jádra) je bezpečná. Aktuální verze moderních bezpečnostních balíků už obvykle disponují speciálními "antirootkit" nástroji, jejich účinnost je ale poněkud diskutabilní. V případě podezření na rootkit tedy spíše doporučujeme použití specializovaných nástrojů.
Červené pilulky
Někteří bezpečnostní specialisté tvrdí, že jakmile byl jednou systém infikován rootkitem, je velmi těžké jej vyčistit, natož mu důvěřovat. My se ale spíše přikloníme k druhému "táboru" odborníků, kteří tvrdí, že pro každý rootkit lze nalézt jeho "červenou pilulku" – metodu, jak ho odhalit. Samozřejmě že neexistuje univerzální metoda, a to i kvůli tomu, že typů rootkitů je celá řada a každý z nich využívá pro maskování jiné techniky.
Z laického hlediska lze techniky odhalování rootkitů rozdělit na dva typy. První typ lze spustit přímo ve Windows a nástroj se při hledání snaží o detekci na základě známých slabin konkrétních rootkitů, případně najít "chyby", kterých se autoři rootkitu dopustili. Druhý typ, obecně uznávaný jako spolehlivější, vyžaduje vypnutí počítače, nabootování z důvěryhodného média a poté prozkoumání počítače pomocí některé z profesionálních detekčních utilit (tedy nikoliv pomocí klasického antiviru). Při hledání rootkitu záleží i na tom, na jaké úrovni škodlivý kód pracuje (v jaké úrovni se snaží data skrýt) – od základní aplikační vrstvy (uživatelský režim), kde pracuje například Hacker Defender nebo Vanquish, až po režim jádra, na jehož úrovni funguje Haxdoor nebo FU. Obecně lze říci, že rootkity pro vyšší vrstvy (z hlediska softwaru) se snáze vyvíjejí, ale jsou jednodušeji odhalitelné. Naopak vytvoření rootkitu pracujícího na úrovni jádra je výzva i pro špičkové programátory, ale jeho odhalení rozhodně není triviální záležitostí. Zde je nutné nasadit profesionální nástroje, využívající při detekci služeb z nižších vrstev jádra.
Na celé řadě odborných diskusních fór zuří boje ohledně otázky účinnosti jednotlivých nástrojů. Na jedné straně jsou odvážná tvrzení autorů rootkitů o neodhalitelnosti jejich produktů, na straně druhé chlubivé prezentace komerčních "antirootkit" nástrojů. Podle našeho názoru je pravda někde mezi – neodhalitelný rootkit neexistuje a o schopnostech některých specializovaných nástrojů si také troufáme pochybovat. My jsme antirootkit "detektory" testovali na relativně starších rootkitech (HackDefender, FU), přičemž počet odhalení dosáhl téměř 100 % – u nejnovějších škůdců však bude situace pravděpodobně zcela jiná.
Máte doma rootkit?
Nejčastěji pokládanou otázkou majitelů zavirovaných počítačů je pravděpodobně dotaz na typ infekce a možnost jejího odstranění. Zatímco u jednodušších virů je výhodou jejich specifické chování, u rootkitů nebo pokročilých infekcí využívajících rootkit technologii už odpověď tak snadná není. Mezi nejčastější rysy útoku rootkitu patří:
- odepření přístupu do správce úloh nebo k seznamu procesů;
- nedostupnost aktualizací systému (web www.windowsupdate.com nelze najít);
- nelze otevřít editor registru a některé konfigurační soubory;
- dochází k přesměrování stránek (například při hledání na Googlu).
Jak tedy postupovat v případě, že se u vás objeví jeden či více výše uvedených příznaků? Prvním krokem by měl být sken jedním či několika on-line antiviry – pokud půjde o běžnou infekci nebo problémy se stabilitou systému, tyto nástroje to odhalí. Dalším krokem by měla být instalace klasického antiviru, případně použití specializovaného nástroje vytvářejícího záznam o parametrech systému (HijackThis, Random's system information tool). Teprve v případě, že tyto programy selžou (nefunguje instalace, program havaruje), je čas nasadit specializované antirootkit nástroje.
Zbraně na neviditelné cíle
Nástrojů proti rootkitům najdete na internetu několik desítek, přičemž většina z nich je překvapivě k dispozici zdarma. Častokrát jde o nástroje, které jsou částí komerčních bezpečnostních balíků, nemalé procento ale tvoří i individuální projekty bezpečnostních specialistů. Ty sice nabízí opravdu výborné výsledky, jejich vývoj je ale bohužel poněkud nepravidelný, nebo dokonce stagnuje. Typickou ukázkou může být nástroj IceSword, který měl při našem testování ve Windows XP dobré výsledky, ale ve Windows 7 nefungoval…
Dalším problémem při použití antirootkit nástrojů je interpretace výsledků. Rozhodně nečekejte, že vám nástroj po skenu napíše: "Máte rootkit XYZ, který odstraníte kliknutím na tlačítko DELETE." Ve většině případů jsou výsledkem jen výpisy podezřelých položek, které si musí uživatel sám prověřit. Může jít dokonce i o planý poplach, protože rootkit techniky používají i některé běžně používané programy (například Alcohol 120%, Daemon Tools…). Výsledky a logy z antirootkit nástrojů jsou tedy spíše určeny odborníkům. Ideální je odeslat je na specializovaná bezpečnostní fóra na internetu; u nás patří mezi špičku diskusní fórum na serveru Viry.cz (www.viry.cz).
A jaký nástroj tedy zvolit? Pro relativně méně zkušené uživatele lze doporučit program IceSword, který podezřelé položky zvýrazní a nabídne celou řadu podrobností usnadňujících odhalení rootkitu. Pravým opakem je BlackLight od firmy F-Secure, který je určen především IT odborníkům – k nalezeným položkám nabídne jen minimum informací a zjištění, zda jde skutečně o rootkit, zůstává na uživateli. O něco lepší úroveň "podrobností o skrytých datech" nabídnou i Sophos Anti-Rootkit a RootkitRevealer, i zde jde ale o nástroje především pro zkušené uživatele. Pro druhý jmenovaný mluví podpora v podobě fóra (na adrese http://forum.sysinternals.com/rootkitrevealerlogs_forum17.html), kam lze vkládat logy z programu a konzultovat nejasnosti. V ideálním případě lze doporučit použití více programů a jejich výsledky porovnat – tak se lze vyhnout falešným poplachům nebo odhalit rootkit, který některý program nenajde.
Jak se bránit?
Pokud se obáváte rootkitu a hledáte způsob, jak možnost jeho útoku minimalizovat, doporučíme vám pouze obecné pravidlo boje proti malwaru: používejte kvalitní antivir, mějte aktuální software a nezapomínejte záplatovat Windows. Jakkoliv nebezpečný rootkit je ve svých počátcích jen obyčejný program, který se musí na váš počítač dostat a spustit se. Důležité je tedy nedat rootkitu šanci ukrýt se v systému a znepříjemnit vám jeho hledání.
PETR.KRATOCHVIL@CHIP.CZ
Noční můra "Blue Pill"
Většina uživatelů si představuje rootkit jako nebezpečný software ukrývající se v systému a maskující činnost malwaru. Existuje ale ještě horší varianta, děsící vizionáře a bezpečnostní specialisty. Představte si, že by rootkit napadl váš počítač a jeho kompletní obsah přesunul do virtuální verze, ve které pracujete, aniž byste cokoliv tušili. Samotný rootkit by poté ovládl počítač a vám poskytl jen to, co uzná za vhodné, a pouze takovým způsobem, aby se neprozradil. Zdá se vám to šílené a neuskutečnitelné?
V srpnu roku 2006 vystoupila na hackerské konferenci Black Hat polská bezpečnostní specialistka Joanna Rutkowská a představila metodu útoku na jádro Windows Vista. Nazvala ji na základě analogie s filmem Matrix jako "Blue Pill" (pokud si v tomto filmu hlavní hrdina filmu Neo vezme modrou pilulku, nebude vědět, že je ve virtuálním světě, naopak červená ho vrátí do reality).
Technika útoku Joanny Rutkowské byla postavena na virtualizační technologii AMD-V (později byla upravena i pro konkurenční Intel-VT) a dělala přibližně to, co jsme popsali na začátku textu. Uživatel by pracoval ve virtuálním počítači, který by byl ovládán rootkitem.
Projekt "Blue Pill" vyvolal obrovskou odezvu – od nedůvěřivých reakcí až po diskuse, zda a kdy je možné důvěřovat samotnému hardwaru. Objevila se dokonce skupina specialistů, kteří vytvořili projekt s označením "Red Pill" (červená pilulka), který měl rootkit Joanny Rutkowské odhalit.
Pravda je, že v současné době lze "Blue Pill" (i podobné projekty jako Vitriol nebo Subvirt) různými metodami skutečně detekovat. Otázkou ale zůstává, zda při současném růstu rychlostí výkonu procesoru a vylepšování virtualizačních technologií nám tato schopnost "detekce" vydrží i do budoucna.
Foto: Koncept rootkitu: Další informace o prezentaci rootkitu "Blue Pill" najdete na webu http://invisiblethings.org..
Komerční rootkity?
Není to tak dávno, co byl pojem rootkit znám pouze několika málo počítačovým odborníkům zaměřeným na oblast IT bezpečnosti. Situaci však radikálně změnila firma Sony, známá především svými aktivitami v oblasti spotřební elektroniky. Její "divize" hudebního vydavatelství Sony BMG se rozhodla v boji proti pirátům přitvrdit. Protože dosavadní snahy o zamezení kopírování hudby selhaly, nasadila Sony speciální software, který se do počítače nakopíroval při odsouhlasení licenčních podmínek EULA. Tento software plnil několik úloh – například přehrával hudbu z CD a zabraňoval většímu počtu kopírování CD. To by bylo vcelku pochopitelné a v rámci boje s pirátstvím i akceptovatelné, ovšem nástroj od Sony (přesněji řečeno na zakázku vytvořená DRM ochrana XCP od firmy First 4 Internet) šel ještě dále. Po startu systému se spustil specializovaný ovladač, který skrýval klíče v registru a soubory na disku (začínající na řetězec $sys$). Jako "drobný bonus" lze označit komunikaci se serverem Sony a jeho občasné nestability systému vedoucí až k pádu systému. Korunu tomuto bizarnímu pokusu o ochranu autorských práv nasadili hackeři, kteří téměř okamžitě rozšířili trojského koně (Backdoor. Win32.Breplibot.b), využívajícího k zamaskování své přítomnosti v systému právě rootkit od Sony. Celá tato kauza měla za následek nejen obrovský nárůst popularity nástrojů Sysinternals (jejich autor Mark Russinovich Sony rootkit odhalil), ale také rozšíření pojmu rootkit mezi širokou veřejnost.
Nejlepší nástroje na detekci rootkitů
ICESWORD
+ relativně jednoduché ovládání
+ výborné detekční schopnosti
– pomalý vývoj
– nepracuje ve Windows 7 a ve Vistě
BLACKLIGHT
+ dobré detekční schopnosti
+ pracuje ve Windows Vista
– problémy s kompatibilitou ve Win 7
– zobrazení výsledků
ROOTKITREVEALER
+ podpora v podobě diskusního fóra
– nepracuje ve Windows 7 a ve Vistě
– zobrazení výsledků
GMER
+ nejrozsáhlejší nabídka nástrojů
+ pracuje ve Windows Vista
+ nejstabilnější vývoj
– poměrně složité ovládaní
ROOTKIT HOOK ANALYZER 3
+ jednoduché ovládání
+ pracuje ve Windows Vista
– úzké pole působnosti
Rootkity pro hraní
Rootkit je software, který stojí obvykle "na temné straně síly" a kterého se většina z nás (oprávněně) bojí. Přesto se našli uživatelé, kteří si rootkit do počítače sami nainstalovali a "využívali" ho ve svůj prospěch. Hra World of Warcraft (WoW) od společnosti Blizzard patří mezi nejrozšířenější a neoblíbenější on-line hry. WoW hraje více než deset milionů hráčů a v rámci virtuálního světa se i "točí" obrovské peníze (například se obchoduje s postavami nebo předměty). Není proto divu, že se Blizzard snaží kontrolovat, zda hráči nepodvádějí (tzv. cheatují) a nekazí hru nebo se neobohacují. K tomu je určen bezpečnostní systém Warden, který se instaluje zároveň s hrou a který například i kontroluje běžící procesy. Našli se ale uživatelé, kteří k podvádění začali využívat rootkit od Sony (viz rámeček), který jejich podvodný software ukrýval.
Foto: F-Secure BlackLight: Jednoduchý a rychlý detektor od firmy, která se rootkity zabývala ještě před aférou s "komerčním rootkitem Sony".
Foto: Rootkit revealer: Nástroj od firmy Sysinternals je nyní k dispozici i na webu Microsoft.
Foto: Gmer: Jeden z nejlepších detektorů rootkitů je určen především pro zkušené uživatele.
Foto: Sophos Anti-Rootkit: Umí hledat skryté objekty mezi procesy, v registrech a v souborech na disku
Foto: Sophos Anti-Rootkit: nástroj pro detekci a eliminaci rootkitů není potřeba instalovat – stač jen rozbalit archiv a spustit soubor.
Foto: Rootkit Hook Analyzer: Relativně jednoduchý nástroj s poněkud omezenými schopnostmi.