Detekce s´ıt’ovyc´ h utok´ u˚ pomoc´ı jejich deklarativn...

8
http://excel.fit.vutbr.cz Detekce s´ ıt ov ´ ych ´ utok ˚ u pomoc´ ı jejich deklarativn´ ıho popisu Jindˇ rich Dudek* Abstrakt Tento ˇ cl ´ anek se zab ´ yv ´ an ´ avrhem n ´ astroje pro detekci s´ ıt ov ´ ych ´ utok ˚ u ze zachycen ´ es´ ıt ov ´ e komu- nikace, kter ´ y ke sv ´ e ˇ cinnosti vyu ˇ z´ ıv ´ a paketov ´ y analyz ´ ator tshark. V ´ yznam paketov ´ eho analyz ´ atoru spo ˇ c´ ıv ´ avpˇ reveden´ ı vstupn´ ıho souboru se zachycenou komunikac´ ı do textov ´ eho form ´ atu PDML, pˇ ri ˇ cem ˇ z ´ u ˇ celem t ´ eto konverze je flexibiln ˇ ej ˇ s´ ı zpracov ´ an´ ı vstupn´ ıch dat. Pˇ ri n ´ avrhu n ´ astroje je kladen d ˚ uraz na roz ˇ siˇ ritelnost o detekci nov ´ ych s´ ıt ov ´ ych ´ utok ˚ u a jejich snadnou integraci. Z tohoto d ˚ uvodu je sou ˇ c ´ ast ´ ı ˇ cl ´ anku tak ´ e navr ˇ zen´ ı obecn ´ eho deklarativn´ ıho z ´ apisu s´ ıt ov ´ ych ´ utok ˚ u v serializa ˇ cn´ ım form ´ atu YAML. Ten umo ˇ z ˇ nuje specifikovat kl ´ ı ˇ cov ´ e vlastnosti s´ ıt ov ´ ych ´ utok ˚ u a podm´ ınky pro jejich detekci. V ´ ysledn ´ yn ´ astroj tedy funguje jako interpret deklarativn´ ıch z ´ apis ˚ u, ˇ c´ ım ˇ z je umo ˇ zn ˇ ena jeho snadn ´ a rozˇ siˇ ritelnost o nov ´ e typy ´ utok ˚ u. Kl´ ıˇ cov ´ a slova: detektor s´ ıt ov ´ ych ´ utok ˚ u — deklarativn´ ız ´ apis s´ ıt ov ´ ych ´ utok ˚ u — tshark — bezpe ˇ cnost ıt´ ı — s´ ıt ov ´ utoky riloˇ zen ´ e materi ´ aly: N/A *xdudek04@stud.fit.vutbr.cz, Fakulta informaˇ cn´ ıch technologi´ ı, Vysok ´ e uˇ cen´ ı technick ´ e v Brn ˇ e 1. ´ Uvod Po ˇ c´ ıta ˇ cov ´ es´ ıt ˇ e patˇ r´ ı v dneˇ sn´ ı dob ˇ e k neodmysliteln ´ e sou ˇ c ´ asti lidsk ´ e populace. Kromˇ e nespo ˇ ctu benefit ˚ u, kter ´ en ´ am nepochybn ˇ e poskytuj ´ ı, je ovˇ sem nezbytn ´ e ˇ reˇ sit ot ´ azku zabezpe ˇ cen´ ıs´ ıt ´ ıv ˚ u ˇ ci potenci ´ aln´ ım s´ ıt ov ´ ym ´ utok ˚ um [2], ˇ ci jin ´ ym pokus ˚ um o naruˇ sen´ ı jejich bez- probl ´ emov ´ eho chodu. Mnoho s´ ıt ov ´ ych ´ utok ˚ u bylo ji ˇ z objeveno a podrobn ˇ e pops ´ ano, nicm´ en ˇ e st ´ ale se ob- jevuj ´ ı dal ˇ s´ ı zranitelnosti, kter ´ e jsou pˇ r´ ı ˇ cinou vzniku nov ´ ych ´ utok ˚ u, proti kter ´ ym je nutn ´ e hledat detek ˇ cn´ ı a obrann ´ e mechanismy vedouc´ ı k jejich eliminaci. Spole ˇ cn ˇ e s rozvojem Internetu v ˇ ec´ ı (IoT) tak ´ e st ´ ale vzr ˚ ust ´ a po ˇ cet nov ´ ych zaˇ r´ ızen´ ı se s´ ıt ovou konektivi- tou, u kter ´ ych mohou b ´ yt opomenuty bezpe ˇ cnostn´ ı aspekty, d´ ıky ˇ cemu ˇ z mohou b ´ yt zneu ˇ zity ji ˇ z zn ´ am´ e zranitelnosti, pˇ r´ ıpadn ˇ e jejich obdoby a tato zaˇ r´ ızen´ ı se tak st ´ avaj ´ ı nov ´ ymi potenci ´ aln´ ımi c´ ıli s´ ıt ov ´ ych ´ utok ˚ u. Z tohoto d ˚ uvodu je nezbytn ´ e se neust ´ ale pˇ rizp ˚ usobovat nov ˇ e vznikaj ´ ıc´ ım hrozb ´ am a hledat nov ´ e a efektivn´ ı metody, kter ´ e by umo ˇ z ˇ novaly jednoduch ´ y zp ˚ usob je- jich detekce. Tato pr ´ ace si klade za c´ ıl popsat n ´ avrh n ´ astroje pro detekci r ˚ uzn ´ ych s´ ıt ov ´ ych ´ utok ˚ u ze zachycen ´ es´ ıt ov ´ e komunikace. Hlavn´ ım po ˇ zadavkem, na kter ´ y je pˇ ri n ´ avrhu kladen d ˚ uraz, je mo ˇ znost co nejsnazˇ s´ ı rozˇ siˇ ri- telnosti tohoto n ´ astroje o nov ´ es´ ıt ov ´ e ´ utoky, kter ´ e je schopen n ´ astroj detekovat. Je tedy nezbytn ´ e navrhnout takov ´ e rozhran´ ın ´ astroje, kter ´ e by tento po ˇ zadavek

Transcript of Detekce s´ıt’ovyc´ h utok´ u˚ pomoc´ı jejich deklarativn...

Page 1: Detekce s´ıt’ovyc´ h utok´ u˚ pomoc´ı jejich deklarativn ...excel.fit.vutbr.cz/submissions/2018/013/13.pdf · formatu YAML. Ten umo´ zˇnuje specifikovat klˇ ´ıcovˇ

http://excel.fit.vutbr.cz

Detekce sıt’ovych utoku pomocı jejichdeklarativnıho popisuJindrich Dudek*

AbstraktTento clanek se zabyva navrhem nastroje pro detekci sıt’ovych utoku ze zachycene sıt’ove komu-nikace, ktery ke sve cinnosti vyuzıva paketovy analyzator tshark. Vyznam paketoveho analyzatoruspocıva v prevedenı vstupnıho souboru se zachycenou komunikacı do textoveho formatu PDML,pricemz ucelem teto konverze je flexibilnejsı zpracovanı vstupnıch dat. Pri navrhu nastroje je kladenduraz na rozsiritelnost o detekci novych sıt’ovych utoku a jejich snadnou integraci. Z tohoto duvoduje soucastı clanku take navrzenı obecneho deklarativnıho zapisu sıt’ovych utoku v serializacnımformatu YAML. Ten umoznuje specifikovat klıcove vlastnosti sıt’ovych utoku a podmınky pro jejichdetekci. Vysledny nastroj tedy funguje jako interpret deklarativnıch zapisu, cımz je umoznena jehosnadna rozsiritelnost o nove typy utoku.

Klıcova slova: detektor sıt’ovych utoku — deklarativnı zapis sıt’ovych utoku — tshark — bezpecnostsıtı — sıt’ove utoky

Prilozene materialy: N/A

*[email protected], Fakulta informacnıch technologiı, Vysoke ucenı technicke v Brne

1. Uvod

Pocıtacove sıte patrı v dnesnı dobe k neodmyslitelnesoucasti lidske populace. Krome nespoctu benefitu,ktere nam nepochybne poskytujı, je ovsem nezbytneresit otazku zabezpecenı sıtı vuci potencialnım sıt’ovymutokum [2], ci jinym pokusum o narusenı jejich bez-problemoveho chodu. Mnoho sıt’ovych utoku bylo jizobjeveno a podrobne popsano, nicmene stale se ob-jevujı dalsı zranitelnosti, ktere jsou prıcinou vznikunovych utoku, proti kterym je nutne hledat detekcnıa obranne mechanismy vedoucı k jejich eliminaci.Spolecne s rozvojem Internetu vecı (IoT) take stalevzrusta pocet novych zarızenı se sıt’ovou konektivi-tou, u kterych mohou byt opomenuty bezpecnostnı

aspekty, dıky cemuz mohou byt zneuzity jiz znamezranitelnosti, prıpadne jejich obdoby a tato zarızenı setak stavajı novymi potencialnımi cıli sıt’ovych utoku.Z tohoto duvodu je nezbytne se neustale prizpusobovatnove vznikajıcım hrozbam a hledat nove a efektivnımetody, ktere by umoznovaly jednoduchy zpusob je-jich detekce.

Tato prace si klade za cıl popsat navrh nastroje prodetekci ruznych sıt’ovych utoku ze zachycene sıt’ovekomunikace. Hlavnım pozadavkem, na ktery je prinavrhu kladen duraz, je moznost co nejsnazsı rozsiri-telnosti tohoto nastroje o nove sıt’ove utoky, ktere jeschopen nastroj detekovat. Je tedy nezbytne navrhnouttakove rozhranı nastroje, ktere by tento pozadavek

Page 2: Detekce s´ıt’ovyc´ h utok´ u˚ pomoc´ı jejich deklarativn ...excel.fit.vutbr.cz/submissions/2018/013/13.pdf · formatu YAML. Ten umo´ zˇnuje specifikovat klˇ ´ıcovˇ

dokazalo naplnit bez nutnosti vyraznych zmen v jehoimplementaci.

2. Existujıcı resenıObdobnou funkcionalitu jako navrhovany nastroj rov-nez poskytujı tzv. systemy pro detekci pruniku (IDS)[1], ktere pro detekci sıt’ovych utoku pouzıvajı tzv.signatury, coz je strukturovany soubor pravidel, po-mocı nichz je mozne utok identifikovat. Pokud dojdek objevenı noveho typu utoku, dodavatel systemu musıvytvorit novou signaturu a provest aktualizaci IDS,ktery je pak schopen novy utok detekovat. Na zakladeslozitosti vytvorene signatury je pak typicky v prıpadekomplexnejsıch signatur uctovan poplatek, zatımco tyjednodussı jsou obvykle distribuovany zdarma.

Krome signatur jsou pro detekci sıt’ovych utokuvyuzıvany i pokrocilejsı metody, ktere jsou zalozenyna vytvarenı dlouhodobych statistik o sıt’ovem provozu,ci vyuzitı umele inteligence pro zıskanı modelu ob-vykleho sıt’oveho provozu. V prıpade odchylky odzıskanych statistik ci nauceneho modelu je pak zahla-sena detekce utoku. Tento princip je oznacovan jakoanomaly based detection.

V ramci porovnanı IDS a nastroje popisovanehov tomto clanku je nezbytne zmınit, ze nastroj nemaambice stat se plnohodnotnou nahradou IDS systemu,ale pouze doplnujıcı alternativou vhodnou naprıkladv prıpadech, kdy financnı prostredky vynalozene nakoupi signatury jsou nerentabilnı a pro detekci sıt’ovehoutoku postacujı prostredky poskytovane nastrojem.

Existujıcı resenı dostupna na trhu jsou casto zame-rena na detekci pouze urcitych typu utoku (napr. utokytypu DDoS, detekce malware, webove utoky, atp.)a pro detekci utoku casto krome sıt’oveho provozu vy-zadujı i logy ruznych sluzeb, zmeny v souborovemsystemu, ci registry operacnıho systemu. Detekcisıt’ovych utoku typicky provadejı v realnem case, cozovsem vyzaduje vetsı mnozstvı casu a prostredku prouspesnou detekci utoku a tento fakt se obvykle ne-gativne podepisuje na propustnosti v prıpade vysoko-rychlostnıch sıtı. Vyhodou tohoto prıstupu je ovsemvelmi rychla detekce utoku.

Navrhovany nastroj detekuje utoky pouze na za-klade informacı zıskanych ze zachycene sıt’ove ko-munikace, dıky cemuz je mozne provadet forenznıanalyzu komunikace na libovolnem zarızenı, nikolivpouze na stroji, jehoz komunikace je analyzovana.Dalsı vyhodou muze byt fakt, ze analyza komunikacenenı provadena v realnem case, coz vede k nizsımuvyuzitı prostredku a omezenı vlivu na sıt’ovou propust-nost. Vyuzitı tohoto prıstupu ovsem vede k pozdejsıdetekci utoku od okamziku jeho provedenı.

Konkretnımi prıklady produktu dostupnych na trhumohou byt nastroje Snort1, ci Suricata2. Snort [6] de-tekuje sıt’ove utoky pomocı souboru pravidel, kterajsou vyhodnocena pro kazdy prijaty ci odeslany paketa v prıpade jejich splnenı je zahlasena detekce utoku.Pravidla obsahujı informaci, zda majı byt aplikovanana prijate, ci odeslane pakety, dale informace o zdro-jovem a cılovem portu a nasledne specifikaci, jaka datama dany paket obsahovat, aby byl oznacen za pozitiv-nı detekci. Nastroj je tedy schopny detekovat pouzeutoky, ktere jsou detekovatelne z jednoho paketu.

Oproti temto produktum se popisovany nastrojsnazı navrhnout framework, ktery by umoznoval uziva-telsky prıvetivejsı specifikaci sıt’ovych utoku a zarovenposkytl prostredky pro detekci ruznych typu utoku,k jejichz detekci mohou byt zapotrebı slozitejsı pos-tupy, nez pouze kontrola obsahu jednotlivych paketu.

3. Navrh aplikacePri navrhu nastroje je zapotrebı zohlednit fakt, zenastroj musı poskytovat co nejsnazsı rozsiritelnosto nove typy utoku bez nutnosti provadet vyrazne zmenyv jeho implementaci. Z tohoto duvodu je nevhodne,aby detekce kazdeho utoku byla napevno implemen-tovana v kodu aplikace, coz by vedlo k nutnosti neustalerozsirovat kod programu pri potrebe detekovat novesıt’ove utoky. Naopak je zapotrebı proces detekceutoku co nejvıce zobecnit.

Tento pozadavek je resen pomocı textovych dekla-rativnıch zapisu, ktere strukturovane popisujı zpusobdetekce jednotlivych utoku. Je tedy nezbytne navrhnoutobecny zpusob zapisu, ktery by poskytoval prostredkypro popis detekce sirsı skaly sıt’ovych utoku. Dekla-rativnı popis rozdeluje sıt’ove utoky na tri typy. Jed-notlive typy se od sebe navzajem odlisujı postupem,ktery je aplikovan pri samotnem vyhledavanı utoku vevstupnım souboru se zachycenou komunikacı. Jejichblizsımu popisu se venuje sekce 4.

Nastroj pak funguje jako interpret techto popisua na jejich zaklade jsou v predlozenem souboru sezachycenou sıt’ovou komunikacı vyhledavany konkret-nı sıt’ove utoky. V prıpade vyskytu noveho typu utokusi pak muze uzivatel nastroje vytvorit novy popis, kteryje nastroj schopen automatizovane zpracovat, aniz bybylo zapotrebı provadet jeho implementacnı upravy.

V deklarativnıch zapisech je casto zapotrebı nas-tavit specificke parametry, ktere mohou mıt pro kazdousıt’ odlisne hodnoty. Z tohoto duvodu je vhodne, abykazdy sıt’ovy administrator mel vlastnı databazi dekla-rativnıch popisu, ve kterych jsou tyto parametry nas-

1Viz. https://www.snort.org/2Viz. https://suricata-ids.org/

Page 3: Detekce s´ıt’ovyc´ h utok´ u˚ pomoc´ı jejich deklarativn ...excel.fit.vutbr.cz/submissions/2018/013/13.pdf · formatu YAML. Ten umo´ zˇnuje specifikovat klˇ ´ıcovˇ

taveny tak, aby v dane sıti dochazelo k minimalizacinekorektnıch detekcı. Tato databaze muze byt zalozenana jiz existujıcıch deklarativnıch zapisech (s prıpadneprizpusobenymi parametry), nebo muze obsahovatnove popisy vytvorene sıt’ovym administratorem.

Pri samotnem procesu detekce je nejdrıve vstupnısoubor se zachycenou sıt’ovou komunikacı prevedendo textoveho formatu Packet Description Markup Lan-guage (PDML) pomocı paketoveho analyzatoru t-shark [3]. Format PDML je zalozen na znackovacımjazyku XML a dıky teto konverzi je tedy mozne vstup-nı soubor zpracovat pomocı libovolne knihovny prozpracovanı XML dokumentu a nenı tak nezbytne im-plementovat disketory jednotlivych sıt’ovych protokolu.Nastroj tshark zaroven jednoznacne specifikuje jme-na polı v paketu, dıky cemuz je mozne se na ne odka-zovat v deklarativnıch popisech utoku. Dalsı vyhodou,kterou tato konverze poskytuje, je moznost presnespecifikovat, ktera pole paketu majı byt ve vystupu uve-dena a stejne tak je mozne filtrovat i pakety, ktere jsoupro detekci klıcove. Tım je mozne vyrazne zmensitvelikost vystupnıho souboru a zvysit rychlost samotnedetekce utoku.

Konvertovany soubor je pote prochazen pomocıknihovny pro zpracovanı XML souboru a na zakladedeklarativnıch popisu jsou v nem vyhledavany speci-fikovane sıt’ove utoky. Vyse uvedeny postup je grafickyilustrovan na obrazku 1.

Pri vysokem poctu paketu ve vstupnım souborudosahujı konvertovane vystupy ve formatu PDML ve-likostı v radu gigabytu. Pri vyberu knihovny prozpracovanı XML souboru je tedy nezbytne brat tentofakt v potaz a vybırat takove knihovny, ktere posky-tujı vysokou rychlost zpracovanı a umoznujı itera-tivnı nacıtanı XML dokumentu. Pro prochazenı jed-notlivych paketu v PDML souboru je pak mozne vyuzıtnaprıklad jazyk XPath.

4. Format pro deklarativnı popis utoku

Kvuli snadne rozsiritelnosti nastroje o nove typy sıt’o-vych utoku je nezbytne navrhnout obecny deklarativnıformat, ktery poskytuje prostredky pro popis sirokeskaly sıt’ovych utoku. Deklarativnı zapisy utoku jsourealizovany pomocı serializacnıho formatu YAML,mezi jehoz vlastnosti patrı predevsım dobra citelnostjak clovekem, tak i strojem, ktera je v tomto prıpadezasadnı.

Deklarativnı popis rozdeluje sıt’ove utoky celkemdo trı typu, ktere se od sebe navzajem lisı postupem,jenz je aplikovan pri vyhledavanı utoku ve vstupnımsouboru se zachycenou sıt’ovou komunikacı. Nazvytechto typu utoku jsou nasledujıcı:

• atomic;• stream;• group.

Nasledujıcı sekce jsou venovany podrobnemu popisuprostredku, ktere jednotlive typy utoku poskytujı protvorbu deklarativnıch zapisu sıt’ovych utoku, vcetnepostupu, ktere jsou aplikovany pri jejich zpracovanı.

4.1 Utok typu atomicTyp utoku s oznacenım atomic se vyznacuje tım, zepro jeho detekci postacuje prochazet jednotlive paketyv zachycene sıt’ove komunikaci a u kazdeho z nich jsouoverovany uzivatelem specifikovane podmınky, jezdany utok identifikujı. Pro tento typ utoku je podstatne,ze pro jeho odhalenı nenı dulezite, v jakem sıt’ovemtoku se zkoumane pakety vyskytujı. Z toho vyplyva,ze pro korektnı detekci utoku nenı zapotrebı zjist’ovat,jake dalsı pakety jsou obsazeny ve stejnem sıt’ovemtoku, v nemz se vyskytuje aktualne zkoumany paket.Obecne platı, ze pro uspesnou detekci utoku muzebyt zapotrebı vıce paketu, nicmene tyto pakety mohoubyt soucastı ruznych sıt’ovych toku. Pro identifikacisıt’oveho utoku je v tomto typu utoku mozne vyuzıtctyri nasledujıcı podmınky:

• field-name;• field-value;• field-count;• packet-ratio;• expression.

Pomocı podmınky field-name lze specifikovat vyskytkonkretnıho pole v paketu (v tomto prıpade se kon-troluje pouze vyskyt, nikoliv jeho hodnota). Pri zadanıfield-value se krome vyskytu pole detekuje i jeho hod-nota. Pokud je tedy dane pole v paketu nalezeno(a prıpadne odpovıda jeho specifikovana hodnota), jepaket oznacen za pozitivnı detekci. Podmınka taktezumoznuje zjistit celkovy pocet ruznych paketu, kteremajı stejnou (nebo naopak rozdılnou) hodnotu speci-fikovaneho pole a pokud tento pocet prekrocı uzivate-lem urcenou hodnotu, je zahlasena pozitivnı detekcesıt’oveho utoku.

Dalsı podmınka typu field-count se opet tyka kon-kretnıho pole v paketu, v tomto prıpade se ale neresıjeho samotny vyskyt nebo hodnota, ale pocet vyskytupole v paketu. Pokud tedy pocet vyskytu specifiko-vaneho pole v paketu odpovıda uzivatelem urcene hod-note, je paket oznacen za pozitivnı detekci.

Pomocı podmınky typu packet-ratio lze specifiko-vat pomer dvou ruznych typu paketu. Uzivatel urcı je-jich vlastnosti, na zaklade kterych jsou tyto pakety vy-filtrovany. Nasledne je zjisten pocet obou typu paketu,

Page 4: Detekce s´ıt’ovyc´ h utok´ u˚ pomoc´ı jejich deklarativn ...excel.fit.vutbr.cz/submissions/2018/013/13.pdf · formatu YAML. Ten umo´ zˇnuje specifikovat klˇ ´ıcovˇ

Obrazek 1. Graficke znazornenı procesu detekce sıt’ovych utoku navrhovanym nastrojem. Vstupnı soubor sezachycenou sıt’ovou komunikacı je preveden pomocı nastroje tshark do formatu PDML, ve kterem jsou pakvyhledavany sıt’ove utoky na zaklade textovych deklarativnıch popisu techto utoku.

ze ktereho je vypocıtan jejich pomer. Pokud pomerprekrocı uzivatelem stanovenou hodnotu, je zahlasenapozitivnı detekce.

Poslednı typ podmınky s nazvem expression u-moznuje vyhodnotit uzivatelem zadany booleovskyvyraz ve forme textoveho retezce. Ve vyrazu je moznepouzıvat vlastnı promenne, u kterych je ovsem za-potrebı uvest, jaka hodnota se ma za promennou dosa-dit pri vyhodnocovanı vyrazu. Vetsinou se jedna o kon-kretnı hodnotu nejakeho z polı v paketu, pro kteryje aktualne vyraz vyhodnocovan, nicmene je moznepouzıt i hodnoty, ktere se tykajı vıce paketu (napr.celkovy pocet paketu v souboru, pocet ruznych hodnoturciteho pole naprıc vsemi pakety apod.). Jednotlivepakety jsou tedy postupne prochazeny a specifikovanapodmınka je pro kazdy z nich vyhodnocena. Pokudje podmınka pro dany paket pravdiva, je mozne paketoznacit za pozitivnı detekci.

Vsechny vyse uvedene podmınky je mozne libo-volne kombinovat za ucelem definovanı co nejpresnej-sıch detekcnıch podmınek. Pokud je soucastı deklara-tivnıho zapisu vıce ruznych podmınek, lze navıc speci-fikovat, zda musı platit vsechny soucasne, nebo posta-cuje platnost pouze jedne z nich. Uzivatel rovnez musıspecifikovat i pocet pozitivnıch detekcı, ktere musıbyt ve vstupnım souboru nalezeny, aby bylo vypsanoprıslusne hlasenı o nalezenı utoku.

Sıt’ovym utokem, ktery se da tımto typem popsat jenapr. Local Area Network Denial (LAND). Deklarativ-nı zapis utoku je uveden v prıkladu 1. Princip tohotoutoku spocıva v zaslanı TCP paketu s nastavenymprıznakem SYN a shodnou cılovou i zdrojovou IPadresou, ktera je nastavena na IP adresu obeti. Priprijetı tohoto paketu na stanici obeti se obet’ pokousıustavit TCP spojenı sama se sebou (kvuli nastavenemuSYN prıznaku), coz v nekterych prıpadech muze vest

k zamrznutı, cı padu systemu [7].

1 name: LAND2 scope: atomic3 properties:4 - element-name: tcp.flags5 value: '0x00000002' #SYN paket6 detection-conditions:7 type: and8 conditions:9 - condition-type: expression

10 expression: SrcIp == DstIp11 variables:12 - name: SrcIp13 type: field-value14 element-name: ip.src15 - name: DstIp16 type: field-value17 element-name: ip.dst18 threshold-error: 1

Prıklad 1. Deklarativnı zapis sıt’oveho utoku LocalArea Network Denial (LAND).

Utok je mozne detekovat prochazenım jednotli-vych paketu s nastavenym prıznakem SYN a kontrolo-vat, zda zdrojova a cılova IP adresa jsou nastaveny nastejnou hodnotu. V prıpade deklarativnıho zapisu jsounejdrıve pomocı pravidla uvedeneho v sekci properties(radek c. 3) vyfiltrovany vsechny pakety s nastavenymprıznakem SYN. Nasledne je pro kazdy takovy paketvyhodnocen vyraz uvedeny pomocı atributu expres-sion (radek c. 10). Kolekce variables pak pro kazdoupromennou ve vyrazu specifikuje, jaka hodnota sema za promennou dosadit. V tomto prıpade se jednao konkretnı hodnotu polı s nazvy ip.src a ip.dst.

Page 5: Detekce s´ıt’ovyc´ h utok´ u˚ pomoc´ı jejich deklarativn ...excel.fit.vutbr.cz/submissions/2018/013/13.pdf · formatu YAML. Ten umo´ zˇnuje specifikovat klˇ ´ıcovˇ

Pocet pozitivnıch detekcı je pak porovnan s hod-notou atributu threshold-error (radek c. 20). Pokud jetento pocet vetsı, nebo roven hodnote tohoto atributu,je vypsano chybove hlasenı o pozitivnı detekci utoku.

4.2 Utok typu streamUtok typu stream je specificky tım, ze sıt’ove utokyjsou v tomto typu utoku vyhledavany v obousmernekomunikaci mezi dvema sıt’ovymi entitami, identifiko-vanymi prostrednictvım IP adres, na konkretnıch por-tech, pomocı transportnıho protokolu TCP, ci UDP.Pakety jsou tedy pred samotnym vyhledavanım sı-t’ovych utoku rozcleneny do odpovıdajıcıch TCP, ciUDP streamu na zaklade indexu streamu, ktery dopaketu automaticky doplnuje nastroj tshark. Tytostreamy jsou nasledne skenovany za ucelem nalezenısıt’oveho utoku. Detekce utoku probıha na zakladevyskytu uzivatelem specifikovanych paketu v jednotli-vych streamech.

Sıt’ovym utokem tohoto typu je napr. skenova-nı portu pomocı TCP paketu s nastavenym prızna-kem SYN. Deklarativnı zapis tohoto utoku je uvedenv prıkladu 2:

1 name: Port Scanning - SYN/TCP2 scope: stream3 properties:4 - element-name: tcp5 packets-specification:6 follow: true7 specified-only: false8 specification:9 - count: 1

10 packet-properties:11 - element-name: tcp.flags12 value: '0x00000002'#SYN13 - count: 114 packet-properties:15 - element-name: tcp.flags16 #RST+ACK:17 value: '0x00000014'18 threshold-warning: 20019 threshold-error: 800

Prıklad 2. Deklarativnı zapis sıt’oveho utokuskenovanı portu metodou SYN/TCP.

Princip tohoto skenovanı spocıva v zaslanı TCPpaketu s nastavenym prıznakem SYN na konkretnı portstanice obeti. Pokud je v reakci na tuto zpravu prijatpaket s nastavenymi prıznaky SYN a ACK, jedna seo otevreny port, v prıpade prijetı paketu s nastavenymi

prıznaky RST a ACK pak o port uzavreny [5].Utok lze detekovat prohledavanım jednotlivych

TCP streamu a hledanım dvojice paketu s nastavenymiprıznaky SYN a RST+ACK (tzn. streamy, kde jecılovy port uzavren). V prıpade zapisu uvedenehov prıkladu 2 jsou tedy nejdrıve pomocı pravidla uve-deneho v kolekci properties (radek c. 3) vyfiltrovanyvsechny pakety obsahujıcı pole s nazvem tcp (tzn.vsechny TCP pakety). Dıky tomuto kroku jsou odfil-trovany pakety, ktere jsou pro detekci utoku nepod-statne. V teto fazi zpracovanı tedy nedochazı k samot-nemu rozclenovanı jednotlivych paketu do streamu, alepouze se vyfiltrujı pakety obsahujıcı TCP hlavicku, abypri naslednem vytvarenı TCP streamu nebyly zbytecneprochazeny nepodstatne pakety.

Nasledne jsou vyfiltrovane pakety rozdeleny doodpovıdajıcıch TCP streamu, ktere jsou postupne pro-chazeny a je v nich hledana dvojice paketu s nas-tavenymi prıznaky SYN a RST+ACK. Specifikaci tech-to paketu je mozne najıt v kolekci specification (radekc. 8), kde je pro kazdy typ paketu uvedeno, pomocıatributu count, kolikrat se ma ve streamu vyskytovat.Nasleduje kolekce packet-properties, ve ktere uz jsoupro kazdy typ paketu uvedeny jeho vlastnosti, kterejej jednoznacne identifikujı. V tomto prıpade je pakets prıznakem SYN identifikovan prostrednictvım hod-noty pole tcp.flags nastavenym na 0x00000002. Ob-dobne je identifikovan i paket s nastavenymi prıznakyRST+ACK.

Atribut follow nastaveny na hodnotu true pak in-dikuje, ze vsechny specifikovane pakety musı v danemTCP streamu nasledovat bezprostredne za sebou. Po-mocı atributu specified-only nastaveneho na hodnotufalse je urceno, ze krome specifikovanych paketu semohou v TCP streamu vyskytovat i jine pakety.

Pokud jsou v nekterem TCP streamu nalezenyspecifikovane pakety a splnujı vsechny pozadovanepodmınky, je takovy stream oznacen za pozitivnı de-tekci. Celkovy pocet pozitivnıch detekcı je pak porov-nan s hodnotami atributu threshold-warning a threshold-error (radky c. 17 a 18). Pokud pocet pozitivnıch de-tekcı prekrocı hodnotu prvnıho z uvedenych atributu,je vypsano varovne hlasenı. Pokud dokonce presahnehodnotu druheho uvedeneho atributu, vypıse se chy-bove hlasenı, ktere ma vyssı vahu. Pokud je pocet po-zitivnıch detekcı mensı nez hodnota obou uvedenychatributu, nenı zobrazeno zadne hlasenı.

4.3 Utok typu group

Utok typu group je zobecnenım utoku typu stream.Obdobne jako v tomto typu utoku jsou utoky vyhle-davany v urcite skupine paketu, nicmene nedochazı

Page 6: Detekce s´ıt’ovyc´ h utok´ u˚ pomoc´ı jejich deklarativn ...excel.fit.vutbr.cz/submissions/2018/013/13.pdf · formatu YAML. Ten umo´ zˇnuje specifikovat klˇ ´ıcovˇ

zde ke trıdenı paketu dle jejich prıslusnosti do TCP, ciUDP streamu. Uzivatel v tomto prıpade musı specifiko-vat seznam polı, na zaklade jejichz spolecne hodnotyjsou pakety umısteny do identicke skupiny. Specifiko-vany seznam polı je tedy postupne prochazen a pokudje v paketu dane pole nalezeno, je paket umısten doskupiny s identifikatorem odpovıdajıcımu hodnote na-lezeneho pole. Pokud pole nalezeno nenı, je pokra-covano dalsım polem v seznamu. V prıpade, ze sev paketu nevyskytuje zadne ze specifikovanych polı, jetakovy paket ignorovan.

Identicky jako v predchozım typu utoku uzivatelspecifikuje jednotlive pakety, jejichz vyskyt indikujeprıtomnost sıt’oveho utoku. Tyto pakety jsou pak veskupinach vyhledavany a v prıpade jejich nalezenıa splnenı vsech specifikovanych podmınek je skupinapaketu oznacena za pozitivnı detekci. Celkovy pocetdetekcı je opet porovnan s uvedenymi prahy a prıpadneje ohlaseno nalezenı utoku.

5. Optimalizace pamet’ovych naroku

Pri zpracovanı souboru formatu PDML je nutne resitproblemy spojene s jejich znacnou velikostı, kterav mnohych prıpadech dosahuje hodnoty nekolika gi-gabytu. Obrovska velikost konvertovaneho PDMLsouboru oproti vstupnımu souboru je zpusobena pre-devsım tım, ze PDML obsahuje jiz interpretovana data.Krome samotnych hodnot polı paketu tedy obsahujei nazvy techto polı a dalsı informace interpretovanepaketovym analyzatorem. Hodnoty jednotlivych polıjsou navıc casto uvedeny v nekolika ruznych formatechsoucasne (napr. ve forme raw bytu, textovych retezu,hexadecimalnıho zapisu bytu, apod.). Urcity narustvelikosti je rovnez spojen s vlastnostmi jazyka XML,na kterem je format PDML zalozen. Mezi ne patrınaprıklad nutnost ke kazde parove znacce specifiko-vat jejı ukoncujıcı znacku apod. V paketech jsou takecasto prenasena obsahla aplikacnı data, ktera jsou prodetekci sıt’ovych utoku nepodstatna, ale majı vyraznyvliv na velikost zpracovavaneho souboru.

Pri zpracovanı techto souboru pomocı knihovenpro parsovanı XML dokumentu navıc jejich velikostv pameti nekolikanasobne vzroste, kvuli nutnosti ucho-vanı informacı o navaznosti jednotlivych XML znacek.Z techto duvodu je prakticky nerealne zpracovavatsoubory o vyssı velikosti s vyuzitım soucasnych vypo-cetnıch prostredku ciste v operacnı pameti bez vyuzitıdiskoveho uloziste, coz cinnost nastroje znacne zpo-maluje. Z tohoto duvodu je nezbytne velikost souborusnızit pomocı nekolika optimalizacı.

Prvnı optimalizacı je redukce poctu polı v paketupouze na ta pole, ktera jsou nezbytna pro uspesnou

Velikostvstupu[MB]

Pocetpaketu

[tis.]

VelikostPDML[MB]

Velikostopt. PDML

[MB]

Zmensenıvelikosti

[%]3,4 29 320 28 91,356 94 2200 104 95,398 142 3500 156 95,5153 193 4100 192 95,3202 228 5000 256 94,9275 282 6400 315 95,1352 402 8300 450 94,6453 443 9800 498 94,9

Tabulka 1. Porovnanı velikostı vystupu konverze doformatu PDML pred a po aplikovanı optimalizacı.

detekci utoku. Pred samotnou konverzı jsou tedy pos-tupne prochazeny vsechny deklarativnı zapisy utokua je vytvoren seznam nezbytnych polı. Nastroj tsharknasledne umoznuje specifikovat, ktera pole majı bytzahrnuta v konvertovanem vystupu, dıky cemuz doj-de nejen k redukci vysledne velikosti souboru, alei k vyraznemu zrychlenı samotne konverze.

Dale je mozne vystupnı velikost konvertovanehosouboru optimalizovat pomocı filtru, jenz umoznujespecifikovat, ktere pakety majı byt zahrnuty ve vystupukonverze. Tento filtr je predan jako parametr nastrojitshark pred samotnou konverzı a jeho syntaxe jeidenticka jako u display filteru3 vyuzıvanych v nastrojiWireshark. Filtry jsou vytvoreny na zaklade infor-macı uvedenych v kolekci properties v deklarativnıchzapisech utoku (viz. prıklad 2, radek c. 3). Dıkytomuto kroku je zajisteno, ze ve vystupnım konverto-vanem souboru nebudou prıtomny pakety, ktere jsoupro detekci utoku zbytecne.

Tyto optimalizace zajist’ujı i urcitou variabilituv pouzitı nastroje, pokud zarızenı, na kterem je nastrojspousten, disponuje nizsı kapacitou operacnı pameti.Pokud je zapotrebı snızit pamet’ovou narocnost nastro-je, je mozne ho spoustet vıcekrat po mensıch poctechdeklarativnıch zapisu. Dıky vyse popsanym optimali-zacım se tak redukuje celkovy pocet polı zpracovava-nych pri jednom behu nastroje, stejne tak jako celkovypocet paketu, ktere jsou pro detekci sıt’ovych utokuzapotrebı. To vede ke snızenı pamet’ovych narokunastroje, coz je casto dulezite pri zpracovanı vstupnıchsouboru s vetsım poctem zachycenych paketu.

V tabulce 1 je uvedeno porovnanı velikostı vystupukonverze do formatu PDML pred a po aplikovanı vyseuvedenych optimalizacı. Prvnı dva sloupce urcujı ve-likost vstupnıho souboru a pocet paketu v nem obsa-zenych. Tretı a ctvrty sloupec udava velikost PDMLsouboru bez optimalizacı a s optimalizacemi. Poslednı

3Viz. https://wiki.wireshark.org/DisplayFilters

Page 7: Detekce s´ıt’ovyc´ h utok´ u˚ pomoc´ı jejich deklarativn ...excel.fit.vutbr.cz/submissions/2018/013/13.pdf · formatu YAML. Ten umo´ zˇnuje specifikovat klˇ ´ıcovˇ

Obrazek 2. Topologie sıte pri realizaci sıt’ovychutoku za ucelem zachycenı sıt’ove komunikace.

sloupec pak udava procentualnı rozdıl ve velikostech.Z tabulky je mozne urcit, ze velikost vystupnıho sou-boru byla redukovana priblizne o 95 %.

6. TestovanıTestovanı nastroje probıhalo celkem ve trech fazıch,pricemz prvnı dve faze byly venovany testovanı funk-cnosti nastroje a tretı testum vykonnosti. V prvnı fazidoslo k testovanı, zda utoky popsane v deklarativnıchzapisech jsou korektne detekovany. K tomu bylo za-potrebı zıskat soubory se zachycenou sıt’ovou komu-nikacı, v niz jsou utoky prıtomny. Soubory s nekterymisıt’ovymi utoky bylo mozne zıskat z ruznych verejnychdatabazı na internetu, nicmene vetsinu utoku bylo za-potrebı realne provest a zachytit pomocı nekterehoz paketovych analyzatoru. K tomu bylo vyuzito vir-tualnı testovacı prostredı vytvorene pomocı nastrojeVirtualBox a realne domacı sıte. Topologie domacısıte je vizualizovana na obrazku 2. Pro samotne gene-rovanı utoku bylo vyuzito mnozstvı volne dostupnychnastroju, ci paketovy manipulator Scapy4 pro jazykPython. Samotne testovanı probıhalo tak, ze nastrojibyl jako vstup predlozen soubor obsahujıcı dany sıt’ovyutok (potvrzeno pomocı paketoveho analyzatoru Wire-shark) a deklarativnı zapis, ktery tento utok popisuje.Nasledne bylo overeno, zda skutecne doslo ke korektnıdetekci utoku.

V druhe fazi bylo zapotrebı otestovat tzv. falsepositives [4], coz jsou prıpady, ve kterych je zahlasenapozitivnı detekce utoku i pri normalnı sıt’ove aktivite.Pro tento ucel bylo z verejnych internetovych databazıstazeno mnozstvı souboru obsahujıcıch zachyceny re-alny sıt’ovy provoz, ve kterych se rozsah paketu po-

4Viz. http://www.secdev.org/projects/scapy/

Velikostvstupu[MB]

Pocetpaketu

[tis.]

Dobazpracovanı

[s]

Max. vyuzitıoper. pameti

[MB]3,4 29 19,5 35856 94 88 135098 142 136 1900153 192 191 2600202 228 372 3150275 282 441 3800352 402 507 5500453 443 691 6100

Tabulka 2. Porovnanı doby behu a pamet’ovenarocnosti nastroje pro ruzne velikosti vstupnıchsouboru se zachycenou sıt’ovou komunikacı.

hyboval v rozmezı od peti tisıc do peti set tisıc. Nazaklade provedenych testu pak dochazelo k upravamci rozsırenım formatu pro deklarativnı zapis utoku tak,aby k prıpadnym false positives nedochazelo.

Tretı faze byla venovana testovanı vykonnosti im-plementovaneho nastroje. V tabulce 2 je uvedenoporovnanı doby behu a pamet’ovych naroku nastrojepro ruznou velikost vstupnıch souboru se zachycenousıt’ovou komunikacı. V ramci jednoho behu nastrojemusı dojıt ke konverzi vstupnıho souboru do formatuPDML. Nasledne musı byt pomocı knihovny cElement-Tree iterativne zpracovany jednotlive pakety z vystupukonverze. V poslednı casti je pak vyhodnoceno dvacettri deklarativnıch popisu utoku. Hodnoty v tabulce 2byly namereny na zarızenı s procesorem Intel Corei5-3230M (2.6/3.2 GHz) a operacnı pametı 8GB.

Z tabulek 1 a 2 je patrne, ze na soucasnych prumer-nych pocıtacıch je mozne analyzovat vstupnı souboryaz o velikostech priblizne pul gigabytu, pricemz vy-hodnocenı dvaceti trı ruznych sıt’ovych utoku na taktovelkem vstupu zabere priblizne dvanact minut. Nastrojtedy dosahuje propustnosti priblizne 5,2 Mb/s. Behnastroje je limitovan predevsım kapacitou operacnıpameti, protoze pri zpracovanı souboru o velikosti pulgigabytu jiz dochazı k zaplnenı priblizne 8 GB pametiRAM. Pokud dojde k vycerpanı dostupne kapacityoperacnı pameti, unixove operacnı systemy zacınajıvyuzıvat diskoveho uloziste pro ukladanı nadbytecnychdat, coz vede ke znacnemu zpomalenı pri detekci.Pokud je tedy zapotrebı zpracovavat soubory o vetsıchvelikostech, je nezbytne rozsırit kapacitu operacnı pa-meti nebo vyuzıt disku typu SSD, na kterych zpoma-lenı jiz nenı tolik vyrazne.

7. ZhodnocenıVysledny nastroj je implementovan v jazyce Pythonve verzi 2.7. Jazyk Python byl vybran predevsımdıky jeho flexibilite a mnozstvı dostupnych knihoven.

Page 8: Detekce s´ıt’ovyc´ h utok´ u˚ pomoc´ı jejich deklarativn ...excel.fit.vutbr.cz/submissions/2018/013/13.pdf · formatu YAML. Ten umo´ zˇnuje specifikovat klˇ ´ıcovˇ

Pro zpracovanı paketu byla pouzita knihovna cEle-mentTree, ktera je implementovana v cistem jazyce Ca ve srovnanı5 s ostatnımi knihovnami dosahuje nej-lepsıch vysledku jak v dobe zpracovanı, tak v oblastipamet’ovych naroku. Aktualnı verze nastroje poskytujedvacet tri deklarativnıch popisu a je schopna detekovatnasledujıcı utoky [7]:

• ARP Spoofing;• Duplicate address detection attack;• DHCP Spoofing;• ICMP Redirect;• MAC Flooding;• Skenovanı sıte IPv4 a IPv6;• Ping of Death;• Skenovanı portu (ruzne metody);• Router Advertisement Flooding;• SYN Flooding;• Local Area Network Denial (LAND);• Teardrop;• VLAN hopping: Double tagging;• VLAN hopping: Switch Spoofing.

8. ZaverTato prace pojednavala o navrhu nastroje pro automa-tizovanou detekci sıt’ovych utoku ze zachycene sıt’ovekomunikace s vyuzitım nastroje tshark. Pri navrhubyl kladen duraz na snadnou rozsiritelnost nastrojeo nove sıt’ove utoky bez nutnosti implementacnıchzmen nastroje. To je reseno pomocı textovych dekla-rativnıch zapisu jednotlivych utoku, ktere pro kazdyutok popisuje zpusob jeho detekce. Soucastı prace jetedy i navrh obecneho formatu pro deklarativnı zapissıt’ovych utoku. Vysledny nastroj funguje jako inter-pret techto zapisu a pri vyskytu noveho utoku postacujevytvorit novy deklarativnı zapis, namısto reimplemen-tace nastroje.

Funkcnost navrzeneho nastroje byla otestovanana zachycene sıt’ove komunikaci obsahujıcı vsechnysıt’ove utoky, jejichz detekci vysledny nastroj pod-poruje. Testovanı bylo zamereno i na falesne detekce(tzv. false positives), na jejichz zaklade pak dochazelok uprave ci rozsirovanı navrzeneho resenı. Zarovenbylo navrzeno nekolik optimalizacı pri konverzi vstup-nı zachycene komunikace do PDML, dıky cemuz doslok razantnımu snızenı velikosti vystupu konverze a tudızi snızenı pamet’ove narocnosti nastroje.

Budoucı vyvoj nastroje bude venovan predevsımrozsirovanı prostredku pro deklarativnı zapisy utoku

5Viz. http://effbot.org/zone/celementtree.htm#benchmarks

v prıpade, ze bude vyzadovana podpora novych sıt’o-vych utoku, pro jejichz zapis jsou soucasne prostredkynedostatecne. Zaroven bude zapotrebı reagovat naprıpadne dalsı falesne detekce a upravovat navrzenydeklarativnı zapis tak, aby doslo k jejich maximalnımozne eliminaci.

PodekovanıVelice rad bych tımto podekoval svemu vedoucımuIng. Martinu Holkovicovi za jeho ochotu, casovou fle-xibilitu a odborny dozor pri celem procesu tvorby na-stroje, kteremu se tento clanek venuje.

Literatura[1] BACE, R.: Intrusion Detection. Indianapolis:

Macmillan Technical Publishing, 2000, ISBN1578701856, 339 s.

[2] CANVAN, J. E.: The Fundamentals of NetworkSecurity. Artech House, 2001, ISBN 1580531768,218 s.

[3] COMBS, G.; RAMIREZ, G.; HARRIS, G.:GitHub repozitar nastroje TShark. cerven 2014,[Online].URL https://github.com/wireshark/wireshark

[4] GLEN, S.: False Positive and False Negative: De-finition and Examples. Duben 2015, [Online], [cit.2018-03-25].URL https://goo.gl/fJHJL8

[5] McCLURE, S.; SCAMBRAY, J.; KURTZ, G.:Hacking Exposed: Network Security Secrets andSolutions. McGraw-Hill Education, sedme vydanı,2012, ISBN 0071780289, 768 s.

[6] NAYYAR, A.: The Best Open Source NetworkIntrusion Detection Tools. Duben 2017, [Online],[cit. 2018-04-19].URL https://goo.gl/4yYYHz

[7] Tulloch, M.: Microsoft® Encyclopedia of Security.Microsoft Press, 2003, ISBN 0735618771, 480 s.