StoryEditor

Reaktívny prístup nestačí

19.09.2006, 00:00

Každý deň čoraz viac spoločností zisťuje, že ochrana, ktorú firewally a antivírusové programy ponúkajú, nie je na ochranu firemných dát dostačujúca. Firewally dokážu znížiť riziko útoku uzatvorením všetkých portov, ktoré nemusia byť verejne prístupné. Oproti tomu antivírusové programy dokážu zablokovať útoky, ktorých signatúry poznajú. Ak sa však objaví dosiaľ neznámy útok, ktorý dokáže využiť niektorý z otvorených portov, prestáva hrať firewall a antivírusová ochrana svoju úlohu. Rovnako tak môže dôjsť k prelomeniu takto nastavenej bezpečnosti prispením samotného používateľa alebo zneužitím chyby obsiahnutej v nainštalovaných programoch. Záver je jediný -- firewall a antivírusový program nestačia. Podľa serveru AV-Test.org sa čas potrebným na analýzu útoku, vytvorenie zodpovedajúcej signatúry a jej distribúcie zákazníkom pohybuje medzi 7 až 30 hodinami po prvom výskyte. Mnohé útoky, ako napríklad červ Slammer, sa však dokázali rozšíriť po celom svete za krátkych 15 minút, teda výrazne skôr než bolo možné vôbec vytvoriť antivírusovú signatúru. Poskytujú teda tieto nástroje skutočne proaktívne riešenie bezpečnosti v dnešnej dobe cielených hybridných útokov využívajúcich bezpečnostných slabín sietí, systémov a softvéru? Nasledujúci text sa bude snažiť podrobnejšie odpovedať na túto otázku.

Zneužitie
Zneužitie bezpečnostnej slabiny umožňuje taký program, ktorý je schopný poskytnúť či rozšíriť práva na prístup k systémom v rozpore s pôvodným zámerom. Tieto útoky si dokážu nájsť spôsob, ako získať neautorizovaný prístup k systému, ktorý by však svojou podstatou niečo takého nemal umožniť. Na druhej strane dobrá znalosť zraniteľného miesta umožní útočníkovi vytvoriť kód, ktorý dokáže túto chybu využiť vo svoj prospech. Medzi najčastejšie typy zneužitia patria červy a samostatné zneužitia (napr. trójske kone).
Červ predstavuje deštruktívny program obsahujúci kód, ktorý dokáže nájsť prístup k počítaču alebo sieti. Len čo červ prenikne do systému, môže prakticky čokoľvek -- odstrániť, zmeniť, rozoslať či akokoľvek inak manipulovať s napadnutými dátami. Napríklad červ MS Blaster je jedným z tých sieťových červov, ktoré sa šíria v dôsledku chyby v RPC (Remote Procedure Call) DCOM, ktorú operačný systém Windows obsahuje. Toto konkrétne zneužitie posiela na adresu windowsupdate.com veľké množstvo dátových paketov. V tomto prípade ide o ukážku útoku typu DDoS (Distributed Denial of Service), ktorá má za následok postupné "zahlcovanie" webového serveru a následné spomalenie ohlasu či jeho úplné zastavenie.
Trójske kone oproti tomu predstavujú zákerný program, ktorý sa na prvý pohľad tvári ako bežný softvér. Tieto programy dokážu vytvoriť alternatívne vstupy (back door, "zadné dvierka") do počítača, ktoré umožňujú útočníkovi prístup k systému, teda i k dôverným či osobným informáciám. Kôň Klogger je napríklad typom programu, ktorý umožňuje útočníkovi monitorovať činnosť používateľa napadnutého počítača. Tento typ trójskych koní nainštaluje tajne komponent pre zaznamenávanie stlačených kláves. Týmto spôsobom môže útočník získať prístup k používateľskému menu a heslu používateľa. Údaje o stlačených klávesoch sú odosielané útočníkovi buď hneď alebo neskôr. Získaním prístupových údajov sa potom môže útočník ľahko prihlasovať k najrôznejším webom pod identitou napadnutého používateľa.
Okrem rôznych typov zneužití existuje tiež mnoho rôznych nositeľov, ktorí môžu tieto zneužitia využívať. V tejto súvislosti sme zvyknutí uvažovať o vektoroch siete a aplikácií.

Sieťové útoky
Sieťové útoky využívajú na napadnutie cieľového systému zákernú sieťovú prevádzku. Na rozdiel od ostatných typov hrozieb môžu sieťové útoky preniknúť do cieľového systému, spustiť zákerný kód a šíriť sa ďalej bez zásahu používateľa. Sieťové útoky na hostiteľa využívajú v najväčšej miere chyby protokolov a sieťové procesy. Tieto zraniteľné miesta sú spravidla výsledkom programátorských chýb, ktoré poskytujú príležitosť na útok zahltením vyrovnávacej pamäte.

Aplikačné útoky
Útoky zamerané na aplikácie využívajú spustiteľné súbory, ktoré dokážu napadnúť cieľový systém. Na rozdiel od sieťových útokov vyžadujú aplikačné útoky spoluprácu používateľa. Príkladom aplikačného útoku je červ MyDoom, ktorý sa sám šíril prostredníctvom elektronickej pošty a obsahoval náhodne pomenované spustiteľné súbory. Po otvorení (spustení) prílohy sa červ nainštaloval do systému a začal sa ďalej šíriť prostredníctvom e-mailu na ostatné kontakty nájdené v rámci napadnutého systému. Niektoré varianty červa MyDoom tiež uskutočňovali sústredený DDoS útok na vopred definované ciele.
Tento článok sa zameriava na zneužitia, ktoré môžu získať prístup k systému prostredníctvom sieťového útoku, a ten dokáže využiť chyby v programoch. Možno niekomu zíde na um otázka, či v takomto prípade nie je lepšie zneužitie odstrániť či aspoň zmierniť. Nezabránilo by mu to v ďalšej činnosti? Možno áno, ale skutočným problémom nie je zneužitie, ktoré chyby využíva. Problémom je chyba samotná. Pokiaľ sa bezpečnostná spoločnosť zaoberajúca sa zabezpečením rozhodne, že problémom je zneužitie, vytvorí také riešenie, ktoré bude šité na mieru konkrétnemu typu útoku. V prípade, že táto spoločnosť považuje za problém nie zneužitie, ale samotnú chybu, vytvorí také riešenie, ktoré by malo daný problém odstrániť raz a navždy. Je zrejmé, že druhý, proaktívny prístup prináša omnoho lepšiu ochranu.
Na lepšiu demonštráciu sa teraz vrátime späť k chybe v Microsoft Remote Procedure Call, ktorú dokázal využiť červ MS Blaster. Ten využil jednu z dovedna trinástich verejne známych slabín MS RPC. Keby sme sa teda zamerali na konkrétny prípad zneužitia, vytvoríme signatúru, ktorá bude systém chrániť iba pred červom MS Blaster, nie však pred ostatnými dvanástimi spôsobmi zneužitia tejto chyby.

Slabina v softvéri
Ide o chybu v programe, ktorá umožňuje technicky zdatným jednotlivcom obísť zabezpečenie a následne i spôsobiť škody.
Zatvorenie dverí -- Jediný spôsob, ako skutočne "zatvoriť dvere" či eliminovať softvérovú zraniteľnosť, je pre dodávateľa programu, ktorý aplikáciu vytvoril, zostavenie bezpečnostnej záplaty, ktorá tieto problémy rieši. To však môže na strane používateľov vyvolať dlhý proces inštalácie a testovania bezpečnostných záplat, ktoré nemusia byť ani rok od ich zverejnenia dokončené.
Reakcia na zneužitie -- Druhou možnosťou je vytvorenie bezpečnostnej záplaty, ktorá bude riešiť konkrétny príklad zneužitia, teda vytvorenie signatúry pre konkrétny útok. Je však nutné uvedomiť si dve veci:
1. Táto metóda bude mať úspech iba pri opakovanom útoku rovnakého typu.
2. Táto metóda je účinná až od okamihu aktualizácie databázy signatúr a uvedenia a nasadenia bezpečnostnej záplaty (ktorá dvere zatvorí). Tento typ ochrany nie je úplný, nepokrýva plný rozsah zraniteľnosti. To, že existuje zodpovedajúca signatúra, ešte neznamená, že boli ošetrené všetky aspekty daného zraniteľného miesta.
Ošetrenie zraniteľnosti -- Tretia možnosť ochrany sa zameriava na zraniteľnosť ako takú, nie na zneužitia, ktoré ju dokážu využiť. Za predpokladu, že o zraniteľnosti vieme, nepotrebujeme pri vytváraní ochrany čakať na útoky a ich signatúry. Skutočne proaktívny dodávateľ zabezpečenia bude vedieť ochrániť "otvorené dvere" či zraniteľnosť v softvéri dlho predtým, než vôbec nejaké zneužitia vzniknú. Takýto dodávateľ dokáže zmariť útoky, ktoré sú na danú zraniteľnosť zamerané, bez toho, aby potreboval vedieť detaily útoku. Reaktívna povaha prvých dvoch metód je nahradená proaktívnym prístupom. Pri ošetrovaní zraniteľnosti nie je nutné reagovať na útoky, pretože tie nie sú považované za skutočný problém. Sú skôr niečo ako symptóm väčších problémov. Odstránením týchto problémov sa zbavíte i symptómov, je to jednoduché.

ŽIVOTNÝ CYKLUS ZRANITEĽNOSTI
Zraniteľnosti v softvéri je možné zneužiť na páchanie škôd, otázka však teraz znie, ako sa vlastne tieto zraniteľnosti do programov dostanú. Zraniteľnosť, ktorej vinou dochádza k zahlteniu vyrovnávacej pamäte, je dôsledkom programátorskej chyby pri správe pamäte. Z hľadiska výkonu býva často pri písaní kódu na prístup k operačnému systému alebo službám použitý "neriadený" kód. Výraz "neriadený" súvisí so skutočnosťou, že programátori musia uskutočňovať správu pamäte, ktorú aplikácia využíva, priamo v kóde. Inými slovami, je to programátor, kto je zodpovedný za alokovanie a vyprázdnenie pamäte, ktorá je používaná. Napriek tomu, že má písanie kódu pomocou neriadených programovacích jazykov mnoho výhod, sú tu tiež nevýhody.
Ak zostane zraniteľnosť v priebehu vývoja a testovania nezistená, a tá možnosť tu reálne je, dostane sa do dostupného kódu, ktorý je následne verejne distribuovaný (predávaný). Len čo je aplikácia voľne dostupná, prichádzajú k slovu skupiny ľudí, ktoré sa na hľadanie chýb v programoch zameriavajú: výskumné skupiny a hackeri.

HĽADANIE SOFTVÉROVÝCH ZRANITEĽNOSTÍ
Hackeri
-- Ide o ľudí, ktorí sa snažia nájsť spôsob, ako prelomiť systém. Ich pohnútky sú najrôznejšie. V minulosti bolo hlavným zmyslom hackingu ukázať ľuďom svoje schopnosti. V súčasnosti sa však čoraz viac objavujú prípady finančnej motivácie hackingu. Výsledky nedávnych štúdií napríklad odhalili čoraz väčší záujem organizovaných skupín hackerov o čísla kreditných kariet.
Výskumné skupiny -- Ide o skupiny ľudí či celé organizácie, ktoré podobne ako hackeri hľadajú chyby v programoch. Cieľom týchto skupín je však odhaliť závažné chyby skôr, ako sa to podarí hackerom. Na základe týchto poznatkov potom môžu proaktívne chrániť svojich zákazníkov. Po objavení chyby v programe kontaktujú tieto skupiny dodávateľa programu a odovzdajú mu údaje na vytvorenie opravného balíčka. Jednou z týchto skupín je tiež vývojový a výskumný tím X-Force, ktorý je súčasťou spoločnosti Internet Security Systems (ISS).
To, ktorú z uvedených metód ochrany dodávateľ zabezpečenia zvolil, sa používatelia často dozvedajú až v okamihu, keď sa objaví úplne neznámy typ zneužitia. Vo svojej spoločnosti sa môžete rozhodnúť pre dva typy dodávateľov zabezpečenia -- tých, ktorí reagujú na zneužitie, alebo tých, ktorí ochránia vašu spoločnosť komplexne a predovšetkým včas. Pre ktorú z týchto úrovní ochrany by ste sa rozhodli vy?
Autor je riaditeľom X-Force, Internet Security Systems

menuLevel = 2, menuRoute = style/tech, menuAlias = tech, menuRouteLevel0 = style, homepage = false
27. apríl 2024 00:44