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 detekovat méně než polovinu případů), ale obvykle není jednoduché zjistit, jaká byla skutečná činnost malware na napadené stanici. Honeypoty jsou pak jedním z možných řešení pro včasnou detekci nového malwaru a především detailní analýzu jeho chování. Díky této analýze pak mohou například finanční instituce nebo jiné organizace, které jsou cílem tvůrců malwaru, tento malware včasně detekovat a především na něj rychle reagovat.
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 malware. Tento automatizovaný proces umožňuje sběr velkého množství vzorků malware, 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í (honeynet), které sdílí informace o nově detekovaném malware a trendech (např. způsobech šíření, použitých kompresních algoritmech apod.) Příkladem sítě honeynet je i úspěšný český projekt Honeynet.cz na jehož stránkách lze získat řadu cenných informací a pro zájemce o problematiku Honepotů je možné ze stránek tohoto projektu bezplatně získat předkonfigurovaný VMware obraz sensoru Nepenthes.
Honeypoty obvykle rozčleňujeme do několika skupin. Mezi nejčastější patří dělení dle míry interakce honeypotu (systémy s nízkou mírou interakce vs. systémy s vysokou mírou interakce) 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éto 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 honeypoty 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 malware využívajícího nové inovativní způsoby útoku (např. i díky komparativní analýze napadaného systému oproti jeho bezpečné kopii). Příkladem takovéhoto honeypotu je i HPC Capture, přičemž zkušenosti s jeho nasazením budou prezentovány v následujících odstavcích.
Serverové vs. klientské honeypoty
Mezi historicky nejrozšířenější honeypoty patří tzv. honeypoty serverové, které reprezentují tradiční pojetí honeypotů. Úloha těchto serverových honeypotů je pak převážně pasivní, tzn. pasivně vyčkávají na napadení útočníkem. Hlavní výhodou těchto honeypotů 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 takových honeypotů patří Honeyd a Nepenthes.
Nejčastějším cílem malware jsou 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 klientské honeypoty nebo také honeyclients, které simulují chování uživatele systému, a to nejčastěji formou „procházení“ webových stránek. Klientské honeypoty tak jako jediné umožňují získat vzorky malware, které není možné jednoduše získat jinými metodami, jedná se o typické klientské hrozby jako je phishing, zranitelnosti prohlížečů nebo různé drive by infekce (např. známý Antivirus 2009). Zástupcem takových systému je pak HoneyMonkey společnosti Microsoft (je zde využíván k testování zranitelností software) a níže prezentovaný systém HPC Capture.
V rámci sběru malware provádějí honeypoty také základní automatizovanou analýzu malware 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 tyto nástroje pak patří různé antiviry (nejčastěji open source antivirus ClamAV) nebo sofistikované sandboxy určené pro automatizovanou analýzu malware jako je např. CWSandbox nebo Anubis, které výrazně přispívají k redukci falešných pozitiv a zároveň urychlují poměrně zdlouhavou analýzu malware. 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 (http://www.cwsandbox.org) nebo Anubis (http://anubis.iseclab.org), kde jsou dostupné ukázkové reporty analýzy malware.
Zkušenosti s nasazení klientského honeypotu HPC Capture
Tak jako asi ve většině případů i naše první setkání s honeypoty začalo u nízko interaktivních serverových honeypotů (konkrétně se jednalo o Honeyd). Instalace a konfigurace těchto systému byla poměrně jednoduchá a ve velmi krátké době jsme byli schopni získat poměrně významné množství vzorků malware. 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ů malware tak byl sice zdařilý, ale získané vzorky ve většině případu nepatřily do skupiny malware, která je středem našeho zájmu – tedy malware ohrožující běžného uživatele např. při brouzdání internetem.
Dalším logickým krokem byla tedy volba klientského honeypotu, který by dokázal co nejvěrněji simulovat chování skutečného uživatele. Náš výběr 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 a jeho architektura
HPC Capture je opensource projekt klientského honeypotu (viz. https://projects.honeynet.org/capture-hpc), který má své kořeny na Victoria University of Wellington na Novém Zélandu. Řešení se skládá ze dvou základních komponent:
HPC Capture serveru – serverové analytické komponenty hostované na OS Linux. Účelem této komponenty řízení honeypotu a následné vyhodnocování jeho činnosti.
HPC Capture 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ěží HPC 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ř. 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 HPC Capture 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,
údaje o modifikacích registrů OS Windows,
údaje o procesech OS Windows (např. vytvoření nového procesu),
údaje o síťové komunikaci ve formátu pcap
údaje 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í (např. po detekci podezřelého SW) dojde k ukončení sezení.
V případě, že je řešením detekována nestandardní aktivita (např. zápis do nepovolené části registrů), je záznam této aktivity včetně případného vzorku malware je uložen pro potřeby následné detailní analýzy v důvěryhodném prostředí HPC Capture serveru.
Vlastní rozšíření standardního řešení
Z výše uvedeného popisu je zřejmé, že řešení obsahuje řadu omezení. Jedním z hlavních omezení standardní instalace HPC Capture 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 naší představou simulace reálného chování „běžného uživatele“. Proto jsme se již na základě krátkodobých zkušeností z provozu rozhodli rozšířit standardní řešení HPC Capture o několik nových modulů, z nichž některé jsme pro potřeby řešení již vytvořili.
Jedná se především o následující moduly:
modul simulující chování běžného uživatele - javová aplikace simulující interakci uživatele s webovou aplikací na základě předdefinovaných pravidel průchodu (podobně jako např. 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. Tímto svým pak přispívá k získání nákazy infekcí typu drive-by (viz obr.). Příkladem webových aplikací, u kterých jsme toto zautomatizované procházení aplikací realizovali je populární software pro tvorbu diskusních fór (phpBB) nebo webmailová služba Email.cz.
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 např. populárním analyzátorem síťové komunikace - nástrojem Wireshark)
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ěr
Námi provozovaný honeypot byl zřízen a provozován výhradně z výzkumných důvodů a tomu pochopitelně odpovídal i výsledek. Tímto výsledkem bylo získání několika desítek vzorků malware, přičemž většinu z těchto vzorků by nebylo možné tradičními neklientskými honeypoty vůbec získat (jedná se např. o infekce typu drive-by). Zároveň jsme ověřili i životaschopnost takovéto řešení a v případě rozsáhlejšího nasazení (tak, jak je tomu např. u řady výrobců antimalware řešení) i schopnost včasné detekce nových verzí malware. 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 je System Architect, Security & Risk Management, Logica