Integrované prostředky odhalování a prevence útoků v podání firmy Check Point
Útoky typu buffer overflow (BO) se staly jedním z nejobávanějších bezpečnostních problémů dnešního Internetu. Více jak polovina nejnovějších doporučení organizace CERT buffer overflow zmiňuje. Z hlediska útočníka jde o velice populární nástroj, kdy mu programátorské opomenutí tvůrce aplikace dává možnost nejen vyvolat kolaps aplikace (DoS, odmítnutí služby), ale mnohdy v jejím kontextu, s jejími právy (často právy privilegovaného uživatele) vykonat útočníkem podstrčený škodlivý kód. Proč se nespoléhat na reaktivní bezpečnostní mechanismy založené na signaturách útoku a jak odhalovat i neznámé útoky typu buffer overflow čtěte zde (viz „,Web Intelligence v akci: Malicious Code Protector“ níže).
SmartDefense je integrované řešení pro odhalování a předcházení útoků z dílen Check Point Software Technologies. Umožňuje konfiguraci, aplikaci a aktualizaci ochranných mechanismů před útoky jak na úrovni sítě, tak aplikací. Nové mechanismy ochrany před útoky a informace k nim jsou přinášeny online prostřednictvím tzv. SmartDefense Advisories, které jsou přístupné v rámci stránek služby SmartDefense Service [1].
SmartDefense chrání nejen před škálou známých útoků od červů zneužívajících slabin HTTP nebo služeb a protokolů v Microsoft prostředích až po distribuované útoky typu Denial of Service, ale zahrnuje též inteligentní bezpečnostní technologie pro ochranu před celými kategoriemi nově se objevujících nebo neznámých útoků, bez ohledu na to, zda na úrovni sítě nebo aplikací.
SmartDefense je úzce spojeno s Check Point Stateful Inspection a Application Intelligence. Obě tyto technologie jsou založeny na technologii INSPECT - adaptibilní a inteligentní inspekční technologii, která umožňuje SmartDefense blokovat nejen specifické útoky, ale také celé kategorie síťových a aplikačních útoků, při samozřejmém zachování legitimního síťového provozu.
Application Intelligence [2] je sadou technologií pro odhalování a předcházení aplikačním útokům. Toho je dosaženo integrací hlubšího porozumění chování aplikací přímo do síťových bezpečnostních mechanismů. Mezi nejzákladnější funkce Application Intelligence patří:
- ověření dodržování standardů
- ověření očekávaného využívání protokolů
- blokování zákeřného obsahu
- řízení kritických aplikačních operací
Technologie Stateful Inspection [3], vynalezená a patentovaná Check Pointem (U.S. Patent # 5,606,668), analyzuje toky informací ze sítě a do sítě, tak aby mohlo docházet k bezpečnostním rozhodnutím, jako je povolení nebo zakázání daného provozu, nejen na základě síťového spojení, ale také na základě aplikačních informací. Toho dosahuje díky sledování stavu a kontextu veškeré komunikace procházející firewallem, a to i v případech, že probíhá komplexními protokoly (příkladem mohou být například rodiny VoIP protokolů).
Web Intelligence [4] je sadou integrovaných detekčních a obranných mechanismů na aplikační úrovni zaměřená na ochranu webových serverů a s nimi spojených backendových systémů. Pokrývá tak řadu funkcí, které byly dříve řešeny samostatnými produkty jako jsou webové aplikační firewally a rozšiřuje je o pokročilé nástroje jako je Malicious Code Protector.
Architektura Check Point SmartDefense zahrnuje následující komponenty:
- výkonný modul integrovaný do FireWall-1
- management integrovaný do Check Point SmartCenter (management server)
- aktualizace nových obranných mechanismů před útoky založená na předplatném
Výkonný modul Vlastní výkonné funkce SmartDefense blokování útoků jsou vykonávány na firewallové bráně FireWall-1 s využitím technologií Stateful Inspection a Application Intelligence. FireWall-1 a SmartDefense je součástí bran Check Point Express a VPN-1 Pro. SmartDefense je stěžejní součástí interní bezpečnostní brány InterSpect [6] a technologie Web Intelligence [7] dostupné také na webové bezpečnostní bráně Connectra [8], určené pro aplikace vzdáleného přístupu na bázi SSL VPN. Některé z funkcí SmartDefense jsou realizovány jako integrovaná součást bezpečnostní politiky FireWall-1. K jejich distribuci na výkonné body v síti tak dochází spolu s bezpečnostní politikou. Navíc kromě ochran před útoky poskytovaných SmartDefense může administrátor díky integraci snadno využít i striktní řízení přístupu k síťovým zdrojům dostupné v řešeních VPN-1/FireWall-1.
Management server Vlastní konfigurace ochran před útoky dostupných ve SmartDefense probíhá přes SmartDashbord - grafické rozhraní pro konfiguraci a monitorování bezpečnostních řešení Check Point. Tak je dosaženo jednotné centralizované konzole pro získávání informací o útocích v reálném čase, detekci a blokování útoků, stejně jako logování, audit a upozorňování. Konzole je využívána pro:
- výběr útoků, před kterými bude implementována ochrana a přečtení podrobných informací o útocích
- snadná konfigurace parametrů každého z ochranných mechanismů před útoky a nastavení úrovně logování
- získávání informací o útocích v reálném čase a aktualizaci SmartDefense novými možnostmi
Správa SmartDefense je dostupná nejen na management serveru SmartCenter [9], ale také na platformě Provider-1 [10], která umožňuje oddělenou centralizovanou správu řady zákazníků nebo bezpečnostních politik s minimálními investicemi do dedikovaného hardware.
Uživatelské rozhraní SmartDefense obsahuje informace o útocích a hypertextové odkazy na webové stránky Check Point SmartDefense pro ještě detailnější informace o druhu a povaze útoku. Cenným nástrojem jsou detaily útoku a provozu v logách. SmartDefense sdílí distribuovanou infrastrukturu pro logování. Informace je tak možné pro lepší porozumění a získání kontroly nad útoky snadno nalézt a kombinovat. Některé z detekčních mechanismů SmartDefense také sídlí na management serveru. Tyto funkce analyzují logy výkonných modulů VPN-1/FireWall-1, skládají odpovídající záznamy logu do profilů útoku a upozorňují administrátora na opakované výskyty útoku nebo jiné podezřelé chování.
Aktualizace Výkonné funkce SmartDefense jsou obsaženy ve FireWallu-1 bez potřeby nákupu dodatečné licence. Přesto pro vyšší úroveň ochrany před vznikajícími a měnícími se hrozbami umožňuje předplatné služby SmartDefense Service aplikaci průběžných aktualizací do funkcí ochranných mechanismů před útoky SmartDefense. Přehled nejnovějších aktualizací je dostupných na stránce [11].
S předplatným získává administrátor snadný přístup k aktualizacím z grafického rozhraní konzole SmartDefense. Check Point také publikuje obsáhlá SmartDefense doporučení o různých podpůrných faktorech pro potlačení útoku, který může být zablokován bez aktualizace SmartDefense. Zákazníci bez předplatného SmartDefense aktualizací mohou přistupovat k přehledům doporučení SmartDefense, ale aktualizaci ochranných mechanismů SmartDefense mohou provést pouze s upgradem na poslední verzi FireWallu-1.
Útoky typu buffer overflow se zaměřují na způsob, jakým počítače obsluhují vstupní data a paměťový prostor. Běžící aplikace si pro uložení vstupních dat alokuje určitou část paměti (buffer). Problém nastává ve chvíli, kdy přestože samotný buffer používaný aplikací má pevnou velikost, aplikace nemusí správně omezit množství vstupních dat do bufferu ukládaných. Například programátor může předpokládat, že vstupní data budou menší než 26 bajtů, a vymezí tak odpovídající množství paměti. Uživatel však může zadat data o velikosti 27 bajtů. Výsledkem je, že aplikace do bufferu zapíše více dat, než bylo alokováno (dochází k přetečení - overflow) a konzistence dat v paměti je narušena.
Proč je to tak důležité? Takové zdánlivě nevinné programátorské opomenutí dává potencionálnímu útočníkovi možnost opustit kontext běžící aplikace a spustit svůj vlastní zákeřný kód, který byl prostřednictvím útoku vložen. Aby útočník mohl využít takové slabiny, volí zaprvé vstup větší než je buffer konkrétní aplikace a vkládá do něj instrukce procesoru. Zároveň chytře ovlivní ukazatele nebo adresy do paměti, které pak přesměrují vykonávání běžící aplikace. Ve výsledku aplikace převezme vhodně připravená data, provede přetečení zásobníku a využije ukazatele do paměti, který dovede vykonávání aplikace ke spuštění zákeřného kódu.
Tyto útoky mají dvě výhody, kvůli kterým jsou tak oceňované hackery. Za prvé jsou aplikovatelné v podstatě na libovolné aplikace, které přijímají nějaká vstupní data. Navíc ze síťového pohledu mezi tyto aplikace můžeme započítat webové servery, servery jmenných služeb DNS, FTP servery, síťové aplikace Microsoftu atd. Zadruhé, protože součástí útoku je vykonávání vnuceného zákeřného kódu, útočník může v podstatě vykonávat libovolné akce. Ty zahrnují vykonávání povelů z příkazové řádky, otevření zadních vrátek pro další útoky, spuštění červa nebo instalaci trojského koně.
V ideálním světě by aplikace akceptovali pouze tolik dat, na kolik mají alokováno místa v bufferu a systém by aplikacím nedovoloval přepisovat paměťový prostor mimo tento buffer. Naneštěstí existují již tisíce aplikací, které neověřují korektně své vstupy, a milióny systémů, na kterých tyto aplikace běží. To je příliš velký úkol než aby šel řešit pouhou revizí všech aplikací. Znamená to nutnost nalézt mechanismy, jak v síťovém prostředí nepustit požadavky, které mají cíl přetečení bufferu, k aplikacím.
Malicious Code Protector: algoritmus:
Vyhledávání spustitelného kódu
Srdcem technologie Malicious Code Protector je disassembler, který zkoumá síťový provoz a detekuje spustitelný kód (tzn. provádí zpětný překlad binárních dat do strojového jazyka procesoru). Možnost detekce spustitelného kódu využívá předpokladu, že spustitelný kód běžně sítí neprochází, s výjimkou dobře známých případů jako je stahování EXE souboru pomocí FTP nebo spouštění aplikace přímo ze souborového serveru. Malicious Code Protector sleduje datové toky a hledá sekvence dat, které by mohl disassembler přeložit do strojového kódu, aby tak potvrdil existenci spustitelného kódu přicházejícího po síti.
To by ale samo o sobě pro určení, zda daný datový tok neobsahuje spustitelný kód nebo dokonce zákeřný kód, nebylo dostačující. Jsou i případy, kdy nespustitelná data obsahují sekvence vypadající jako úryvky assembleru. Např. obrázek ve formátu GIF může obsahovat sekvence přeložitelné do strojového jazyka a přitom nejde o aplikaci. Proto Malicious Code Protector musí umět rozlišovat mezi opravdovým spustitelným kódem a "šumem" v síťovém provozu, který by jej mohl připomínat.
Virtuální server: odhalování zákeřných úmyslů
Pro určení zda je podezřelý blok dat opravdu spustitelným kódem, zkoumá Malicious Code Protector sekvence instrukcí v assembleru, aby vyvodil logické vazby mezi nimi a jejich předpokládané využití. Prozkoumáním takového širšího kontextu a vypozorováním existence větších "metainstrukcí" pak může pomoci potvrdit faktickou existenci spustitelného kódu.
Navíc ani existence spustitelného kódu ještě neukazuje na jeho škodlivou povahu. Finálním krokem Malicious Code Protectoru je nalezení konkrétních sad "metainstrukcí." Jak bylo dříve zmíněno, útočník musí využít jistých programátorských technik, aby mohlo dojít ke spuštění jím vynuceného kódu. Ty typicky zahrnují podobné sady instrukcí pro obejití nejasností kolem velikosti a umístění bufferu. Právě po těch se Malicious Code Protector dívá, aby odhalil zákeřný kód. Virtualizované prostředí je základním předpokladem, aby Malicious Code Protector dokázal určit škodlivý kód. Na závěr MCP analyzuje výsledky všech těchto kroků, aby mohlo dojít k určení, zda daný datový tok opravdu obsahuje škodlivý kód.
Krok 1: Ukažme si vzorek datového toku, který obsahuje útok se škodlivým kódem. Škodlivý kód je pro počáteční orientaci označen modře.

Krok 2: Brána s vestavěným Malicious Code Protectorem rozumí protokolu HTTP pro web a rozpoznává tento datový tok jako HTTP GET požadavek se vstupními daty uživatele. Ta by snadno mohla být místem, kam útočník vloží útok.

Krok 3: Pro ověření, jestli nejde o útok, nastupuje disassembler MCP a prohledává datový tok, zda neobsahuje spustitelný kód zapsaný instrukcemi procesoru. V každém datovém toku se najdou nějaká data, která by mohla náhodně vypadat jako strojový kód. Mechanismy MCP však v tomto případě opravdu prokazují výskyt kódu.

Krok 4: V posledním kroku MCP spouští kód v prostředí virtuálního serveru. Na základě analýzy chování spustitelného kódu může být určeno, zda se kód snaží zneužít slabiny přetečení bufferu a zda jde o kód škodlivý.

Malicious Code Protector přináší unikátní způsob ochrany před útoky typu buffer overflow a škodlivým spustitelným kódem díky simulaci jeho chování. Takový přístup umožňuje ochranu před známými i neznámými útoky, protože není závislý na definici signatury konkrétní podoby útoku. Malicious Code Protector aplikovaný na webový provoz je v současné době dostupný jako součást technologie Check Point Web Intelligence v produktech řady NG AI R55W a ve webové bezpečnostní bráně Connectra pro aplikace vzdáleného přístupu na bázi SSL VPN.
[1] http://www.checkpoint.com/defense/advisories/public/index.html
[2] http://www.checkpoint.com/appint/
[3] http://www.checkpoint.com/products/technologies/stateful_inspect.html
[4] http://www.checkpoint.com/products/web_intelligence/index.html
[5] http://www.checkpoint.com/products/downloads/mcp_whitepaper.pdf
[6] http://www.checkpoint.com/products/interspect/index.html
[7] http://www.checkpoint.com/products/web_intelligence/index.html
[8] http://www.checkpoint.com/products/connectra/index.html
[9] http://www.checkpoint.com/products/smartcenter/index.html
[10] http://www.checkpoint.com/products/provider-1/index.html
[11] http://www.checkpoint.com/defense/advisories/public/summary.html
-Martin Koldovský-


