Windows User Group - Slovak Republic
Windows User Group - Slovak Republic Windows User Group - Slovak Republic
RSS
Windows User Group - Slovak Republic
prihlásenie
meno login
heslo
Automaticky prihlásiť
zabudli ste heslo?
zaregistrujte sa

kalendár podujatí
marec 2024 apríl 2024 máj 2024
po ut st št pi so ne
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 1 2 3 4 5
dnes 24.04.2024 dnes 24.04.2024

kto je online?
počet anonymných užívateľov: 11
počet prihlásených užívateľov: 0

Top 10 najčítanejšie
1.Vytvorenie USB boot jed...
2.Oprava MBR sektoru bez ...
3.Windows 7 download
4.HTPC alebo ako si posta...
5.Windows 7 RC v slovenč...
6.Konzole pro zotavení v...
7.Panika menom Conficker
8.Platené vs Zadarmo
9.Inštalujte Windows z U...
10.Windows 7 RC download -...

Windows User Group - Slovak Republic

Rootkit - co, jak a proč
Windows User Group - Slovak Republic
Bezpečnosť > Rootkity

Rootkit - co, jak a proč

Windows User Group - Slovak Republic

Tento článek je určen těm z vás, kteří se v operačním systému příliš nevyznaji, chtějí mít dobré povědomí o bezpečnostních hrozbách, ale nechtějí rozumět jeho mechanismům "až na plech". Protože vím, že ne každý má čas na prozkoumávání hlubin svého systému, rozhodl jsem se napsat tento článek, jehož cílem je přiblížit každému uživateli pojem rootkitu - populární hrozby dnešních dní.


Co je to rootkit?

 

Pod pojmem "virus" si každý z nás představí program, který se nám pokouší uškodit - zpomaluje počítač, snaží se nám ukrást různé citlivé údaje, jako jsou přihlašovací údaje do nejrůznějších služeb (mj. i bank) nebo umožňuje náš počítač využít pro útoky na hackerům nepohodlné servery. Jistě vás napadnou i další možnosti, jak by mohl být váš počítač zneužit.

Rootkit (tak, jak tento pojem chápeme dnes) není v základu škodlivý, ale protože jej mnoho virů jako jednu ze svých komponent obsahuje, škodlivým se stává. Jeho cílem je skrýt svoji přítomnost v sytému před uživatelem a dalšími aplikacemi, což nepůsobí žádnou přímou škodu (pokud je rootkit dobře napsaný). Nádavkem se snaží zamést stopy po programech. Rootkit je často jakýmsi pláštěm neviditelnosti pro jinak běžný malware.

 

Proč je rootkit takovým problémem?

 

Pokud útočník přibalí ke svému viru i rootkit, virus může být velmi těžké odhalit běžnými postupy, antivirové programy nevyjímaje. Tento fakt je dán tím, jak antivirové programy (a většina dalších aplikací) fungují. Podívejme se na zjednodušené schéma architektury operačního systému:

Vidíme, že obyčejné aplikace s operačním systémem komunikují přes vrstvu DLL knihoven. Až z této vrstvy je voláno jádro systému, aby vyřídilo požadavek specifikovaný aplikací. Mezi běžné aplikace můžeme zařadit i antivirové programy, pokud na věc budeme nahlížet velmi zjednodušeně. Úkolem jádra je komunikovat přímo s hardwarem a zajišťovat různé služby aplikacím. Všimněte si nejspodnější verstvy - HAL. Tato vrstva vytváří abstrahující obal, který v sobě ukrývá závislost na hardwaru. Díky tomu je většina kódu jádra přenositelná i na jiný hardware (například jiný procesor než oblíbený Intel Pentium). Vyšší vrstvy se vůbec nemusí zajímat, na jakém "železe" běží. Ale to byla odbočka, vraťme se k tématu.

Jak bude diagram vypadat u systému, který je napadený rootkitem? Na libovolnou z čar si můžeme domyslet obdélníček s nápisem "rootkit" - čímž se dostáváme k tomu, jak tyto pláště neviditelnosti fungují. Princip je velmi jednoduchý - prostě se filtruje (naruší, pozmění) komunikace mezi komponentami operačního systému.

Chce-li například rootkit skrýt daný proces ze správce úloh, nabourá se do komunikace mezi vrstvou DLL knihoven a jádrem a čeká. Když jádro na dotaz nějakého programu pošle jako odpověď seznam běžících procesů, rootkit jej hbitě upraví tak, aby v něm daný proces nebyl. A nikdo se nic nedozví...

Víme tedy, jak rootkit funguje a také si snadno domyslíme, proč s ním mívají antivirové programy takové problémy. Antivirové programy jsou vcelku běžné aplikace, využívají rozhraní systémových knihoven jako skoro každý jiný program. Protože však rootkit (většinou) operuje na nižší vrstvě, než je systém DLL knihoven, nemohou jej v principu najít. Praxe bývá trošku odlišná, protože skrýt dobře nějaký objekt v systému vyžaduje značné úsilí (rootkit musí nebezpečí odhalení čelit doslova na všech frontách a občas autor na nějakou z nich zapomene, nebo se postupně objeví fronty nové).

 

Jaké techniky často používají

 

Nyní si zběžně ukážeme několik postupů, kterých většina rootkitů využívá k implementaci své neviditelnosti.

Modifikace kódu je velmi častým úkazem. Rootkit modifikuje kód operačního systému (většinou se jedná o knihovny DLL či jádro operačního systému) tak, aby mohl úspěšně narušovat komunikaci jednotlivých součástí. Scénář volání postižené DLL knihovny vypadá většinou tak, že modifikovaný kód předá řízení (neviditelným) modulům rootkitu, který většinou zavolá originální kód modifikované DLL knihovny, analyzuje a modifikuje výsledky a vrátí opět řízení programu, který danou knihovnu zavolal. Tomuto mechanismu se někdy také říká hákování (hooking). Modifikovat kód lze téměř všude - v DLL knihovnách, v jádře, v ovladačích zařízení... Většina pokročilejších rootkitů preferuje modifikace kódu jádra, protože je to v jistém smyslu jednodušší než hákovat vrstvu DLL knihoven, kterou je třeba modifikovat v každém procesu. Hákování je technika velmi efektivní, ale má i své mínusy. Obtížnost detekce silně závisí na tom, kolik úsilí vloží autor rootkitu do její implementace. "Zahákovat" nějakou rutinu je otázka několika málo minut, avšak taková modifikace bude velmi snadno odhalena.

Modifikace dat operačního systému je druhým postupem, který se využívá. Systém uchovává mnoho cenných a citlivých informací (seznam běžících aplikací, seznam otevřených souborů, seznam bloků volné paměti...) ve svých interních datových strukturách. Rootkit tyto datové struktury modifikuje a tím se některé informace "ztratí". Většinou tato modifikace datových struktur není úplně triviální. Například pokud by rootkit před operačním systémem dokonale skryl určitý proces, proces by nedostával čas na procesoru, a tudíž by nevykonával žádný kód. A mrtvý skrytý proces se k mnoha věcem použít nedá. Na(ne)štěstí informace bývají uloženy redundantně (každá kopie informace je využita jinou částí operačního systému) v různých podobách, aby k nim mohl systém rychle přistupovat. Implementace některých takových struktur přitom dovoluje jejich modifikaci, aniž by bylo možné nějakým způsobem zjistit, že k ní došlo. A to je právě velká výhoda této techniky - pokud se provede opravdu dobře, změny nejsou viditelné. Nevýhodou je značná složitost na implementaci (až na výjimky nelze použít jinde než na úrovni jádra operačního systému). Krom toho je většina struktur operačního systému nedokumentovaná. Autor rootkitu tedy musí nejdříve posbírat dostatek informací, coz často má netriviální časové nároky.

 

Jak se bránit

 

Na obranu proti rootkitům byl vyvinut speciální druh aplikací, pro které se překvapivě ujal termín antirootkity. Jejich cílem je objevit (a případně zničit) aktivní rootkit. A jak to dělají? Myšlenka je opět velmi jednoduchá - snaží se býti nezávislé na rozhraní, která jim operační systém poskytuje. Například nevyužívají služeb vrstvy DLL knihoven, ale volají přímo jádro operačního systému. Drtivá většina z nich instaluje do jádra vlastní ovladače, které zkoumají konzistenci jeho datových struktur, případně umožňují antirootkitu obejít další (potenciálně narušená) rozhraní jádra operačního systému. Čtou přímo sektory z disku, místo toho, aby využili pohodlných rozhraní ovladačů souborového systému. Přítomnost rootkitu zjišťují většinou tak, že se pokusí určitou informaci (například seznam běžících procesů) získat více (pokud možno nezávislými) způsoby. Pokud se získaná informace v závislosti na zdroji liší, je pravděpodobně v systému aktivní rootkit.

 

Závěr

 

Je to začarovaný kruh. Autoři rootkitů přicházejí s novými postupy, jak schovat svůj kód a svoje data před očima uživatele. Antirootkity se neustále vyvíjejí, aby byly schopny nové postupy odhalit. Ani Microsoft v tomto ohledu nezahálí a nové verze jeho operačního systému autorům rootkitů (a jiného škodlivého softwaru) značně komplikují život. Narážím teď zvláště na bezpečnostní opatření zavedená na 64bitových operačních systémech. Nesmíme však usnout na vavřínech, ti na druhé straně se budou pořád snažit najít cestičku, jak překonat všechny překážky... a je bláhové předpokládat, že se jim to nepodaří.

Windows User Group - Slovak RepublicWindows User Group - Slovak Republic Martin Dráb | sobota 10. januára 2009 13:13 | Prečítané: 7500 x | hodnotenie: 4.75/5 |
Windows User Group - Slovak Republic
Windows User Group - Slovak Republic

 
Windows User Group - Slovak Republic
vyhľadávanie

partneri

2 % od Vás pre WUG
2 % od Vás pre WUG

sponzori






Windows User Group - Slovak Republic
Windows User Group - Slovak Republic
Windows User Group - Slovak Republic

Copyright © 2008 Windows User Group Slovensko

Windows User Group - Slovak Republic domov Windows User Group - Slovak Republic o nás Windows User Group - Slovak Republic podujatia Windows User Group - Slovak Republic odkazy Windows User Group - Slovak Republic informačné kanály Windows User Group - Slovak Republic
Windows User Group - Slovak Republic