facebook LinkedIN LinkedIN - follow
IT SYSTEMS 5/2009 , IT Security

Malý průvodce světem exploitů

Tomáš Přibyl


Čím dál větší riziko pro počítačové systémy představují tzv. exploity. Jedná se o počítačové programy, kusy programového kódu nebo sekvence příkazů, které zneužívají chybu nebo zranitelnost v jinak regulérní aplikaci k tomu, aby přiměly software či hardware chovat se „jinak“, než by uživatel očekával.



Základní představení

Samozřejmě, že pod pojmem „jinak“ se rozumí jakkoliv nebezpečné chování. Ostatně, i kdybychom toto chování chtěli považovat za bezpečné, tak nebezpečná je už samotná skutečnost, že neautorizovaná aplikace může zneužívat rozhraní regulérní počítačové služby. Neb pokud to dokáže aplikace jedna, dokáže to i jiný program.
Nejčastěji jsou exploity vytvářené pro operační systémy, prohlížeče a další aplikace přímo komunikující s internetem. Teoreticky mohou existovat i pro jiné programy, ale zpravidla pro to není důvod: útočníci potřebují pro plné využití potenciálu svého škodlivého kódu právě internetové připojení, takže si nechtějí komplikovat život upozorňováním na své aktivity zneužíváním nějaké atypické aplikace.
Často se uvádí, že nejnebezpečnější exploity jsou z kategorie zero-day (nultého dne). Tedy takové, kdy dojde ke zneužití nově objevené zranitelnosti do 24 hodin od jejího veřejného oznámení. Protože v tomto limitu zpravidla nejsou k dispozici aktualizace, respektive nejsou odzkoušené a instalované. Systémy tak jsou zranitelné. Zero-day exploits jsou možná nejnebezpečnější, ale realita ukazuje, že mezi útočníky nepatří mezi příliš oblíbené. Důvod je jednoduchý: existuje vysoká pravděpodobnost, že zranitelný systém bude stejně rychle zazáplatovaný. A tudíž, že se otevřená brána uzavře. Naproti tomu využití starší bezpečnostní chyby znamená, že byla s největší pravděpodobností přehlédnuta či že systém řízení záplat má nedostatky (např. existují aplikace, na které se zapomíná). A že zde tato chyba bude i zítra a pozítří.

Kudy vedou cesty?

Cíl exploitů je jasný: zranitelnosti či nedomyšlené vlastnosti v aplikacích. S nimi se musíme naučit žít a počítat, protože dnešní sofistikované programy obsahují zcela běžně statisíce, a v některých případech i desítky milionů řádků programového kódu. A jak uvádějí třeba Michael Howard a David LeBlanc v knize Writing Secure Code (Psaní bezpečného kódu), po prvotním naprogramování aplikací připadá na tisíc řádků kódu zhruba padesát až šedesát chyb. Drtivou většinu se sice podaří během testování „odchytit“ a eliminovat, přesto jich prakticky v každé aplikaci zůstane velké množství – a jde jen o to, kdo je objeví a jak svého zjištění použije.
A to už vůbec nemluvíme o korektních vlastnostech programů, které ovšem lze použít nekorektním způsobem...

Exploity nejčastěji vstupují do počítačů přes webové stránky.


K výše uvedenému cíli ale vede nějaká cesta, přičemž její znalost nám mnohé napovídá o tom, jak exploity fungují a jak se před nimi nejlépe chránit. Nejčastěji exploity vstupují do počítačů přes webové stránky, ale mohou mít podobu i samostatných spustitelných souborů. Méně časté je spuštění pomocí modifikovaných URL odkazů, kdy je kód umístěný přímo v tomto odkazu (zpravidla není velký ani složitý, ale může „otevřít dveře“ do počítače pro vstup svého robustnějšího bratříčka).
Exploit se zpravidla spouští tak, že o něm uživatel nemá ani ponětí. Je to právě díky zneužití nějaké zranitelnosti (resp. několika zranitelností), které umožňují obejít standardní procesy a postupy. Příkladem může být třeba modifikace souboru již běžícího programu (ten je považovaný za korektní aplikaci, takže při absenci dalších kontrolních prvků systém nespouští poplach). Nebo přinucení běžící korektní aplikace vykonat nekorektní úkon – protože tato je často považována systémem za prověřenou.

Důsledkem útoku exploitů je nejčastěji převzetí kontroly nad systémem nebo nad daty.


Pozor! Exploity se dnes vyskytují prakticky všude, nikoliv jen na stránkách, které se obecně považují za „nebezpečné“ (tedy na stránkách s obsahem pornografickým, nelegálním či jinak pochybným). Naopak: uvádí se, že osmdesát až devadesát procent útoků je vedeno skrze stránky „důvěryhodné“ (záměrně dáváme do uvozovek, abychom si uvědomili, že neexistuje něco jako důvěryhodný či nedůvěryhodný internet, ale jen jeden internet). A to prostřednictvím kódů vložených do diskusních fór, modifikovaných URL odkazů nebo v nějaké formě sociálního inženýrství.
Důsledky útoku exploitů jsou pestré. Nejčastějším je převzetí kontroly nad systémem nebo nad daty (plus jejich následná modifikace, odesílání agresorovi, neoprávněná manipulace s nimi v rámci lokálního počítače apod.). Důsledkem dále může být eskalace uživatelských práv nebo útok typu DoS (denial of service, odepření služby) – třeba „shození“ bezpečnostního softwaru, čímž se otevře prostor pro útok škodlivého kódu „druhého sledu“. Ostatně, otevření prostoru pro jiný kód může být i dalším samostatným projevem exploitu, bez nutnosti provádět jej pomocí DoS.

Exploity se od virů a ostatních typů malwaru liší tím, že jsou cílené na zneužití jedné konkrétní zranitelnosti.

 

Exploity jsou „své“

Jaký je vlastně rozdíl mezi exploity a třeba viry, trojskými koni, spywarem aj.? V zásadě jsou to všechno škodlivé kódy, přičemž exploity se od ostatních liší tím, že jsou cílené na zneužití jedné (vzácně více) konkrétní zranitelnosti. Díky této specifické orientaci mohou mít velmi specifické úkoly, protože je útočníkům jasné, že se mohou dostat jen na systémy s jistou konfigurací (program určité verze apod.).
Logickou navazující otázkou je: jak se vypořádávají s exploity standardní antivirové a antispywarové programy? V určité části případů se ctí, protože z technického hlediska nejde o nic jiného než škodlivé kódy. Ale spoléhat se na to rozhodně nedá, protože jejich účinnost v případě exploitů dosahuje jen padesáti až sedmdesáti procent. Díky zneužívání bezpečnostních chyb mají exploity poněkud jiné zákonitosti fungování než klasické kódy, které se instalují do počítače.
Z toho vyplývá, že běžné bezpečnostní programy a technologie neposkytují dostatečnou ochranu. Kdekterý výrobce se sice ohání heuristickými analýzami, emulátory kódů apod. Jenže ne každý kód vstupující do počítače je těmto analýzám podrobován – třeba příkazy v URL odkazech takto probírané nejsou, a to z důvodu vysoké systémové náročnosti a zdlouhavosti celého procesu. Ostatně, i kdyby kontrolované byly, s vysokou pravděpodobností by je klasické kontrolní technologie označily za bezpečné. Důvodem je právě zneužívání zranitelností, protože kódy často vypadají na první pohled jako korektní (a ony často korektní jsou) – spolupracovníka v podobě zranitelnosti v aplikaci totiž mají instalovaného na počítači.
To, že exploity představují čím dál větší problém, dosvědčuje i fakt, že velcí výrobci bezpečnostních řešení začali do svých programů implementovat speciální anti-exploitové moduly a technologie. Kdyby dokázali jejich problém ošetřit běžným způsobem, jistě by tak udělali.

Nepodceňujme pravidelné záplatování nejen na úrovni operačního systému a základních aplikací, ale na úrovni všech programů, které si pravidelně „sahají“ na internet a které by se tak mohly stát potenciální hrozbou.

 

Vyrážíme do boje

Klasické bezpečnostní programy samozřejmě tvoří hráz před útoky exploitů, ale nesmíme spoléhat na to, že by tato hráz byla nepropustná. Čím dál častěji jsou nasazovány buď speciální samostatné aplikace, nebo jsou komplexní řešení už u výrobců doplňována o specializované moduly a nové technologie.
Specializované prostředky lze přitom rozdělit do dvou kategorií. V prvé řadě jsou to prvky, které brání před konkrétními exploity. A dále pak prvky, které plní funkci preventivní a filtrují potenciálně nebezpečné kódy stejně jako blokují nekorektní změny v aplikacích (tedy projevy neznámých exploitů). I když by dnešní programy měly mít značně vysokou míru sebeobrany, nesmíme zapomínat, že v případě exploitů jde o chyby, tudíž se na ně běžné modely chování nevztahují.
V neposlední řadě nepodceňujme i pravidelné a kvalitní záplatování. A to nejen na úrovni operačního systému a základních aplikací (např. prohlížeč), ale na úrovni všech programů, které si pravidelně „sahají“ na internet a které by se tak mohly stát potenciální hrozbou.

Chcete získat časopis IT Systems s tímto a mnoha dalšími články z oblasti informačních systémů a řízení podnikové informatiky? Objednejte si předplatné nebo konkrétní vydání časopisu IT Systems z našeho archivu.

Inzerce

Synology Active Backup for Business

Komplexní řešení pro centralizované zálohování

Synology BackupZajištění kompletní ochrany dat dnes patří mezi základní potřeby firem. Ať už jde o různé technické závady, útoky ransomwaru, nebo o lidské chyby – to vše před­sta­vu­je hrozbu pro vaše data. Pojď­me si proto představit řešení pro ochranu dat vaší firmy nebo organizace, které nabízí spo­leč­nost Synology jako součást základní výbavy svých NAS zařízení.