MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY
Diplomová práce
Nástroje pro monitorování akcí uživatele (keyloggers)
2007
Martin Skotnica
Prohlášení Prohlašuji, že tato diplomová práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj.
Vedoucí práce: Mgr. Petr Švenda
ii
Poděkování Tímto bych chtěl poděkovat panu Mgr. Petru Švendovi za odborné vedení této diplomové práce a poskytnutí cenných rad a připomínek, které jsem využil při její tvorbě. Také děkuji všem, kteří mi vytvořili prostředí pro její tvorbu.
iii
Shrnutí Cílem mé diplomové práce bylo vytvořit přehled stavu technologie určené pro vytváření nástrojů pro monitorování akcí uživatele - tzv.keyloggerů, srovnání několika těchto aktuálních a dostupných nástrojů, a to z hlediska jejich typu, funkčního vybavení a síťového provozu. Dalším cílem bylo testování a srovnání vybraných nástrojů pro detekci keyloggerů a nástrojů pro aktivní ochranu před nimi.V poslední části jsem provedl analýzy síťového provozu vybraných softwarových keyloggerů s využitím síťového analyzátoru Ethereal [28].
Klíčová slova : Keylogger, Spyware, Software, Hardware, Windows, Hook, SMTP (Simple Mail Transfer Protocol), Proxy
iv
KAPITOLA 1
ÚVOD .................................................................................................1
KAPITOLA 2
PŮVOD KEYLOGGERU ....................................................................2
2.1
Spyware.................................................................................................................................................... 2
2.2
Co umí keylogger .................................................................................................................................... 3
2.3
Legalita..................................................................................................................................................... 3
KAPITOLA 3
HARDWAROVÉ KEYLOGGERY.......................................................5
3.1
Co je hardwarový keylogger .................................................................................................................. 5
3.2
Speciální hardwarový keylogger – Jitterbugs....................................................................................... 7
3.3
Detekce hardwarových keyloggerů........................................................................................................ 9
3.4
Obrana proti hardwarovým keyloggerům............................................................................................ 9
3.5
Budoucnost hardwarových keyloggerů ............................................................................................... 10
3.6
Akustický keylogger.............................................................................................................................. 11
KAPITOLA 4
SOFTWAROVÉ KEYLOGGERY .....................................................15
4.1
Jak keyloggery ukrývají svůj chod? .................................................................................................... 15
4.2
Příklady použití softwarových keyloggerů.......................................................................................... 17
4.2.1
Sledování činnosti zaměstnanců v pracovní době .............................................................................. 17
4.2.2
Monitoring studentů při zkouškách vykonávaných na PC ................................................................. 17
4.2.3
Záloha dat pomocí keyloggeru ........................................................................................................... 18
4.2.4
Útok pomocí keyloggeru .................................................................................................................... 18
4.3
Přehled testovaných programů ............................................................................................................ 19
4.4
Závěr testování ...................................................................................................................................... 23
4.5
Detekce keyloggerů ............................................................................................................................... 23
4.6
Ochrana proti softwarovým keyloggerům .......................................................................................... 25
4.7
Prevence pro bezpečnou práci na PC .................................................................................................. 28
4.7.1
Práce na nedůvěryhodném počítači .................................................................................................... 29
KAPITOLA 5
ANALÝZA SÍŤOVÉHO PROVOZU KEYLOGGERŮ........................32
5.1
Síťový provoz testovaných softwarových keyloggerů ........................................................................ 33
5.2
Souhrn výsledků.................................................................................................................................... 39
KAPITOLA 6
ZÁVĚR .............................................................................................40
POUŽITÉ PRAMENY ................................................................................................42 SEZNAM POUŽITÝCH OBRÁZKŮ...........................................................................46
v
Kapitola 1 Úvod Velké množství osobních informací, ať jde o hesla, dokumenty či emaily, jsou dnes zadávána pomocí klávesnice počítače. Pokud nebudeme zadávané informace chránit, můžou být zneužity nejen tyto data, ale hrozí i možnost zcizení a zneužití identity. Proto musíme začít brát vážně hrozbu nástrojů pro zaznamenání uživatelských akcí tzv. keyloggerů. S varováním přišla analytická společnost iDefense [38], která registrovala v roce 2005 přes 6000 keyloggerů, zatímco o rok dříve jen 3753. Přitom zhruba před pěti lety bychom v této kategorii nalezli pouze cca 300 programů.
[Obr1] Vývoj počtu keyloggerů v letech 2000 – 2005 Z překladu slova keylogger lze snadno domyslet prvotní účel těchto nástrojů, a to zaznamenávání stisknutých kláves. Dnes však tyto nástroje dokáží mnohem víc, proto se ve své práci uchýlím k použití názvu v anglickém jazyce, protože tento název má větší vypovídací hodnotu o těchto nástrojích. Proč chceme monitorovat uživatelské akce? Člověk je tvor od přírody zvědavý, odpovědí, proč chceme monitorovat uživatelské akce, může být cokoli od zvědavosti přes zálohování dat a kontrolu práce, až po útok za účelem zjištění a následné zneužití osobních informací. Největším problémem je samozřejmě poslední ze jmenovaných možností využití monitorování akcí uživatele a to útok s účelem zjištění osobních informací, neboť takovéto sledování je útočníkem pácháno bez vědomí uživatele a vede k jeho poškození.
1
Kapitola 2 Původ keyloggeru 2.1
Spyware
Klasické počítačové viry jsou v útlumu, nicméně na jejich místo nastupuje obrovské množství dalších škodlivých programů. Mezi nejrychleji rostoucí kategorii těchto programů patří spyware [21]. Jde o obecný pojem pro sbírku technologií, které mají za úkol shromažďování informací o jednotlivci či organizaci bez jejich vědomí. Jednotlivé typy třeba jen přesměrují webový prohlížeč na jiné stránky nebo otevírají nová okna prohlížeče s reklamami. Stejným pojmem jsou označovány i programy, které mají za úkol zjistit informace o uživateli či uživatelích počítače. A to pomocí sledování stisknutých kláves, prohledávání pevného disku či zaznamenávání spuštěných programů. Spyware je většinou součást nakažených freeware či shareware programů. Instalací nakaženého softwaru tak dojde i k instalaci spyware bez uživatelova vědomí. Druhy spyware [21]: - Adware - tento typ způsobuje samovolné otevírání dalších oken prohlížeče obsahujících reklamu. - Cookies – malé textové soubory, které vysílají webové stránky prohlížeči a prohlížeč je posílá nazpět. Jejich účelem je v autentizace serveru, sledování a získávání specifických informací o uživateli. - Browser Hijackers - mění nastavení prohlížeče (domovskou stránku, standardního vyhledávače atd.) - Browser Plug-ins - přidávají reklamní nástrojovou lištu - ve většině případů se jedná o reklamní lišty vyhledávačů. - Keyloggers - programy pro celkové sledování činnosti uživatele infikovaného počítače (více níže). - Phishers - tento typ spywaru se za pomocí podvržených webových stránek či podvodných emailových zpráv důvěryhodných společností snaží přimět uživatele k zaslání osobních dat (pin bankovní karty, přístupová jména a hesla). Nejnebezpečnější programy této kategorie jsou softwarové keyloggery, které ač jsou mnohdy vytvářeny případně i prodávány s dobrým úmyslem, většinou s tímto úmyslem nejsou použity.
2
2.2
Co umí keylogger
Keyloggery fungují buď na principu hardwarové komponenty pro připojení mezi konektor klávesnice a vstupní port počítače nebo jako softwarové aplikace, z nichž většina je určena pro operační systém Windows. Prvotním úkolem těchto nástrojů je zachycení stisknutých kláves, avšak dnešní softwarové nástroje toho dokáží mnohem více. Dokáží zachytit: - stisknuté klávesy včetně funkčních kláves (CTRL, šipky, funkční klávesy, …) a klávesových zkratek (CTRL+x, ALT+x, …) - navštívené webové stránky - síťový provoz - změny v systému souborů – vytvoření, změna, smazání souborů či složek - pohyb myši a stisky tlačítek na myši - stav obrazovky do formátu obrázku - emailovou komunikaci (přijaté a poslané emaily) - online komunikaci (ICQ, MS Messenger, …) - schránky ve Windows (clipboard) - spuštěné aplikace Veškeré záznamy navíc obsahují časovou značku a jsou standardně seřazeny podle času. Přednosti hardwarových keyloggerů: - zachycení veškerých znaků ihned po zapnutí počítače, tedy například hesla do BIOSu - nejsou závislé na volbě operačního systému - nelze je odhalit pomocí softwarových prostředků
2.3
Legalita
Velmi častá otázka pokládaná tvůrcům nástrojů pro monitorování uživatelských akcí je ohledně jejich legality. Samotný nástroj (v našem případě hardware či software) je legální. Většina výrobců těchto nástrojů je vytváří za účelem legálního použití. Avšak dle (nejen) mého názoru většinou tyto nástroje používají útočníci, kteří chtějí získat nějaké osobní informace buď o konkrétním uživateli, nebo pomocí zjištění přihlašovacích údajů zaměstnance i citlivé informace firmy. Ani v tomto případě nelze autorům nástroje vytýkat jeho nelegálnost, ta je totiž v použití tohoto nástroje a zodpovědný za toto použití je vždy člověk, který nástroj nainstaloval a používá.
3
Existuje však i několik nezanedbatelných možností použití nástrojů, které je legální. Jsou to: - sledování a ochrana vlastních dětí před návštěvou webových stránek s nevhodným obsahem - zjištění, jestli ve Vaší nepřítomnosti někdo nepoužíval Váš počítač – instalace softwaru na vlastní počítač je totiž samozřejmě legální - záloha dat a měření času stráveného na určitém projektu - sledování činnosti zaměstnanců v pracovní době a zjištění jejich nepracovních aktivit – bez jejich upozornění a písemného souhlasu jde však o nelegální činnost - monitoring studentů při zkouškách vykonávaných na PC
4
Kapitola 3 Hardwarové keyloggery 3.1
Co je hardwarový keylogger
Jak bylo řečeno výše, jedná se o hardwarové zařízení a většinou vypadá jako malé prodloužení kabelu, které se zapojuje mezi počítač a klávesnici (viz.obrázky [Obr2] a [Obr3] níže). Zařízení je vyráběno pro všechny aktuální typy připojení klávesnice, tedy DIN, PS/2 i USB. Samotný počítač nemá tušení o jejich přítomnosti a proto ani operační systém nerozpozná žádné zařízení. V případě připojení přes USB se keylogger chová jako USB hub, který zaznamenává veškerou komunikaci z klávesnice jdoucí přes něj. Umožňuje přitom bezproblémové zapojení a funkčnost jakéhokoliv jiného zařízení dle standardu USB. Hardwarový keylogger může být zabudován i přímo v klávesnici nebo v počítačové skříni, a tak je vizuálně neodhalitelný. Výhoda hardwarového keyloggeru oproti softwarovému je nezávislost na operačním systému počítače, proto může zachytávat stisknuté klávesy kdykoli po zapnutí počítače, tedy včetně hesel pro přístup do BIOSu nebo přístupových hesel k operačnímu systému. Toto zařízení pak zachytává každou stisknutou klávesu a ukládá ji do vlastní paměti, jejíž velikost se pohybuje od desítek KB do několika MB.
[Obr2] KEYKatcher Magnum keylogger pro PS/2
[Obr3] The KeyGhost USB keylogger jako 120cm prodlužovací kabel USB
Práce s takovýmto zařízením je velmi jednoduchá, stačí jej připojit a zařízení se okamžitě aktivuje a zaznamenává stisknuté klávesy. Princip práce spočívá v zachytávání kódů, který má přidělena každá klávesa na klávesnici. Tyto kódy jsou vzájemně různé a navíc se rozlišuje stav každé klávesy. Jiný kód je klávesnicí vyslán do počítače při stisknutí a jiný při uvolnění té samé klávesy. Komunikace se
5
zařízením je vedena pomocí běžného textového editoru, kdy po napsání určeného hesla na klávesnici keylogger odpoví zasláním kódů do počítače a vypíše tak do daného editoru možnosti pro správu zařízení. Nejznámější zařízení tohoto typu jsou - KeyGhost (PS/2, USB) [2] - KeyKatcher (PS/2, USB) [3] - Amecisco (PS/2, vestavěné do klávesnice) [5] - Keelog (PS/2, USB, +PS/2 Opensource návod pro stavbu a provoz keyloggeru) [4] Běžně dostupné HW keyloggery dnes mají k dispozici až několik MB paměti, což znamená nemalé množství zachyceného textu. Přesto je možné paměť zcela zaplnit, zařízení se pak v tuto chvíli chovají odlišně: - paměť je přepisována od začátku - paměť je přepisována v lokaci jiné než na začátku - keylogger ukončí záznam - keylogger ukončí odpovídání - keylogger ohlásí chybu Zařízení testovaná v článku [1] se při zaplnění paměti chovají následovně: - KeyKatcher – ukončil záznam. - KeyGhost – pokračoval v zaznamenávání přepisem paměti od konce. - Amecisco – pokračoval v zaznamenávání přepisem paměti od konce. Na základě výše uvedených skutečností jsou v článku [1] diskutovány testy s úmyslem zaplnit paměť keyloggeru pomocí softwarového nástroje, a tak docílit přepsání či alespoň ztížení obnovy zachycených dat. Takováto činnost by se mohla provést po každém odhlášení uživatele. Možné to je ovšem pouze za předpokladu, že zařízení zachycuje i kontrolní příkazy (například kontrola stavu zámků – Caps, Num, Scroll Lock) - ty jdou totiž jednoduše generovat počítači a zasílat je klávesnici. Jediné z výše uvedených zařízení, které tyto kontrolní příkazy zachycují, jsou klávesnice firmy Amecisco. Jedině v těchto zařízeních tak je možné paměť keyloggeru přepsat. Jak je uvedeno výše, k zaznamenaným datům se přistupuje vypsáním hesla na klávesnici (nejlépe v textovém editoru), na které keylogger odpoví vypsáním možností. Lze tak jednoduše zachycená data uložit do souboru a vymazat paměť zařízení pro další zachytávání. Komerční HW keyloggery jsou dodávány s nastavenými výrobními hesly, které si mají uživatelé změnit. V případě zapomenutí hesla je pro ně však jedinou možností odeslat zařízení zpět výrobci, který zařízení musí přeprogramovat. Proto raději spousta uživatelů tyto hesla nemění a nechává je nastavena na danou hodnotu.
6
Standardně nastavená hesla [1]: - KeyKatcher: „keykatch“ - KeyGhost: „vghostlog“ - Amecisco: heslo se liší v závislosti na instalaci
3.2
Speciální hardwarový keylogger – Jitterbugs
JitterBugs [34] je třída mechanismu přerušení, který tajně přenáší data rozrušením časování vstupních událostí (podobně jako v počítačových sítích). Jde o hardwarové zařízení, které je umístěno v důvěryhodném prostředí vstupního zařízení. Důležitým pojmem jsou skryté kanály (covert channels). Ty mohou umožnit útočníkovi, který překonal bezpečnostní systém a dostal se ke vstupnímu kanálu zařízení, aby získal citlivé informace, aniž by musel sestavit své vlastní spojení. Skryté časové kanály mohou existovat, pokud existuje jistá pružnost v časových nebo sekvenčních událostech, které je možné externě pozorovat. Takovéto kanály je velmi obtížné detekovat a výrobci běžných operačních systému a aplikací ignorují jejich hrozbu. Speciálním typem jsou volně vázané časové kanály. Ty jsou založeny na faktu, že časová informace může být ovlivněna na kterékoli systémové vrstvě, přičemž každá takováto vrstva přidává k časové informaci šum a zpoždění. Třída JitterBugs využívá tyto volně vázané časové kanály. K tomu potřebuje mít přístup k citlivým informacím a také k modulování času událostí. Poté může zaznamenávat tyto citlivé informace a později je poslat pomocí časových kanálů volně spojovaných sítí (loosely-coupled networks). Vysílač na kanále je podvrhnutá entita, která se stará o modulování času událostí. Může jí být aplikace, část operačního systému či hardwarové zařízení. Přijímač na kanále může být koncový bod spojení, či pasivní odposlouchávač umístěný kdekoli po cestě paketů, který získává informace z kanálů sledováním časování paketů.
[Obr4] Architektura klávesnicového Jitterbugs [34]
7
V článku [34] autoři sestavili hardwarový keylogger - klávesnicový JitterBugs (Keyboard Jitterbugs), který dokáže vypouštět zadaná hesla přes internet bez použití vlastního komunikačního kanálu a nutnosti pozdějšího zásahu útočníka do zařízení. Jde o hardwarové zařízení, které je vsazeno mezi klávesnici a počítač (tak jako jiné hardwarové keyloggery). Toto zařízení mírně zpožďuje čas mezi jednotlivými úhozy a tím kóduje do těchto časů posílanou informaci. Vysílač a přijímač přitom nemusí mít přesně synchronizované hodiny, stačí jen hodiny s dostatečnou přesností. Každý rozdíl dob mezi úhozy může přenášet jednotlivý bit. Předpoklad je použití interaktivní sítové aplikace, kdy každý úhoz je přenášen v jednom paketu. Přijímač pak čas získává jako čas objevení paketu zachycovačem (sniffer timestamp), tedy čas, kdy paket uvidí. Tento čas je offsetem času, kdy byl paket zaslán na sít a tedy rozdíl mezi nimi bude skoro stejný jako byl pozměněn klávesnicovým JitterBugsem (počítá se s mírnou odchylkou a pokud je na síti mnoho šumu, je možné použit nějaký ze způsobu opravy chyb přenosu). Zařízení spouští záznam do vlastní paměti nastaveným spouštěčem (zadáním určité posloupnosti znaků na klávesnici) - může jít například o přihlašovací jméno uživatele sledovaného počítače nebo jiné přihlašovací údaje, po kterých s velkou pravděpodobností následuje heslo. I bez použití interaktivní síťové aplikace však je možné data přes síť odesílat, jelikož většina sítové aktivity je spojena se specifickými událostmi klávesnice. Tedy například v internetovém prohlížeči po napsání URL webové stránky je potřeba stisknout klávesu Enter k jejímu odeslání. Tedy jako spouštěč odesílání lze nastavit stisknutí klávesy Enter po napsání řetězce "www" v poli URL prohlížeče. Mezi faktory ovlivňující přesnost časů patří: - vyrovnávací paměť klávesnice - plánování OS (klávesnice však má nejvyšší prioritu) - rozptyl zpoždění na síti (network jitter) Zdroje chyb při přenosu dat [34]: - vkládání (insertion) - šifrování přenosu (zvláště na linkové vrstvě) - poté je složité rozpoznat pakety zaslané JitterBugsem. - mazání (deletion) - dva druhy - první je založen na nemožnosti poznat, jestli uživatel znaky vládá do sítové aplikace, o kterou se zajímáme, či do jiné současně běžící. Tím se některá data, která zkouší zaslat JitterBugs, mohou ztratit. Druhý problém tohoto typu nastává, pokud díky vyrovnávací paměti sítě dojde k odeslání několika úhozů najednou, čímž opět dojde ke ztrátě některých dat. Oba výše popsané způsoby však lze eliminovat opakováním přenosu, jelikož bodem zájmu zachycení jsou pouze hesla a tedy jde o malé množství dat. Proto není problém přenos dat opakovat. - zničení symbolu (symbol corruption error) - je způsobeno zpožděním buď na straně odesílatele nebo přenosem na síti. Je tak přijat jiný symbol, než byl odeslán. Tento problém lze řešit použitím vhodného kódovacího schématu podporujícího opravu chyb.
8
Testy v článku [34] ukázaly, že vzdálenost mezi vysílačem a přijímačem na síti nemá velký vliv na přesnost. Dále vyplynulo, že je možné použitím lepšího kódování s každým přeneseným symbolem přenést více než jeden bit informace (testovány byly 4bity na symbol). Právě vylepšením kódovacího schématu a lepším zabezpečením proti odhalení skrytého kanálu by se mohla věnovat navazující práce.
3.3
Detekce hardwarových keyloggerů
Detekce takovýchto zařízení není snadná, uživatelé by si proto měli všímat samovolných výpisů v textových editorech. Při psaní dokumentu se totiž může stát, že uživatel náhodou napíše kombinaci, která je použita jako heslo ke keyloggeru a ten na to odpoví výpisem možností. To je znamení, že je v systému hardwarový keylogger nainstalován. Uživatelé by proto neměli brát samovolně vytvořené texty v editorech na lehkou váhu. Pro detekci hardwarových keyloggerů byly vytvořeny programy, které na klávesnici vysílají různé příkazy, obsahující například kontrolu stavu zapnuté Caps, Num a Scroll lock LEDky nebo takové, které kontrolují opakovací rychlost při přidržené klávese a zkoumají, zda jsou nějaké odchylky v použití s keyloggerem. Tyto programy bohužel nejsou schopny HW keylogger odhalit. Také se mělo za to, že dodatkové zařízení vložené mezi klávesnici a PC přinese určité zpoždění v odezvě, ale ukázalo se, že tomu tak není. Určitá časová prodleva sice vzniká, ale je tak malá, že téměř nemůže být detekována. Dalším řešením odhalení keyloggeru se měly stát programy, které pomocí slovníkového útoku nebo útoku hrubou silou zkoušely uhodnout heslo keyloggeru, což by mělo za následek vstup do jeho menu. Tady se však ukázalo, že ačkoliv se tyto texty zobrazují na monitoru, není možné tento druh detekce provést, jelikož data nejsou zapsána přímo na klávesnici a tudíž neprojdou skrz keylogger. Jako jediný úspěšný způsob detekce hardwarového keyloggeru se ukázalo měření spotřeby elektrické energie. Keylogger, stejně jako každé jiné elektronické zařízení, potřebuje ke své činnosti určitý proud, který si odebírá z PC. Pomocí přístroje měřícího proud bylo naměřeno zvýšení spotřeby proudu při připojeném keyloggeru přibližně o 10mA [1]. Byly testovány i programy monitorující napětí pomocí senzorů na základní desce počítače. Tyto senzory však nejsou tak přesné a tak malou odchylku nerozpoznaly.
3.4
Obrana proti hardwarovým keyloggerům
Možnou obranou proti těmto typům keyloggerů může být použití softwarové klávesnice. Jednu takovou klávesnici nalezneme ve standardní verzi OS Windows 2000 (a výše). Je zde implementována pro usnadnění práce s počítačem zdravotně postiženým, ale velmi dobře může posloužit i v našem
9
případě. Nalezneme ji v adresáři obsahujícím Windows ve složce System32 a skrývá se pod jménem souboru „osk.exe“. Tuto klávesnici ovládáme pomocí stisků myši, přes hardwarový keylogger tedy neproudí žádná data, která by mohl zachytit. SW klávesnice však není dobré řešení vzhledem k časové náročnosti psaní. Avšak HW keyloggery jsou na počítač instalovány hlavně z důvodu zachycení přihlašovacích jmen, hesel, či jiných osobních údajů. Můžeme tak softwarovou klávesnici použít pouze při vkládání nejdůležitějších údajů a tím zajistit jejich nezaznamenání hardwarovými keyloggery. Jediná spolehlivá ochrana je kontrola připojení klávesnice k PC, popřípadě kontrola bezdůvodné výměny klávesnice za jinou s možným implementovaným hardwarovým keyloggerem. Uživatelé laptopů problém s těmito typy keyloggerů většinou řešit nemusí díky vestavěné klávesnici, není však výjimkou použití dokovací stanice spolu s externími klávesnicemi a i v tomto případě je nutná fyzická kontrola zapojení klávesnice. Nevýhodou útoků pomocí hardwarových keyloggerů je nutnost jejich fyzické instalace na počítač oproti softwarovým, které je možné nainstalovat vzdáleně například pomocí zranitelného místa operačního systému či jiného programu.
3.5
Budoucnost hardwarových keyloggerů
Může se zdát, že hardwarové keyloggery nejsou díky slabé funkčnosti a složitému vyhodnocování zachycených informaci aktuální hrozbou. V dnešní době se ale stále ve větší míře začínají používat bezdrátově připojené klávesnice a lze tak předpokládat, že v blízké budoucnosti se objeví keyloggery zachycující bezdrátovou komunikaci mezi klávesnicí a počítačem. Ty budou mít výhodu, že nebudou muset být fyzicky spojeny s počítačem. Bezdrátově lze klávesnici připojit pomocí přenosu pomocí infračerveného záření, bluetooth či relativně nového wireless USB. První jmenované infračervené záření má výhodu slabého dosahu záření a nutnost přímé viditelnosti, což může případnému útočníkovi ztížit odposlech kláves. Pokud by však útočník byl schopen být v dosahu tohoto přenosu z klávesnice, je velmi jednoduché zaznamenat stisknuté klávesy, jelikož tato technologie neposkytuje žádné zabezpečení přenosu. Technologie bluetooth má dosah dostačující bez nutnosti přímé viditelnosti a má mezery v nedostatečném zabezpečení přenosu pouze čtyřmístným PIN kódem. Pro útočníka tak nemusí být problém takovouto komunikaci mezi klávesnicí a počítačem zaznamenat a rozluštit. Poslední jmenovaná technologie bezdrátového přenosu wireless USB je, jak bylo řečeno nová, proto na ní zatím nebyly nalezeny žádné bezpečnostní problémy, což je však způsobeno hlavně tím, že dosud není rozšířena a neexistuje mnoho zařízení pracujících pomocí této technologie.
10
3.6
Akustický keylogger
Komponenty běžného počítače produkují široký rozsah záření, a to ve viditelném, elektromagnetickém a akustickém spektru. Proto se o toto záření začali zajímat i lidé, chtějící z něj vyčíst nějaké informace. Na tomto místě se budu zabývat zachycením záření v akustickém spektru, tedy hlukem, který vytvářejí elektrosoučástky tvořící počítač při výpočtu, nebo zvukem vydávaným komponentami počítače (v našem případě klávesnicí). Akustický keylogger lze definovat jako kombinaci hardwaru a softwaru pro zachycení dat vložených pomocí klávesnice. Zajímavou možností, jak zachytit stisknuté klávesy, je rozlišení akustického hluku vyprodukovaného stiskem jednotlivých kláves na klávesnici. Téměř každá z kláves totiž při stisknutí vydá trochu jiný zvuk. Například zvuk stisku klávesy mezerník lze bez problémů rozpoznat i lidským uchem. Každá klávesnice, a to nejen počítačové, ale také klávesnice mobilních telefonů či bankomatů, má pod klávesami gumovou membránu. Tato membrána se při stisku klávesy chová jako „buben“, přičemž každá klávesa na něj dopadne z jiného místa a tak lze jednotlivé zvuky rozlišit. Prvním experimentem se zachycením a rozluštěním stisknutých kláves ze zvuků se zabýval vědecký pracovník pracující ve výzkumném centru IBM Dmitri Asonov v článku [31], který zachycené zvuky luštil pomocí softwaru na neuronových sítích. Před samotným zachycením a luštěním však nahrál asi 30krát zvuk stisku každé jednotlivé klávesy jako vzorky, se kterými pak zachycené porovnával. Tímto způsobem se dostal na přesnost rozpoznávání okolo 80%, avšak vždy muselo jít o zachycení úhozů na klávesnici stejného výrobce a modelu, neboť klávesnice různých výrobců i jejich jednotlivé modely produkují různý akustický hluk. Množství práce pro takovouto přípravu a samotný útok ke zjištění údajů psaných na klávesnici by tedy bylo neúměrné danému výsledku s kolísající přesností. Jako ochranu před zaznamenáváním si přitom stačí pořídit klávesnici s tišším chodem kláves či poslech hudby při práci. Ta může zachycování, analýzu a porovnávání zvukových vzorků velmi znepříjemnit. Na předchozí práci [31] navazuje článek [32] autorů z Kalifornské univerzity, kteří se zabývají útokem, který má dosáhnout úspěšnosti rozpoznání 96%, kde jako vstup slouží 10 minutová nahrávka uživatelova psaní na klávesnici. Vše bez předem nahraných vzorků zvuků kláves jako vzorových dat. Rozpoznávač má navíc dokázat rozpoznat náhodný text jako hesla: v pokusu bylo možné 90% 5-ti písmenných náhodných hesel používajících jen písmena generovat útočníkem v méně než 20 přístupech a 80% 10-ti znakových hesel v méně než 75 přístupech. Útok je založen na standardním strojovém učení a technikách rozpoznávání řeči díky tomu, že většina psaného textu není náhodná, omezený počet slov omezuje i klávesové kombinace a anglická gramatika tak omezuje kombinace slov. Je nutno říct, že každá klávesnice či dokonce každý člověk píšící na stejné klávesnici produkuje jiné zvuky, což rozpoznávání ztěžuje a v předchozí práci v takových případech přesnost rozpoznávání rapidně klesala.
11
Pro zjednodušení byly pro tento experiment použity jen klávesy "a" - "z", čárka, tečka, mezerník a enter. Nahráváno bylo psaní anglického textu za použití pouze malých písmen. Útok se skládal ze dvou fází (viz obrázek [Obr5] níže): a) tréninková fáze (training phase) - trénovaní rozpoznávače pro vytvoření nepojmenovaných vzorků dat. - Extrakce rysů (feature extraction) – zpracování zvuků pro jejich lepší rozlišení pomocí metody vytvořené pro rozpoznávání řeči – Cepstrum. - Neřízené rozpoznávání kláves (Unsupervised key recognition) - každý jednotlivý zvuk stisknutí klávesy je zařazen do jedné z K tříd použitím standardních shlukovacích metod. K je zvoleno mírně větší než počet kláves na klávesnici. Jedna klávesa bude tedy v každé třídě s určitou pravděpodobností. V dobře shlukovaných datech je pravděpodobné, že jedna nebo více tříd bude pro každou klávesu dominovat. Následně byly použity skryté Markovovy modely (Hidden Markov Model), které zachycují vzájemný vztah mezi sekvencemi kláves. V Markovově řetězu následující stav závisí na aktuálním stavu. Tedy například určitý zvuk klávesy může být "h" nebo taky "j" (neboť jsou vedle sebe na klávesnici), pokud ale víme, že předešlá klávesa byla "t", pak je jistější, že stisknutá klávesa byla "h", neboť "th" je v anglickém jazyce běžnější než "tj". Samotné převedení zvuku má pojmenování klávesy probíhá pomocí matice pravděpodobnosti a matice přechodu (ta je získaná z velkého korpusu anglického textu) - Kontrola zápisu slova a gramatiky (Spelling and grammar checking) - kontrola a oprava správného zápisu slova a gramatiky na základě slovníkových dat. - Trénink na základě zpětné vazby (Feedback-based training) - tím se vytvoří třídič úhozů, který nepotřebuje model pro správnou anglickou skladbu a gramatiku, povolující rozpoznání náhodného textu (včetně hesel). Výsledky získané v předchozím jsou tak označeny za pojmenované tréninkové vzorky. Procedura zpětné vazby je aplikována, dokud jsou viditelné nějaké změny. Dle výsledků bylo vidět, že optimální bylo použít tři cykly zpětné vazby. b) rozpoznávací fáze (recoginition phase) používá vytvořený třídič úhozů k rozpoznání nových nahrávek. Pokud se text skládá z náhodných znaků (například jde o heslo), výsledek je okamžitě zobrazen. Anglicky psaný text je dále zaslán na korekci. Pro rozlišení těchto dvou případů je použit korektor a lidský faktor. V praxi totiž útočník může předpokládat, zda jsou zadané znaky náhodné či jde o souvislý text.
12
[Obr5] schéma útoku ze článku [32] Pro testy bylo použito několik různých klávesnic a různá prostředí nahrávaní (tichá i hlučná). Výsledky v hlučném prostředí byly mírně horší, ale při větším počtu opakování cyklu zpětné vazby bylo možné zlepšit úroveň rozpoznání. Výsledky ovšem může více narušit například hudba hrající při psaní na klávesnici, která ztěžuje rozpoznání zvuků klávesnice od zvuků objevujících se v hudbě. Testováním bylo dále zjištěno, že pro získání dobrých výsledků bylo v tomto případě potřeba zaznamenávat alespoň 5 minut. Pokračováním tohoto experimentu by mohlo být použití dalších kláves - zejména Shift, Backspace, Caps Lock... Problémem při použití klávesy Shift však může být jeho implementace do kontroly správnosti psaní (spelling correction). Další rozšíření se pak může zabývat rozpoznáním dalších jazyků s jinou abecedou (rusky, arabsky…). Další experimenty se zabývaly zpracováním akustického hluku emitovaného elektronickými součástkami počítače. Největší takovýto hluk emitují kondenzátory, které jsou na základní desce počítače umístěny nejblíže procesoru. Zpracovávat informace takto získané se rozhodli autoři článku [29], který se zabývá akustickým zářením PC, ukázkou, jak jej zachycovat, jak s ním manipulovat a vytvořit softwarový akustický keylogger. Pro snížení akustického hluku chlazení procesoru použili autoři na sledovaném počítači vodní chlazení a během testů nebyl spuštěn žádný jiný intenzivní úkol. K zachycení hluku byl použit převážně všesměrový mikrofon a pro některé experimenty byly použity bezdrátové špionážní kamery s vestavěným mikrofonem. Pokročilejší analýzy zvuku byly provedeny v programu FAWAVU [30], který je vytvořen pro operační systém Windows. Prvním testem bylo měření emitací uvnitř počítačové skříně u kondenzátorů nedaleko procesoru. Prováděn byl opakovaně jednoduchý výpočet s vysokými čísly, u kterých šlo téměř s jistotou říci, že vyprodukují akustické vyzařování a mezi jednotlivými výpočty byly vloženy dlouhé pauzy pro rozlišení výpočtů. Ve druhém
13
testu autoři provedli sekvenci několika cyklů, kdy každý probíhal relativně dlouho, aby bylo možné rozlišit jednotlivé z nich. Těmito výsledky autoři ukázali, že akustické vyzařování může být použito ke zjištění doby trvání výpočtu, dokonce by šlo charakterizovat parametry výpočtu či použitý algoritmus. V další části autoři definují schéma pro akustický přenos dat pomocí modulace frekvence akustického vyzařování. Testy totiž prokázaly, že je možné spolehlivě rozlišit frekvenční spektrum nejméně čtyř různých instrukčních sekvencí a lze tak akusticky přenášet data s pomocí 4 kanálů. Autoři tak upravili softwarový keylogger pro operační systém Linux k přenosu zaznamenaných dat pomocí vytvořeného schématu pro akustický přenos dat. Přenos jednoho znaku trvá pomocí tohoto schématu asi 2 sekundy, což je pro zachycení všech kláves při psaní mnoho, ale daný keylogger bylo možné nastavit pouze pro zachycování přihlašovacích jmen a hesel. Takovýmto keyloggerem je pak možné sledovat dokonce fyzicky nedostupný počítač, který není ani připojen k síti, a to pomocí bezdrátového mikrofonu předem umístěného uvnitř počítače. Z testů vyplynulo, že při nižší frekvenci procesoru jsou výsledky zvukové emitace komponent počítače silnější. Do budoucna tak autoři doporučují snahu o znehodnocení akustické informace PC přesnějším uspořádáním instrukcí, operační systémy by měly být programovány s ohledem na nastavení funkcí v možnostech napájení (power management). Další zajímavé testy by mohly být pro získávání akustických dat na dálku pomocí laserového interferometru nebo podobného zařízení.
14
Kapitola 4 Softwarové Keyloggery Jedná se o aplikace, které mají za úkol zachytit veškerou činnost na počítači. Základem je samozřejmě stále zachycení všech na klávesnici stisknutých kláves. Tyto programy lze velmi jednoduše najít na internetu. Existují placené komerční verze s velkým množstvím funkcí i verze bezplatné, které jsou samozřejmě funkcemi chudší. Velké množství těchto programů je vytvořeno v programovacím jazyku C/C++ použitím mechanismu hook (viz níže) operačního systému Windows. K instalaci keyloggeru jsou ve většině případů nutná oprávnění administrátora. Některé programy umožňují vzdálenou síťovou instalaci. Keyloggery bohužel neupoutávají takovou pozornost jako viry a nejsou téměř zmiňovány v knihách o počítačové bezpečnosti, přičemž jsou mnohé z nich prakticky nevystopovatelné. V této kapitole se budu zabývám hlavně testováním vybraných softwarových keyloggerů. Většina testovaných aplikací jsou zkušební verze, které mnohdy neumožňují plné využití funkcí, ale pro účely testu byly dostačující. Při svém výběru jsem čerpal zejména z webové stránky Keylogger.Org Team [39], která se problematikou keyloggerů zabývá a obsahuje nezávislé hodnocení některých aktuálních programů. Každý z testovaných programů je trochu jiný, avšak výsledek byl v podstatě stejný (záznam stisků kláves, všech spuštěných aplikací, navštívených webových stránek, snímků obrazovky a dalších do souboru). Některé aplikace navíc dokázaly soubor se záznamy šifrovat a nabízely jeho zaslání přes internet.
4.1
Jak keyloggery ukrývají svůj chod?
Většina dnešních keyloggerů ukrývá svůj chod hlavně proto, aby o nich sledovaný uživatel nevěděl a nemohl je jednoduše vyřadit z provozu. Proto se ukrývají před správcem úkolů a využívají k tomu Hook, což je součást mechanismu systému Windows obsluhujícího systémové zprávy. Překlad slova Hook do českého jazyka by jednoznačně neurčil tento mechanismus, budu proto dále používat anglického výrazu. Aplikace díky tomuto mechanismu mohou instalovat v systému své speciální procedury a monitorovat tak určité typy zpráv ještě před tím, než budou zpracovány cílovou aplikací. Operační systém Windows obsahuje několik typů hooku, přičemž ke každému z nich spravuje speciální seznam ukazatelů na instalované procedury (hook chain).
15
Když se v systému objeví událost, která je asociovaná s určitým typem hooku, systém předá zprávu první proceduře v odpovídajícím seznamu pro tuto událost. Tato procedura pak zajistí předání zprávy další proceduře v seznamu. Zasílání zprávy probíhá postupně po jednotlivých procedurách, přičemž každá z nich může podle typu hooku zprávu jen monitorovat, případně změnit při jejím průchodu, nebo dokonce ukončit distribuci zprávy a tak v našem případě zamezit objevení procesu keyloggeru ve správci úloh. Existují dva typy hook: - globální (System-wide hook) – sleduje určitý druh zpráv ve všech vláknech všech právě běžících aplikacích. (ten je použit pro skrytí keyloggerů). - lokální (Thread-specific hook) - používá se pro sledování zpráv jen v určitém vláknu. Hook procedura má následující syntax [18]: LRESULT CALLBACK HookProc( int nCode , /* specifikuje jaká akce bude provedena */ WPARAM wParam , /* parametr závislý na nCode */ LPARAM lParam /* parametr závislý na nCode */ ); Funkce SetWindowsHookEx instaluje hook proceduru definovanou aplikací na začátek seznamu procedur. Tato funkce má následující tvar [18]: HHOOK SetWindowsHookEx( int idHook , /* určuje typ hooku */ HOOKPROC lpfn , /* ukazatel na monitorovací proceduru */ HINSTANCE hMod, /* ukazatel na dll obsahující monitorovací proceduru */ DWORD dwThreadId /* identifikace příslušného vlákna */ ); Pro vytváření keyloggeru jsou z patnácti různých typů hooků dle článku [18] nejdůležitější WH_KEYBOARD, který umožňuje monitorovat zprávy z klávesnice a WH_MOUSE, který dovoluje monitorovat veškeré zprávy od myši. Důležitým předpokladem k vytváření hooku jsou administrátorská práva instalujícího uživatele.
16
4.2
Příklady použití softwarových keyloggerů
4.2.1 Sledování činnosti zaměstnanců v pracovní době Podle výzkumů v médiích a na internetu nemá 30 - 40% aktivit zaměstnanců na počítači a internetu nic společného s jejich náplní práce. V dnešní době proto přibývá zaměstnavatelů, kteří chtějí své zaměstnance při práci s výpočetní technikou kontrolovat. Zaměstnanci totiž mnohdy místo práce na počítačích hrají hry či prohlížejí webové stránky nesouvisející s jejich prací. Ke kontrole sledování zaměstnanců tak lze použít keylogger, který zaznamená veškerou jejich činnost a díky časovým značkám i dobu, po kterou činnost vykonávali. Zaměstnance je však nutné na kontrolu upozornit a získat jeho souhlas. Nevýhodou použití keyloggeru je složitá kontrola, jelikož každý zaměstnanec vyprodukuje denně velké množství úhozů a činnost analýzy těchto dat není možné automatizovat, jelikož se náplň každého pracovníka liší.
4.2.2 Monitoring studentů při zkouškách vykonávaných na PC Dalším příkladem možnosti legálního užití keyloggerů je zaznamenávaní činnosti studentů při vykonávání zkoušek na školních počítačích. Při zkouškách vykonávaných takovýmto způsobem mají studenti většinou povoleny jen určité pomůcky (dokumentace atp.). Lze však jen velmi obtížně uhlídat, zda některý ze studentů nepodvádí a nevyužívá při zkoušce i jiných než povolených pomůcek - například nelegální komunikace (emailem, pomocí webu, mobilního telefonu), vydávání se za jiného studenta či přednesení práce jiného studenta. Je nutné brát ohled na soukromí uživatele a tak na právní, sociální a etickou stránku sledování. Studenti tedy musí souhlasit se svým sledováním a být dobře seznámeni s jeho formou. Touto tematikou se zabývá článek [19], jehož cílem je zjistit, jestli je možné keylogger použít k prokázání podvádění studentů při testech provozovaných na počítačích. Celý popisovaný proces v článku [19] má 4 fáze: - příprava prostředí (nastavení stanic, instalace a aktivace keyloggerů, souhlas studentů) - sběr materiálu - analýza dat (záloha zaznamenaných informací na důvěryhodné úložné medium) - ohlášení nálezů porušení pravidel vedoucím orgánům. V článku jde konkrétně o zkoušku z programování, kde měli studenti za úkol vytvořit program v programovacím jazyce Java, a zkoušku obecných počítačových znalostí formou testu vyplňovaného na počítači. Ke zkoušce z programování měli studenti povoleno použití programu Jcreator a dokumentace API programovacího jazyka Java. K vypracování zkoušky z obecných počítačových
17
znalostí nebyly povoleny žádné pomůcky. Dva další studenti byli instruování k porušení pravidel a neměli zapsán ani jeden z daných předmětů. Keylogger zachytil 5 druhů dat: stisknuté klávesy, snímky obrazovky ve formátu JPEG, navštívené webové stránky, spuštěné aplikace a manipulace se soubory (složkami). Z výsledků šlo vypozorovat, že pokud studenti podváděli, soubory se záznamem měly mnohem menší velikost, jelikož dříve dokončili test a keylogger tak vyprodukoval méně dat (na velikost měly vliv především obrázky stavu obrazovky). Dále vyplynulo, že je možné jednoznačně identifikovat studenta, který otevřel nepovolený dokument, popřípadě použil emailové komunikace, což bylo hlavním účelem experimentu. Další důležitým zjištěním bylo, že každý záznam byl opatřen časovou známkou a je tedy důležité předem synchronizovat čas na všech monitorovaných stanicích. Na druhou stranu by keylogger mohli použít i studenti, kteří chtějí úspěchu u zkoušky dosáhnout získáním testových odpovědí jiného studenta, či zjištěním zadání testu předem, a to infikováním počítače osoby zodpovědné za jeho tvorbu.
4.2.3 Záloha dat pomocí keyloggeru Každému z nás se určitě někdy stalo, že přišel o určitá data (například chybou hardwaru) nebo pouze zapomněl heslo, které již delší dobu nepoužil. Zajímavou možností použití keyloggeru je právě záloha dat (respektive všech úhozů). Pokud chceme zálohovat data, můžeme k tomu využít široké nabídky zálohovacích programů. Lze také použít již zmiňovaný keylogger, který má výhodu v zaznamenání všech zadaných znaků či dokonce obrázků stavu obrazovky bez nutnosti nějakého nastavování. Díky možnosti zaslat tato data na email či FTP tak budou data zálohována docela kvalitně. Složitější je bohužel určitá data získat, jelikož záznamy keyloggerů jsou v programu přeházeny a tak je nutné je složitěji dohledávat. Keylogger má navíc výhodu zachycení „všech“ znaků, tedy i zadávaných hesel, což je pro zapomětlivého člověka výhoda.
4.2.4 Útok pomocí keyloggeru Možné použití keyloggeru je i jako nástroje pro zjištění osobních informací, jako jsou přihlašovací údaje k internetovému bankovnictví, emailu, atd. V tomto případě mám na mysli použití keyloggeru bez vědomí a souhlasu uživatele za účelem jeho poškození. Díky skrytému běhu softwarových keyloggerů je navíc obtížné zjistit jejich výskyt na PC. V době rychle se rozvíjejícího obchodování přes internet tak hrozí zneužití informací získaných ze záznamu keyloggeru k obohacení útočníka.
18
4.3
Přehled testovaných programů
Elogger V1.0 [6]– jedná se o volně šiřitelný program, který se chlubí nastavením na úrovní komerčních programů - po reálném vyzkoušení je ovšem nutno podotknout, že tomu tak zcela není. Výhodou aplikace je její spuštění bez nutnosti instalace a administrátorských oprávnění. Navíc oproti jiným i komerčním produktům poskytuje možnost vytvoření balíku pro vzdálenou instalaci a následné vzdálené sledování. LOG (soubor se záznamy): uložení do formátu HTML, RTF. Možnost zaslání pomocí emailu, na FTP, na určitou IP adresu (port). Chyby : - stisknuté klávesy jsou v logu hůře seřazeny, zachycený text či hesla je tak nutno domýšlet a složitě vyhledávat - aplikace nainstalována do adresáře „C:\WINDOWS\!!!\“ - tento adresář ani soubory aplikace nejsou skryty. E-surveiller v. 1.6.2 [7] - komerční SW. Hlavní výhodou tohoto programu je monitorování stanic přes síť (LAN i přes internet) včetně „realtime“ obrazu. Monitorovací nástroj přitom nemusí znát předem přesnou IP adresu sledovaného stroje, tu nalezne přes sítě třetích stran (IRC, Gnuttela) a automaticky se s počítačem spojí. Nevýhodou je horší orientace v souboru se záznamy, kvůli absence časových značek u jednotlivých záznamu. Oproti ostatním testovaným keyloggerům má zajímavou funkci, která soubor se záznamy analyzuje a použije stisknuté systémové klávesy (delete, backspace, šipky…) a tím zpřehlední text napsaný na klávesnici. LOG: ukládá soubor do specifikované složky na PC, dokáže jej nahrát přes síť (na ip-port), zaslat na email nebo ftp. KGB Spy v3.94 [8]– komerční SW, jehož výhodou je možnost tiché instalace. Zajímavou funkcí je zachytávání všech stisknutých kláves (tedy nejen tisknutelných znaků, ale i funkčních kláves, např.: CTRL, ALT, Fx, atd.). Nabízí dva módy provozu: – mód všech kláves zachycuje všechny stisknuté klávesy včetně funkčních kláves, – mód vytvořených znaků zachycuje jen tisknutelné znaky zobrazené na obrazovce. Další zajímavou funkcí je nastavení slova, po jehož zadání se spustí proces, který zašle na zadaný email upozornění. Snímky obrazovky ukládá i při spořiči obrazovky, tedy i když se na počítači nic neděje. Standardně je zapnut viditelný mód běhu programu. V plné verzi programu lze nastavit mód s neviditelným během. Existuje i zjednodušená bezplatná verze určená pro rodiče k monitorování dětí – proces programu v této verzi není ukryt a program neumí zasílat soubory se záznamem po síti.
19
LOG: možné zvolení místa uložení, zasílání na email, FTP (zkomprimovaná verze obsahující textovou podobu schránky, stisknutých kláves a navštívených webových stránek). Zachycuje síťovou aktivitu. Umí export do HTML, XLS. Powered Keylogger v2.0 [9] – komerční SW. Zkušební verze je omezena nejen časem, ale také nečitelností zachycených hesel v logu. Aplikaci je možné vyvolat napsáním tajného slova zvoleného při instalaci kdykoli při práci s počítačem. Zaznamenává veškeré stisknuté klávesy (včetně funkčních). Hlavní výhoda programu je plná podpora Unicode, která zaručuje zachycení znaků i v DOSových boxech, java aplikacích, emulátorech atd. Program zachycuje také akce myši (stisk tlačítek), popřípadě i tlačítek touchpadu na přenosných počítačích. Zachytí tedy i znaky zadané například pomocí softwarové klávesnice. LOG: je neviditelný na disku, je možné zaslat jej na určený email. Velice zajímavou možností je zapsání logu na USB flashdisk (automaticky ihned po připojení předem nakonfigurovaného USB flashdisku) Elite Keylogger v3.5 [10] – komerční SW, nabízí intuitivní grafické rozhraní spolu se zajímavými funkcemi. Kromě běžných znaků dokáže zachytit i „skryté“ (netisknutelné) znaky a klávesové zkratky. Zajímavou funkcí je zachycení kompletního textu odeslaných emailů. Za zmínku rovněž stojí automatické zastavení monitoringu, pokud je počítač nečinný, zachycení internetové aktivity (navštívených stránek) a zachycení dokumentů zaslaných na tisk. LOG: ukládání v šifrované podobě, je možné jej zasílán emailem či po LAN, je možné jej filtrovat podle data, uživatele nebo programu. Snímky obrazovky se zaznamenávají standardně po 160 vteřinách (lze měnit) – při spořiči obrazovky se nezaznamenávají. Je možné nastavit filtry, které způsobí zvýšení frekvence snímání (při určité činnosti). SpyBuddy v3.7.5 [11] – komerční SW. Jeho zajímavou funkcí je zaznamenávání práce s diskem (vytvoření, smazání, modifikace souborů a adresářů). Je také možné naplánovat spuštění i zastavení monitorování.Nabízí na výběr skrytou či viditelnou instalaci. Při viditelné složka programu nebude skryta a bude nainstalována veškerá dokumentace k programu. LOG: program umožňuje zpětně datovat soubory se záznamem (pro zamezení nalezení nově vzniklých souborů vyhledávači), je možné je zasílat na email, exportovat do xls, HTML, CSV, Plain Text, XML. Stealth Keylogger v4.5 [12] – komerční SW. Aplikace zachycuje stisknuté znaky, které dále třídí podle uživatelů. Umí chronologicky zaznamenat navštívené webové stránky získané z webových prohlížečů. Program zaznamenává také veškeré spuštěné aplikace a manipulaci se soubory. Vyvolání aplikace probíhá pomocí kdekoli napsaného nastaveného slova, avšak pro manipulaci se souborem obsahujícím záznam činnosti je rovněž nutné znát heslo pro přístup k programu.
20
LOG: je možné zaslat na email nebo na FTP. WinSession Logger v3.8 [13] – komerční SW. Program neslouží jen pro zachycení práce na počítači, ale umožňuje také vzdálenou správu PC (včetně restartování, vypnutí či uspání počítače). Dokáže také zamezit spuštění určených aplikací a zachycuje klávesové zkratky. Užitečnou funkcí tohoto programu je zachycení stavu obrazovky po každém stisku tlačítka na myši - zachytí tedy i znaky zadané pomocí softwarové klávesnice. Tento obraz také umí zachycovat po zadaných časových intervalech, přičemž je možné nechat zachytit pouze aktivní okno. Nevýhodou aplikace mohou být pro útočníka nutná administrátorská oprávnění při instalaci. LOG: je uložen v šifrované podobě s možností zpětného datování souboru. Je možné jej zaslat na email, na ftp, po LAN, pomocí protokolu http. Při instalaci jsou soubory programu antivirovým programem NOD32 firmy Eset [20] rozeznány jako trojské koně a automaticky zařazeny do karantény. SpyAgent v6.01.6 [14] – komerční SW, na rozdíl od ostatních testovaných keyloggerů umí zachytit síťový provoz počítače. Dokáže zamezit spuštění určených aplikací, navštívení webových stránek, umí zachytit veškerou práci s diskem. Umožňuje start monitoringu až po určitě akci (například: napsáním určitého slova, či spuštěním určité aplikace). Zajímavá je možnost naplánování uzamčení pracovní stanice, časové naplánování zapnutí či vypnutí zachycování. LOG: je ukládán v šifrované podobě. Uložené soubory jsou zpětně datovány. Je možné je zasílat emailem či na FTP. PC Acme Pro v6.4 [15] komerční SW s velkou možností nastavení. Program obsahuje dvě aplikace: – Control Center – stará se o nastavení, spuštění monitorování (možnost sledování práce se soubory), – View Log – generování logů podle možností a zadaných parametrů (filtrace podle dnů, uživatelů, aplikací či stisknutých kláves). LOG: program ukládá záznamy šifrovaně, aplikace pro správu View Log z něj ale vygeneruje velmi zdařilou HTML verzi s přehledem dnů, uživatelů, spuštěných programů, zadaných hesel atd. Záznam je možné zaslat emailem nebo uložit na síťový zdroj. Je navíc možné nastavit mazání souboru se záznamem po překročení určené velikosti.
21
[Tab1] SROVNÁVACÍ TABULKA TESTOVANÝCH SOFTWAROVÝCH KEYLOGGERŮ
22
4.4
Závěr testování
Všechny testované softwarové keyloggery potvrdily, že opravdu dokáží mnoho a uživatel si jejich přítomnosti nemá jak všimnout. Jednu věc však keyloggerům musím vytknout (takto je dokonce možné přítomnost některých keyloggerů na počítači poznat). Chyba je dána hlavně tím, že většina softwarových keyloggerů neumí dobře pracovat s českou diakritikou. Konkrétně se jedná o nefunkční psaní písmen s háčky na české klávesnici (konkrétně písmen, u kterých je potřeba nejprve stisknout klávesu háček a poté až písmeno – tedy zejména „tˇ,dˇ“). Například při nainstalovaném Winsession keyloggeru při každém stisku klávesy pro vytvoření háčku nad další stisknutou klávesou jsou ihned do místa zápisu vypsány dva háčky – „ˇˇ“. V případě takovýchto projevů počítače každému uživateli doporučuji využít nějaký z nástrojů pro nalezení a odstranění keyloggerů (viz níže).
4.5
Detekce keyloggerů
Dle popisu funkcí softwarových keyloggerů je vidět, že takovéto aplikace mohou uživatelům napáchat mnoho škody, a to tím více, čím déle budou na počítači fungovat. Zde proto uvedu příklady software, který nám umožní keyloggery na počítači najít. Tyto programy se označují názvem anti-keyloggery a pracují podobně jako antivirové programy prohledáváním všech souborů, složek a registrů na počítači. Jsou tedy určeny hlavně pro vyhledání a odstranění již nainstalovaného špionážního software nebo pro preventivní kontrolu. Autoři výzkumu uvedeného v článku [17] použili při své práci anti-keyloggery Raytown a Spydex, avšak ani jeden z nich nenalezl žádné nainstalované keyloggery (nainstalovány přitom byly Raytown, Ghost, Amecisco a KmInt21). Výjimkou byl pouze Raytown anti-keylogger, který nalezl svého bratra - Raytown keylogger, což lze označit za samozřejmost, když jej vyráběl tentýž výrobce. Toto však bylo v roce 2003, kdy nabídka softwaru pro vyhledání keyloggerů nebyla zdaleka tak velká jako dnes. V článku [18] o něco mladším než je výše uvedený článek autoři otestovali několik antikeyloggerů a zjistili, že ty, které měly vyšší úspěšnost v hledání, měly i vyšší poměr falešných nálezů. Proto navrhli hledat keyloggery např. sledováním souvislého zápisu disku do určitého souboru. Tuto techniku ovšem nelze použít ve všech případech, protože některé keyloggery na disk vůbec zapisovat nemusí a mohou posílat zachycené klávesy přímo z paměti třeba na ftp server. Za nejlepší systém pro detekci keyloggerů autoři považují techniku anti-hook, pomocí které nalezli všechny procesy, které využívají mechanismus hook. Nejprve zjistili všechny skryté i viditelné procesy systému podle vyčíslení indexu ze správce úloh. Dále vyšli ze znalosti faktu, že k instalaci jakéhokoli procesu do hook je potřeba použít příkaz SetWindowHookEx a jeho API je pod vedením knihovny USER32.LIB. Prohledávali tedy všechny procesy (a jejich DLL – Dynamic-Link library knihovny), které používají USER32.LIB a zároveň použili příkazu SetWindowHookEx. Všechny procesy a knihovny splňující obě
23
tyto podmínky přidali na seznam. Tento systém také není dokonalý, neboť dokáže falešně označit i systémové soubory a také proto, že některé keyloggery pracují na jiném principu než pomocí mechanismu hook. Situace je však o něco lepší, než se může zdát podle výše uvedených informací, a v dnešní době již není problém nalézt i software, jehož výrobce udržuje slušnou databázi keyloggerů a jiného špionážního software. Jedná se tedy hlavně o komerční programy, které zdarma počítač prohledají, zobrazí výsledky společně s popisem, co přesně nalezený software činí a jak nebezpečný je. Jejich odstranění bohužel již zdarma není, takže jsem úspěšnost odstranění nemohl vyzkoušet. Mohli bychom ale předpokládat, že když špionážní software najde, tak bude i schopen jej odstranit. Jako jeden z nejlepších detektorů bych označil komerční produkt XoftSpySE [26], který má i podle internetových testů vysokou úspěšnost nalezení. U každé nalezené položky je možné získat na stránkách výrobce aplikace bližší informace, např. k čemu slouží a jaké nebezpečí hrozí. Jak jsem se již zmínil výše, jde o program, který zdarma špionážní software vyhledá, ale pro odstranění je potřeba si pořídit placenou plnou verzi programu. Dalším zajímavým produktem, který sice není prvotně určen pro hledání keyloggerů, je software Spybot Search&Destroy [27]. Jeho účelem je nalezení spyware. Není tedy specifikován na keyloggery. Hlavní výhoda tohoto programu spočívá v jeho freeware licenci a také v tom, že obsahuje dodatek s názvem TeaTimer, který má za úkol upozorňovat na jakékoliv změny v citlivých částech registru systému. Při každé změně se dotáže uživatele, zda zápis povolit či zakázat a může tak zamezit tomu, aby do registru byla zapsána například povolení spuštění keyloggeru či jiného nebezpečného softwaru při startu počítače. Sice to znamená, že uživatele občas bude obtěžovat, zda zápis povolit či nikoliv, uživatel ovšem bude mít 100% jistotu, co v registrech je. K nalezení i odstranění spyware a některých keyloggerů slouží i program AVG Anti-Spyware [36] – jedná se o software původně vyvinutý společností Ewido [40], která je nyní členem skupiny Grisoft, tedy známou českou společností na antivirovém poli. Pro osobní použití existuje zkušební verze, které je omezená 30denním provozem. Poté bude program nadále fungovat, avšak s absencí automatických aktualizací a rezidentního štítu pro ochranu systému na pozadí. Program má dle mých testů (viz tabulka [Tab2] níže) velmi dobré výsledky a jako výhodu lze zmínit i uživatelské rozhraní programu lokalizované do češtiny. Další nástroj, který lze použít k nalezení keyloggerů, je RootkitRevealer [33]. Je to program, který slouží k nalezení rootkitů [35], které mohou právě keyloggery používat. Rootkit je program umožňující skrytí souborů, procesů a jiných objektů v systému. Může tak nainstalovat programy nebo zadní vrátka, které nebudou běžnými postupy odhaleny. Rootkit všeho docílí tím, že jednoduše řečeno změní základní postupy, kterými systém pracuje. RootkitRevealer nejdříve prohledá počítač na úrovni volání běžných API funkcí operačního systému a následně provede hledání na nejnižší úrovni, tedy za
24
pomocí fyzického přístupu na disk, a získané informace porovná. Případné rozdíly mohou být způsobeny přítomností rootkitu. Technika je to poměrně spolehlivá, přesto dochází k falešným nálezům, které mohou být způsobeny například speciálními ovladači zařízení. RootkitRevealer tyto rootkity pouze vyhledá, na jejich odstranění je potřeba buď mít dostatečné znalosti nebo vyhledat nástroje či návody na jejich odstranění. Nutno podotknout, že keyloggery a další špionážní aplikace se snaží právě tyto vyhledávače zneškodnit či alespoň omezit jejich funkčnost, proto je dobré uchovávat si instalační soubor antikeyloggeru pro případnou reinstalaci a tu provést kdykoli, kdy se zdá, že vyhledávač nefunguje. Samozřejmě je také nutné udržovat tyto vyhledávače aktualizované.
4.6
Ochrana proti softwarovým keyloggerům
V této části popíši programy, které mají za úkol chránit před keyloggery již nainstalovanými na PC či zabránit jejich činnosti. Zajímavou možností ochrany před softwarovými keyloggery je aplikace KeyScambler [16] , která funguje jako dodatek do internetových prohlížečů (podporuje Internet Explorer, Mozilla Firefox). Výrobce nabízí dvě verze programu. Jedna z nich je bezplatná verze pro osobní potřebu KeyScabmler Personal, která poskytuje ochranu pouze při přihlašování na webových serverech, druhá placená verze KeyScambler Profesional chrání veškeré zadávání textu přes webový prohlížeč. Program chrání všechna přihlašovací jména a hesla a dělá to šifrováním (tzv. scramblingem - kódováním proti odposlechu) uživatelových úhozů na klávesnici na úrovni jádra, tedy dříve, než je může odposlouchávající útočník zaznamenat. Jejich dešifrování pak probíhá až v samotném prohlížeči. Ostatní programy, které by chtěly zachytit stisknuté klávesy, obdrží nesmysluplná zašifrovaná data. Ty program vypisuje v plovoucím okně na definovatelném místě okna webového prohlížeče (viz obrázek [Obr6] níže). Při svých testech jsem vyzkoušel verzi KeyScambler Personal. Při používání tohoto programu jsem se setkal s chybou při zadávání textu do textových polí prohlížečů, kdy se díky tomuto programu do textových polí prohlížeče psaly šifrované znaky místo mnou psaných. Program lze však pomocí nadefinované klávesové zkratky v případě potřeby vypnout (výrobcem je nadefinována zkratka je CTRL+SHIFT+K). S využitím tohoto programu ani jeden z testovaných keyloggerů nezaznamenal přihlašovací údaje v čitelné formě. Proto bych tento nástroj doporučil všem uživatelům internetu.
25
[Obr6] ukázka programu KeyScambler Personal
Některé webové servery experimentují se softwarovými klávesnicemi obsluhovanými myší. Toto nutí keylogger zachytit snímek obrazovky při každé stisknutí tlačítka myši a tím musí keyloggery využívat mnohem více systémových prostředků, čímž se vystavují riziku odhalení. Tento způsob může být další možnost při ochraně před keyloggery. Toto však neplatí pro softwarovou klávesnici implementovanou ve Windows XP, ta zasílá každý stisknutý znak aplikaci, která je v té době aktivní. Tím umožňuje i jednodušším keyloggerům zachytit dané znaky. Existují však i keyloggery, které místo snímku celé obrazovky při každém stisku tlačítka myši zaznamenávají pouze určitý čtverec kolem kurzoru, proto nespotřebují tolik systémových prostředků a jejich odhalení je proto složitější. Další program pro ochranu před keyloggery je program Anti-keylogger [37]. Jde o komerční software, který zamezuje fungování nalezených dll knihoven (dynamic-link library), o kterých se domnívá, že mohou být škodlivé. Velmi dobře rozpoznává knihovny keyloggerů, ale na seznam přidal i několik knihoven systémových utilit. Množství těchto falešných nálezů však bylo velmi malé a tak se vyplatí tento nástroj používat. Zkušební verze je zdarma, omezení vzhledem k plné verzi programu je pouze v časově omezené funkčnosti programu. Ta funguje 4 hodiny, poté se ochrana programem vypne a je možné ji opět použít až po restartu počítače. Počet takovýchto spuštění programu je omezen na 10. Program je spuštěn při načítaní systému ještě před přihlášením uživatele, a tak keyloggerům znemožňuje zaznamenávat již při přihlašování.
26
KeyScambler
AVG Anti-Spyware
XoftSpySE
RootkitRevealer
Antivir - NOD32
Elogger V1.0 E-surveiller v1.6.2 PC Acme Pro v6.1 KGB Spy v 3.94 Powered Keylogger v2.0 Spy Agent v6.01.6 SpyBuddy v3.7.5 Stealth Keylogger v4.5 Elite keylogger v3.5 WinSession Logger v3.8
Detekce
Anti-keylogger
Ochrana
+ + + + + + + + +(5) +
+ + + + + + + + + +
+ + + + + +(4) +
+ + + + + -
+ + +(2) +(3) +(2) +(6) +
+(1) +(1) +(7)
[Tab2] Srovnávací tabulka programů pro detekci a ochranu před softwarovými keyloggery Poznámky k tabulce [Tab2]: 1) V souboru aplikace nalezen trojský kůň Win32/Genetik, soubor je proto přesunut do karantény. 2) Nalezl obrázky stavu obrazovky zachycené tímto keyloggerem. 3) Nalezl programovou složku, která je netriviálně skryta před uživatelem. Název složky však na první pohled nevypovídá o tom, že jde o tento keylogger - jedná se o složku v adresáři Windows\system32 s názvem "KGFLwcpfn" 4) Nalezl programovou součást "WabSMTPsender.exe" a označil ji za vysoce rizikovou. 5) Aplikaci keyloggeru není možné spustit, dokud je nainstalován program Anti-keylogger. Dokonce nefunguje ani když je tento nástroj vypnut, až po jeho úplné odinstalaci je možné Elite keylogger spustit. 6) Nalezl dll knihovnu Elite keyloggeru skrytou před API systému Windows umístěnou v adresáři operačního systému, podsložce System32. 7) Některé soubory keyloggeru (např „xwboot.exe", „mtloader.exe“) označeny za trojského koně Win32/Spy.Agent.JS a jsou tak přesunuty do karantény. Při spuštěném programu Anti-Keylogger správně nepracuje program KeyScambler, který má chránit přihlašovací údaje při přihlašování na webové stránky. V tomto případě se do přihlašovacích polí na webových stránkách zadávají šifrované znaky, tedy program KeyScambler funguje jen z poloviny a nedešifruje tyto znaky v prohlížeči tak jak má, neboť program Anti-Keylogger tuto akci s klávesami zakázal.
27
Program Anti-keylogger většině z testovaných keyloggerů nezabránil zaznamenávat spouštěné aplikace a schránku systému Windows, stisky tlačítek myši, spuštěné programy, navštívené webové stránky, stav obrazovky.
4.7
Prevence pro bezpečnou práci na PC
Pro ochranu před jakýmkoli škodlivým softwarem je potřeba dodržovat přísná bezpečnostní pravidla. Autoři různých článků zabývajících se tímto problémem dávají různá doporučení pro preventivní opatření. Vybral jsem z nich ty, které jsou podle mého soudu ty nejlepší a jejichž kombinací lze docílit bezpečného přihlašování i na nedůvěryhodných počítačích. Základem je použití tří aplikací, a to antivirového programu, anti-spyware programu a firewallu. Neméně důležité jsou však i školení uživatelů o hrozbách a příznacích nákazy spyware. Projevy počítače nakaženého spyware: - změna domovské stránky či standardní vyhledávací stránky - výrazné zpomalení běhu a činnosti programů - samovolná změna údajů zadávaných klávesnicí - samovolně přidané oblíbené stránky - samovolně vyskakují pochybná okna prohlížeče - nepřicházející či nedoručitelné emailové zprávy - špatná nebo žádná diakritika u písmen „ť,ď,“ Při plánování bezpečnosti je však potřeba se zaměřit na celkovou bezpečnostní politiku, nejen použití množství různých produktů. Je potřeba rozdělit bezpečnostní politiku dle různého požadavku na použití zařízení - jiné zabezpečení je potřeba na notebooku s bezdrátovou síťovou kartou a jiné na serveru velké společnosti. Podle autora článku [25] jsou investice do bezpečnosti soustředěny špatně pouze do obvodu (tedy soustředí se na zabezpečení přístupu např. do firemní sítě, ale už ne v rámci této sítě). Je podle něj zbytečné mít několikanásobné firewally, ale je potřeba se více soustředit na emailové filtry a programy pro vyjmutí virů či jinak záludného softwaru. K zabezpečení vzdáleného přístupu je stále více využíván dvoufázový systém autentizace (např. hardwarové tokeny), avšak ve vnitřním systému je výjimečné setkat se s něčím jiným než autentizací heslem. Toto je stále se zvětšující bezpečnostní díra, vznikající díky možnosti nasazení keyloggeů či použití social engeneeringu ke zjištění hesel a jiných osobních informací.
28
Podle autorů v článku [17] je prakticky nemožné vystopovat nainstalovaný keylogger, i když skutečnost je dnes díky řadě produktů pro hledání a zamezení činnosti keyloggerů jiná. Autoři však uvádějí tyto preventivní opatření pro zamezení instalace tohoto softwaru, kterých je dobré držet se i dnes: 1. Většina uživatelů Windows by měla mít omezené oprávnění (například vytvořením a zařazením do skupiny uživatelů). 2. Uživatelská skupina administrátorů by měla mít jen malé množství členů s přísnou politiku hesel. 3. Účty s právy administrátora by neměly být používány pro běžnou práci na počítači připojeném k internetu či dokonce místní síti. 4. Je potřeba kontrolovat zapojení klávesnice pro zamezení instalace hardwarového keyloggeru. Dále je potřeba upozornit na možnost snadného nabytí keyloggeru či přímo jeho naprogramování. Dá se proto předpokládat další rozšíření nabídky keyloggerů. Nabídka anti-keyloggerů se však stále zlepšuje a dle výsledků testů několika z nich uvedených výše lze předpokládat, že se situace bude nadále zlepšovat. Stále ovšem platí, že spolehlivým řešením obrany proti keyloggerům je dodržování dobrých bezpečnostních pravidel, použití programů pro ochranu hesel a stisknutých kláves, detektorů spyware a pravidelná fyzická kontrola zapojení klávesnice.
4.7.1 Práce na nedůvěryhodném počítači V této části popíši za pomocí článků [23] a [24] metody, jak pracovat a zadávat osobní informace na nedůvěryhodných počítačích, které by mohly být napadeny nějakým typem spyware (keyloggerem). Za nedůvěryhodné považujeme počítače, které jsou určeny k širokému veřejnému využití (v internetových kavárnách, hotelích, na letištích). Za nejvíce chráněné informace budeme považovat heslo (případně lze tyto metody použít i při zadávání ostatních důležitých osobních dat). První metoda spočívá v ukrytí přihlašovacích údajů mezi další náhodné znaky nesouvisející s osobními údaji. Keyloggery totiž sice všechno vidí, nerozumí ale tomu, co vidí, proto pokud budeme psát důvěrné údaje a mezi jednotlivými znaky budeme mimo textové pole pro heslo ve stejném okně zapisovat náhodný text, keylogger nerozpozná, že nebyl napsán do daného pole. Tento text sice nikde nenapíšeme, ale keylogger jej zachytí a případný špión nebude schopen rozeznat znaky hesla od znaků náhodných.
29
Lepší je vyjádřit tuto metodu následujícím pseudoalgoritmem: Otevřete danou webovou přihlašovací stránku; Napište přihlašovací jméno (login); For (každý znak hesla) { předejte aktivitu kdekoli jinde než do pole s heslem; napište několik náhodných znaků; předejte aktivitu do pole s heslem; napište další znak hesla; } Odeslat;
//*
* předáním aktivity se rozumí kliknutí myši kdekoli jinde na webovou stránku než do pole s přihlašovacími údaji. Druhá metoda je založena na sdíleném tajemství s proxy serverem. Při návrhu řešení byly kladeny tyto požadavky: - žádné změny na serveru, kde se chce uživatel přihlásit - řešení musí pracovat s existujícími servery - žádné změny prohlížeče - autoři předpokládají, že uživatel nemá práva instalace - uživatelům jde hlavně o ochranu hesla, ostatní zaznamenání ostatních aktivit nepovažují za tak znepokojující - je nepravděpodobné, že by se uživatel přihlašoval ke stejnému účtu více než jednou či dvakrát. S tím souvisí i předpoklad, že škodlivý software na různých počítačích spolu nespolupracuje. Tuto metodu lze rozdělit na několik typů dle metody skrytí hesla: 1. Skrytí na základě tabulky znaků - pomocí této metody obalíme heslo na nedůvěryhodném počítači do náhodných znaků. Problémem pro proxy server může být poznat znaky, které jsou patří do pravého hesla. Je proto potřeba se s proxy serverem domluvit na nějakém systému. Např. může na přihlašovací stránce proxy serveru běžet javascript, který bude vědět, že za znakem "0" jsou náhodné znaky a za každým znakem "1" jsou znaky pravého hesla. Tento systém je snadno odhalitelný, pokud bude keylogger zachycovat snímky obrazovky po každém stisku klávesy. Schéma pracuje na tomto principu: uživatel si vytvoří účet na určitém proxy serveru a určí si s ním nějaké tajemství - symbol a s ním pozice v tabulce symbolů. Navíc uživatel vloží své identifikační číslo, které jej bude jednoznačně identifikovat a bude určeno pro jeden určitý účet nějakého serveru. Předpoklad je, že máme M symbolů a N pozic v tabulce. Tato tabulka bude po zadání každého znaku načtena znovu. Pokud uživatel vidí symbol na správném místě
30
v tabulce, napíše správný znak hesla, pokud na dané místě v tabulce je jiný symbol, uživatel vloží náhodný symbol. Po vložení celého hesla uživatel potvrdí zadání tlačítkem "odeslat". Heslo ani jeho délka se na proxy server neukládá. Nevýhodou tohoto přístupu je vysoký počet náhodných znaků a tím vyšší pravděpodobnost chyby při delších heslech. 2. Skrytí pomocí známých obrázků – tato metoda je podobná předchozí, ale sdíleným tajemstvím jsou obrázky. Uživatel při registraci na proxy server nahraje několik libovolných obrázků. Jejich počet musí být alespoň takový, jako je délka jeho nejdelšího hesla - řekněme L. Obrázků bude dohromady 5xL, tedy 4xL jsou náhodně zvolené. Schéma pracuje podobně jako předchozí, avšak nyní je po každém stisku klávesy nahrán jiný obrázek. Pokud uživatel vidí obrázek ze své kolekce L obrázků, vkládá platný znak hesla, pokud vidí náhodně zvolený obrázek serverem, vkládá náhodný znak. Podle zkušenosti autorů [23] je tato metoda spolehlivější a méně chybová než použití tabulky znaku z předchozího. 3. Maskování pomocí jednoduché šifrovací tabulky - při registraci na proxy server si uživatel vytiskne šifrovací tabulku, podle které pak bude heslo šifrovat. Možný přístup může být i takový, že si uživatel pokaždé pro další nedůvěryhodné místo svého přihlášení vytiskne novou náhodnou šifrovací tabulku. Každá šifrovací tabulka má své identifikační číslo. Při samotném přihlašování pak uživatel zadá webovou stránku, na které se chce autentizovat a identifikační číslo tabulky. Webová stránka je pak rozdělena na dvě části. Spodní část ukazuje běžnou webovou stránku serveru, na který se přihlašujeme. Horní část ukazuje, který sloupec tabulky máme použít pro zadání hesla. Uživatel tak vkládá znaky podle tabulky a na proxy serveru dochází k přesně opačné činnosti. Na nedůvěryhodném počítači tedy nebudou napsány znaky hesla. Podle uživatelova nastavení je možné při každém novém přihlášení použít jiný sloupec tabulky nebo pro maximální bezpečnost použít jiný sloupec tabulky pro každý znak hesla. Toto schéma je prakticky nemožné zdolat. Možný útok by mohl být veden pomocí přesměrování DNS serveru a přeposílání zadaných znaků přes proxy na útočníkovu stránku, která nahradí přihlašovací server. Tato útočníkova stránka pak obdrží pravé heslo, tento útok však lze jednoduše odhalit kontrolou SSL (Secure Socets Layer) certifikátu proxy serveru.
31
Kapitola 5 Analýza síťového provozu keyloggerů V praktické části své diplomové práce jsem se zaměřil na analýzu síťového provozu jednotlivých softwarových keyloggerů. Hlavním úkolem bylo zjistit, zda lze pomocí sledování síťového provozu počítače zjistit infiltraci keyloggeru na počítači. Ke sledování síťového provozu počítače jsem použil program Ethereal [28]. Ten slouží k zachycení veškerých odeslaných (přijatých) paketů z (do) počítače. Ethereal je šířen pod licencí GNU, takže jej lze používat zcela zdarma, stejně tak jsou k dispozici zdrojové kódy a verze pro nepřeberné množství operačních systémů. Všechny testované keyloggery dokáží, pokud je počítač připojen do sítě, odeslat zaznamenaná data na email, některé také na FTP nebo po lokální síti na síťový disk. Mým úkolem tedy bylo najít pakety zaslané z těchto programů a následně je analyzovat. To vše ke zjištění, zda by bylo možné takovýmto způsobem keylogger na počítači odhalit. Po úspěšné instalaci a prvním spuštění programu Ethereal stačí provést několik základních kroků k zahájení zachytávání síťového provozu : V nabídce Capture | Options zvolte síťovou kartu, kterou chcete pro zachycování použít a zkontrolujte, zda je aktivována volba Capture packets in promiscuous mode (zachytávání paketů v promiskuitním modu - viz níže). Zachytávání a zpracovávání všech paketů je nepřehledné a značně vytěžuje počítač, proto máte možnost nastavit typ spojení, které vás zajímá. To provedete v dialogovém okně Analyze | Display Filters. Naslouchání zahájíte volbou Capture | Start a ukončíte pomocí Capture | Stop nebo stisknutím kláves Ctrl + E. Při analýze paketů je vhodné použít volbu Analyze | Folow TCP Stream na některém z paketů, které jsou pro analýzu zajímavé. Tato volba spojí všechny pakety související s vybraným paketem a zobrazí celý datový tok. Abychom mohli zachycovat síťový provoz počítače, je potřeba zapnout promiskuitní mód síťové karty. Tento mód zajistí, že síťové rozhraní přijímá veškerou komunikaci na linkové vrstvě sítě, na které je připojeno (pokud karta nemá zapnutý promiskuitní mód, pak pakety, které jí nejsou určeny, ignoruje).
32
5.1
Síťový provoz testovaných softwarových keyloggerů
Dle mého názoru síťový provoz keyloggerů většinou představuje zaslání záznamů z keyloggeru do emailové schránky uživatele, který keylogger na počítač nainstaloval (ať už jde o útočníka, který chce zjistit osobní či jiná citlivá data uživatelů počítače, nebo uživatele, který si chce data vložená do počítače zálohovat jejich zasláním mimo daný počítač po síti). Proto jsem se v této části zaměřil hlavně na analýzu zachycených emailů odeslaných výše uvedenými softwarovými keyloggery. Během mých testů a analýzy jejich síťového provozu jsem nenarazil na jinou formu komunikace keyloggeru se sítí, než kterou nastavil uživatel, který keylogger nainstaloval a nastavil. Keyloggery tedy pouze zasílají záznamy v daných časových nebo datově objemových intervalech, a to zejména pomocí emailu nebo FTP. Elogger v1.0 - Elogger umožňuje soubor se záznamy zaslat na FTP, na email nebo uložit na sítový disk. Testována byla možnost zaslání emailem. V příloze emailu zaslaného Eloggerem je soubor se záznamy, který je kódován pomocí kódovacího systému Base64 [41]. Není proto problém pomocí libovolného dekodéru Base64 [42] zjistit obsah tohoto souboru. Během testování Elogger zasílal emaily bohužel pouze bez přílohy, tedy bez souboru se záznamem. Jedná se nejspíše o softwarovou chybu tohoto keyloggeru. Přesto by bylo možné filtrovat síťovou komunikaci protokolu SMTP a zpracovávat všechny odeslané emaily, obsahující podřetězec "log" v těle či předmětu emailu. Pokud by nějaký takovýto email chtěl počítač odeslat, uživatel by byl tázán, zda tuto komunikaci povolí či nikoliv. E-surveiller – tento keylogger umožňuje sledovat určitý počítač online přes síť. Umožní tak například v reálném čase sledovat obrazovku tohoto počítače. Při takovémto připojení na sledovanou stanici přes síť není komunikace čitelná a tak nelze zjistit, že se jedná o síťovou komunikaci keyloggeru. Pomoci by však mohl úsudek, že velké množství paketů je směřováno k jedné stanici (na jednu IP), přičemž budeme předpokládat, že tato stanice neplní funkci routeru (či jiného síťového zřízení). Poté je možné se domnívat, že na stanici běží nějaký software značně používající síť a může se jednat právě o keylogger, tedy je potřeba tuto stanici otestovat některým z nástrojů pro detekci keyloggerů. Pokud jde o síťovou komunikaci na protokolu SMTP, předmět emailu zaslaného programem E-surveiller napsal uživatel, který keylogger na počítač nainstaloval. Příloha emailu je kromě kódování Base64 opatřena také jiným netriviálním šifrováním, jelikož po dekódování Base64 dekodérem je soubor stále nečitelný bez použití E-surveilleru. Pro zachycení emailu před jeho odesláním je jedinou možností filtrace podle atypické přípony "zlg" přílohy emailu (tělo emailu je prázdné). Část rekonstrukce TCP proudu SMTP komunikace získaná z programu Ethereal: Subject:Date: .t, 24 IV 2007 20:06:20 -0000 MIME-Version: 1.0 Content-Type: multipart/mixed;
33
.boundary="----=_Boundary" This is a multi-part message in MIME format. ------=_Boundary Content-Type: text/plain; .charset="us-ascii" Content-Transfer-Encoding: 7bit ------=_Boundary Content-Type: application/octet-stream; .name="424W0619-skot-mai-ftp.zlg" Content-Transfer-Encoding: base64 Content-Disposition: attachment; .filename="424W0619-skot-mai-ftp.zlg" datapřílohydatapřílohydatapřílohydatapřílohydatapřílohydatapřílohy ------=_Boundary
Elite Keylogger – tento keylogger zasílá soubor se záznamy v příloze emailu šifrovaný netriviálním šifrovacím schématem. Není možné tedy pouze dešifrováním kódu Base64 zjistit, že jde o soubor se záznamy keyloggeru. Ke zjištění přítomnosti tohoto keyloggeru na počítači je tak potřebná analýza a filtrace síťového provozu protokolu SMTP podle podřetězce "log" nebo "keylogger". Oba tyto podřetězce jsou zmíněny v těle emailů zasílaných keyloggerem. Část rekonstrukce TCP proudu SMTP komunikace získaná z programu Ethereal: Subject: zaznamy (MAIL_SKOTY_200705061706.1) Content-type: multipart/mixed; boundary="----------1D183CA9A9CFAB" Content-transfer-encoding: 8BIT ------------1D183CA9A9CFAB Content-Type: text/plain; charset="Windows-1251" This is a sample message that will appear in letter body when you receivelogs via email. To view the logs you receive via e-mail, please, follow these instructions: 1. Save attached file to any folder on your local hard drive. We recommendto use the same folder for all logs you receive. 2. Unhide Elite Keylogger. 3. Go to "Logs -> Filter". 4. Press "Browse" button which is related to "Logs source". 5. Navigate to the folder where you saved the log you received via e-mail.Note that this folder may contain multiple logs. They will be automaticallyjoined according to log file prefix and dates. 6. Press "Apply filter". You will see the list of available logs to review. 7. Select the log you want to view by pressing "View this log" label whichis linked with the desired entry.To get back to your local PC logs, press "View local logs" and "Apply filter". ------------1D183CA9A9CFAB Content-type: application/octet-stream; name="MAIL_SKOTY_200705061706.1"; Content-Transfer-Encoding: base64 Content-disposition: attachment; filename="MAIL_SKOTY_200705061706.1" datapřílohydatapřílohydatapřílohydatapřílohydatapřílohydatapřílohy ------------1D183CA9A9CFAB--
KGB Spy - jelikož keylogger KGB Spy nepodporuje šifrování souboru se záznamem, je možné přílohu emailu po zachycení všech SMTP paketů odeslaného emailu programem Ethereal zrekonstruovat. Rekonstrukce probíhá pomocí Base64 dekodéru a poté přejmenováním přípony souboru na komprimační formát ZIP. Zjištění koncovky proběhlo rovněž na základě analýzy paketů
34
odeslaného emailu programem Ethereal. Po rekonstrukci a dekomprimování souboru je možné dostat se ke kompletním záznamům zaslaných z programu KGB Spy. Pouze z těla a předmětu emailu však nelze vypozorovat, že jde o email se záznamy z keyloggeru. Zkomprimovaný soubor se záznamy je však hlavně díky obsahu i záznamů stavů obrazovky poměrně velký. Bylo by tak možné filtrovat síťový provoz protokolu SMTP na základě netriviální velikosti přílohy odeslaných emailů. Část rekonstrukce TCP proudu SMTP komunikace získaná z programu Ethereal: Subject: KGB Spy Content-Type: multipart/mixed; boundary="=_NextPart_2rfkindysadvnqw3nerasdf" MIME-Version: 1.0Date: Thu, 3 May 2007 18:19:03 +0200X-Priority: 3 X-Library: Indy 9.00.10 This is a multi-part message in MIME format --=_NextPart_2rfkindysadvnqw3nerasdf Content-Type: text/plain Content-Transfer-Encoding: 7bit--=_NextPart_2rfkindysadvnqw3nerasdf Content-Type: application/octet-stream; name="KGB Spy-3_5_2007-18_18_59.zip" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="KGB Spy-3_5_2007-18_18_59.zip" datapřílohydatapřílohydatapřílohydatapřílohydatapřílohydatapřílohy --=_NextPart_2rfkindysadvnqw3nerasdf--
PC Activity Monitor Pro v6.4 - soubor se záznamy je šifrován a je čitelný pouze v aplikaci LOG VIEWER, která je součástí programu. Nelze tedy dekódovat záznam poslaný v příloze emailu. V předmětu emailu je slovo "report" - mohli bychom tak vytvořit filtr, který bude ohlašovat každý email s tímto předmětem, popřípadě obsahem řetězce „report“ v těle emailu a bude mít v příloze soubor s neobvyklou příponou RZG. Část rekonstrukce TCP proudu SMTP komunikace získaná z programu Ethereal: Subject: Report Mime-Version: 1.0 X-Mailer: mPOP Web-Mail 2.19 Reply-To:
[email protected] Content-Type: multipart/mixed; boundary="BOUNDARY00798798796qwe79" --BOUNDARY00798798796qwe79 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit --BOUNDARY00798798796qwe79 Computer name: jmeno Computer IP address: 192.168.2.106 Letter number: 15 Attached file is PC Acme report. Use VIEW.EXE to decode this file. --BOUNDARY00798798796qwe79 Content-Type: application/octet-stream; name="04-may-2007-0000000015.rgz" Content-Disposition: attachment; filename="04-may-2007-0000000015.rgz" Content-Transfer-Encoding: base64 datapřílohydatapřílohydatapřílohydatapřílohydatapřílohydatapřílohy --BOUNDARY00798798796qwe79--
35
Powered Keylogger - přílohu mailu lze tak jako v několika předchozích případech zrekonstruovat přesně, ale jelikož je tento soubor se záznamy šifrován, nelze jej prohlédnout jinak než v programu Powered Keylogger. Email je však možné odchytit před jeho odesláním a to filtrováním podřetězce "log" či dokonce slova "keylogger" v sítové komunikaci přes protokol SMTP. V těle emailu odeslaného tímto keyloggerem se totiž vyskytuje návod na import dat do Powered Keyloggeru pro jejich přečtení, proto obsahuje tyto řetězce. Část rekonstrukce TCP proudu SMTP komunikace získaná z programu Ethereal: Subject: Powered Keylogger Logs MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="--BOUNDARY_logger_smtp_machine" ----BOUNDARY_logger_smtp_machine Please, find the log file (PKL) attached to this e-mail. To view the logs stored in this file, follow the instructions: .1. Save received PKL file to your hard drive. .2. Unhide Powered Keylogger. .3. Add PKL file into the logs database using "Calendar -> Add PKL file" button. .4. Choose corresponding computer name in "View logs from" drop-down box. Logs are loaded into the viewer. Choose "This computer" to get back to logs from your PC. If you need any assistance, please, feel free contact our support team at:
[email protected] ----BOUNDARY_logger_smtp_machine Content-Type: application/octet-stream; name="SKOTYB.PKL" Content-transfer-encoding: base64 Content-Disposition: attachment; filename="SKOTYB.PKL" datapřílohydatapřílohydatapřílohydatapřílohydatapřílohydatapřílohy ----BOUNDARY_logger_smtp_machine
SpyAgent - zachycena byla emailová komunikace keyloggeru, tedy jeho posílání souboru se záznemem (logu) na určenou emailovou adresu. Tento keylogger zasílá na email soubor se záznamy ve formátu HTML nebo jako prostý text. Soubor tedy lze po jeho zachycení programem Ethereal rekonstruovat a pomocí dekodéru Base64 se dostat přímo k záznamům zachyceným tímto keyloggerem. Možností pro znemožnění komunikace je v tomto případě opět analýza odeslaných paketů protokolu SMTP a zachycení podřetězce "log" v těle emailové zprávy. Část rekonstrukce TCP proudu SMTP komunikace získaná z programu Ethereal: SUBJECT: SpyAgent Activity Log Delivery MIME-Version: 1.0 Content-type: multipart/mixed; boundary="#BOUNDARY#" --#BOUNDARY# Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Computer LocalHost: skotyb Computer Username: keylogger Computer Name: SKOTYB Computer IP Address: 192.168.2.106
36
Attached to this email are the activity logs that you have requested, in TEXT format. --#BOUNDARY# Content-Type: text/html; name=logs.txt Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=logs.txt datapřílohydatapřílohydatapřílohydatapřílohydatapřílohydatapřílohy --#BOUNDARY#
SpyBuddy - jako přílohu emailu je možné zvolit několik formátů. Soubor se záznamy není keyloggerem šifrován, proto jej lze jednoduše rekonstruovat z dat zachycených programem Ethereal a dekódováním Base64 kódu přílohy. Email se však nepodařilo zachytit, jelikož po instalaci tohoto keyloggeru nebyl funkční program Ethereal (respektive jeho součást WinPcap, která má za úkol právě odchyt paketů ze síťového rozhraní) a nebylo tedy možné jakoukoli komunikaci zachytit. Po reinstalaci programu Ethereal a jeho komponenty WinPcap nefungoval keylogger a tedy nebylo možné, aby síť ke komunikaci použil. Lze však předpokládat, že lze zachytit tento provoz později po cestě paketů a poté tuto komunikaci zrekonstruovat. Stealth Keylogger – soubor se záznamy z tohoto programu není šifrován a tak je při jeho zaslání emailem volně čitelný po jeho dekódování dekodérem Base64. Soubor se záznamy je v příloze emailu zasílán ve formátu XML. Ke znemožnění komunikace by bylo možné filtrovat podřetězce „report“ v těle zprávy nebo „keylogger“, který je použit jako součást názvu přílohy. Část rekonstrukce TCP proudu SMTP komunikace získaná z programu Ethereal: Subject: Email Reports from Stealth KeyLogger X-Mailer: CPJNSMTPConnection v2.49 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="ee178fc3-f0c3-403e-b1af-705718023075" Date: Sun, 06 May 2007 18:36:41 +0200 This is a multi-part message in MIME format --ee178fc3-f0c3-403e-b1af-705718023075 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable The REPORT is attached to this email! Please note that if you view the attachment directly from your email and you = receive The XML page cannot be displayed message you should save the file on = your hard drive and open it from that location. In this way the report will = be displayed properly. --ee178fc3-f0c3-403e-b1af-705718023075 Content-Type:application/octet-stream;charset=iso-8859-1; name="WabKeyLogger_20070506.xml" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="WabKeyLogger_20070506.xml" datapřílohydatapřílohydatapřílohydatapřílohydatapřílohydatapřílohy --ee178fc3-f0c3-403e-b1af-705718023075--
37
WinSession Keylogger - záznamy stisknutých kláves a dalších akcí z Winsession keyloggeru jsou zasílány přímo v tělě emailu - nejsou tedy nijak šifrovány a jsou tak zachytitelné v čitelné podobě. V příloze emailu je možné nechat si od keyloggeru zasílat soubory se záznamy obrazovky s příponou "dat", není však možné je prohlédnout v klasických prohlížečích. Pomocí winsession keyloggeru je ovšem možné je exportovat do formátu bitmapy. Předmět emailu je zvolen uživatelem, který keylogger nainstaloval a nastavil. Filtrace by v tomto případě mohla probíhat na základě řetězců „del“, „backspace“, „ctrl“, … tedy kláves stisknutých a zaznamenaných keyloggerem. Řetězce se totiž budou s vysokou pravděpodobností vyskytovat v těle odesílaného emailu a s velkou pravděpodobností nejsou použity v jiné emailové komunikaci.. Část rekonstrukce TCP proudu SMTP komunikace získaná z programu Ethereal: Subject: repo Mime-Version: 1.0 Content-Type: multipart/mixed; .boundary="= Multipart Boundary 0507071525" Date: Mon, 7 May 2007 13:25:23 GMT Message-ID: <20070507132523583.71E559D40AEB01E6@skotyb> X-Mailer: ICS SMTP Component V2.48 This is a multipart MIME message. --= Multipart Boundary 0507071525 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit l [Enter] [F3] 15:01:45 [Esc] 15:01:54 15:01:55 15:01:58 [Delete] 15:02:22 15:02:24 15:02:27 [F3] 15:02:29 15:02:50 15:02:52 15:02:53 15:03:07 15:03:08
=======> Lister - [c:\Program Files\Wlogs\state mail.txt] =======> Total Commander 6.0 - Martin Skotnica =======> Centrum.cz E-mail - Mozilla Firefox =======> WinSesion Logger - Configuration =======> WinSesssion Logger E-mail delivery test =======> WinSesion Logger - Configuration =======> Total Commander 6.0 - Martin Skotnica =======> =======> =======> =======> =======> =======>
Lister - [c:\Program Files\Wlogs\state mail.txt] Total Commander 6.0 - Martin Skotnica WinSession Logger Centrum.cz E-mail - Mozilla Firefox WinSession Logger WinSesion Logger - Configuration
--= Multipart Boundary 0507071525 Content-Type: application/octet-stream; name="07-05-2007-po_=7A-79-05-A2-C5-2403_21_02_pm__winsession - Notepad.dat" Content-Transfer-Encoding: base64 Content-Disposition: attachment; .filename="07-05-2007-po_=7A-79-05-A2-C5-2403_21_02_pm__winsession - Notepad.dat" datapřílohydatapřílohydatapřílohydatapřílohydatapřílohydatapřílohy --= Multipart Boundary 0507071525--
38
5.2
Souhrn výsledků analýzy
Z analýzy zachycených emailů jsem zjistil, že by k odhalení keyloggeru bylo možné vytvořit aplikaci filtrující síťový provoz protokolu SMTP. Tato aplikace by kontrolovala přítomnost podřetězce "log", "report", "rgz", "zlg", "keylogger" či "key" v těle či předmětu emailové zprávy. Při každém pokusu odeslat emailovou zprávu z počítače obsahující tyto podřetězce by aplikace uživatele upozornila na možnou přítomnost keyloggeru na počítači a dotázala se, zda může email odeslat. Vhodné by bylo dodat také dotaz na odeslání emailu s přílohou s větší než nastavenou velikostí nebo na každý email obsahující zkomprimovanou přílohu běžnými komprimovacími nástroji (ZIP, RAR, …). Mnoha uživatelům by však tyto dotazy znepříjemňovaly práci a mohlo by se stát, že by kvůli urychlení práce vůbec nezkoumali, na co se jich filtr dotazuje, a automaticky by povolili odeslání emailu. Je také velmi pravděpodobné, že by výrobci softwarových keyloggerů zareagovali na takovouto aplikaci změnou textu v těle emailu. Filtrování na základě slov by tak muselo být pozměněno, jinak by se stalo absolutně neúčinným. Výrobci keyloggerů by například mohli umožnit uživatelům používajícím jejich nástroje napsat vlastní tělo i předmět emailu, který by tak vůbec nemusel vypovídat o keyloggeru a stal tak neodhalitelným výše navrženou filtrovací aplikací. Když získané informace shrneme, můžeme říci, že ze síťové komunikace lze vyčíst jisté informace, které by mohly stačit na odhalení keyloggeru na počítači. Tyto informace však lze celkem snadno změnit a z toho vyplývá pouze možnost dotazovat se uživatele na odeslání každého emailu s přílohou nebo emailu obsahujícího netriviální množství dat. Stejnou úvahou by se dalo postupovat i při odesílání souboru přes síť protokoly FTP, HTTP, TCP/IP. Jedině takto lze odhalit „samovolné" a tedy uživatelem počítače nechtěné odesílání dat z počítače na síť. Takovéto dotazování by však uživatele spíše obtěžovalo.
39
Kapitola 6 ZÁVĚR Práce se zabývá nástroji pro monitorování akcí uživatele - keyloggerů, jejich rozdělením, hrozbou, funkčností, ale i možnostmi jejich detekce a ochrany před nimi. Práce je rozdělena na několik částí. V první části se zabývám hardwarovými keyloggery spolu s jejich zvláštními typy – keyloggerem Jitterbugs využívajícím skryté časové kanály a Akustickým keyloggerem pracujícím na principu zachycení a analýzy zvuků (hluků) počítače. Další část je zaměřena na keyloggery softwarové. Vybral jsem několik těchto programů a testoval, jestli opravdu dokáží to, co tvrdí na svých propagačních stránkách. Výsledky jejich funkcí jsou seřazeny do tabulky. S touto tematikou dále souvisí test programů na detekci a ochranu proti keyloggerům. I z této kategorie jsem vybral několik zástupců a otestoval je na výše vybraných softwarových keyloggerech výsledky těchto testů jsou opět zařazeny pro přehlednost do tabulky. V části poslední se zabývám analýzou síťového provozu testovaných softwarových keyloggerů pomocí programu Ethereal. Účelem této analýzy je rozhodnutí, zda je možné na jejím základě odhalit nainstalovaný keylogger na počítači. Zjistil jsem, že síťový provoz produkovaný softwarovými keyloggery tvoří pouze zasílání souborů se záznamy. Keyloggery tedy samovolně nekomunikují se sítí, pokud si to jejich uživatel nepřeje. Dle mého názoru je většina takového zasílání tvořena komunikací na protokolu SMTP, jelikož soubory se záznamy posílají keyloggery do emailové schránky uživatele, který keylogger nainstaloval a nastavil. Možné je sice i jeho zasílání na FTP či síťový disk lokální sítě, ale nejpoužívanějším v dnešní době je dle mého názoru email. Síťový disk na lokální síti totiž může být ve chvíli, kdy keylogger zasílá data odpojen a FTP server vypnut. Emailové servery však jsou zálohovány a tak s větší pravděpodobností nebudou mít výpadek a bude možné data zaslaná keyloggerem doručit. Z toho vyplývá, že tento způsob bude i spolehlivější. Výsledkem analýzy paketů je seznam řetězců či podřetězců slov, na základě kterých lze s určitou pravděpodobností odhalit, že síťový provoz je generován keyloggerem nainstalovaným na počítači ("log", "report", "rgz", "zlg", "keylogger" či "key"). Některé ze jmenovaných podřetězců však mohou být použity v emailu, který nemá s keyloggery nic společného, nelze tedy obecně říci, že každý email obsahující v těle nebo předmětu emailu některý z podřetězců musí být generován keyloggerem. Další možností může být analýza velikosti emailových příloh, kdy by uživatel byl dotazován při odesílání emailu s přílohou či objemem dat větším než je nastavená mez.
40
Pokračováním práce by mohlo být vytvoření a test aplikace pro filtrování síťového provozu na základě zjištěných skutečnosti s možností rozšíření filtru. Tvorba aplikace by však dle mého názoru neměla smysl, jelikož text a předmět emailu lze snadno změnit tak, aby žádným nebylo možné určit, že jde o email zaslaný keyloggerem. Lepší cesta k nalezení keyloggeru na počítači bude buďto aktualizovaným vyhledávačem, kterých stále přibývá, nebo použití méně rozšířeného operačního systému. Příkladem takového může být operační systém Linux, pro který neexistuje zdaleka tolik škodlivých kódů.
41
Použité prameny [1]
Andy Davis: Hardware Keyloggers Detection, InformationRiskManagement Plc, London, 2005, Dokument je dostupný na URL: (únor 2007) http://www.irmplc.com/index.php/73-IRM-Plcs-Key-Logging-Research-Findings
[2]
Keyghost keylogger, hardwarový keylogger, KeyGhost Ltd., © 2000, Dostupný na URL: (duben 2007) http://www.keyghost.com/
[3]
Keykatcher keylogger, hardwarový keylogger, Allen Concepts, Inc., © 2006, Dostupný na URL: (duben 2007) http://www.keykatcher.com/
[4]
DIY hardware keylogger, opensource návod na stavbu hw keyloggeru, KeyLog, © 2007, Dostupný na URL: (duben 2007) http://www.keelog.com/diy.html
[5]
Amecisco keylogger, hardwarové keyloggery implementované do klávesnice, Amecisco Inc., Dostupný na URL: (duben 2007) http://www.amecisco.com/
[6]
Elogger V1.0, free softwarový keylogger, Shuks, 2006, Dostupný na URL: (duben 2007) http://sourceforge.net/projects/elogger
[7]
E-Surveiller v1.6.2, sw keylogger, SurveilleTech LLC., © 2006, Dostupný na URL: (duben 2007) http://www.e-surveiller.com/
[8]
KGB Spy v3.94, sw keylogger, ReFog Keylogger Software, © 2007, Dostupný na URL: (duben 2007) http://www.refog.com
[9]
Powered Keylogger v2.0, sw keylogger, Eltima software, © 2007, Dostupný na URL: (duben 2007) http://www.eltima.com
[10]
Elite Keylogger v3.5, sw keylogger, WideStep Security Software, © 2006, Dostupný na URL: (duben 2007) http://www.widestep.com/
[11]
SpyBuddy v3.7.5, sw keylogger, ExploreAnywhere software, © 2006, Dostupný na URL: (duben 2007) http://www.exploreanywhere.com
[12]
Stealth Keylogger v4.5, sw keylogger, Amplusnet, © 2006, Dostupný na URL: (duben 2007) http://www.amplusnet.com/
[13]
WinSession Logger v3.8, sw keylogger, Cromosoft Technologies, © 2007, Dostupný na URL: (duben 2007) http://www.cromosoft.com/
[14]
SpyAgent v6.01.6, sw keylogger, Spytech Software and Design, © 2007, Dostupný na URL: (duben 2007) http://www.spytech-web.com/
[15]
PC ACME Pro v6.4, sw keylogger, Raytown Corporation, © 2006, Dostupný na URL: (duben 2007) http://www.keyloggers.com/pcacme_pro.html
[16]
KeyScambler Personal 1.2.0, Plug-in do webového prohlížeče, QFX Software, 2007,
42
Dostupný na URL: (duben 2007) http://www.qfxsoftware.com/ [17]
Subramanyam, S., Charles E. Frank, Donald H. G.: Keyloggers: The Overlooked Threat to Computer Security, First Midstates Conference for Undergraduate Research in Computer Science and Mathematics, Department of Mathematics and Computer Science, Denison University, Granville, Ohio, 2003 Dokument je dostupný na URL: (únor 2007) http://www.denison.edu/mathcs/mcurcsm2003/papers/keyloggers.pdf
[18]
Aslam, M. a jiní: Anti-Hook Shield against the Software Key Loggers, University of Engineering and Technology, Lahore, Pakistan, 2004 Dokument je dostupný na URL: (únor 2007) http://www.szabist.edu.pk/NCET2004/Docs/ZSession%20II%20Paper%20No%205%20(P%20189-191).pdf
[19]
Laubscher, R. a jiní, The Role of Key Loggers in Computer-based Assessment Forensics, White River, South Africa, South African Institute for Computer Scientists and Information Technologists, 2005. Dokument je dostupný na URL: (únor 2007) http://portal.acm.org/citation.cfm?id=1145675.1145689
[20]
ESET NOD32 v. 2.51.30, antivirový program, ESET software spol. s r.o., 2006 Dostupný na URL: (duben 2007) http://www.eset.cz/
[21]
Cordes, S. C.: Monsters in the Closet: Spyware awareness and Prevention, Educase Quarterly, Volume 28, Number 2, 2005 On page(s): 53-56. Dokument je dostupný na URL: (únor 2007) http://www.educause.edu/ir/library/pdf/EQM0526.pdf
[22]
I Hate Keyloggers, Version 1.0, Yohanes Aristianto, 2006, Dostupný na URL: (duben 2007) http://dewasoft.com/privacy/i-hate-keyloggers.htm
[23]
Florencio, D., Herley, C.: KLASSP: Entering Passwords on Spyware Infected Machine Using a Shared-Secret Proxy, Miami beach, Florida, Association for Computing Machinery, Inc., 2006, Dokument dostupný na URL: (únor 2007) http://research.microsoft.com/~cormac/Papers/acsac06.pdf
[24]
Florencio, D., Herley, C.: How To Login From an Internet Caf´e Without Worrying About Keyloggers, Association for Computing Machinery, Inc., Symp. on Usable Privacy and Security, (SOUPS) 2006, Pittsburgh, PA, 2006 Dokument dostýpný na URL: (únor 2007) http://research.microsoft.com/users/cormac/papers/soups06.pdf
43
[25]
Kuper, P.: A Warning to Industry—Fix It or Lose It, Security & Privacy Magazine, IEEE, March-April 2006, On page(s): 56- 60 Dokument dostupný na URL: (únor 2007) http://ieeexplore.ieee.org/iel5/8013/33953/01621061.pdf
[26]
XoftSpySE v. 4.31, anti-spyware nástroj, Paretologic, 2007, Dostupný na URL: (duben 2007) http://www.xsoftspy.com/
[27]
Spybot Search&Destroy, detektor spyware, Patrick M. Kolla., 2007 Dostupný na URL: (duben 2007) http://www.safer-networking.org/cz/index.html
[28]
Ethereal, zachycovač sítového provozu, Ethereal Inc., 2006, Dostupný na URL: (duben 2007) http://www.ethereal.com/
[29]
LeMay, M.,Tan, J.: Acoustic Surveillance of Physically Unmodified PCs, Las Vegas, Nevada, 2006. Dokument je dostupný na URL: (duben 2007) http://seclab.uiuc.edu/pubs/LeMayT06.pdf
[30]
Fawave, sw pro zpracovaní digitálního audio signálu, James S. Walker, 2000, Dostupný na URL: (duben 2007) http://www.uwec.edu/walkerjs/FAWAVE/index.htm
[31]
Asonov, D., Agrawal, R. Keyboard AcousticEmanations,. In Proceedings of the IEEE Symposium on Security and Privacy, IBM Almaden Research Center, San Jose, CA, USA 2004, On page(s): 3–11 Dokument je dostupný na URL: (duben 2007) http://ieeexplore.ieee.org/iel5/9120/28916/01301311.pdf?tp=&isnumber=&arnumber=1301311
[32]
Zhuant, L. a jiní: Keyboard Acoustic Emanations Revisited, In Proceedings of the 12th ACM Conference on Computer and Communications Security, University of California, Berkeley, 2005, On page(s): 373-382 Dokument je dostupný na URL: (duben 2007) http://www.cs.berkeley.edu/~tygar/papers/Keyboard_Acoustic_Emanations_Revisited/ccs.pdf
[33]
RootkitRevealer v1.71, detektor rootkitů, Sysinternals, 2006 Dostupný na URL: (duben 2007) http://www.microsoft.com/technet/sysinternals/utilities/RootkitRevealer.mspx
[34]
Shah G., Molina A., Blaze M.: Keyboard and Covert Channels, Proc. 15th USENIX Security Symposium. Vancouver, BC. August 2006 Dokument dostupný na URL: (duben 2007) http://www.crypto.com/papers/jbug-Usenix06-final.pdf
[35]
Budai David: Rootkity: skrytí přítomnosti v systému, článek na serveru ZIVE, 2007, Dokument dostupný na URL: (duben 2007) http://www.zive.cz/h/Viryabezpecnost/Ar.asp?ARI=134438&CHID=1&EXPS=&EXPA=
44
[36]
AVG Anti-Spyware 7.5, program pro obranu a detekce proti spyware, Grisoft s.r.o., 2007, Dostupný na URL: (duben 2007) http://www.grisoft.cz/doc/products-avg-anti-spyware/cz/crp/0
[37]
Anti-Keylogger v7.4, program na ochranu před keyloggery, Raytown Corporation LLC, 2006, Dostupný na URL: (duben 2007) http://www.anti-keyloggers.com/
[38]
iDefense Tracks Dramatic Growth in Password-Stealing Keyloggers, VeriSign, 2005 Dostupný na URL: (duben 2007) http://www.verisign.com/verisign-inc/news-and-events/news-archive/us-news-2005/page_036258.html
[39]
Keylogger.Org Team, Independent testing, rating and review of monitoring software, 2007, Dostupný na URL: (duben 2007) http://www.keylogger.org/
[40]
Ewido networks, member of Grisoft Group, 2007, Dostupný na URL: (duben 2007) http://www.ewido.net
[41]
Base64, kódovací schéma, Dostupné na URL: (květen 2007) http://en.wikipedia.org/wiki/Base64
[42]
Base64 Decoder, online dekodér Base64, OpinionatedGeek Ltd., 2006, Dostupný na URL: (květen 2007) http://www.opinionatedgeek.com/dotnet/tools/Base64Decode/
45
Seznam použitých obrázků [Obr1] Vývoj počtu keyloggerů v letech 2000 – 2005 Obrázek dostupný na URL: http://www.verisign.com/verisign-inc/news-and-events/news-archive/us-news-2005/page_036258.html
[Obr2] HW keylogger pro PS/2, Obrázek dostupný na URL: http://www.keykatcher.com/images/home-products/forensic-keylogger.jpg [Obr3] HW keylogger pro USB, Obrázek dostupný na URL: http://www.keyghost.com/usb%20keylogger/keyghost-usb-extension.jpg [Obr4] Architektura klávesnicového Jitterbugs Obrázek dostupný na URL: http://www.usenix.org/events/sec06/tech/shah/shah_html/jbug-Usenix06.html
[Obr5] Schéma útoku ze článku [32], Obrázek dostupný na URL (strana 3/10): http://www.cs.berkeley.edu/~tygar/papers/Keyboard_Acoustic_Emanations_Revisited/ccs.pdf
[Obr6] Ukázka programu Keyscambler Personal
46