Techniky malwaru jsou stále sofistikovanější, a to jak z hlediska způsobu útoku, tak i z pohledu skrývání a vyhýbání se odhalení. Výrobci antivirových nástrojů tak sice se zpožděním dokáží malware detekovat (prostřednictvím signatur lze dnes podle analýzy uveřejněné na webu www.net-security.org detekovat méně než polovinu případů), ale obvykle není jednoduché zjistit, jaká byla skutečná činnost malwaru na napadené stanici.
Poslaní honeyspotů
Co tedy honeypoty jsou a jaká je jejich úloha? Honeypot je nejčastěji definován jako informační systém pro monitorování neoprávněného využívání systémových zdrojů. Jak již sám název napovídá, honeypot slouží jako návnada lákající útočníka (malware), přičemž po zachycení potenciálně nebezpečného software dochází k jeho automatizované analýze, která buď vyloučí, nebo potvrdí, zda se jedná o škodlivý kód.
Tento automatizovaný proces umožňuje sběr velkého množství vzorků nákazy, a je tak řádově rychlejší, než je tomu v případě, kdy dochází ke sběru přímo z napadených stanic.
Pro dosažení větší efektivity jsou obvykle jednotlivé honeypoty propojeny do sítí (tzv. honeynets), které sdílí informace o nově detekovaném malwaru a trendech (např. způsobech šíření, použitých kompresních algoritmech apod.).
Příkladem sítě honeynet může být český projekt Honeynet.cz, na jehož stránkách lze získat řadu cenných informací a pro zájemce o problematiku Honeypotů je možné ze stránek tohoto projektu bezplatně získat předkonfigurovaný vmwarový obraz sensoru Nepenthes.
Varianty detektorů
Honeypoty se obvykle rozčleňují do několika skupin. Mezi nejčastější patří dělení dle míry interakce honeypotu (systémy s nízkou mírou vs. systémy s vysokou mírou) a dle směru interakce (serverové honeypoty vs. klientské honeypoty - honeyclients).
Honeypoty s nízkou mírou interakce emulují jen několik služeb transportní vrstvy operačního systému (např. porty 80, 135 nebo 445), nemusí být přitom vůbec instalovány v operačním systému, jehož zranitelné služby emulují (obvykle je tomu právě naopak).
Tyto systémy jsou populární díky jejich rychlému nasazení a velkému množství sítí honeynet, do kterých je možné takové klienty jednoduše začlenit. Svým zacílením pak umožňují identifikaci dobře popsaných a zmapovaných hrozeb, nicméně jejich využití pro nové způsoby útoku je díky tomu omezené. Příkladem takovéhoto honeypotu je například Honeyd.
Honeypoty s vysokou mírou interakce nabízí útočníkovi reálný systém, žádné služby tedy nejsou emulovány. Z toho také vyplývá větší riziko jak pro napadaný systém, tak i pro detekční a analytický software honeypotu.
Tyto varianty jsou tedy podstatně komplexnější a jejich nasazení a údržba nejsou tak přímočaré jako v případě nízko interaktivních honeypotů, zároveň však umožňují detekci i malwaru využívajícího nové inovativní způsoby útoku (například i díky komparativní analýze napadaného systému oproti jeho bezpečné kopii). Příkladem takového honeypotu je HPC Capture, viz níže.
Serverové vs. klientské honeypoty
Mezi historicky nejrozšířenější patří tzv. honeypoty serverové, které reprezentují tradiční pojetí těchto řešení. Jejich úloha je pak převážně pasivní, tzn. vyčkávají na napadení útočníkem. Hlavní jejich výhodou je možnost zpracování vysokého množství požadavků, detekce červů a nových exploitů především síťových služeb. Mezi zástupce patří Honeyd a Nepenthes.
Nejčastějším cílem malwaru jsou ale dnes bezpochyby klientské stanice, protože právě zde se nachází cenná aktiva, na která se soustředí organizovaný zločin, a právě zde také dochází nejčastěji k napadení systému.
Reakcí na tuto hrozbu jsou pak klientské honeypoty, které simulují chování uživatele systému, a to nejčastěji formou „procházení“ webových stránek. Klientské verze tak jako jediné umožňují získat vzorky malwaru, ke kterým se není možné jednoduše dostat jinými metodami. Jedná se o typické hrozby jako je phishing, zranitelnosti prohlížečů nebo různé „drive by“ infekce (třeba známý Antivirus 2009). Zástupcem takových systému je pak HoneyMonkey od společnosti Microsoft (je využíván k testování zranitelností software) a také HPC Capture.
V rámci sběru malwaru provádějí honeypoty také základní automatizovanou analýzu malwaru, a to jak pomocí vlastních (obvykle relativně jednoduchých metod), tak i na základě integrace s analytickými nástroji třetích stran.
Mezi ně patří různé antiviry (nejčastěji open source antivirus ClamAV) nebo sofistikované sandboxy určené pro automatizovanou analýzu malwaru jako je například CWSandbox nebo Anubis, které výrazně přispívají k redukci falešných pozitiv a zároveň urychlují poměrně zdlouhavou analýzu malwaru.
O tom, jak zevrubná je takováto analýza se zájemce může přesvědčit i bez nutnosti instalace honeypotu přímo na stránkách projektů CWSandbox (www.cwsandbox.org) nebo Anubis (anubis.iseclab.org), kde jsou dostupné ukázkové reporty analýzy škodlivého kódu.
Open source HPC Capture
Ve většině případů je první setkání s honeypoty realizováno prostřednictvím nízkointeraktivních serverových honeypotů. Instalace a konfigurace těchto systému je poměrně jednoduchá a ve velmi krátké době jsou uživatelé schopni získat poměrně významné množství vzorků malwaru.
Bohužel v naprosté většině případů se jednalo o vzorky již v minulosti identifikované (porovnání probíhalo proti databázi ClamAV). Sběr vzorků škodlivého kódu tak byl sice zdařilý, ale získané materiály ve většině případu nepatřily do skupiny malwaru, která je středem zájmu provozovatele – tedy toho, jenž ohrožuje běžného uživatele například při brouzdání internetem.
Dalším logickým krokem je tedy volba klientského honeypotu, který by dokázal co nejvěrněji simulovat chování skutečného uživatele. Výběr autora tohoto příspěvku nakonec skončil výběrem HPC Capture, a to především pro otevřenost jeho kódu a výraznou aktivitu hlavních vývojářů projektu.
HPC Capture představuje open source projekt (viz webovou adresu projects.honeynet.org/capture-hpc). Řešení se skládá ze dvou základních komponent: serveru (serverové analytické komponenty hostované na OS Linux; účelem této komponenty řízení honeypotu a následné vyhodnocování jeho činnosti) a klienta – jedné nebo více klientských instancí hostovaného operačního systému (obvykle Windows XP SP2) ve VMware serveru. V této instanci přitom běží klient, který zasílá serveru informace z napadaného prostředí. Činnost spouštěných aplikací je přitom vyhodnocována na základě definic bezpečného a anomálního chování aplikací. Definiční soubory tak obsahují informace o tzv. důvěryhodných adresářích (např. dočasné adresáře využívané prohlížečem), bezpečných, nebo naopak potenciálně nebezpečných větvích registrů OS Windows využívaných malware, jako je například HLKM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run.
Řešení je navrženo tak, aby v žádném případě nedošlo ke kompromitaci serveru - komunikace je tedy vždy iniciována z bezpečného prostředí HPC Capture serveru. Komunikace mezi klientem a serverem probíhá prostřednictvím proprietárního protokolu na bázi XML.
Interakce serverové a klientské části řešení má následující průběh:
Server si vyžádá od rozhraní VMWare prostřednictvím VMWare VIX obnovu hostovaného systému z bezpečné kopie.
Po obnovení systému z bezpečné kopie (obvykle Windows XP) vyčká server na náběh supervizora klientské části a po jeho načtení vyšle pokyn k otevření webové stránky v definovaném prohlížeči.
Tato stránka je poté prohlížečem načtena a zobrazena. Po celou dobu aktivity klienta, od obnovení systému z bezpečné instance, je na server zasílána skupina dat, která jsou získávána pomocí ovladačů monitorujících klíčové činnosti OS. Jedná se především o údaje o modifikacích hostovaného souborového systému, o modifikacích registrů OS Windows, o procesech OS Windows (například vytvoření nového procesu), o síťové komunikaci ve formátu pcap a konečně o souborech zapsaných, zmodifikovaných nebo smazaných v hostovaném operačním systému (mimo důvěryhodné adresáře).
Po dokončení operací (třeba po detekci podezřelého softwaru) dojde k ukončení sezení.
V případě, že je řešením detekována nestandardní aktivita (mj. zápis do nepovolené části registrů), je záznam této aktivity včetně případného vzorku malwaru je uložen pro potřeby následné detailní analýzy v důvěryhodném prostředí serveru.
Z výše uvedeného popisu je zřejmé, že řešení obsahuje řadu omezení. Jedním z hlavních je limitovaná interakce s prostředím internetového prohlížeče. Webové stránky zobrazené v prohlížeči (ze seznamu zaslaného HPC Capture serverem) je totiž možné pouze otevřít, ale jakákoli další interakce s webovou aplikací je vyloučena. Toto a řada dalších omezení se pochopitelně vylučovalo s představou některých uživatelů (v tomto případě firmy Logica) simulace reálného chování „běžného uživatele“ a ti proto rozšířili standardní řešení o několik vlastních modulů.
Jedná se především o modul simulující chování běžného uživatele (Je to javová aplikace simulující interakci uživatele s webovou aplikací na základě předdefinovaných pravidel průchodu; podobně jako třeba pracují makra v aplikaci MS Word nebo Excel. Aplikace sama pak na základě takto definovaných pravidel potvrzuje veškerá zobrazená dialogová okna, „odklikává“ definované hypertextové odkazy apod.), dále modul provádějící automatickou analýzu získaných souborů pomocí antiviru ClamAV, modul simulující procházení ve vybrané finanční aplikaci – cílem tohoto modulu je detekovat, zda případný malware není jeho tvůrcem využit ke krádeži identity a dalších údajů, modul porovnávající obsah datové komunikace mezi serverem a klientem na základě analýzy dat získaných prostřednictvím zachytávače paketů pcap (ten je využíván analyzátorem síťové komunikace Wireshark) či reportovací modul, který by trasformoval výsledky analýzy do jednoduše prezentovatelné podoby a zároveň by vytvářel i sumární statistiky.
Závěrem
Honeypot postavený na základě produktu HPC Capture byl podle provozovatele zřízen a provozován výhradně z výzkumných důvodů a tomu pochopitelně odpovídal i výsledek. Tím bylo získání několika desítek vzorků malwaru, přičemž většinu z těchto vzorků by nebylo možné tradičními neklientskými honeypoty vůbec získat. Zároveň si firma Logica ověřila i životaschopnost takovéto řešení a v případě rozsáhlejšího nasazení i schopnost včasné detekce nových verzí škodlivého kódu.
Pro plnohodnotné produkční využití takovéhoto řešení by však bylo nutné nejen znásobit počet jeho instancí, ale především rozšířit jeho schopnosti o řadu dalších modulů, které mohou snížit počet falešných pozitiv, zvýšit podíl automatizace v průběhu analýzy a umožní i detekci některých nových druhů malware (např. bootkit malware).
Tento článek vyšel v tištěném SecurityWorldu 4/2009.
Autor pracuje jako System Architect, Security & Risk Management ve firmě Logica.