Locked History Actions

Skirtumas „Computers Network Traffic Flow Anomalies“

Pakeitimai tarp versijų 6 ir 7
Versija 6 nuo 2014-04-14 16:39:50
Dydis: 8438
Redaktorius: RimasCiplinskas2
Komentaras:
Versija 7 nuo 2014-04-14 16:41:21
Dydis: 10581
Redaktorius: RimasCiplinskas2
Komentaras:
Pašalinimai yra pažymėti taip. Pridėjimai yra pažymėti taip.
Eilutė 62: Eilutė 62:

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.

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ų.

Į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.

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ų.