}w !"#$%&'()+,-./012345
M ASARYKOVA UNIVERZITA FAKULTA INFORMATIKY
Získávání a reprezentace geografických informací o IP tocích ˇ B AKALÁ RSKÁ PRÁCE
Martin Husák
Brno, 2010
Prohlášení Prohlašuji, že tato bakaláˇrská práce je mým puvodním ˚ autorským dílem, které jsem vypracoval samostatnˇe. Všechny zdroje, prameny a literaturu, které jsem pˇri vypracování používal nebo z nich cˇ erpal, v práci rˇ ádnˇe cituji s uvedením úplného odkazu na pˇríslušný zdroj.
Vedoucí práce: Mgr. Martin Elich ii
Shrnutí Cílem práce je nejdˇríve seznámení se s metodou monitorování poˇcítaˇcových sítí pomocí IP toku˚ a protokolu NetFlow, poté podání pˇrehledu možností geograficé lokalizace IP adres. V rámci praktické cˇ ásti dojde k implementaci zásuvného modulu pro kolektor NfSen. Modul bude sloužit k získávání a grafické reprezentaci geografických informací o IP tocích.
iii
Klíˇcová slova NetFlow, NfSen, plugin, geografická lokalizace, geolokace, geoplugin, grafická reprezentace
iv
Obsah 1 2
Úvod . . . . . . . . . . . . . . . . . . . . . Princip NetFlow . . . . . . . . . . . . . . 2.1 Základní pojmy . . . . . . . . . . . . 2.2 Architektura . . . . . . . . . . . . . . 2.3 Nástroje . . . . . . . . . . . . . . . . 2.4 Oblasti využití . . . . . . . . . . . . . 3 Geografické informace o IP adresách . . 3.1 Metody získávání geografických dat 3.2 Geolokaˇcní databáze . . . . . . . . . 3.3 Využití geolokace . . . . . . . . . . . 3.4 Bezpeˇcnost a soukromí . . . . . . . . 4 Pˇrehled geo-IP software . . . . . . . . . . 4.1 Rozdˇelení služeb . . . . . . . . . . . 4.2 Vybrané služby . . . . . . . . . . . . 5 NfSen a pluginy . . . . . . . . . . . . . . 5.1 Popis cˇ innosti NfSen . . . . . . . . . 5.2 Systém pluginu˚ . . . . . . . . . . . . 5.3 Backend plugin . . . . . . . . . . . . 5.4 Frontend plugin . . . . . . . . . . . . 5.5 Komunikace pluginu˚ . . . . . . . . . 6 Vývoj geografického pluginu . . . . . . . 6.1 Analýza a návrh . . . . . . . . . . . . 6.2 Backend plugin . . . . . . . . . . . . 6.3 Frontend plugin . . . . . . . . . . . . 6.4 Testování . . . . . . . . . . . . . . . . 7 Nasazení pluginu . . . . . . . . . . . . . . 7.1 Nasazení . . . . . . . . . . . . . . . . 7.2 Výsledky . . . . . . . . . . . . . . . . 8 Závˇer . . . . . . . . . . . . . . . . . . . . . Literatura . . . . . . . . . . . . . . . . . . . . . A Obsah pˇriloženého CD . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 3 3 4 5 6 7 7 10 10 12 13 13 15 17 17 17 18 19 20 22 22 23 25 26 27 27 27 30 32 33
v
Kapitola 1
Úvod Spolu s rozmachem výpoˇcetní techniky a poˇcítaˇcových sítí došlo k bouˇrlivým zmˇenám v oblasti komunikací. Spolu s tím, jak objevujeme nové možnosti využití poˇcítaˇcových sítí a komunikaˇcních technologií, je pˇrirozené, že se snažíme zajistit si nad nimi pˇrehled a kontrolu. Sledování provozu na poˇcítaˇcové síti je technicky dobˇre zvládnutelné, ale i v této oblasti je možné si klást nové cíle. Stále je možné sledování sítˇe optimalizovat k hledání relevantnˇejších výsledku, ˚ nebo se zamˇerˇ it na získávání informací nových. Moderní komunikaˇcní prostˇredky pomáhají pˇrekonávat velké vzdálenosti a zdá se, jak by už geografické umístˇení úˇcastníku˚ komunikace nehrálo význam. Na jednu stranu, komunikaci nestojí v cestˇe mnoho pˇrekážek, na druhou stranu se potom interakce úˇcastníku˚ odehrává v neurˇcitém prostoru, stejnˇe blízkém, jako vzdáleném. Internet, napˇríklad, je velice anonymní, prostorovˇe neurˇcitý a geograficky stˇeží uchopitelný. Jakmile se pˇripojíme k síti, skuteˇcný svˇet necháváme za sebou a vstupujeme do svˇeta virtuálního. V tom svˇetˇe jsme vytrženi z našeho zázemí a stáváme se uniformními úˇcastníky komunikace na síti, stejnˇe jako ostatní uživatelé. Pˇresto, že svˇet virtuálních komunikací si od reálného svˇeta udržuje jistý odstup, není propast mezi nimi nepˇrekonatelná. Pˇrekvapivˇe snaha o pˇriblížení se vychází ze svˇeta virtuálního. Zástupcem takových snah je geolokace, tedy urˇcení geografického umístˇení cíle. Na základˇe toho, odkud je uživatel pˇripojen, se muže ˚ virtuální prostor pˇrizpusobit ˚ svému návštˇevníkovi. O tom, že to je praktické, svˇedˇcí mnohé webové služby, které se v poslední dobˇe pokoušejí o zkvalitnˇení svých služeb geolokací svých uživatelu. ˚ Vzhledem k tomu, že úˇcastník provozu na síti je identifikován svojí unikátní IP adresou, je logické, aby cílem geolokace byla právˇe tato adresa. I když podle IP protokolu obecnˇe není vztah mezi adresou a jejím geografickým umístˇením, tato práce se zabývá metodami lokace adresy a jejich využitím, zejména v oblasti sledování sítí. Reprezentace geografických informací o provozu na síti pˇrináší zajímavý pohled na sledovaná data, z tˇežko cˇ itelných záznamu˚ a statistik se rodí vizuálnˇe pˇritažlivá podívaná, která vnáší nový rozmˇer do obrazu sledované sítˇe. Teoretická cˇ ást práce se zabývá dvˇema hlavními tématy, nejdˇríve seznámením se s metodou sledování poˇcítaˇcových sítí pomocí monitorování sít’ových toku. ˚ Pˇredstavují se protokol NetFlow, metody získávání NetFlow dat a architektura monitorování sítí. Druhým nosným tématem teoretické cˇ ásti je geografická informace obsažená v IP datech. Probírá se vztah mezi IP adresou a jejím geografickým umístˇením, metody geografické lokalizace IP adres (tzv. geolokace) a možnosti využití takových metod s ohledem na bezpeˇcnost. 1
1. Ú VOD Praktická cˇ ást práce zaˇcíná pˇrehledem geolokaˇcního software, tedy nástroju˚ pro nalezení geografického umístˇení dané IP adresy. Dále pokraˇcuje seznámením se s nástrojem NfSen, který slouží ke zpracování a reprezentaci NetFlow dat. Duraz ˚ je kladen na možnosti rozšíˇrení funkcionality nástroje pomocí zásuvných modulu. ˚ Cílem praktické cˇ ásti je vytvoˇrení pluginu pro NfSen, který by podával geografické informace o IP tocích. Následuje kapitola o návrhu, implementaci a testování zásuvného modulu. Praktickou cˇ ást uzavírá kapitola o nasazení pluginu v reálných podmínkách, souˇcástí kapitoly jsou i získané výsledky a rozbor vlastností modulu.
2
Kapitola 2
Princip NetFlow Prvním krokem této práce je seznámení se s metodou monitorování sít’ového provozu pomocí sít’ových toku. ˚ Ke sbˇeru a zpracování informací o datových tocích slouží protokol NetFlow. Nejedná se o jedinou technologii práce se sít’ovými toky, z podobných protokolu˚ mu˚ žeme jmenovat sFlow a IPFIX. NetFlow je otevˇrený protokol sloužící k monitorování provozu na poˇcítaˇcové síti, vyvinutý spoleˇcností Cisco. Termínem NetFlow oznaˇcuje celou oblast sbˇeru a zpracování dat o síti na základˇe IP toku. ˚ Úˇcelem NetFlow je poskytovat pˇrehled o provozu poˇcítaˇcové sítˇe. To muže ˚ pomoci správcum ˚ k mˇerˇ ení provozu, detekci nebezpeˇcných situací nebo k plánování rozšíˇrení sítˇe. Své využití najde i v oblasti poskytování služeb pˇripojení k Internetu, jako prostˇredek k úˇctování konektivity [3].
2.1 Základní pojmy Nejduležitˇ ˚ ejším pojmem protokolu NetFlow je tok. Tok je jednosmˇerná posloupnost paketu˚ sdílejících následujících 7 vlastností [18]: •
zdrojová IP adresa,
•
cílová IP adresa,
•
zdrojový port,
•
cílový port,
•
IP protokol,
•
rozhraní,
•
typ IP služby.
Tok vzniká pˇrenosem jednoho paketu výše popsaných vlastností, s následujícími pakety se stejnými vlastnostmi se nakládá jako se souˇcástí tohoto toku. Zaznamenává se doba trvání toku, poˇcet pˇrenesených paketu˚ a další informace. Tok zaniká stárnutím, tedy vypršením pˇredem definované doby od posledního pˇrenosu paketu daných vlastností. Pˇri zachycení dalšího paketu stejných vlastností se vynuluje poˇcítadlo stárnutí. Exportéry je možné nastavit tak, aby byl tok ukonˇcen po vypršení dané doby od prvního pˇreneseného paketu. 3
2.2. ARCHITEKTURA Dlouho trvající sít’ové toky tak mohou být zaznamenány jako sekvence nˇekolika kratších. Sít’ová komunikace je cˇ asto oboustranná, v takovém pˇrípadˇe je detekován alesponˇ jeden tok v každém smˇeru. NetFlow záznam uchovává informace o zaznamenaném toku a typicky obsahuje: •
ˇ Císlo verze,
•
sekvenˇcní cˇ íslo,
•
cˇ asovou znaˇcku poˇcátku a konce toku,
•
poˇcet bajtu˚ a paketu˚ v toku,
•
zdrojovou a cílovou adresu,
•
smˇerovací údaje,
•
další informace.
Poˇcet údaju˚ v záznamech se liší podle použité verze NetFlow, pro úˇcely této práce jsou nejpodstatnˇejší uložené IP adresy. Dalšími duležitými ˚ pojmy jsou exportér a kolektor. Exportér je zaˇrízení, které sleduje provoz na poˇcítaˇcové síti a detekuje IP toky. Exportér odesílá data kolektoru. Kolektor slouží k ukládání a zpracování NetFlow dat. Typicky je kolektor vybaven úložným prostorem a poskytuje nástroje pro zpracování a rozhraní pro prezentaci uložených dat. V praxi cˇ asto jeden kolektor sbírá data z více exportéru˚ [13].
2.2 Architektura Architekturou NetFlow rozumíme uspoˇrádání zaˇrízení pro získávání a zpracování NetFlow záznamu. ˚ Základem je poˇcítaˇcová sít’, kterou chceme pomocí NetFlow technologie sledovat. Na vybraná místa sítˇe umístíme exportéry NetFlow dat a propojíme je s kolektorem, který je vybaven datovým úložištˇem a ke kterému je možné se pˇripojit za úˇcelem analýzy a zpracování uložených dat [18]. V oblasti NetFlow rozlišujeme dvˇe architektury monitorování sítˇe, které se liší použitými exportéry a jejich umístˇením. •
Tradiˇcní architektura pˇredpokládá na místˇe exportéru aktivní sít’ové zaˇrízení, napˇríklad smˇerovaˇce. Takové zaˇrízení kromˇe svého primárního úˇcelu provádí ještˇe sledování sítˇe a exportuje data do kolektoru.
•
Moderní architektura používá pasivní sondy, které se vˇenují jen sledování sítˇe a exportu NetFlow dat. Sondy nezasahují do pˇrenášených paketu˚ a export dat do kolektoru probíhá pˇres dedikovanou linku. 4
2.3. NÁSTROJE
Obrázek 2.1: Architektura NetFlow (zdroj: Wikipedia) Tradiˇcní architektura trpí nˇekolika nedostatky, které moderní architektura eliminuje. Exportéry v tradiˇcní architektuˇre plní svou funkci jen jako pˇrídavek ke svému primárnímu úˇcelu (smˇerování), proto nemusí vždy stíhat zpracovávat všechna data. Docházelo ke vzorkování (zpracování jen nˇekterých toku) ˚ a výsledky byly tímto zkresleny. Navíc cena smˇerovaˇcu˚ s podporou NetFlow exportu byla vysoká, což zabranovalo ˇ jejich využití v malých a stˇrednˇe velkých sítích. Výhodou moderní architektury je také to, že exportér posílá data po dedikované lince a nezasahuje do provozu na síti. To zabranuje ˇ i potencionálním útokum. ˚
2.3 Nástroje Volnˇe šiˇritelné nástroje pro práci s NetFlow daty jsou balíky NfSen a NFDUMP. Zatímco balík nástroju˚ NFDUMP slouží k zachycení, ukládání a zpracování NetFlow dat, NfSen (Netflow Sensor) slouží jako webové rozhraní pro reprezentaci dat. Pˇresto, že spolu úzce souvisí, jsou oba balíky vyvíjeny samostatnˇe [8]. Ani tyto nástroje nejsou jediné ve své oblasti, existuje celá rˇ ada dalších rˇ ešení. Za všechny jmenujme nTop, který nabízí podobné možnosti, jako NFDUMP a NfSen. Dalším zajímavým NetFlow nástrojem je nProbe, softwarová sonda jako náhrada za mnohdy drahé hardwarové sondy. Alternativou k sondˇe nProbe jsou dále sondy fProbe a softflowd. NFDUMP Balík NFDUMP obsahuje nˇekolik programu˚ spustitelných z pˇríkazové rˇ ádky. Všechny dovolují pracovat s NetFlow daty podle protokolu v5, v7 i v9. Jsou to: 5
2.4. OBLASTI VYUŽITÍ •
nfcapd (netflow capture daemon) zachytává data z exportéru a ukládá do souboru. Po cˇ asovém intervalu (typicky 5 minut) vytvoˇrí nový soubor. Pro každý exportér je tˇreba jedna spuštˇená instance nfcapd.
•
nfdump zobrazuje data uložená nástrojem nfcapd, umí vytváˇret statistiky, agregovat a filtrovat uložené záznamy.
•
nfprofile filtruje záznamy a ukládá je do souboru˚ pro další použití.
•
nfreplay umožnuje ˇ pˇreposlat již uložená data jinému kolektoru.
•
nfclean.pl je skript pro úklid starých dat.
Ovládání je nástroje NFDUMP je velmi podobné nástroji tcpdump, pˇredevším co se týká používání filtru˚ [8]. NfSen NfSen (NetFlow Sensor) je komplexní nástroj pro zpracování a prezentaci NetFlow dat, poskytuje grafické webové rozhraní a možnost periodického zpracování dat. Dokáže pracovat jak s právˇe sbíranými daty, tak i s dˇríve uloženými záznamy, funkcionalitu je dále možné rozšíˇrit pomocí pluginu. ˚ Nástroj NfSen podrobnˇe popisuje samostatná kapitola, vývoj pluginu pro tento nástroj tvoˇrí praktickou cˇ ást této práce.
2.4 Oblasti využití Monitorování sít’ových toku˚ nalézá mnoho zpusob ˚ u˚ využití. Samotné sledování sít’ového provozu podává pˇrehled o využití kapacity sítˇe, spuštˇených aplikacích a aktivitˇe uživatelu. ˚ Témˇerˇ v reálném cˇ ase je možné nalézt problematická místa v síti a dozvˇedˇet se o tom, jak je v kterých místech sít’ vytížena. Dále je možné detekovat nestandardní stavy sítˇe zpusobené ˚ útokem nebo virovým napadením. NetFlow se tak stává nástrojem bezpeˇcnostní analýzy a ochrany sítˇe [6]. Komerˇcnˇe zajímavým využitím NetFlow je úˇctování služeb sítˇe na základˇe pˇrenesených dat. Své uplatnˇení mají i záznamy o sít’ových tocích, které podávají informace o sledované síti z dlouhodobˇejšího hlediska. Ze záznamu˚ odvodíme standardní model chování sítˇe a vyˇcteme dlouhodobé trendy jejího využití. Takové údaje slouží jako podklad pro plánování provozu, údržbu a rozvoj sítˇe. Záznamy o provozu v nestandardních situacích, napˇríklad bˇehem útoku, pomáhají k lepšímu pochopení a pˇripravenosti na takové události. Uplatnˇení NetFlow pˇresahuje sledování sít’ového provozu, dolování dat ze záznamu˚ sít’ových toku˚ pˇrináší informace o uživatelích a aplikacích v síti. Monitorování aktivity uživatelu˚ umožnuje ˇ prosazování zásad používání sítˇe a ukazuje, jak, kým, kde, jak cˇ asto a jak dlouho jsou využívány služby sítˇe. Pruzkum ˚ využití sítˇe nalezne své místo nejen pˇri správˇe sítˇe, ale i v marketingu.
6
Kapitola 3
Geografické informace o IP adresách Tato kapitola pojednává o geografické lokalizaci IP adres, metodách a využití takových technik. Cílem geografické lokalizace, tzv. geolokace, je urˇcení geografického umístˇení IP adresy. Tím rozumíme údaje poˇcínaje zemí, ve které se adresa nachází, po zemˇepisné souˇradnice (zemˇepisnou šíˇrku a délku). IP adresa jednoznaˇcnˇe identifikuje prvek v poˇcítaˇcové síti, která používá protokol IP (Internet Protocol). Nejedná se o jediný údaj, ze kterého by bylo možné získávat geografická data, ale vˇetšina v souˇcasnosti relevantních geolokaˇcních technik je založena na vyhledávání podle IP adresy. Je tˇreba rˇ íci, že mezi IP adresou a jejím geografickým umístˇením není pˇrímá souvislost. Na rozdíl od poštovních adres, u kterých je identifikátorem pˇrímo geografické umístˇení, nebo telefonních cˇ ísel, ze kterých mužeme ˚ geografickou lokaci z cˇ ísla vyˇcíst (napˇríklad podle technického doporuˇcení ITU E.164), u IP adres nezbývá, než se spolehnout na nepˇrímé metody. Nˇekteré adresy není možné geograficky lokalizovat už z povahy vˇeci, jedná se o vyhrazené adresy pro localhost (127.0.0.1) a privátní adresy urˇcené pro smˇerování vnitˇrních sítí. Úspˇech geolokace závisí mimo jiné na tom, jakou IP adresou se identifikuje cíl. Z tohoto duvodu ˚ jsou výsledky geolokace mnohdy zkreslené. Napˇríklad celé podsítˇe vystupují na Internetu pod jedinou IP adresou (adresou brány), všechna zaˇrízení v podsíti jsou potom lokalizovány podle jedné adresy, tedy na jednom místˇe. K výraznému zkreslení dochází pˇri geolokaci zaˇrízení v podsítích na rozsáhlém území, typicky se jedná o klienty poskytovatele pˇripojení k Internetu. Výraznˇe zkreslí výsledky geolokace i uživatelé, kteˇrí se pˇripojují pˇres proxy.
3.1 Metody získávání geografických dat Existuje více ruzných ˚ metod získávání geografických dat o IP adrese. Muir a van Oorschot [7] rozlišují tˇri kategorie zdroju˚ informací, které mohou sloužit jako podklad pro geolokaci. V každé kategorii nalézáme nˇekolik metod urˇcení geografické informace, pˇrehled kategorií mužeme ˚ vidˇet v tabulce 3.1. Mnohé uvedené metody jsou odzkoušeny a mají své využití v praxi, pˇresto není možné najít urˇcitý pˇrístup, na který se dá spoléhat. Každá technika je závislá na konkrétní situaci a na tom, jaké výchozí informace má k dispozici. Má-li být geolokace co nejpˇresnˇejší, je lépe kombinovat ruzné ˚ pˇrístupy. Následuje popis jednotlivých metod geografické lokalizace. 7
3.1. METODY ZÍSKÁVÁNÍ GEOGRAFICKÝCH DAT Kategorie A. Informace zámˇernˇe umístˇené v databázích B. Odvozené informace C. Informace o smˇerování a cˇ asování
Pˇrístup WHOIS databáze DNS LOC Doménové jméno Uživatelem poskytnutá data traceroute ping inference
Tabulka 3.1: Klasifikace pˇrístupu˚ ke geolokaci podle [7] WHOIS WHOIS je TCP protokol a dotazovací služba pro vyhledávání ve veˇrejných WHOIS databázích, které jsou provozovány správci domén. Vyhledávat je možné podle IP adresy (bloku˚ adres), doménového jména a cˇ ísla autonomního systému. Databáze poskytují informace o tom, kdo si danou IP adresu zaregistroval. Záznam typicky obsahuje kontaktní údaje zaregistrované organizace a administrátoru, ˚ vˇcetnˇe telefonních cˇ ísel správcu˚ a adresy sídla organizace. Geografické informace je možné snadno odvodit z poštovní adresy, pˇrípadnˇe z telefonních cˇ ísel. Údaje v databázi nemusí být vždy aktuální, stejnˇe tak muže ˚ registrovaný správce vyplnit zavádˇející informace. Nevýhodou dotazování se WHOIS služby je malá pˇresnost výsledku. ˚ Týká se to zejména vˇetších organizací a poskytovatelu˚ internetového pˇripojení, kteˇrí mají zaregistrované celé bloky IP adres, hledané IP adresy se nemusí nacházet poblíž lokací odvozených z WHOIS záznamu [7]. DNS LOC RFC 1876 [12] definuje pod název DNS LOC položky v DNS záznamu pro uložení informace o geografické poloze a nadmoˇrské výšce dané domény. Tyto informace dobrovolnˇe poskytuje provozovatel domény a je možné je zjistit jednoduchým DNS dotazem. Nevýhodou DNS LOC záznamu je malé rozšíˇrení, odhaduje se, že tyto položky má vyplnˇeno ménˇe než 1% hostu. ˚ Informace navíc nejsou duvˇ ˚ eryhodné, nebot’ host muže ˚ o svém umístˇení zámˇernˇe lhát [7]. Geografické informace v doménových jménech Pˇreložíme-li IP adresu na doménové jméno, mužeme ˚ podle nˇeho odhadnout geografické informace o cíli. To je však možné jen, když k IP adrese existuje odpovídající doménové jméno a je možné z nˇej geografickou informaci vyˇcíst. Prvním zajímavým údajem je TLD (top level domain), tedy doména nejvyššího rˇ ádu. Z existujících 264 nejvyšších domén jich je 245 takzvaných ccTLD (country code top level domain), tedy takových, které obsahují kód zemˇe. Podle domény nejvyššího rˇ ádu tak mu˚ 8
3.1. METODY ZÍSKÁVÁNÍ GEOGRAFICKÝCH DAT žeme odhadnout zemi, ve které se daný cíl nachází. Takové urˇcení je však problematické, vzhledem k tomu, že o každou ccTLD se stará samostatná organizace, která používá vlastní pravidla pro udˇelování doménových jmen. Nˇekteré sice požadují, aby registrovaná doména mˇela nˇejakou souvislost se státem, se kterým je ccTLD asociována, což nutnˇe neznamená, že poˇcítaˇc nesoucí danou doménu se fyzicky nachází na území státu. Jsou i takové registraˇcní organizace, které dovolují registraci komukoliv. Kromˇe ccTLD mužeme ˚ urˇcit lokaci domén .gov, .edu a .mil, které jsou vyhrazeny organizacím sídlícím v USA. Pˇri geolokaci mohou pomoci i domény nižšího rˇ ádu. Muže ˚ se jednat o doménová jména územních oblastí, napˇríklad doména konˇcící .ca.us se vztahuje ke Kalifornii ve Spojených státech amerických. Nˇekteˇrí poskytovatelé pˇripojení k internetu mohou používat geografické oznaˇcení v doménových jménech svých routeru. ˚ Taková oznaˇcení jsou však cˇ asto urcˇ ena pro vnitˇrní potˇrebu provozovatele a nemusí být srozumitelná [7]. Uživatelem poskytnuté údaje Jednoduchým zpusobem, ˚ kterým muže ˚ webová stránka zjistit geografickou pozici návštˇevníka, je prostˇe se zeptat. Jakmile jednou uživatel na stránce vyplní údaje o svém umístˇení, muže ˚ si stránka takovou informaci asociovat s IP adresou uživatele a použít pˇri jeho další návštˇevˇe. Webová stránka tak vytváˇrí geolokaˇcní databázi pro svou vlastní potˇrebu. Data jsou uživatelem poskytována dobrovolnˇe a záleží jen na nˇem, jaké údaje poskytne. Informace, ze kterých mužeme ˚ urˇcit cˇ i odhadnout geografické umístˇení cíle, mohou podávat nejen samotní uživatelé, ale i aplikace, které používají. Webové prohlížeˇce a klienti elektronické pošty mohou prozradit a jaký jazyk a znakovou sadu uživatel používá, napˇríklad znaková sada ISO-8859-2 znaˇcí, že uživatel se pravdˇepodobnˇe nachází ve stˇrední Evropˇe. Takové informace jsou však jen orientaˇcní a nemusí znamenat souvislost mezi IP adresou a jejím umístˇením [7]. Mˇerˇení RTT pomocí programu ping K urˇcení geografického umístˇení IP adresy je možné využít nástroj ping, ICMP pakety a mˇerˇ ení RTT (Round-trip time). Nejprve se opakovaným zasílání ICMP paketu˚ k cíli zjistí nejkratší RTT, tedy nejkratší cˇ as od zaslání signálu po pˇrijetí odpovˇedi. Dále máme na výbˇer ze dvou možností dalšího postupu. První vychází z pˇredpokladu, že dva geograficky blízké cíle mají podobné odezvy. Porovnáním RTT odvodíme, že hledaná adresa se nachází poblíž jiného cíle, jehož umístˇení známe. Druhý zpusob ˚ je založen na zpˇresnování ˇ lokalizace adresy pomocí mˇerˇ ení RTT z ruzných ˚ stroju˚ v ruzných ˚ lokalitách. Odezvy namˇerˇ ené z ruzných ˚ lokalit vymezí prostor, ve kterém se hledaná adresa nachází [7]. Smˇerování v síti Pokud je obtížní najít geografické umístˇení dané adresy, je možné využít informace o smˇerování v síti. Tato metoda pˇredpokládá, že známe geografické umístˇení adres, pˇres které je komunikace smˇerována, nejvíce nás zajímá poslední smˇerovací uzel pˇred hledaným cílem. 9
ˇ 3.2. GEOLOKA CNÍ DATABÁZE Známe-li více takových uzlu, ˚ které smˇerují pakety pˇrímo hledanému cíli a jejich geografickou polohu, máme tím vymezeno území, ve kterém se cíl muže ˚ nacházet. Pomocí nástroje traceroute vyˇcteme i RTT a mužeme ˚ tak hledání doplnit pˇredchozí metodou [7].
3.2 Geolokaˇcní databáze Pˇresto, že existuje celá rˇ ada metod získávání geografických informací o IP adresách, nenajdeme mezi nimi takovou, na kterou je možné se univerzálnˇe spoléhat. Nˇekteré techniky nemusí ve stejné situaci dvakrát podat stejné výsledky, stejnˇe jako dvˇe ruzné ˚ metody mohou ve stejné situaci dojít k výsledkum ˚ zcela odlišným. Má-li být geolokace co nejpˇresnˇejší, ˇ je lépe kombinovat ruzné ˚ pˇrístupy. Cím více duvˇ ˚ eryhodných a vzájemnˇe souhlasných výsledku˚ získáme, tím více mužeme ˚ získaným údajum ˚ duvˇ ˚ erˇ ovat. To otevírá otázku ukládání výsledku˚ geolokace, jejich srovnávání a dalšího použití. Geolokaˇcní databáze je úložištˇe geografických informací o IP adresách, jednotlivé adresy nebo skupiny adres jsou asociovány s informacemi o geografickém umístˇení. Databázi zaplnujeme ˇ výsledky geografické lokalizace IP adres za použití adekvátních metod, podle toho, jaké informace chceme v databázi ukládat. Obsah databáze obohatí použití kombinace více vzájemnˇe se doplnujících ˇ technik geolokace. Stejnˇe tak mužeme ˚ do databáze zapisovat i údaje získané z ruzných ˚ dalších zdroju, ˚ podkladovým materiálem pro geolokaˇcní databáze cˇ asto bývají data od registraˇcních autorit a poskytovatelu˚ internetového pˇripojení. V praxi se geolokaˇcní databáze staly prostˇredníkem mezi samotnou geolokací a jejím využitím. Zatímco vyhledávání v již uložených záznamech slouží praktickému nasazení geolokace, databáze je stále doplnována ˇ a zpˇresnována. ˇ Vyhledání geografické informace v databázi je jednodušší a spolehlivˇejší než implementace geolokaˇcních technik, ovšem za pˇredpokladu, že máme k dispozici duvˇ ˚ eryhodnou databázi s dostateˇcným množstvím záznamu. ˚ Vybudování geolokaˇcní databáze vyžaduje netriviální úsilí, pˇresto jich existuje celá rˇ ada. Geolokaˇcní databáze se staly základním kamenem oblasti geografické lokalizace IP adres a umožnily praktické využití geolokace. Do svˇeta geolokace vstoupila komerˇcní sféra, spoleˇcnosti zaˇcaly budovat geolokaˇcní databáze a poskytovat tak vyhledávací služby. Soudobé geolokaˇcní databáze obsahují tolik záznamu, ˚ že vyhledávání informací v nich poskytuje pˇresnˇejší a duvˇ ˚ eryhodnˇejší výsledky, než použití kterékoliv metody geolokace. ˇ Cím déle a s cˇ ím vˇetším úsilím je geolokaˇcní databáze spravována a aktualizována, tím relevantnˇejší je vyhledávání v ní.
3.3 Využití geolokace Geolokace nachází své uplatnˇení v mnoha oblastech, od cílené reklamy po vymáhání práva. Uživatelé mohou využívat služeb zamˇerˇ ených na konkrétní území, poskytovatelé naopak mohou filtrovat rozsah nabízených služeb i uživatele. Své využití najde geolokace i jinde, následuje pˇrehled možných aplikací geolokace s pˇríklady z praxe. 10
3.3. VYUŽITÍ GEOLOKACE Cílené služby Znalost geografické lokality, ze které se pˇripojuje návštˇevník webové služby, umožnuje ˇ provozovatelum ˚ nabídnout cílené služby a dopˇrát tak uživatelum ˚ vˇetšího pohodlí. Na základˇe geolokace návštˇevníka je možné pˇrizpusobit ˚ obsah dynamických webových stránek a optimalizovat výsledky vyhledávání. Pˇríklady použití: •
Web pˇredpovˇedi poˇcasí zobrazí pˇredpovˇed’ pro konkrétní lokalitu.
•
Zpravodajský web nabídne zprávy z regionu.
•
E-shop nabídne umístˇení nejbližší kamenné prodejny.
•
Bankovní web zobrazuje blízké bankomaty.
Geolokaci používá i vyhledávaˇc Google. Na základˇe urˇcení geografického umístˇení IP adresy návštˇevníka se stránka www.google.com pˇresmˇeruje na pˇríslušnou místní stránku (napˇríklad www.google.uk) a podle urˇcení místa muže ˚ upravovat výsledky vyhledávání. Filtrování obsahu Geografické umístˇení návštˇevníka webu muže ˚ být i kritériem pro filtrování obsahu, omezení i odmítnutí pˇrístupu. Duvody ˚ mohou být ruzné, ˚ v praxi se jedná napˇríklad o vymahatelnost práva. Filtrovány a blokovány jsou takové webové stránky, které narušují právní rˇ ád urˇcité zemˇe, zatímco jinde jsou jejich služby a obsah legální. Pˇríkladem uživatele geolokace pˇri filtrování uživatelu˚ je sázková spoleˇcnost Ladbrokes. Rozhodnutím nizozemského soudu mˇela spoleˇcnost zamezit pˇrístupu na své webové stránky uživatelum ˚ v Nizozemí. Užitím geolokaˇcních technologií k filtrování návštˇevníku˚ stránek mohla spoleˇcnost dále pokraˇcovat ve své cˇ innosti v souladu s nizozemským právním systémem [4]. Odhalování podvodu˚ Geolokace pomáhá i pˇri odhalování podvodu. ˚ Elektronické platební systémy používají zjištˇení geografické informace o klientovi k tomu, aby porovnali místo, ze kterého se pˇripojuje, s místem jeho bydlištˇe. Výrazný rozdíl obou údaju˚ muže ˚ být indikátorem pokusu o zneužití platebního systému, napˇríklad phishingovým útokem. Geolokace se stejnˇe tak muže ˚ stát souˇcástí autentizaˇcních mechanismu. ˚ Boj proti spamu Kontroverzní je využití geolokace v boji proti spamu. Spammeˇri se uchylují do zemí, které nemají vyvinutou legislativu boje proti spamu. Úkolem geolokace je detekovat datové pˇrenosy z takových zemí, pˇrenesená data jsou pak oznaˇcována jako podezˇrelá nebo rovnou mazána. To však s sebou nese riziko, že jako spam budou identifikovány i bˇežné datové pˇrenosy. 11
ˇ 3.4. BEZPE CNOST A SOUKROMÍ Další možnosti využití Možnosti nasazení geolokace jsou široké, v praxi se osvˇedˇcilo napˇríklad lokální licencování. O využití geolokace v oblasti vymáhání práva pojednává [15]. Pro správce webových stránek je zajímavé vést si statistiky návštˇevnosti podle geografického umístˇení návštˇevníku [16]. Praktická cˇ ást této práce se zabývá vývojem nástroje využívajícího geolokaci v oblasti monitorování sít’ového provozu.
3.4 Bezpeˇcnost a soukromí V souvislosti s využíváním geografické lokalizace IP adres vyvstává otázka, jak moc geolokace zasahuje do informaˇcního soukromí. Obecnˇe mužeme ˚ rˇ íci, že soudobé metody geolokace nepˇredstavují bezpeˇcnostní riziko pro uživatele a jeho soukromí. Jednak geografická lokalizace není pˇresná, údaje o geografické pozici jsou cˇ asto poskytovány dobrovolnˇe a geolokaˇcní software lze snadno oklamat. Nejprve je tˇreba zmínit pˇresnost geolokace. Nejpˇresnˇejší geografickou lokalizaci muže ˚ poskytnout jen sám uživatel, v takovém pˇrípadˇe tak cˇ iní dobrovolnˇe a mˇel by si být vˇedom následku. ˚ Uživatel muže ˚ být lokalizován nedobrovolnˇe, ale metody geolokace ani údaje v geolokaˇcních databázích v souˇcasné dobˇe nejsou natolik pˇresné, aby dokázali spolehlivˇe urˇcit konkrétní místo. Je možné urˇcit, s urˇcitou mírou tolerance, ve kterém mˇestˇe se uživatel nachází. V rámci mˇesta je pak konkrétní uživatel stále anonymní. Uživatelé v menších sídlech jsou pak vˇetšinou lokalizováni podle adresy poskytovatele internetového pˇripojení, který cˇ asto sídlí ve vˇetších mˇestech. Takový uživatel se pak skrývá v množinˇe klientu˚ ISP. Výchozí informací, která má sloužit ke geografické lokalizaci, je IP adresa. Úspˇešnost geolokace tak pˇrímo závisí na tom, pod jakou IP adresou je uživatel viditelný. Nepˇreje-li si uživatel, aby byl jakkoliv spojován se svou lokalitou, pak staˇcí použít proxy.
12
Kapitola 4
Pˇrehled geo-IP software V této kapitole je podán orientaˇcní pˇrehled geolokaˇcního software pro urˇcení geografické informace na základˇe IP adresy. Výˇcet se nesnaží být úplný, spíše je kladen duraz ˚ na ruz˚ norodost a možnosti takového software. S ohledem na využití geolokaˇcních služeb nás zajímá dostupnost služby, rychlost zpracování dotazu a pˇresnost lokace. Hodnotícím kritériem muže ˚ být i forma výstupu takové služby a možnosti využití služby pro hromadné zpracování dat. Spoleˇcným rysem geolokaˇcního software je používání geolokaˇcních databází, poskytovanou službou je dotaz na databázi. Geolokaˇcní služby poskytují ruzná ˚ rozhraní pro dotazování, at’ už se jedná o samostatnou aplikaci, webové rozhraní, nebo API (Application Programming Interface) v ruzných ˚ programovacích jazycích. Vstupem bývá uživatelem zadaná IP adresa, nˇekteré služby dovolují i vyhledávání podle doménového jména, u webových služeb bývá obvykle i možnost lokace IP adresy návštˇevníka webové stránky. Výstupy se naopak výraznˇe liší jak formou, tak obsahem. Uživatel muže ˚ dostat odpovˇed’ ve formˇe cˇ istého textu, ve formátu XML, nebo v pamˇet’ových strukturách programovacího jazyka. Obsahem jsou pak geografické informace o zadané IP adrese, nejˇcastˇeji zemˇe, region, mˇesto a zemˇepisné souˇradnice spojené se zadanou IP adresou. Tyto údaje mohou být doplnˇeny o cˇ asovou zónu, aktuálním cˇ asem a poštovním smˇerovacím cˇ íslem. Uživatelsky vdˇecˇ ným výstupem je vyznaˇcení lokality na mapˇe, se kterým je možné se setkat u nˇekterých webových služeb.
4.1 Rozdˇelení služeb Jednotlivé geolokaˇcní služby se od sebe liší v mnoha ohledech, není proto snadné urˇcit rozhodující kritéria pro dˇelení služeb do souvisejících skupin. Orientaˇcnˇe mužeme ˚ geolokaˇcní služby rozdˇelit podle podobných vlastností, s tím, že pro každé rozhodující kritérium získáváme odlišné rozdˇelení. Jako relevantní kritéria, která ovlivnují ˇ chování a možnosti využití služby, jsem vybral tˇri parametry – komerˇcní zázemí, rozhraní a umístˇení databáze. Tyto parametry ovlivnují ˇ pˇresnost a výkon dané služby. 13
ˇ 4.1. ROZD ELENÍ SLUŽEB Komerˇcní zázemí Prvním rozdˇelujícím kritériem je komerˇcní zázemí geolokaˇcní služby, podle kterého rozlišujeme služby komerˇcní a volné. Zatímco komerˇcní poskytovatelé geolokaˇcní službu zpoplatnují, ˇ volné služby nabízí geolokaci volnˇe k použití a profitují z pˇríspˇevku˚ a doprovodných aktivit. Rozdˇelení není striktní, napˇríklad spoleˇcnost Maxmind volnˇe poskytuje geolokaˇcní databázi s omezenou pˇresností a pˇresnˇejší službu nabízí zpoplatnˇenou. •
Komerˇcní služby cˇ asto nabízejí pˇresnˇejší výsledky, což je dáno dlouhodobým profesionálním pˇrístupem k získávání geografických dat. Metody sbˇeru dat jsou však cˇ asto poskytovatelem chránˇeny a uživatel má pˇrístup jen k výsledkum. ˚ Mezi poskytovatele komerˇcních služeb patˇrí napˇríklad prukopníci ˚ geolokace, spoleˇcnosti Geobytes a Quova.
•
Volné služby jdou cestou dobrovolnosti a jsou otevˇreny jak pro vyhledávání, tak pro zápis. Uživatelé se tak mohou podílet na zpˇresnování ˇ výsledku˚ geolokace a provozu služby. Jako zástupce volných služeb uved’me IPInfoDB a Hostip.info.
Rozhraní služby Druhým kritériem pro dˇelení geolokaˇcních služeb je rozhraní, které služba nabízí. Muže ˚ se jednat o speciální software, API nebo webovou službu. Opˇet se nejedná o striktní rozlišení, mnohé služby poskytují uživatelum ˚ kombinaci více pˇrístupu. ˚ •
Speciální software nabízí pˇredevším komerˇcní poskytovatelé geolokaˇcních služeb. Jedná se o desktopové aplikace, zásuvné moduly i dynamické webové stránky. Vˇetšinou jde o software vyvinutý za urˇcitým úˇcelem využití geolokace, od toho se odvíjí i to, jakým zpusobem ˚ jsou geografická data prezentována.
•
API ocení programátoˇri, kteˇrí chtˇejí využít geolokaci ve svých programech. Poskytovatel geolokaˇcní služby nabízí programové rozhraní, geografická data jsou zpˇrístupnˇena voláním funkce. Knihovny a moduly pro ruzné ˚ programovací jazyky poskytuje napˇríklad spoleˇcnost Maxmind.
•
Webové služby poskytují pˇrístup ke vzdáleným databázím. Po zaslání žádosti vrací jako odpovˇed’ strukturovaná data ve formátu XML nebo cˇ istý text. Možnosti využití webových služeb jsou podobné, jako možnosti API, jen s tím rozdílem, že odpovˇedi z webových služeb je tˇreba parsovat. Webovou geolokaˇcní službou je napˇríklad IPInfoDB.
Umístˇení databáze Tˇretím kritériem je umístˇení geolokaˇcní databáze. Ta se muže ˚ nacházet na lokálním úložišti dat u uživatele, nebo v centrálním úložišti poskytovatele služby. 14
4.2. VYBRANÉ SLUŽBY •
Lokální databáze nabízejí rychlejší pˇrístup k datum ˚ a menší závislost na poskytovateli. Jejich nevýhodou je potˇreba aktualizace databáze, chceme-li držet krok s aktuální verzí databáze. Lokální databáze poskytují napˇríklad spoleˇcnosti Maxmind a Software77.
•
Centrální databáze jsou pomalejší díky latenci komunikace mezi uživatelem a úložištˇem dat, naproti tomu aktualizace dat je zajištˇena poskytovatelem. Pˇríkladem služeb s centrální databází jsou webové služby jako IPInfoDB a Hostip.info.
4.2 Vybrané služby Následuje popis vybraných geolokaˇcních služeb a jejich rozhraní. Spoleˇcnost Maxmind je reprezentativním zástupcem komerˇcních geolokaˇcních služeb se širokou nabídkou poskytovaných aplikací geolokace. Naproti tomu služby Hostip.info a Webnet77 jsou spíše komunitní projekty, které byly použity pˇri vývoji geografického pluginu. Maxmind Spoleˇcnost Maxmind [5], založená v roce 2002, se zabývá geolokací a bezpeˇcností IT (využití geolokace pˇri odhalování podvodu˚ s kreditními kartami). Spoleˇcnost nabízí geolokaˇcní databáze a API pro ruzné ˚ programovací jazyky. Databáze je nabízena ve dvou verzích, základní databáze je volnˇe šiˇritelná, za pˇresnˇejší databázi s doprovodnými službami je tˇreba zaplatit. API je poskytováno volnˇe a poskytuje pˇrístup k lokální databázi, proto je tˇreba mít u sebe vlastní kopii databáze. Ukázka použití geolokaˇcního API v jazyce Perl (pˇrevzato z maxmind.com): use Geo::IP; my $gi = Geo::IP->open("/usr/local/share/GeoIP/GeoIPCity.dat", GEOIP_STANDARD); my $record = $gi->record_by_name("24.24.24.24"); print $record->country_code, $record->country_code3, $record->country_name, $record->region, $record->region_name, $record->city, $record->postal_code, $record->latitude, $record->longitude;
Ukázka demonstruje získání záznamu obsahujícího kód zemˇe (dvou- a tˇrípísmenný), zemi, region, mˇesto, poštovní kód a zemˇepisné souˇradnice spojené se zadanou IP adresou. Skript otevˇre geolokaˇcní databázi, vyhledá záznam o adrese 24.24.24.24 a ten vytiskne. 15
4.2. VYBRANÉ SLUŽBY Hostip.info Hostip.info [2] je otevˇrený komunitní projekt spravující geolokaˇcní databázi s webovým rozhraním. Na rozdíl od komerˇcních poskytovatelu˚ geolokaˇcních služeb se Hostip.info snaží získávat data od uživatelu˚ a dobrovolných pˇrispˇevatelu. ˚ Podle webových stránek projektu obsahuje databáze pˇres devˇet milionu˚ záznamu. ˚ Webová služba pˇrijímá požadavky na vyhledávání v databázi jako HTTP adresy s hledanou IP adresou jako parametrem. http://api.hostip.info/get_html.php?ip=174.129.200.54&position=true
Ukázkový pˇríklad vygeneruje odpovˇed’: Country: UNITED STATES (US) City: Seattle, WA Latitude: 47.6218 Longitude: -122.35 IP: 174.129.200.54
Kromˇe cˇ istého textu umí webová služba generovat i výstup ve formátu XML. Webnet77 Webnet77 [17] nabízí, kromˇe webhostingových služeb, volnˇe k užití geolokaˇcní databázi. Kromˇe samotné databáze, kterou je možné stáhnout samostatnˇe, nabízí i moduly pro nˇekolik programovacích jazyku. ˚ Webnet77 vˇenuje prostor i pˇrispˇevatelum, ˚ kteˇrí se zasloužili o vývoj dalších modulu, ˚ skriptu˚ a knihoven pro další jazyky. Poskytovaná geolokaˇcní databáze uchovává pouze informace o zemi, ve které se hledaná IP adresa nachází, jiné údaje nejsou k dispozici. Ukázka zdrojového kódu v jazyce Perl využívající modul Geo::IPfree (rozhraní geolokaˇcní databáze Webnet77): use Geo::IPfree; $geo = Geo::IPfree->new; $geo->Faster; ($code, $name) = $geo->LookUp("24.24.24.24");
Metoda Lookup() vrací kód a jméno zemˇe asociované s hledanou IP adresou v parametru. Za zmínku stojí metoda Faster, která naˇcte celou databázi do pamˇeti, což urychlí vyhledávání vˇetšího množství adres. Databáze je souˇcástí modulu Geo::IPfree a je tedy umístˇena lokálnˇe. Databázi je možné aktualizovat stažením aktuální verze ze stránek poskytovatele.
16
Kapitola 5
NfSen a pluginy NfSen [9] je open-source nástroj distribuovaný pod licencí BSD od autoru˚ NFDUMP tools. Nejedná se o samostatnou aplikaci, ale o nástroj pro zpracování a prezentaci NetFlow dat. ˇ Cinnost NfSenu je závislá na NFDUMP tools a Round Robin Database (RRD), od systému NFDUMP se odvíjí technické specifikace, jako je napˇríklad použitá verze NetFlow protokolu. Ovládání a prezentaci dat zajišt’uje webové rozhraní s intuitivním ovládáním. Rozhraní je pˇrehlednˇe rozdˇeleno do nˇekolika záložek, pod každou z nich nalezneme pˇríslušné ovládací prvky, pˇrehledy dat, grafy a podobnˇe. Alternativnˇe je možné k nástroji pˇristupovat pomocí textových povelu˚ na pˇríkazové rˇ ádce.
5.1 Popis cˇ innosti NfSen NfSen vychází z cˇ innosti balíˇcku NFDUMP tools, konkrétnˇe využívá programu˚ nfcapd a nfdump. První z nich, nfcapd (netflow capture daemon), se stará o zachycení a uložení namˇerˇ ených dat. Pro každý sledovaný exportér musí bˇežet jedna instance nfcapd, která cˇ te data z exportéru a ukládá je do souboru. V pravidelných cˇ asových intervalech, typicky po pˇeti minutách, se vytváˇrí nový binární soubor obsahující data, která byla v daném cˇ asovém intervalu zachycena z exportéru. ˚ Každý soubor nese jméno dané pˇredpisem nfcapd.RRRRMMDDhhmm pro snadné rozlišení záznamu, ˚ napˇríklad soubor nfcapd.200912101345 byl vytvoˇren 10.12.2009 v 13:45. Soubory jsou uloženy v adresáˇrové struktuˇre hierarchicky uspoˇrádané podle roku, mˇesíce a dne vytvoˇrení souboru, staré verze dovolovaly jen uložení všech dat do jednoho adresáˇre. Druhý duležitý ˚ nástroj z NFDUMP tools je nfdump (netflow dump). Pomocí tohoto nᡠje možné stroje je možné cˇ íst již uložená data, filtrovat a formátovat je k dalšímu použití. Císt data z více souboru, ˚ dokonce i když jsou uloženy v ruzných ˚ adresáˇrích. Podstatnou vlastností nástroje nfdump je možnost filtrování dat podle zadaných kritérií. Dále umožnuje ˇ nfdump formátovat výstup a vytváˇret statistiky sít’ového provozu [6].
5.2 Systém pluginu˚ Rozšíˇrení funkcionality nástroje NfSen umožnuje ˇ systém zásuvných modulu. ˚ NfSen rozlišuje dva druhy pluginu, ˚ backendové a frontendové. Backendové pluginy rozšiˇrují možnosti 17
5.3. BACKEND PLUGIN zpracování dat funkcemi volanými na požádání i periodicky spouštˇenými operacemi. Frontendové pluginy jsou souˇcástí webového rozhraní a slouží k ovládání a prezentaci cˇ innosti backendových pluginu. ˚
Obrázek 5.1: Koncept pluginu˚ (zdroj: http://nfsen.sourceforge.net/) Backendový plugin muže ˚ stát samostatnˇe, implementace frontendové cˇ ásti není povinná a mnohé pluginy se bez frontendu obejdou. Frontedový plugin je naopak identifikován podle backendové cˇ ásti, bez které není jeho cˇ innost možná [10].
5.3 Backend plugin Backendové pluginy jsou skripty v jazyce Perl, které rozšiˇrují funkcionalitu nástroje NfSen. Pluginy se naˇcítají pˇri spuštˇení procesu nfsend a jejich cˇ innost je aktivována pravidelným voláním funkcí pro cyklické zpracování dat, nebo voláním z frontendového pluginu. Struktura backendových pluginu˚ by mˇela odpovídat konvencím, obsahuje totiž nˇekolik povinných funkcí a nˇekolik funkcí volitelných. Jedná se o funkce pro inicializaci pluginu, cyklické zpracování dat, nastavení alertu˚ a funkce pro úklid. Backendový plugin musí ve zdrojovém kódu obsahovat své jméno, package PluginName;
cˇ íslo verze NfSenu, pro kterou je plugin urˇcen our $version = 130;
a funkci pro inicializaci pluginu pˇri spuštˇení NfSenu. sub Init { return 1; }
18
5.4. FRONTEND PLUGIN Dále je rezervováno nˇekolik jmen funkcí pro další úˇcely: •
sub Cleanup, funkce pro úklid
•
vsub Run, funkce volaná pˇri periodickém zpracování dat
•
sub alert_condition, funkce pro nastavení alertu
•
sub alert_action, funkce, která je volána spuštˇením daného alertu
Návratové hodnoty výše uvedených funkcí vˇetšinou nehrají roli. Výjimkou je funkce Init, u které návratová hodnota 0 znaˇcí, že plugin bude neaktivní. Jsou-li v pluginu implementovány funkce pro periodické zpracování dat, nemˇela by doba jejich bˇehu pˇrekroˇcit únosnou mez (typicky by všechny periodicky volané funkce mˇeli ukonˇcit svuj ˚ bˇeh do pˇeti minut). Konfiguraˇcní soubor NfSenu dovoluje každému pluginu pˇriˇradit uživatelské parametry pomocí pole %PluginConf: %PluginConf = ( PluginName => { parameter => value, } )
K uživatelským parametrum ˚ pak plugin pˇristupuje pˇres funkce balíˇcku NfConf. Use NfConf; my $conf = $NfConf::Pluginconf(PluginName); my $parameter = $$conf(´parameter´);
[10]
5.4 Frontend plugin Frontendové pluginy rozšiˇrují funkcionalitu webového rozhraní nástroje NfSen. Jsou to dynamické webové stránky napsané v jazyce PHP, ke kterým lze pˇristupovat pˇres položku Plugins v menu webového rozhraní. Frontendový plugin je identifikován jménem backendového pluginu, takže NfSen nerozpozná frontendový plugin, pokud neexistuje backendový plugin stejného jména. Implementace frontendového pluginu není povinná. Povinnou souˇcástí frontendového pluginu jsou funkce <jmeno_pluginu>_ParseInput a <jmeno_pluginu>_Run. Frontendový plugin se spouští výbˇerem záložky se jménem pluginu v menu nástroje NfSen. Nejdˇríve se spustí funkce <jmeno_pluginu>_ParseInput, která zpracuje vstupní parametry a muže ˚ nastavit ruzná ˚ hlášení a chybové zprávy. Pak dojde k zaslání hlaviˇcky stránky, vykreslení menu nástroje NfSen a zobrazení hlášení nastavených funkcí <jmeno_pluginu>_ParseInput. Poté se spouští funkce <jmeno_pluginu>_Run, která provádí vlastní cˇ innost frontendového pluginu, tedy komunikaci s backendovým pluginem a prezentaci jeho cˇ innosti. Návratová hodnota obou zmínˇených funkcí je ignorována. Pˇri návrhu frontendových pluginu˚ se doporuˇcuje držet se nˇekolika konvencí: 19
˚ 5.5. KOMUNIKACE PLUGIN U •
Názvy funkcí by se mˇeli držet vzoru <jmeno_pluginu>_NazevFunkce, pˇredchází se tím konfliktum ˚ s jinými pluginy a interními funkcemi NfSenu.
•
Každému pluginu je pˇri spuštˇení NfSenu pˇriˇrazeno unikátní ID pro vnitˇrní potˇrebu a rozlišení od ostatních pluginu. ˚ Používáním tohoto ID, pˇrístupného pˇres promˇennou $plugin_id, se opˇet dá pˇredejít kolizím.
•
Parsování formuláˇru˚ obstará funkce ParseForm, je doporuˇceno ji používat.
Zpracování formuláˇru˚ je možné rˇ ešit pomocí interních funkcí NfSenu. Nejprve se definuje pole $parse_opts obsahující informace o parsovaných datech. Ke každé parsovatelné promˇenné jsou pˇriˇrazeny údaje o tom, zda je promˇenná vyžadována, jaká je její implicitní hodnota a zda je povolena nedefinovaná hodnota. Dalším parametrem je vzor akceptovaných hodnoty (ve formˇe regulárního výrazu, výˇctu prvku˚ nebo rozmezí hodnot), výˇcet uzavírá odkaz na pˇrípadnou další validaˇcní funkci. Pole vypadá takto: $parse_opts = array ( "variable_name" => "required" => "default" => "allow_null" => "match" => "validate" => ), );
array( 0, "defaultname", 0, NULL, NULL
Zpracování vstupu˚ probˇehne voláním funkce ParseForm. list ($process_form, $has_errors) = ParseForm($parse_opts);
Tato funkce vrací zpracovaná data pˇrístupné pˇres asociativní pole $process_form a promˇennou $has_errors, která indikuje chybu pˇri zpracování [10].
5.5 Komunikace pluginu˚ Pro úˇcely prezentace dat, kterou zajišt’uje webové rozhraní a frontendové pluginy, je tˇreba zajistit možnost komunikace mezi frontendovou a backendovou cˇ ástí aplikace. NfSen poskytuje socket a rozhraní pro komunikaci pluginu. ˚ V souboru nfsenutil.php jsou definovány komunikaˇcní funkce pro frontendovou cˇ ást aplikace, backendová cˇ ást používá funkce definovaném v modulu Nfcomm.pm. Pˇred samotným použitím komunikaˇcních funkcí je tˇreba v backendovém pluginu definovat pole %cmd_lookup. V tomto poli jsou pˇríkazum ˚ pˇriˇrazeny odpovídající funkce backendového pluginu. Pole vypadá takto: our %cmd_lookup = ( ’command’ => \Function, )
20
˚ 5.5. KOMUNIKACE PLUGIN U Frontendový plugin pak muže ˚ volat funkce backendového pluginu použitím funkce nfsend_query definované v souboru nfsenutil.php. Prvním parametrem je textový rˇ etˇezec obsahující jméno pluginu a volaný pˇríkaz oddˇelené dvˇema dvojteˇckami. Druhým parametrem jsou pˇredávaná data. Výstupem jsou data odeslaná backendovým pluginem, nebo 0 v pˇrípadˇe neúspˇechu. $output = nfsend_query("pluginname::command", $opts);
Volaný pˇríkaz spouští funkci asociovanou v poli %cmd_lookup. Tato funkce si uloží identifikátor spojení a pˇredávaná data: sub Function { my $socket = shift; my $opts = shift; }
Backendový plugin posílá pˇres socket odpovˇed’ frontendovému pluginu pomocí funkce Nfcomm::socket_send_ok. První parametr je identifikátor spojení získaný pˇri volání funkce, druhý parametr je hash posílaných dat. Nfsend::socket_send_ok($socket, \%data);
V pˇrípadˇe chyby je možné poslat frontendovému pluginu chybové hlášení pomocí funkce Nfsend::socket_send_error. Nfsend::socket_send_error($socket, "error message");
[10]
21
Kapitola 6
Vývoj geografického pluginu Praktickou cˇ ást práce tvoˇrí vývoj pluginu pro nástroj NfSen. Motivací je snaha o získání a znázornˇení geografických informací o provozu na sledované síti. Plugin by z uložených dat o sít’ových tocích extrahoval IP adresy, urˇcoval jejich geografické umístˇení a získané údaje by graficky prezentoval. Plugin by mˇel dále vytváˇret statistiky pro urˇcitá období a na požádání je prezentovat, stejnˇe tak, jako by mˇel na požádání zpracovat vybrané cˇ asové období. Plugin jsem, podle jeho úˇcelu, pojmenoval geoplugin. Požadavky na plugin mužeme ˚ shrnout do nˇekolika bodu: ˚ •
cˇ tení záznamu˚ sít’ových toku˚ a extrahování IP adres,
•
získání geografických informací o IP adresách,
•
prubˇ ˚ ežné vytváˇrení statistik pro cˇ asové období,
•
ovládání pomocí webového rozhraní,
•
grafická reprezentace geografických dat.
Pˇrínosem geopluginu bude nový pohled na záznamy sít’ových toku. ˚ Grafická reprezentace výsledku˚ pˇrispˇeje k zpˇrehlednˇení monitorované komunikaˇcní dráhy pro lidského pozorovatele. Namísto strohých záznamu˚ IP adres uvidí uživatel vizuálnˇe zpracovaný pˇrehled geografických lokalit, ve kterých se nachází úˇcastníci sít’ové komunikace. Geografická data poslouží jako podklad pro správce sítí, napˇríklad pˇri jejím dalším plánování a rozvoji. Geoplugin poskytne údaje vhodné k profilování uživatelu˚ a ukáže na konkrétní lokality, odkud se pˇripojují uživatelé. To muže ˚ pomoci pˇri zkvalitnování ˇ a cílení služeb sítˇe.
6.1 Analýza a návrh ˇ Cinnost geopluginu se odehrává ve dvou rovinách, jednou je automatické zpracování dat a vytváˇrení statistik, druhou je zpracování požadavku˚ uživatele a prezentace geografických informací. Tím jsou vymezeni dva aktéˇri spouštˇející geoplugin, NfSen a uživatel. NfSen v pravidelných intervalech spouští periodické zpracování právˇe namˇerˇ ených záznamu˚ IP toku, ˚ výsledky této cˇ innosti jsou uloženy do prubˇ ˚ ežných statistik. Uživatel má na výbˇer zobrazení statistik nebo geolokaci vybraných záznamu˚ sít’ových toku. ˚ Náhled na fungování geopluginu podává diagram datových toku. ˚ 22
6.2. BACKEND PLUGIN
Obrázek 6.1: Diagram datových toku˚ Volba programovacího jazyka a struktura pluginu se odvíjí od požadavku˚ nástroje NfSen. Stejnˇe tak je plugin rozdˇelen na dvˇe cˇ ásti, backend a frontend, které se drží konceptu pluginu˚ pro NfSen. Backendový plugin samostatnˇe zajišt’uje cˇ tení záznamu, ˚ vlastní geolokaci, periodické zpracování a vytváˇrení statistik. Oproti tomu frontendový plugin slouží jako uživatelské rozhraní pro ovládání a grafickou prezentaci dat. O struktuˇre, vývoji a du˚ ležitých implementaˇcních detailech obou cˇ ástí pluginu pojednávají následující podkapitoly. Obˇe cˇ ásti geopluginu sdílí geografická data. Pˇresto, že je možné provádˇet geolokaci na detailnˇejší úrovni, pro úˇcely geopluginu postaˇcuje geolokace na úrovni státu. Geoplugin tak zjišt’uje, z jakých zemí pochází IP adresy získané ze záznamu˚ o sít’ových tocích. Služby geolokace na úrovni státu jsou v souˇcasné dobˇe dostateˇcnˇe pˇresné, mají dobrou vypovídací hodnotu a rˇ adu praktických využití. Detailnˇejší geolokace pˇrináší vˇetší nároky na zpracování dat a je otázkou, zda se vyplatí. Ke každé zjištˇené geografické lokalitˇe geoplugin zaznamenává poˇcet sít’ových toku, ˚ které z ní pochází.
6.2 Backend plugin Backendový plugin je modul v jazyce Perl, který se drží pˇredepsané struktury dané nástrojem NfSen. Kromˇe povinných prvku˚ backendového pluginu bylo tˇreba implementovat tˇri funkce obstarávající vlastní cˇ innost geopluginu. Duležité ˚ implementaˇcní detaily jsou periodické zpracování dat ve funkci run, vlastní geolokace, komunikace s frontendovou cˇ ástí pluginu a ukládání prubˇ ˚ ežných statistik. Funkce run je pravidelnˇe spouštˇena nástrojem NfSen a zajišt’uje periodické zpracování dat. NfSen volá tuto funkci s parametry, které udávají právˇe aktivní profil a cestu k poslednˇe uloženým záznamum ˚ sít’ových toku. ˚ Ze záznamu˚ jsou extrahovány IP adresy, které jsou poté geograficky lokalizovány (urˇcuje se, v jakém státˇe se která adresa nachází). Výsledky jsou zapisovány do statistik. Funkce RunGeo a RunStat jsou volány frontendovou cˇ ástí pluginu na pˇrání uživatele. RunStat cˇ te prubˇ ˚ ežné statistiky a frontendovému pluginu zasílá data aktuálnˇe uložená ve 23
6.2. BACKEND PLUGIN statistikách. RunGeo má na starost geolokaci uživatelem zvolených záznamu, ˚ jako parametr bere cˇ asový údaj, podle kterého vyhledá záznamy v té dobˇe vytvoˇrené. IP adresy získané ze záznamu˚ jsou lokalizovány a pˇrehled výsledku˚ je poslán frontendové cˇ ásti pluginu. Použití nástroje nfdump Pˇred samotnou geolokací je tˇreba pˇreˇcíst vybrané záznamy sít’ových toku˚ a vybrat z nich relevantní informace. O cˇ tení NetFlow záznamu˚ se stará program nfdump, který byl použit i pˇri vývoji zásuvného modulu. Nástroj nfdump umožnuje ˇ podat výstupy na míru pˇrání uživatele pomocí pˇrepínaˇcu, ˚ filtru˚ a formátování. Ukázka volání programu nfdump (pˇrevzato z funkce run backendové cˇ ásti pluginu) vypadá takto: nfdump -M /path/to/sources -r nfcapd.timeslot -A srcip -o "fmt:%sa %fl"
Toto volání vypíše seznam zdrojových adres a objem datových pˇrenosu˚ z nich. Zajímavé pˇrepínaˇce jsou -A srcip, který agreguje toky se stejnou výchozí adresou, -o "fmt:%sa %fl", který urˇcuje formát výstupu. V textovém výstupu je na každém rˇ ádku IP adresa a množství sít’ových toku, ˚ které jsou dále zpracovávány. Výbˇer geolokaˇcní služby Pˇredpokladem dobrého fungování geopluginu je výbˇer vhodné geolokaˇcní služby. Pˇrednost dostaly volné služby s webovým rozhraním, v úvahu pˇricházely i volné služby s lokální databází, komerˇcní služby nebyly preferovány. Použití webové služby neklade na uživatele nutnost instalace dalšího software a odpadá starost o aktuálnost geolokaˇcní databáze. Nejprve byla zvolena webová služba Hostip.info [2]. Bˇehem testování se ukázalo, že webové služby jsou pomalé a proto nevhodné pro zpracování vˇetšího množství dat v krátkém cˇ ase. Služba Hostip.info byla poté doplnˇena Perlovým modulem Geo::IPfree, který disponuje lokální databází Webnet77 [17]. Obˇe služby jsou podrobnˇeji popsány v 4.2. Prubˇ ˚ ežné statistiky Geoplugin ukládá výsledky periodicky volané funkce run do databáze. Uložená data jsou pˇrístupná voláním funkce RunStat. Celkem jsou ukládány tˇri soubory, z nichž do dvou zapisuje funkce run. Jedná se o soubory today.db, ve kterém jsou uloženy záznamy za aktuální den, a total.db, do kterého se zapisují data za celou dobu fungování pluginu. V posledním souboru, yesterday.db, jsou uloženy záznamy za pˇredcházející den. Použitým databázovým systémem je DBM v implementaci Berkeley DB. Jedná se o jednoduchou a rychlou databázi, k práci s ní postaˇcují jen nástroje jazyka Perl [14]. Obsahem každého souboru je asociativní pole obsahující kódy zemí jako klíˇce a k nim pˇriˇrazené poˇcty unikáních IP adres, které byly v dané zemi pluginem nalezeny. Vždy o pulnoci ˚ dochází ke smazání záznamu za vˇcerejšek a jeho nahrazení záznamem za daný den. Záznamy daného dne se zaˇcnou tvoˇrit od nuly. 24
6.3. FRONTEND PLUGIN
6.3 Frontend plugin Frontendový plugin je souˇcástí webového rozhraní nástroje NfSen, jeho úkolem je poskytovat uživatelské rozhraní a prezentovat geografická data. Pˇri vývoji frontendových pluginu˚ je tˇreba držet se volby jazyka a struktury pˇredepsané nástrojem NfSen. Frontend je tedy napsán v jazyce PHP a implementuje dvˇe povinné funkce, geoplugin_ParseInput a geoplugin_Run. Funkce geoplugin_ParseInput zpracovává data z formuláˇru˚ za pomoci interní funkce ParseForm, pole $parse_opts obsahuje parametry zpracovávaných promˇenných. Vlastní cˇ innost frontendového pluginu vykonává funkce geoplugin_Run, vykresluje ovládací prvky a na základˇe parametru˚ z formuláˇru˚ volá backendový plugin, od kterého získává geografická data. Prezentace dat je vyˇclenˇena v samostatné funkci geoplugin_show, která je z geoplugin_Run volána. Ovládací prvky Ovládací prvky geografického pluginu dovolují uživatelum ˚ vybrat data pro geolokaci a prezentaci. Všechny ovládací prvky byly zahrnuty do jednoho webového formuláˇre a jejich zpracování obstarává funkce ParseForm. Duležitým ˚ prvkem je check-box, kterým se vybírá mezi zobrazením statistik a geolokací uživatelem definovaných dat.
Obrázek 6.2: Ovládací prvky geopluginu Pˇri výbˇeru geolokace uživatelem vybraných dat je nejduležitˇ ˚ ejší ovládací prvek výbˇeru cˇ asového okna. To zajišt’ují dvˇe instance PopCalendarXP [11], grafického vysunovacího kalendáˇre napsaného v jazyce JavaScript. První udává poˇcátek cˇ asového okna, ze kterého se budou zpracovávat záznamy, druhý jeho konec. Pokud není konec cˇ asového okna vyplnˇen, dojde ke zpracování pouze jednoho datového souboru vytvoˇreného v cˇ ase zadaném prvním kalendáˇrem. Prezentace geografických dat Zásadní funkcí frontendového pluginu je prezentace geografických informací. Geografická data je možné prezentovat více zpusoby, ˚ vypsat do tabulky, vytvoˇrit koláˇcový cˇ i sloupcový graf a vykreslit mapu. V souladu s prezentovanými daty se jeví vykreslení mapy jako vizuálnˇe nejpˇritažlivˇejší a uživatelsky pˇrívˇetivá možnost zobrazení dat. Ruzné ˚ možnosti repre25
6.4. TESTOVÁNÍ zentace geografických informací rozebírá [16]. Geoplugin používá dva zpusoby ˚ prezentace dat, dynamicky generovanou mapu a výpis tabulky nejˇcastˇeji se vyskytujících geografických lokací. Tabulka podává pˇrehled nejvýše deseti lokací seˇrazených sestupnˇe podle objemu pˇrenesených dat. Mapa zobrazuje všechny nalezené geografické lokace zanesené na podkladˇe mapy svˇeta. Každému místu je pˇriˇrazena hodnota, která udává objem pˇrenesených dat. V závislosti na velikosti datového pˇrenosu dochází ke zvýraznˇení lokality na mapˇe. Zemˇe s vˇetším podílem pˇrenesených dat jsou vybarveny sytˇejší barvou, v pˇrípadˇe geolokace na úrovni mˇesta jsou jednotlivá sídla vyznaˇcena kruhem velikosti a barvy odpovídající podílu pˇrenesených dat. Generování mapy zajišt’uje Geomap [1], služba z balíku Google Visualization API. Jedná se o rozhraní pro vizualizaci v jazyce JavaScript, které vykresluje obrysovou mapu a na ní vyznaˇcuje zadaná území cˇ i lokality. Rozhraní umožnuje ˇ výbˇer podkladové mapy (mapa svˇeta, kontinentu˚ cˇ i jednotlivých zemí), vynášených lokalit (státy svˇeta, nebo zemˇepisné souˇradnice) a použitých barev. Geoplugin používá mapu svˇeta, zobrazování státu˚ a barevnou škálu pro grafické rozlišení lokalit podle daných hodnot.
6.4 Testování Testování geografického pluginu mˇelo za cíl odhalit chyby a pˇripravit plugin pro reálné nasazení. Bylo tˇreba ovˇerˇ it, zda správnˇe funguje periodické zpracování dat, vytváˇrení prubˇ ˚ ežných statistik a prezentace získaných výsledku. ˚ Testována byla i schopnost pluginu zpracovat velké množství dat. Velkým problémem se ukázal výbˇer geolokaˇcní služby. Webová služba Hostip.info fungovala spolehlivˇe a s dostateˇcnou pˇresností, ale zpracování požadavku˚ bylo pˇríliš pomalé. Pro geolokaci malého množství toku˚ je služba ideální, odpadá starost o aktuálnost databáze a uživatel nepotˇrebuje žádný další software, navíc zvládá i geolokaci na úrovni mˇesta (se souˇradnicemi). Dotazování na vˇetší množství IP adres ale bylo pomalé, zpracování tisíce adres trvalo pˇres dvˇe minuty, což není vhodné pro periodické zpracování toku˚ o nˇekolika tisících adresách. Služba Hostip.info byla proto doplnˇena perlovským modulem Geo::IPfree s lokální databázi Webnet77. Uživatel pak dostal možnost nastavit v konfiguraˇcním souboru, kterou službu chce používat. Za zmínku stojí cˇ asto se vyskytující údaj oznamující umístˇení IP adresy v Evropské unii. V pˇrípadech, kdy se nepodaˇrilo dané adrese pˇresnˇe zjistit zemi puvodu, ˚ spokojily se geolokaˇcní služby s tím, že se adresa nachází v EU. To však zpusobilo ˚ mírné komplikace pˇri prezentaci dat. Evropskou unii nešlo rozumným zpusobem ˚ znázornit na použité mapˇe a navíc údaj o poˇctu adres z EU ovlivnoval ˇ barevnou škálu rozlišující jednotlivé zemˇe podle poˇctu IP toku. ˚ Hodnota pro EU tak byla vyškrtnuta z dat pro generování mapy, v záznamech a v tabulce ji však uvidíme.
26
Kapitola 7
Nasazení pluginu V této kapitole jsou popsány zkušenosti a výsledky NfSen pluginu s názvem geoplugin. Nasazení geopluginu volnˇe navazovalo na jeho testování a cˇ ásteˇcnˇe se s ním pˇrekrývalo. Otázkou bylo, jak bude geoplugin schopen zpracovávat velké množství dat. Už bˇehem testování vyšlo najevo, že dotazování se webové geolokaˇcní služby je pˇríliš pomalé pro zpracování záznamu˚ obsahujících rˇ ádovˇe tisíce adres, proto se bˇehem nasazení používala lokální databáze.
7.1 Nasazení Geoplugin byl nasazen na stroji nftest.ics.muni.cz. Kolektor NfSen, který se na tomto stroji nachází ve verzi 1.3.2, zpracovává sít’ové toky ze cˇ tyˇr kanálu: ˚ •
10GE spojení MU <-> Cesnet (anonymizováno),
•
1GE z/do FI (anonymizováno),
•
1GE z/do koleje Vinaˇrská (anonymizováno),
•
1GE z/do nftest.ics.muni.cz (neanonymizováno).
Všechny kanály monitorují reálných sít’ový provoz, data z prvních tˇrí kanálu˚ jsou anonymizována. Díky tomu není možné vyˇcíst ze záznamu˚ citlivé informace, anonymizace však zachovává charakteristiku a objem pˇrenesených dat. Poslední kanál sleduje sít’ový provoz samotného stroje, tyto údaje nejsou anonymizovány. Plugin byl nasazen po dobu nˇekolika dní, bˇehem kterých probíhalo periodické zpracování namˇerˇ ených dat a vytváˇrení prubˇ ˚ ežných statistik. Dále byla provádˇena geolokace vybraných záznamu˚ sít’ových toku. ˚
7.2 Výsledky Anonymizace NetFlow dat výraznˇe zkreslila geografickou lokalizaci, proto namˇerˇ ené výsledky neodpovídají skuteˇcnému provozu. Pˇredevším je tˇreba si uvˇedomit, že anonymizace pozmˇenila velké množství IP adres, které slouží jako výchozí údaj pro geolokaci. Tím se ke zpracování dostalo mnoho více cˇ i ménˇe náhodných adres, které se puvodního ˚ provozu neúcˇ astnily. Takové adresy pak byly lokalizovány v ruzných ˚ státech svˇeta, cˇ ímž se do výsledku˚ 27
7.2. VÝSLEDKY dostaly i zemˇe spíše exotické. Stejnˇe tak není z anonymizovaných dat vidˇet skuteˇcný pomˇer sít’ových toku˚ vedených z ruzných ˚ státu. ˚ Na prvním obrázku (7.1) je vidˇet výstup cˇ innosti geopluginu pˇri geolokaci uživatelem vybraného záznamu sít’ových toku. ˚ Geoplugin pˇreˇcetl NetFlow záznamy uložené v uživatelem zadaném cˇ ase a lokalizoval zdrojové adresy sít’ových toku. ˚ Na mapˇe je vyznaˇceno, kolik IP toku˚ vedlo z kterého státu. Napravo od mapy je tabulka udávající deset zemí s nejvˇetším poˇctem lokalizovaným adres. První místo v tabulce zaujímá hodnotu „EU“, tedy adresy lokalizované v rámci Evropské unie bez bližšího upˇresnˇení. Tento záznam nebyl zpracován pˇri tvorbˇe mapy, jinak by ovlivnil barevnou škálu rozlišující zemˇe podle množství toku. ˚ V tabulce je však poˇcet takto lokalizovaných toku˚ uveden.
Obrázek 7.1: Snímek obrazovky Druhý obrázek (7.2) zobrazuje statistiku geografické lokalizace provádˇené periodicky nad právˇe vytváˇrenými NetFlow daty. Statistika zahrnuje výsledky zpracování záznamu˚ za daný den. První místo v tabulce cˇ etnosti toku˚ opˇet zaujímají toky lokalizované v Evropské unii bez bližšího umístˇení. Tabulku uzavírá poˇcet toku, ˚ které nebylo možné lokalizovat. Jedná se pˇredevším o adresy místních podsítí (192.168.x.x a podobnˇe), jejich poˇcet je v anonymizovaných datech pomˇernˇe nízký, na rozdíl od reálných záznamu, ˚ kde se vyskytují cˇ astˇeji. Nasazení geopluginu se ukázalo jako úspˇešné a splnilo tak oˇcekávání. Potvrdilo se, že geoplugin je schopen pracovat i na sítích s velkým množstvím IP toku, ˚ které znamená zvý28
7.2. VÝSLEDKY
Obrázek 7.2: Snímek obrazovky šenou zátˇež pˇri zpracování. Prubˇ ˚ ežné zpracování dat a vytváˇrení statistik pracovalo tak, jak mˇelo. Prezentace získaných výsledku˚ probíhala bez komplikací a celková geolokace odpovídala tomu, že se jedná o zpracování anonymizovaných dat. Pˇresnost geografické lokalizace závisela na použité geolokaˇcní službˇe.
29
Kapitola 8
Závˇer Ve své práci jsem se nejprve seznámil s metodou monitorování poˇcítaˇcových sítí pomocí IP toku. ˚ Úvodní kapitolu jsem vˇenoval pˇredstavení sít’ových toku˚ a technologie NetFlow, její architektury a používaných nástroju. ˚ Poté jsem se zabýval vztahem IP adresy a jejího umístˇení a možnostmi geografické lokalizace IP adres. V pˇríslušné kapitole své práce jsem popsal vybrané metody geolokace a její využití. Zmínil jsem a rozebral bezpeˇcnostní aspekty využívání geografické lokalizace vˇcetnˇe ochrany soukromí. V další kapitole jsem podal pˇrehled geolokaˇcního software. Provedl jsem rozdˇelení geolokaˇcních služeb podle urˇcitých parametru˚ a popsal jednotlivé skupiny služeb. Vybrané služby jsem popsal podrobnˇeji pro úˇcely dalších cˇ ástí práce. Následující kapitolu jsem vˇenoval popisu NetFlow kolektoru NfSen a možnostem jeho rozšíˇrení o zásuvné moduly. Cílem praktické cˇ ásti práce byla implementace zásuvného modulu pro kolektor NfSen, který by získával a reprezentoval geografické informace o IP tocích. Tento cíl jsem splnil a v pˇríslušné kapitole jsem popsal návrh, vývoj a testování modulu s názvem geoplugin. Poté, co jsem zásuvný modul vytvoˇril a otestoval, byl geoplugin nasazen v reálných podmínkách, o cˇ emž pojednává poslední kapitola. Ukázalo se, že geoplugin zvládá nasazení v reálném provozu a to i pˇri velkém množství zpracovávaných dat. Pˇresnost geografické lokalizace závisí na použité geolokaˇcní službˇe. Výsledky, které plugin poskytuje, je možné zpˇresnit pouze zámˇenou geolokaˇcní služby, pˇresnˇejší služby jsou však pˇrevážnˇe poskytované na komerˇcní bázi. Rovnˇež tak je možné provádˇet geolokaci na nižší úrovni, to ale vyžaduje odpovídající geolokaˇcní databázi. Geoplugin je základním geolokaˇcním nástrojem pro lokalizaci zdrojových nebo cílových adres. V budoucnu muže ˚ posloužit jako základ pro vývoj pokroˇcilejších nástroju, ˚ které by mohly lokalizovat jak cílovou, tak zdrojovou lokalitu. Celé sít’ové toky by pak bylo možné prezentovat jako spojnice dvou lokalit na mapˇe.
30
Literatura [1] Visualization: Geomap - Google Chart Tools / Interactive Charts (aka Visualization API) - Google Code, Google Inc., 21.5.2010,
. 6.3 [2] My IP Address Lookup and GeoTargeting - Community Geotarget IP Project, Hostip.info, 21.5.2010, . 4.2, 6.2 [3] Krmíˇcek, V.: Analýza sít’ového provozu pomocí NetFlow s využitím platformy karet COMBO, Masarykova univerzita, Fakulta informatiky, 2006, . 2 [4] Quova Inc.: Using IP Geolocation to Enforce Internet Gaming Regulations, Quova Inc., 21.5.2010, . 3.3 [5] MaxMind - GeoIP, Maxmind, 21.5.2010, . 4.2 [6] Elich, M.: Rozšíˇrení NetFlow kolektoru NfSen o detekci sít’ových anomálií, Masarykova univerzita, Fakulta informatiky, 2009, . 2.4, 5.1 [7] Muir, J. a van Oorschot, P.: Internet Geolocation and Evasion, Carleton University, School of Computer Science, April 2006, Technical Report TR-0605 . 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1 [8] NFDUMP: NFDUMP - NetFlow processing tools, sourceforge.net, 21.5.2010, . 2.3, 2.3 [9] NfSen: NfSen - NetFlow Sensor, sourceforge.net, 21.5.2010, . 5 [10] NfSen: NfSen Plugin Writers Guide, sourceforge.net, 21.5.2010, . 5.2, 5.3, 5.4, 5.5 [11] PopCalendarXP, Idemfactor Solutions Inc., 21.5.2010, . 6.3 [12] Davis, C. a Vixie, P. a Goodwin, T. a Dickinson, I.: A Means for Expressing Location Information in the Domain Name System - RFC 1876, The Internet Society, January 1996, . 3.1 [13] Valluri, V. a Djernaes, M. a Sadasivan, G. a Claise, B.: Cisco Systems NetFlow Services Export Version 9 - RFC 3954, The Internet Society, 2004, . 2.1 31
[14] Satrapa, P.: Perl pro zelenáˇce, Neocortex, 2001, 80-86330-02-8. 6.2 [15] Svantesson, D.: Geo-location Technologies - A Brief Overview. In Cyberspace 2004: Normative Framework, Masarykova univerzita, 2005, 80-210-3690-7, . 3.3 [16] Svoboda, L.: Possibilities of visualisation geolocation of web pages visitors. In Sborník sympozia GIS Ostrava 2009, VŠB – TU Ostrava, 2009, ISBN 978-80-8729400-0, . 3.3, 6.3 [17] IP To Country aggregating software, Webnet77, 21.5.2010, . 4.2, 6.2 [18] Wikipedie: NetFlow, Wikipedia, The Free Encyclopedia, 21.5.2010, . 2.1, 2.2
32
Pˇríloha A
Obsah pˇriloženého CD •
Text práce ve formátu PDF.
•
Balík geoplugin obsahující zdrojové kódy.
•
Návod k instalaci.
•
Uživatelská dokumentace.
33