Jen stíny rootkitů, nebo skutečná hrozba?

Ochrana proti rootkitům patří do bohatého světa bezpečnosti, ne každý ale ví, co je tato hrozba zač. Jak se bránit a proč?
Kapitoly článku

Na řádcích pravidelného letního bezpečnostního seriálu jsme se postupně věnovali heslům, biometrickým technikám i potenciální nebezpečnosti Googlu, v tomto posledním díle bude řeč o hojně diskutovaných rootkitech. Byť se nejedná o nikterak novou techniku průniku a zneužití vyhlédnutého počítače, vody se okolo ní rozvířily především kvůli poměrně nedávné (i když nějaký ten pátek to již je) kauze Sony a DRM.

Čím tedy rootkity ve skutečnosti jsou, jaké jsou jejich možnosti a kterými způsoby se proti nim můžeme bránit? Pro poměrně vyčerpávající definici můžeme pro úvod sáhnout do české verze encyklopedie Wikipedia a najít následující:

„Rootkit je sada počítačových programů a technologií, pomocí kterých lze maskovat přítomnost zákeřného software v počítači (například přítomnost virů, trojských koňů, spyware a podobně). Rootkit technologie maskuje přítomnost zákeřných programů skrýváním adresářů, v nichž jsou instalovány, API volání, položek registru Windows, procesů, síťových spojení a systémových služeb tak, aby přítomnost zákeřného software nebyla běžně dostupnými systémovými prostředky odhalitelná. Tyto programy jsou nástroje, které umožňují skrývat běžící procesy, soubory a systémové údaje, takže pomáhají útočníkovi zůstat skrytý (upravují operační systém tak, aby nebyly běžnými prostředky uživatele zjistitelné). Rootkity existují pro mnoho operačních systémů.“

Rootkity mají ve světě škodlivého kódu poměrně výsadní postavení, jelikož se odlišují minimálně v jedné hlavní věci: Pronikají totiž hluboko do systému. Z toho pro ně plyne řada výhod, na které standardní malware nemůže dosáhnout. Jakmile se rootkit zavrtá do systému, přebírá požadavky různých systémových volání a správné výsledky může nahrazovat svými vlastními.

Jednoduchý příklad za všechny: Pokud si aplikace vyžádá výpis souborů běžného adresáře, rootkit jej bez ostychů poskytne, jestliže se ale v adresáři nacházejí data, která mají být utajena, nabídne rootkit pouze částečný výpis, který odpovídající soubory neobsahuje.

media.techtarget.com__winsec_rootkit_2.jpg
Aplikací pro odhalení rootkitů existuje nespočet, liší se svou kvalitou i uživatelskou přítulností

Zde je hlavní výhoda z pohledu rootkitů, zlo z pohledu uživatele. Standardní antivir si totiž v takto načrtnutém scénáři vyžádá obsah složky, právě běžících procesů, klíčů registru nebo čehokoliv dalšího, ke kontrole škodlivého objektu se ale vůbec nedostane, jelikož rootkit zatají jeho existenci. Jednoduché, účinné a především poměrně snadno otevírající prostor dalšímu škodlivému kódu, kterému rootkit dokáže krýt záda. Rootkit tak může škodlivou činnost vykonávat buď sám, nebo „pouze“ otevřít zadní dvířka jinému malwaru.

Uživatel, nebo jádro?

To je ale členění rootkitů založené jen na jejich chování, mnohem častěji se lze setkat s kategorizací na takzvané user mode a kernel mode rootkity. Prvně jmenovaná skupina, tedy rootkity pracující v uživatelském režimu, pro svou záškodnickou činnost zpravidla běží jako samostatná aplikace, případně využívají některého již existujícího programu pro své zahnízdění.

Naproti tomu kernel mode rootkity zasahují přímo do některých částí operačního systému, jsou tedy ve finále hůře detekovatelné a při dobrém naprogramování se dokáží lépe maskovat. Kernel mode rootkity také kvůli tomu mají jednu další nepříjemnou vlastnost, mohou totiž být důvodem celkové nestability až nečekaných pádů systému.

Možnosti napáchané škody v případě user mode i kernel mode rootkitů se přímo odvíjejí od jejich názvů – uživatelský režim nabízí poměrně omezené možnosti, což však neznamená, že by user mode rootkity byly neškodné. Mnohem větší riziko ale představují kernel mode rootkity, v režimu jádra totiž získávají kompletní přístup k paměti a libovolné systémové oblasti. Z této pozice pak skutečně mohou natropit pořádnou neplechu.

Konkrétní příklad jednoho rootkitu a principu jeho fungování v dřívějším článku Rootkity: skrytí přítomnosti v systému popsal David Budai:

„Můžete si představit program netstat.exe, který vypisuje všechna aktuální síťová připojení. Na internetu je dostupný jednoduchý stejně pojmenovaný skript. Původní program je přejmenován a nahrazen. Při volání původního programu proběhne skript a výsledky jsou tak přesměrovány do dočasného souboru. Poté rootkit provede editaci výsledků v tomto souboru (odstraní určitá připojení podle naprogramování) a teprve potom jsou výsledky zobrazeny. Podobně tak lze modifikovat třeba výpis adresářů. Na internetu je dostupných mnoho programů s různými funkcemi založených na podobném principu.“

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , , ,