Locked History Actions

Computers Network Traffic Flow Anomalies

Įvadas

Tinklo saugumas susideda iš nuostatų ir naudojimo politikų, kurias priima tinklo administratorius tam, kad stebėtų ir apsaugotų tinklą nuo grėsmių. Grėsmės gali būti įvairios tokios, kaip neautorizuotas tinklo pasiekimas, tinklo nepanaudojimas, modifikavimas ir tinklo ir tinklo išteklių prieinamumo apribojimas. Tinklo saugumui užtikrinti gali būti panaudota technika vadinama tinklo elgesio analizė (angl. Network Behavior Analysis – NBA). Tai yra būdas užtikrinti tinklo srauto stebėjimą ir pranešti neįprastus veiksmus, kurie skiriasi nuo įprastos tinklo veiklos. Įsibrovimų prevencijos sistema (angl. Intrusion Prevention systems – IPS) saugo tinklą naudodama paketų inspekciją, bruožų (angl. signature) aptikimą ir realaus laiko blokavimą. NBA sprendimai stebi, kas vyksta tinklo viduje ir gali sudėti srautą iš daugelio tinklo vietų, kad būtų galima atlikti analizę.

Viena iš NBA dalių yra tinklo elgesio anomalijų aptikimas (angl. Network Behavior Anomaly Detection – NBAD). Tai yra sistema, kuri visą laiką pasyviai stebi tinklo elgseną ir fiksuoja neįprastus įvykius ar neįprastą srautą. Tai yra sistema, kuri gali būti panaudota prie ugniasienių, antivirusinių programų ir antišnipinėjimo programų sprendimų. NBAD programa seka kritines tinklo charakteristikas realiu laiku ir generuoja aliarmą, jeigu aptinkamas keistas įvykis. Taip yra užkertamas kelias potencialiai grėsmei. Bendriausios stebimos tinklo charakteristikos yra srauto dalys, pralaidumo naudojimas ir protokolo naudojimas. NBAD taip pat gali būti panaudota individualiam tinklo naudotojo stebėjimui. Efektyviam tinklo stebėjimui, NBAD programa turi turėti gaires, kokia yra normali tinklo būsena, tai yra, turi būti atlikta tinklo analizė tam tikram laikotarpiui.

1. „Cisco“ „NetFlow“ protokolas

Sugebėjimas charakterizuoti IP srautą ir suprasti kaip ir kur jis keliauja yra kritinis kriterijus tinklo prieinamumui, tinklo galimybėms ir problemų sprendimui. IP srauto stebėjimas leidžia tiksliau suplanuoti tinklo pralaidumo galimybes bei optimizuoti išteklius tam, kad būtų užtikrintas tinkamas tinklo veikimas organizacijoje. Tinklo administratoriui tai padeda išnaudoti tinklo resursus, atitikti tinklo kokybės reikalavimus bei užtikrinti saugumą, kadangi leidžia aptikti serviso neteikimo (DoS) atakas, tinklo išteklius naudojančius virusus bei kitus tinklo įvykius.

Sprendimai, kuriuos padeda atlikti „NetFlow“:

  • Analizuoti naujas programas ir jų įtaką tinklui: identifikuoti tinklo apkrovą paleidus naujas programas tokias kaip VoIP ar nuotolinius prisijungimus.
  • Piko metu analizuoti WAN (angl. Wide Area Network) srautą: pagal „NetFlow“ statistiką surinkti duomenis apie srauto pasikeitimus, priklausančius nuo pritaikytos programų naudojimo politikos, taip išsiaiškinant, kas daugiausia naudoja tinklo resursus ir atrasti pagrindinius tinklo naudotojus.

  • Ieškoti tinklo problemų ir jų sprendimo būdų bei suprasti labiausiai pažeidžiamas vietas tinkle: diagnozuoti lėtą interneto spartą, pralaidumo kamščius bei pralaidumo naudojimą.
  • Aptikti neautorizuotą WAN srautą: taip išvengiama ieškojimo, kas sukelia programų problemas.
  • Saugumas ir anomalijų aptikimas: „NetFlow“ gali būti naudojamas anomalijų aptikimui ir tinklo kirminų diagnozei su programomis tokiomis, kaip „Cisco“ CS-Mars.

NetFlow“ tinklo informaciją atvaizduoja per IP srautą. Kiekvienas per maršrutizatorių ar komutatorių siunčiamas paketas yra egzaminuojamas ir tada sudaromas IP paketo atributų rinkinys. Šie atributai yra IP paketo identifikatoriai ar žymos (angl. fingerprint) ir apibūdina ar paketas yra unikalus ar panašus kitiems paketams. Paprastai IP srautas yra sudaromas iš 5 ar 7 IP paketo atributų.

NetFlow“ naudojami IP paketo atributai:

  • Siuntėjo IP adresas.
  • Gavėjo IP adresas.
  • Siuntėjo prievado numeris.
  • Gavėjo prievado numeris.
  • 3 lygmens protokolo tipas (TCP ar UDP).
  • Serviso klasė.
  • Komutatoriaus ar maršrutizatoriaus sąsajos numeris.

NetFlow“ paketų srauto pavyzdys pateiktas 1 paveiksle. Kaip matyti paveiksle, nurodoma kokiu metu buvo pradėtas siųsti srautas. Taip pat nurodoma kiek paketų sudarė srautą ir kokio dydžio buvo paketai. Nurodomas 3 lygmens protokolo tipas. Taip pat atvaizduojamas siuntėjo IP adresas ir prievado numeris bei gavėjo IP adresas ir prievado numeris.

flow2.png

1 pav. „Cisco“ „Netflow“ pavyzdys

2. Blokiniai

2.1. Blokinių ruošimas

Analizuojant kompiuterių tinklų srauto paketų anomalijas galima remtis keliais skirtingais metodais. Vienas iš jų yra blokinių ruošimas (angl. Clustering). Blokinių ruošimas yra mašininio mokymosi be mokytojo užduotis, kurios metu automatiškai duomenys dalijami į blokinius. Blokinį galima įsivaizduoti kaip panašių dalykų grupę. Panašūs dalykai, tai tokie, kurie turi bendrus bruožus, tokiu būdu jie gali sudaryti grupę. Blokinių ruošimas daromas be žinių kaip ta grupė turi atrodyti ateityje. Duomenų grupės sudaromos panaudojant natūraliai atrandamus duomenų bruožus. Kadangi dar nėra žinoma, kas ieškoma, tai blokinių ruošimas naudojamas bruožams atrasti vietoj spėjimų. Blokinių ruošimas daromas tokiu principu, jog duomenų įrašai yra panašūs vienas į kitą grupės viduje ir labai skirtingi grupės išorėje.

Blokinių ruošimą lyginant su klasifikavimu, tai esminis skirtumas yra duotose duomenyse. Paprastai klasifikavimui pateikiami jau iš anksto sužymėti duomenys. Pagal tai kokie duomenys yra, juos galima išskirti į skirtingas klases. Klasifikavimas panaudojamas mašininio mokymosi su mokytoju užduotyse, kadangi tokios rūšies problemų sprendimui naudojami sužymėti duomenys. Blokinių ruošimui, priešingai, pateikiami iš anksto nesužymėti duomenys, dėl to negalima išskirti į klases. Taigi tenka pagal bruožus duomenis skirstyti į blokinius, o tai yra viena iš mašininio mokymosi be mokytojo užduočių.

Blokinių ruošimas gali būti panaudotas tokiose taikomosiose aplikacijose:

  • Segmentuoti pirkėjus į grupes pagal panašius demografinius ar pirkimo įpročių tinklelius naudojamus reklamos kompanijose. Taip pat įvairių žmonių grupių pirkimo analizei.
  • Anomališko elgesio tokiam kaip neautorizuotam įsiveržimui į kompiuterių tinklą, aptikimui, identifikuojant žinomo blokinio šablono nukrypimams.
  • Supaprastini ypatingai didelius duomenų rinkinius, sugrupuojant dideles bruožų vertes su panašiomis vertėmis į mažesnio dydžio homogenines kategorijas.

K-reikšmių algoritmas tikriausiai yra labiausiai naudojamas blokinių ruošimo metodas. Jo privalumai:

  • Naudoja paprastus principus blokinių suradimui, kurie gali būti paaiškinti ne statistiniais terminais.
  • Labai lankstus ir gali būti pritaikytas daugeliui variantų su nedideliais pakeitimais.
  • Pakankamai efektyvus ir gerai atlieka savo funkcijas padalydamas duomenis į naudingus blokinius.

Metodo trūkumai:

  • Ne toks išmanus, kaip naujausieji metodai.
  • Nėra garantuojamas optimalus blokinių radimas, kadangi naudoja atsitiktinio dydžio elementą.
  • Reikalauja pakankamai pasverto spėjimo kiek natūraliai egzistuoja blokinių duotose duomenyse.

K-reikšmių algoritmas kiekvienam iš n pavyzdžių priskiria vieną iš k blokinių. Skaičius k yra iš anksto nurodomas ir reikalauja pakankamai pasverto spėjimo. Pagrindinis tikslas yra minimizuoti blokinio viduje esančių elementų skirtumus ir maksimizuoti pačių blokinių tarpusavio skirtumus. Trumpai apibūdinant, pats algoritmas apima dvi fazes. Pirmiausia, metode pavyzdžiams yra priskiriamas pradinis blokinių rinkinys. Po to yra atnaujinami priskyrimai, pakoreguojant blokinio ribas pagal tai, koks pavyzdys buvo priskirtas blokiniui. Atnaujinimo ir priskyrimo procesas kartojamas kelis kartus, kol daromi pakeitimai nebeįtakoja patekimo į blokinį.

2.2. Blokinių ruošimo pavyzdžiai

Statistikoje naudojama programavimo kalba R leidžia duomenis rūšiuoti į blokinius. Tam, kad duomenys būtų tinkamai apdoroti, juos reikia apdoroti. Blokiniuose paprastai naudojami skaitiniai parametrai. Taigi, vienas iš duomenų paruošimo žingsnių yra tekstinių duomenų dalių pašalinimas. Taip pat naudinga trūkstamas duomenų vertes, jei tokių yra, užpildyti išgalvotais (angl. dummy) duomenimis, kurie atitiktų tam tikrą logiką ar grupės kriterijus. Tai yra naudingiau, negu tiesiog duomenų atsisakymas, kadangi vieno parametro trūkumas priveda prie visų duomenų elemento parametrų atsisakymo, o jie gali įtakoti galutinį rezultatą.

Kitu žingsniu yra standartizuojami duomenys. Tai yra jie tampa santykiniai, lyginami tarpusavio duomenų santykiai, o ne absoliutinės jų vertės, kadangi pačios duomenų vertės yra sąlyginai skirtingos, o tai priveda prie netikslumų.

Įvedus duomenų normalizavimą, galima išvengti netikslumų. R programavimo kalboje yra funkcija kmeans(), kuri skirsto į blokinius. Joje nurodomas norimas blokinių kiekis. Pavyzdyje, 3999 paketų srautai yra suskirstyti į 3 grupes pagal paketų kiekį, baitų skaičių ir trukmę. 2 paveiksle pateiktas elementų grafikas pagal kurį matyti vizualus elementų pasiskirstymas blokiniuose.

clusters.png

2 pav. Išskaidymo į blokinius pavyzdys

1 lentelėje pateikti blokinių ruošimo pavyzdžio parametrai. Lentelėje palyginta bendras pradinis paketų srautas, kuriame yra 3999 įrašai, ir atskiri blokiniai. Šie parametrai yra gauti iš pradinių reikšmių, o ne iš standartizuotų, kadangi pradiniams įrašams yra priskiriamas jų blokinio numeris. Tokiu būdu galima rasti pradinių reikšmių parametrus. Kaip matyti 1 lentelėje blokiniai pasižymi labai skirtingomis parametrų vertėmis. Tai reiškia, jog skirstymas į grupes yra logiškas, kadangi elementų parametrai yra pernelyg nevienodi, jog būtų laikomi vienoje grupėje. Taip pat matyti, jog daugiausia elementų, daugiau negu pusė, buvo priskirta 5 grupei, kurios parametrai nurodo, jog paketų srautai truko trumpai ir buvo perduota nedaug paketų.

1 lentelė. Paketų srauto ir atskirų blokinių parametrų palyginimas.

Blokiniai

Visi paketų srautai

1

2

3

4

5

Dydis

3999

10

1

138

38

3812

Vidutinis paketų skaičius

2,48

101,7

358

7,69

44,29

1,52

Vidutinis baitų skaičius

782,64

14606,5

512725

979,23

36,847,34

245,45

Vidutinė trukmė, s

16,37

1384,28

13,31

281,76

20,7

3,12

3. Išskirčių aptikimas

3.1. Vietinių išskirčių faktorius

Vietinių išskirčių faktorius (angl. Local Outlier Factor – LOF) yra algoritmas naudojamas anomalijų aptikime. Algoritmas naudojamas rasti anomališkus duomenų taškus matuojant vietinį nuokrypį nuo duotų duomenų taškų, atsižvelgiant į kaimyninių taškų atstumus. LOF dalijasi panašiais koncepciniais bruožais kaip DBSCAN ir OPTICS algoritmų pagrindinis atstumas ir pasiekiamumo atstumas, kurie panaudojami vietinio tankio apibūdinimui.

Pagrindinė LOF algoritmo idėja yra ta, jog išskirtis yra nutolusi nuo kitų duomenų. Galima išskirti kelis skirtingus atstumų ieškojimo būdus. Tai yra ieškoma pagal kaimynų kiekį. Tokiu būdu keliamas uždavinys rasti koks yra atstumas, kad būtų pasiekti, pavyzdžiui, 2 kaimynai. Arba galima ieškoti atstumu. Tai yra, naudojamas atstumas ir žiūrima kiek kaimynų yra pasiekiama. Paprastai naudojama variantas, kai pasirenkama k vertė, kuri reiškia kaimynų skaičių ir ieškomas atstumas.

LOF algoritmas naudoja ne tik atstumų matavimą, tačiau ir tankį. Pats algoritmas pagal skirstymą priklauso prie tankiu pagrįstų algoritmų sąrašo. Algoritmo idėja yra tokia, jog išskirties vieta yra mažesnio tankio negu kaimynų. Skaičiuojant LOF vertę yra gaunamas santykinis tankis, tai yra lyginamas artimiausių per k vertę kaimynų pasiekiamumas su paties objekto vietiniu pasiekiamumu.

Galutinė LOF vertė yra naudojama nustatyti ar duomenys gali būti laikomi išskirtimi ar ne. Jeigu duomenų LOF vertė yra lygi vienetui, tai laikoma, jog duomenys su kaimynais yra tokio pat tankumo ir išskirčių nėra. Jeigu duomenų LOF vertė apytiksliai lygi vienetui, tai laikoma, jog duomenys yra panašaus tankio su kaimynais. Jeigu duomenų LOF vertė yra didesnė nei vienetas, tai laikoma, kad ta duomenų sritis yra mažesnio tankio lyginant su kaimynais. Dėl to galima laikyti, kad toji sritis, kurios LOF įvertis yra gerokai didesnis už vienetą yra išskirčių sritis.

3.2. Paprastas LOF skaičiavimas

Norint suprasti LOF algoritmą, naudinga paėmus paprastus duomenų taškus žinomose koordinatėse, pabandyti pasiskaičiuoti LOF vertę. LOF vertės skaičiavimas susideda iš 4 žingsnių.

1. Apskaičiuojami atstumai tarp kiekvieno taško. Atstumui apskaičiuoti naudojamas Manheteno atstumas. Jis ypatingas tuo, jog naudojami tinklelio kvadratai atstumui surasti. Turint koordinates, atstumas randamas pagal tokią išraišką:

  • L(a,b) = |a1 - b1 | + |a1 - b2|

2. Surandami kNN (angl. K-th Nearest Neighbors) kaimynai. K reikšmę reikia parinkti, pagal jos reikšmę yra surandami artimiausi kaimynai. Pavyzdžiui, jeigu k = 2, tai yra parenkamas toks atstumas tarp kaimynų, jog būtų apimti 2 kaimynai. Sutrumpintai tai rašoma 2NN. Parinkus minimalų atstumą, jog būtų k kaimynų, jis pažymimas kaip kd. 3. Surandama vietinio pasiekiamumo vertė lrdk. Ji nusako vietinius kaimynų pasiekiamumus. Vietinio pasiekiamumo vertė randama taip:

formule2.png

4. Surandama LOF vertė. Ji nusako sąlyginį tankį. Kuo LOF vertė didesnė, tuo lokalios srities tankis mažesnis. LOF vertė apskaičiuojama taip:

formule3.png

3.3. LOF skaičiavimo pavyzdys

taskai.png

3 pav. Duomenų taškų tinklelis, naudojamas pavyzdyje.

Duomenų taškai pavaizduoti 3 paveiksle. Taškų koordinatės yra A(1,1), B(2,1), C(1,2), D(2,2), E(3,5). Pirmuoju žingsniu apskaičiuojama visų taškų tarpusavio atstumai. Skaičiavimai parodyti 2 lentelėje.

2 lentelė. Atstumo tarp kaimynų skaičiavimas

Taškai

Skaičiavimas

Atstumas

Dist(a,b)

|1-2| + |1-1|

1

Dist(a,c)

|1-1| + |1-2|

1

Dist(a,d)

|1-2| + |1-2|

2

Dist(a,e)

|1-3| + |1-5|

6

Dist(b,c)

|2-1| + |1-2|

2

Dist(b,d)

|2-2| + |1-2|

1

Dist(b,e)

|2-3| + |1-5|

5

Dist(c,d)

|1-2| + |2-2|

1

Dist(c,e)

|1-3| + |2-5|

5

Dist(d,e)

|2-3| + |2-5|

4

Kitu žingsniu randami k artimiausi kaimynai. Pasirinkta k = 2, taigi randami 2 artimiausi kaimynai. Taip pat randamas minimalus atstumas, kuris reikalingas pasiekti 2 kaimynus. Tai pateikta 3 lentelėje.

3 lentelė. Kaimynų radimas ir vietinio pasiekiamumo skaičiavimas

2NN

2d

lrd2

A

BC

1

2/(1+1) = 1

B

AD

1

2/(1+1) = 1

C

AD

1

2/(1+1) = 1

D

BC

1

2/(1+1) = 1

E

BCD

5

3/(5+4+5) = 3/14

Kitu žingsniu randama vietinio pasiekiamumo reikšmė lrdk. Ji taip pat pateikta 3 lentelėje. Galiausiai yra paskaičiuojamas LOF įvertinimas. Jis pateiktas žemiau esančiuose skaičiavimuose. LOF įvertinimas skaičiuojamas paprastai. Paimama elemento, kurio įvertinimą norima skaičiuoti, kaimynų vietinio pasiekiamumo verčių suma, ji padalinama iš kaimyninių elementų skaičiaus ir viskas dalinama iš paties skaičuojama elemento vietinio pasiekiamumo vertės.

LOFformule.png

Paprastas LOF skaičiavimo pavyzdys, patvirtina idėją, jog LOF vertei, esant artimai vienetui, tie elementai gali būti laikomi, esantys vienoje grupėje. Pagal 3 paveikslą, kuriame pateikti duoti taškai, matyti, kad duomenų taškai A, B, C, D yra vienoje grupėje, nutolę vienas nuo kito nedideliais atstumais. Jų duomenų tankis yra vienodas ir palyginus su visų elementų skaičiumi, gana didelis, dėl to LOF vertė yra nedidelė ir vienoda. Visai kitaip su duomenų tašku E. Iš grafiko matyti, kad jis gerokai nutolęs nuo kitų taškų grupės. Tai parodo ir LOF skaičiavimai – LOF įvertis gaunamas gerokai didesnis nei kitų elementų, taigi ta sritis laikoma mažesnio tankio. Remiantis tuo, šiuo atveju, elementą E galima laikyti išskirtimi.

3.4. LOF parametrai

Vienas iš svarbesnių dalykų LOF skaičiavime yra naudingų parametrų radimas. Tai reiškia, kokius parametrus reikia pateikti skaičiavimui. Jeigu duomenys yra taškai su koordinatėmis, kaip skaičiuotame pavyzdyje, tai nėra taip sudėtinga aprašyti parametrus. Bet kai duomenys yra tinklo paketų srautai, tai naudingų parametrų ieškojimas tampa rimtu iššūkiu. Galima imti standartinius paketų srauto parametrus. LOF skaičiavimus galima atlikti paketų kiekiu, baitų kiekiu ir trukme. Bet nieko nevertinant šie parametrai mažai ką pasako. Tad naudinga rasti išvestinius parametrus. Vieni išvestiniai parametrai gali būti paremti laiko langu arba paremti susijungimų skaičiumi. Išvestiniai parametrai pateikti 4 lentelėje.

4 lentelė. Išvestiniai parametrai

Parametras

Aprašymas

Išvestiniai parametrai, paremti laiko langu

Gavėjų kiekis (angl. count-dest)

Paketų srautų kiekis iš to paties siuntėjo unikaliems gavėjų IP adresams per paskutines T sekundžių.

Siuntėjų kiekis (angl. count-src)

Paketų srautų kiekis tam pačiam gavėjui iš unikalių siuntėjo adresų per paskutines T sekundžių.

Siuntėjų kiekis į tam tikrą prievadą (angl. count-serv-src)

Paketų srautų kiekis į tą patį gavėjo prievadą iš unikalių siuntėjo IP adresų per paskutines T sekundžių.

Gavėjų kiekis iš tam tikro prievado (angl. count-serv-dest)

Paketų srautų kiekis unikaliems gavėjų adresams iš to paties siuntėjo prievado numerio per paskutines T sekundžių.

Išvestiniai parametrai, paremti susijungimų skaičiumi

Gavėjų kiekis (angl. count-dest-conn)

Paketų srautų kiekis iš to paties siuntėjo unikaliems gavėjų IP adresams per paskutinius N paketų srautų.

Siuntėjų kiekis (angl. count-src-conn)

Paketų srautų kiekis tam pačiam gavėjui iš unikalių siuntėjo adresų per paskutinius N paketų srautų.

Siuntėjų kiekis į tam tikrą prievadą (angl. count-serv-src-conn)

Paketų srautų kiekis į tą patį gavėjo prievadą iš unikalių siuntėjo IP adresų per paskutinius N paketų srautų.

Gavėjų kiekis iš tam tikro prievado (angl. count-serv-dest-conn)

Paketų srautų kiekis unikaliems gavėjų adresams iš to paties siuntėjo prievado numerio per paskutinius N paketų srautų.

Taip pat yra naudinga ieškoti parametrų atsižvelgiant į tai kokią anomaliją norima rasti. Jeigu norima rasti botnetų tinklą, tai visai naudinga ieškoti vidutinio laiko tarp paketų srautų iš to paties IP adreso. Jeigu tarp paketų srautų laikas yra vienodai pasiskirstęs, tai galima manyti, kad kompiuterį valdo programa, kadangi paprastai žmogaus valdomo kompiuterio, paketų srautai prasideda atsitiktiniu laiko momentu. Norint aptikti DoS ataką, reikėtų atkreipti dėmesį į IP adresus, šiuo atveju, dominuojanti paketų srautų dalis yra nukreipta į vieną gavėjo IP adresą ir nėra dominuojančio siuntėjo IP adreso. Flash Crowd anomalija, kuri apibūdinama, kaip neįprastai didelis resursų ar serverio paslaugų pareikalavimas, pasižymi tuo, jog būna dominuojantis gavėjo IP adresas ir dominuojantis gavėjo prievadas. Paprastai būna tik vienas paketų srautas. Skanavimo anomalija gali būti aptinkama, atsižvelgiant į dominuojantį gavėjo adresą. Paprastai nebūna dominuojančios gavėjo IP adreso ir prievado kombinacijos, tačiau yra dominuojantis siuntėjo IP adresas, jeigu skanuojama iš to paties mazgo. Taip pat yra daug paketų srautų ir, jeigu jie neištęsti laike, tęsiasi neilgą laiko tarpą. Per paketų srautus galima rasti ir kirminų anomalijas. Šios anomalijos pasižymi tuo, jog nėra dominuojančio gavėjo IP adreso, tėra tik dominuojantis prievadas.

3.5 LOF pavyzdys su programavimo kalba R

Programavimo kalboje R yra bibliotekos, kurios leidžia paskaičiuoti LOF įverčius. Viena iš jų yra biblioteka „DMwR“. Šioje bibliotekoje yra LOF skaičiavimo funkcija lofactor(). Pavyzdyje LOF buvo skaičiuojamas paimant 40 paketų srautų įrašų. Juose buvo parinktas vienas iš siuntėjų IP adresų ir šiam adresui 5 minučių laikotarpyje buvo išgauti 16 paketų srautų. Paėmus pačius paprasčiausius parametrus, tokius kaip paketų kiekis, baitų kiekis ir trukmė, buvo rastos LOF vertės ir pagal jas surastos išskirtys. Kadangi buvo paimti paprasčiausi parametrai ir jie buvo gana skirtingi, tai šis pavyzdys skirtas tik panagrinėti kaip veikia lofactor() funkcija ir, pavyzdžiui, pagal algoritmą turėtų išskirti tam tikrus paketų srautus, kadangi jie pasižymi kitokiomis savybėmis, pavyzdžiui, daug didesniu paketų kiekiu, nei likę paketų srautai.

Pagal 4 paveikslą, matyti, kad paketų srautų tankis didžiausias ten, kur LOF vertė yra apie 1. Tai paaiškinama tuo, jog grupės, kurioje tankis didžiausias, LOF įvertis ir gaunamas apytiksliai lygus 1 ir, kadangi didžioji dauguma paketų srautų buvo panašūs savo savybėmis, jie grupuojami į vieną grupę. Taip pat matyti keli tankio padidėjimai ties maždaug 50 ir 100 LOF įvertinimais. Tai yra atskiri paketų įrašai, kurie savo parametrais gerokai skiriasi nuo bendros grupės. Šie įrašai pasižymi tuo, jog paketų srautą sudaro ne keletas paketų, o keli šimtai. Todėl šiuo atveju, jie gali būti laikomi išskirtimis pagal LOF įvertį.

LOF1.png

4 pav. LOF įvertinimo tankio pasiskirstymas.

Išvados

Darbe apžvelgtas „Cisco“ „NetFlow“ protokolas ir apžvelgti keli metodai kaip galima analizuoti kompiuterių tinklų srautų anomalijas. „Cisco“„NetFlow“ protokolu charakterizuojamas tinklo srautas. Tinklo paketai yra egzaminuojami ir sudedami į srautą su IP paketo atributais, tokiais kaip protokolo tipas, IP adresai ar prievado numeriai.

Visą srautą galima analizuoti panaudojant blokinių ruošimo metodus ar išskirčių aptikimo metodus. Blokinių kūrimas naudingas tuo, jog nereikia iš anksto sužymėtų duomenų, o duomenų grupės gali būti sudaromos, atsižvelgiant į turimų duomenų parametrus. Vienas iš populiariausių blokinių ruošimo algoritmų yra k-reikšmių algoritmas. Jo privalumai yra tokie, jog naudoja paprastus principus blokinių suradimui, yra lankstus bei efektyvus. Pagrindiniai trūkumai yra tokie, jog naudojamas atsitiktinio dydžio elementas, dėl to rezultatai nėra visada optimalūs, taip pat k-reikšmių algoritmas reikalauja pakankamai pasverto spėjimo kiek natūraliai egzistuoja blokinių duotose duomenyse.

Kitas apžvelgtas srauto analizavimo algoritmas yra vietinių išskirčių faktoriaus LOF algoritmas. Pagrindinė LOF algoritmo idėja yra išskirties nutolimas nuo kitų duomenų. Algoritmas naudojamas rasti anomališkus duomenų taškus matuojant vietinį nuokrypį nuo duotų duomenų taškų, atsižvelgiant į kaimyninių taškų atstumus. LOF algoritmo rezultate gaunamas duomenų taškų LOF įvertis. Jis parodo, koks sąlyginis tankis yra tos srities, kurioje yra duomenų elementas. Jeigu LOF įvertis yra apytiksliai lygus 1, tai rodo, jog skaičiuojamas duomenų elementas yra tokio pat tankio grupėje kaip ir jo kaimynai ir jis nėra išskirtis. Jeigu LOF įvertis daug didesnis negu vienetas, tai sritis, kurioje yra elementas, yra daug mažesnio tankio, ją gali sudaryti netgi tas vienas elementas ir dėl to jis, lyginant su kaimynais, gali būti laikomas išskirtimi.

Literatūros sąrašas

1. Cisco White Paper, 2012 m. Introduction to Cisco IOS NetFlow [interaktyvus]. [žiūrėta 2013 m. spalio 19 d.]. Prieiga per internetą: http://www.cisco.com/en/US/prod/collateral/iosswrel/ps6537/ps6555/ps6601/prod_white_paper0900aecd80406232.pdf

2. Brett Lantz, 2013 m. Machine Learning with R.

3. Erich Schubert, Arthut Zimek, 2013 m. Data Mining Tutorial. Outlier Detection

4. Markus M. Breunig, Hans-Peter Kriegel, 2000 m. LOF: Identifying Density-Based Local Outliers.