Vysoke´Ucˇenítechnicke´V Brneˇ
Total Page:16
File Type:pdf, Size:1020Kb
CORE Metadata, citation and similar papers at core.ac.uk Provided by Digital library of Brno University of Technology VYSOKE´ UCˇ ENI´ TECHNICKE´ V BRNEˇ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMACˇ NI´CH TECHNOLOGII´ U´ STAV POCˇ ´ITACˇ OVY´ CH SYSTE´ MU˚ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMS DETEKCE DYNAMICKY´ CH SI´TˇOVY´ CH APLIKACI´ DIPLOMOVA´ PRA´ CE MASTER’S THESIS AUTOR PRA´ CE Bc. PAVEL BURIA´ N AUTHOR BRNO 2013 VYSOKE´ UCˇ ENI´ TECHNICKE´ V BRNEˇ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMACˇ NI´CH TECHNOLOGII´ U´ STAV POCˇ ´ITACˇ OVY´ CH SYSTE´ MU˚ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMS DETEKCE DYNAMICKY´ CH SI´TˇOVY´ CH APLIKACI´ DETECTION OF DYNAMIC NETWORK APPLICATIONS DIPLOMOVA´ PRA´ CE MASTER’S THESIS AUTOR PRA´ CE Bc. PAVEL BURIA´ N AUTHOR VEDOUCI´ PRA´ CE Ing. JAN KASˇ TIL SUPERVISOR BRNO 2013 Abstrakt Tato práce se zabývá detekcí dynamických síťových aplikací. Popisuje některé stávající protokoly a zpùsoby jejich identifikace z IP tokù a obsahu paketù. Pøedstavuje návrh de- tekčního systému, založeného na automatické tvorbě regulárních výrazů a popisuje jeho implementaci. Prezentuje vytvoøené regulární výrazy pro BitTorrent a eDonkey protokol. Jejich kvalitu srovnává s řešením L7-filteru. Abstract This thesis deals with detection of dynamic network applications. It describes some of the existing protocols and methods of their identification from IP flow and packet contents. It constitues a design of a detection system based on the automatic creation of regular expressions and describes its implementation. It presents the created regular expressions for BitTorrent and eDonkey protocol. It compares their quality with the solution of L7-filter. Klíčová slova Detekce, dynamické síťové aplikace, P2P, regulární výrazy, Smith-Waterman, Neighbor Joining, BitTorrent, eDonkey, L7-filter Keywords Detection, dynamic network applications, P2P, regular expression, Smith-Waterman, Neighbor Joining, BitTorrent, eDonkey, L7-filter Citace Pavel Burián: Detekce dynamických síťových aplikací, diplomová práce, Brno, FIT VUT v Brně, 2013 Detekce dynamických síťových aplikací Prohlášení Prohla¹uji, že jsem tuto semestrální práci vypracoval samostatně pod vedením pana Ing. Jana Ka¹tila. ....................... Pavel Burián 22. dubna 2013 Poděkování Děkuji za cenné pøipomínky, nápady a podporu vedoucímu práce Ing. Janu Ka¹tilovi. c Pavel Burián, 2013. Tato práce vznikla jako školní dílo na Vysokém učení technickém v Brně, Fakultě informa- čních technologií. Práce je chráněna autorským zákonem a její užití bez udělení oprávnění autorem je nezákonné, s výjimkou zákonem definovaných případů. Obsah 1 Úvod 3 2 Dynamické síťové aplikace4 2.1 Architektura P2P.................................4 2.2 Skype.......................................5 2.3 BitTorrent.....................................6 2.4 Gnutella......................................7 2.5 eDonkey......................................8 3 Techniky detekce9 3.1 Statistické metody................................9 3.1.1 Shlukovací algoritmy...........................9 3.1.2 Příklady detekce skypu......................... 11 3.2 Detekce na základě obsahu paketù....................... 12 3.2.1 L7-filter.................................. 13 3.2.2 Tvorba regulárních výrazů........................ 14 4 Návrh detekčního systému 16 4.1 Systém automatické tvorby regulárních výrazů................ 17 4.2 Použité algoritmy................................. 19 4.2.1 Smith-Waterman............................. 19 4.2.2 Neighbor joining............................. 20 5 Implementace 24 5.1 Pøedzpracování.................................. 24 5.2 Hledání spoleèných podøetězců......................... 25 5.2.1 Suffixové pole............................... 25 5.2.2 Dynamické programování........................ 26 5.3 Extrakce tokenù................................. 26 5.4 Zarovnání sekvencí................................ 28 5.4.1 Smith-Waterman............................. 30 5.4.2 Needleman-Wunsch........................... 31 5.5 Clustering..................................... 32 5.6 Hlavní program.................................. 33 5.7 Nástroj pro klasifikaci síťových dat....................... 33 1 6 Záznamy síťové komunikace 36 6.1 Dostupnost záznamù............................... 36 6.2 Odchytávání dat................................. 36 6.2.1 Microsoft Network Monitor....................... 37 6.2.2 Ground Truth software......................... 37 7 Vlastnosti systému 39 7.1 Èasová nároènost funkcí............................. 39 7.2 Vliv pořadí zarovnávání............................. 40 7.3 Poèet síťových tokù............................... 41 7.4 Délka payloadu.................................. 44 7.5 Skórovací mechanismus............................. 46 7.6 Parametr pokrytí................................. 46 7.7 Shlukování vstupních dat............................ 48 7.8 Vliv rozmanitosti trénovacích dat........................ 49 8 Srovnání kvality s L7-filterem 51 8.1 BitTorrent..................................... 52 8.2 eDonkey...................................... 54 8.3 Skype....................................... 56 8.4 Ukázka RV jiných protokolù........................... 56 9 Možnosti dalšího vývoje 57 10 Závěr 58 A Obsah CD 63 2 Kapitola 1 Úvod Dynamické síťové aplikace mají v dnešní době velké zastoupení a jsou stále populárnější. Tyto aplikace jsou založeny na architektuøe P2P a jejich chování není vždy stejné. Řada z nich využívá více metod komunikace pro dosažení svého cíle. Pokud nemohou navázat spojení se vzdálenou stranou pomocí výchozí techniky, pøechází na další. Èasto využívají jiné, než standardní komunikační porty a některé aplikace rovněž poskytují mechanismy pro obcházení firewallù a ”protlačení”komunikace skrz síťový router s nastaveným pøekladem síťových adres. Dynamiènost je také dána povahou samotné koncepce sítě, ve které její uzly prùběžně vznikají a zanikají. Dùvodù, proè provádět detekci, je celá øada. Poskytovatelé internetu mohou na základě informací o využití sítě a provozovaných službách nastavovat QoS (Quality of Service). Administrátoøi získávají pøehled o dění ve vnitřních sítích nebo například zaměstnavatel může kontrolovat, zda zaměstnanci neporušují stanovená nařízení o používání počítačů v pracovní době. Cílem této práce je seznámit se s dynamickými síťovými aplikacemi, s možnostmi jejich detekce na základě obsahu paketù èi informacích o IP tocích a navrhnout systém na jejich detekci. Jeho prototyp naimplementovat a porovnat jeho kvalitu. Samotné jádro práce se zaměřuje na obsah paketù a klasifikaci dat pomocí regulárních výrazů. Přesněji, na automatickou tvorbu regulárních výrazů ze záznamù síťové komunikace, které jsou následně využity pro detekci jak ve vytvoøeném systému, nebo mohou být vloženy do jiných existujících nástrojù, které provádí klasifikaci na základě regulárních výrazů. Následující obsah dokumentu je rozdělen do několika kapitol, jejichž podstatu nyní krátce přiblížím. Kapitola2 obnáší seznámení se s dynamickými síťovými aplikacemi, a to v podobě jejich komunikačních protokolù. V kapitole3 jsou pøedstaveny možnosti detekce těchto aplikací a kapitola4 se zabývá samotným návrhem detekčního systému. V následu- jící kapitole (5) bude popsána implementace systému a její úpravy pøi vývoji. Kapitola6 pøedstaví zpùsoby získání záznamù síťové komunikace pro trénovací fázi systému. Budou zde uvedeny nedostatky volně dostupných datových sad z internetu a budou pøedstaveny nástroje pro sběr dat podle komunikující síťové aplikace. Kapitola7 se věnuje testování vlastností vytvoøeného systému a v kapitole8 bude systém porovnán s L7-filterem. Kapi- tola s číslem9 nastíní další možnosti vývoje systému. Poslední kapitola (10) nabízí ucelený pohled na problematiku detekce a shrnuje dosa- vadní výsledky. 3 Kapitola 2 Dynamické síťové aplikace V následující èásti bude přiblížena obecná architektura P2P sítí a protokolù z ní vycháze- jících. Dynamickými aplikacemi jsou pak ty, které implementují dané protokoly. 2.1 Architektura P2P P2P (peer-to-peer) je síť, kde každý účastník vystupuje v roli klienta i serveru a je si rovný se v¹emi ostatními, jak je vidět na obrázku 2.1. Komunikace tedy probíhá přímo mezi dvěma účastníky. Klientem je stroj, který vznáší požadavky na data a server je naopak ten, který data poskytuje. Tato síť slouží především pro sdílení a výměnu dat mezi uživateli. Obrázek 2.1: Architektura sítě P2P [15]. Na rozdíl od architektury klient-server s jedním serverem a zpravidla více klienty, kteří se k němu pøipojují, nabízí P2P síť vysokou úroveň decentralizace, nebo» je možné získávat data z rùzných zdrojù. Pokud umožňuje více strojù v síti pokrýt stejné požadavky, je tato lépe vyvážená, a nedochází tak k pøetěžování linek. Rovněž se stává flexibilnější a odolnější vùèi výpadku. Jak bylo øeèeno, P2P je v podvědomí uživatelù hlavně díky sdílení a výměně dat. Má ale i další uplatnění. Například v IP telefonii, vyhledávání informací pomocí svobodného softwaru YaCy [26] èi v rychlé výměně zpráv. Na architektuøe P2P stojí øada protokolù a sítí jako BitTorrent, Direct Connect, Fast- Track, Gnutella, eDonkey, Freenet atd. 4 2.2 Skype Skype je nejen proprietárním protokolem, ale také klientskou aplikací P2P VoIP. Jak je uvedeno v [4], o jeho vzik se zasadili tvùrci programu KaZaa v roce 2003. Mimo hlasovou komunikaci, která je mezi koncovými účastníky ¹ifrována, také podporuje rychlou výměnu zpráv. Jeho význačnou vlastností je funkènost napříč firewally a NATy. Díky reverznímu inženýrství bylo