• No results found

Detection and Isolation of Attackers Using Neflow Data

N/A
N/A
Protected

Academic year: 2021

Share "Detection and Isolation of Attackers Using Neflow Data"

Copied!
51
0
0

Loading.... (view fulltext now)

Full text

(1)

VYSOK ´

E U ˇ

CEN´I TECHNICK ´

E V BRN ˇ

E

BRNO UNIVERSITY OF TECHNOLOGY

FAKULTA INFORMA ˇ

CN´ICH TECHNOLOGI´I

´

USTAV INFORMA ˇ

CN´ICH SYST ´

EM ˚

U

FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS

DETEKCE A IZOLACE ´

UTO ˇ

CN´IK ˚

U POMOC´I

Z ´

AZNAM ˚

U NETFLOW

DETECTION AND ISOLATION OF ATTACKERS USING NETFLOW DATA

DIPLOMOV ´

A PR ´

ACE

MASTER’S THESIS

AUTOR PR ´

ACE

MAT ˇ

EJ GR ´

EGR

AUTHOR

VEDOUC´I PR ´

ACE

Ing. PETR MATOU ˇ

SEK, Ph.D.

SUPERVISOR

(2)

Zad´

an´ı pr´

ace

1. Seznamte se s protokolem NetFlow a n´astroji pro anal´yzu dat z´ıskan´ych ze sondy

NetFlow.

2. Seznamte se s penetraˇcn´ımi n´astroji pro zjiˇst’ov´an´ı informac´ı o s´ıti a s´ıt’ov´ych zaˇr´ızen´ı

(nessus, nmap, apod.).

3. Simulujte ´utok na s´ıt’ v laboratorn´ıch podm´ınk´ach. Analyzujte z´aznamy NetFlow

s c´ılem detekce a izolace ´utoˇcn´ık.

4. Navrhnˇete a implementujte syst´em pro automatickou detekci a izolaci ´utoˇcn´ıka.

5. Demonstrujte pouˇzitelnost syst´emu na re´aln´em s´ıt’ov´em provozu (podle doporuˇcen´ı

(3)

Licenˇcn´ı smlouva

Licenˇcn´ı smlouva je uloˇzena v arch´ıvu Fakulty informaˇcn´ıch technologi´ı Vysok´eho uˇcen´ı

technick´eho v Brnˇe.

Abstrakt

Diplomov´a pr´ace se zab´yv´a pouˇzit´ım z´aznam˚u NetFlow pro detekci skenov´an´ı s´ıtˇe. Jako

zdroj dat jsou pouˇzita anonymizovan´a data NetFlow z p´ateˇrn´ı s´ıtˇe VUT. Z tˇechto dat jsou

vytvoˇreny statistiky, na jejichˇz z´akladˇe je navrhnuta sada skript˚u. Pomoc´ı tˇechto skript˚u je

moˇzn´e detekovat skenov´an´ı i ve velk´ych akademick´ych s´ıt´ıch.

Abstract

This thesis deals with using NetFlow records for detection network scanning. Anonymized NetFlow records from backbone VUT network are used as the source. Based on statistics created from these records, several Bash and Python scripts are implemented. With these scripts it is possible to detect network scanning even in large academics networks.

Kl´ıˇcov´

a slova

NetFlow, sonda, skenov´an´ı, zabezpeˇcen´ı

Keywords

NetFlow, probe, scanning, security

Citace

Matˇej Gr´egr: Detekce a izolace ´utoˇcn´ık˚u pomoc´ı z´aznam˚u NetFlow, diplomov´a pr´ace, Brno,

(4)

Detekce a izolace ´

utoˇcn´ık˚

u pomoc´ı z´

aznam˚

u NetFlow

Prohl´

aˇsen´ı

Prohlaˇsuji, ˇze jsem tuto diplomovou pr´aci vypracoval samostatnˇe pod veden´ım pana Ing. Petra

Matouˇska, Ph.D.

. . . .

Matˇej Gr´egr

26.5.2009

Podˇekov´

an´ı

Dˇekuji Ing. Petrovi Matouˇskovi, Ph.D. za veden´ı diplomov´e pr´ace a cenn´e pˇripom´ınky a

Ing. Tom´aˇsi Poderma´nskimu za zpˇr´ıstupnˇen´ı z´aznam˚u NetFlow a poskytnut´e konzultace k

dosaˇzen´ym v´ysledk˚um.

c

Matˇej Gr´egr, 2009.

Tato pr´ace vznikla jako ˇskoln´ı d´ılo na Vysok´em uˇcen´ı technick´em v Brnˇe, Fakultˇe in-formaˇcn´ıch technologi´ı. Pr´ace je chr´anˇena autorsk´ym z´akonem a jej´ı uˇzit´ı bez udˇelen´ı opr´avnˇen´ı autorem je nez´akonn´e, s v´yjimkou z´akonem definovan´ych pˇr´ıpad˚u.

(5)

Obsah

Obsah 2

1 Uvod´ 3

1.1 C´ıl diplomov´e pr´ace . . . 3

1.2 Clenˇˇ en´ı pr´ace . . . 3

2 Utoky a jejich anal´´ yza 5 3 Skenovac´ı techniky a n´astroje 7 3.1 Skenovac´ı techniky . . . 8 3.1.1 TCP . . . 8 3.1.2 UDP . . . 8 3.2 Skenovac´ı n´astroje . . . 9 4 NetFlow 10 4.1 Protokol NetFlow . . . 10 4.1.1 Z´akladn´ı popis . . . 10

4.1.2 Princip fungov´an´ı a vznik protokolu . . . 11

4.1.3 Ukl´adan´e informace . . . 12

4.1.4 Architektura NetFlow . . . 13

4.2 Sonda NetFlow . . . 13

4.2.1 Vlastnosti sondy: . . . 13

4.3 N´astroje . . . 14

5 Skenov´an´ı a NetFlow 15 5.1 Skenov´an´ı pomoc´ı nmap . . . 15

5.2 Skenov´an´ı pomoc´ı EtherScopeTMSeries II . . . 16

6 Pr´ace s daty NetFlow v rozs´ahl´ych s´ıt´ıch 18 6.1 Zdroj dat NetFlow . . . 18

6.2 Zpracov´an´ı dat . . . 20

7 Statistika dat NetFlow v rozs´ahl´ych s´ıt´ıch 21 8 Anal´yza z´ıskan´ych dat a n´avrh aplikace 25 8.1 Shrnut´ı z´ıskan´ych statistik . . . 25

(6)

9 Implementace 31

9.1 Popis implementace . . . 31

9.2 Cas zpracov´ˇ an´ı . . . 33

10 V´ysledky anal´yzy 35 10.1 V´yzkum ve svˇetˇe . . . 39

10.2 Moˇzn´a rozˇs´ıˇren´ı . . . 39

11 Z´avˇer 40 Pouˇzit´a literatura 42 Seznam pˇr´ıloh 43 A N´astroj nfdump - form´at v´ystupu pipe 44 B Grafick´e rozhran´ı vytvoˇren´e n´astrojem nfsen 45 C Uk´azka detekce a z´aznam komunikace 46 C.1 Skenovan´a IP adresa pomoc´ı protkolu ICMP . . . 46

C.2 Detekce ´utoku snaˇz´ıc´ı se zneuˇz´ıt sluˇzbu Windows Messenger . . . 47

C.3 Skenov´an´ı sluˇzby DNS . . . 47

(7)

Kapitola 1

´

Uvod

Poˇc´ıtaˇcov´e s´ıtˇe ˇcel´ı v dneˇsn´ı dobˇe st´ale vˇetˇs´ımu mnoˇzstv´ı bezpeˇcnostn´ıch hrozeb a

za-bezpeˇcit je proti tˇemto hrozb´am pˇrin´aˇs´ı celou ˇradu probl´em˚u. Samotn´y firewall jiˇz na

kvalitn´ı zabezpeˇcen´ı pˇrest´av´a staˇcit a proto b´yv´a kombinov´an s dalˇs´ı technologi´ı. Jednou

z moˇznost´ı jak zv´yˇsit bezpeˇcnost poˇc´ıtaˇcov´e s´ıtˇe, by mohlo b´yt vyuˇzit´ı z´aznam˚u NetFlow,

kter´e jsou generov´any sondami nebo smˇerovaˇci s podporou t´eto technologie. Aby mohl

´

utoˇcn´ık napl´anovat ´utok na poˇc´ıtaˇcovou s´ıt’, potˇrebuje zn´at o dan´e s´ıti co nejv´ıce informac´ı.

Pokud se pˇri zajiˇst’ov´an´ı bezpeˇcnosti poˇc´ıtaˇcov´e s´ıtˇe zamˇeˇr´ıme tak´e na tuto poˇc´ataˇcn´ı f´azi ´

utoku, m˚uˇzeme d´ıky vˇcasn´e detekci ´utoku minimalizovat vznikl´e ˇskody, pˇr´ıpadnˇe ´utok zcela

odvr´atit.

1.1

C´ıl diplomov´

e pr´

ace

Hlavn´ım c´ılem diplomov´e pr´ace bude analyzovat, zda lze pomoc´ı z´aznam˚u NetFlow ´uspˇeˇsnˇe

detekovat poˇc´ateˇcn´ı f´azi ´utoku - skenov´an´ı s´ıtˇe. Pokud by se tyto typy ´utok˚u daly

dete-kovat, byl by to pˇr´ınos pro bezpeˇcnost s´ıtˇe. Reakc´ı na detekovan´y ´utok by mohla b´yt

blokace ´utoˇcn´ıka, omezen´ı ´utoˇcn´ıka nebo zasl´an´ı informace spr´avci s´ıtˇe. Tato diplomov´a

pr´ace navazuje na semestr´aln´ı projekt, ve kter´em byly pops´any principy a fungov´an´ı

proto-kolu NetFlow, jak´a zaˇr´ızen´ı slouˇz´ı ke generov´an´ı z´aznam˚u NetFlow a jak´e n´astroje m˚uˇzeme

pouˇz´ıt k anal´yze tˇechto z´aznam˚u. Byly tak´e pops´any techniky skenov´an´ı s´ıtˇe a dostupn´e

n´astroje, kter´e se ke skenov´an´ı pouˇz´ıvaj´ı. Jednotliv´e skenovac´ı n´astroje byly otestov´any

v laboratorn´ıch podm´ınk´ach.

V diplomov´e pr´aci se d´ale budu zab´yvat daty NetFlow z´ıskan´ymi z re´aln´eho provozu

velk´e s´ıtˇe. Z tˇechto dat bude vytvoˇrena statistika, kter´a pom˚uˇze urˇcit, kter´e ´udaje jsou z

hle-diska detekce skenov´an´ı d˚uleˇzit´e. D´ale bude implementov´ana aplikace, kter´a bude schopna

tato skenov´an´ı detekovat a zaznamenat. Dosaˇzen´e v´ysledky by mˇely b´yt konzultov´any se

spr´avcem s´ıtˇe, aby se aplikace dala pouˇz´ıt prakticky a z´ıskan´e v´ysledky umoˇznily zvˇetˇsit

zabezpeˇcen´ı s´ıtˇe.

1.2

Clenˇ

ˇ

en´ı pr´

ace

Kapitola 2 popisuje souˇcasnˇe pouˇz´ıvan´e techniky pro detekci s´ıt’ov´ych ´utok˚u. V kapitole

3 se zab´yv´am technikami skenov´an´ı zaˇr´ızen´ı na s´ıti a skenovac´ımi n´astroji (at’ uˇz

hard-warov´ymi nebo softwarov´ymi). Kapitola 4 popisuje protokol NetFlow, princip fungov´an´ı

(8)

skeno-vac´ıch n´astroj˚u a testov´an´ı skenovac´ıch technik pˇri skenov´an´ı v laboratoˇri jsou pops´any

v kapitole 5. Kapitola 6 popisuje problematiku anal´yzy z´aznam˚u NetFlow ve velk´ych s´ıt´ıch.

Je zde tak´e pops´ano, odkud byla z´ısk´ana data NetFlow, pouˇzita v t´eto pr´aci a jak´a tato

data maj´ı omezen´ı. V kapitole 7 je pops´ano, jak byly vytvoˇreny z dat NetFlow statistiky,

kter´e jsou pouˇzity pro zjiˇstˇen´ı, kter´e informace jsou d˚uleˇzit´e z hlediska detekce skenov´an´ı.

V kapitole 8 jsou tato data analyzov´ana a je vytvoˇren n´avrh aplikace, kter´a bude schopna

detekovat skenov´an´ı. Kapitola 9 popisuje konkr´etn´ı implementaci pro s´ıt’ VUT. V kapitole

10 jsou shrnuty dosaˇzen´e v´ysledky a diskutov´ana moˇzn´a rozˇs´ıˇren´ı. Souˇc´ast´ı diplomov´e pr´ace

(9)

Kapitola 2

´

Utoky a jejich anal´

yza

´

Utok na s´ıt’ vˇzdy zaˇc´ın´a zkoum´an´ım s´ıtˇe (network reconnaissance), kdy se ´utoˇcn´ık pokouˇs´ı

o neautorizovan´e zmapov´an´ı s´ıtˇe, sluˇzeb nebo zranitelnost´ı. C´ılem t´eto f´aze je z´ıskat dostatek

informac´ı k proveden´ı dalˇs´ıch typ˚u ´utok˚u se zamˇeˇren´ım na z´ısk´an´ı pˇr´ıstupu nebo odm´ıtnut´ı

pˇr´ıstupu legitimn´ım uˇzivatel˚um. Pokud by byla poˇc´ateˇcn´ı f´aze (tedy zkoum´an´ı) ne´uspˇeˇsn´a,

dalˇs´ı ´utok by byl pro ´utoˇcn´ıka daleko obt´ıˇznˇeji realizovateln´y. Pˇri mapov´an´ı s´ıtˇe se pouˇz´ıvaj´ı pˇrev´aˇznˇe n´asleduj´ıc´ı techniky:

• Skenov´an´ı IP adres: Zjiˇst’ov´an´ı aktivn´ıch IP adres v pods´ıti ˇci organizaci. Realizovan´e

pˇrev´aˇznˇe pomoc´ı protokolu ICMP a zpr´av Echo request, Echo reply (ping).

• Skenov´an´ı port˚u: U aktivn´ıch IP adres moˇznost zjistit, jak´e sluˇzby dan´e s´ıt’ov´e zaˇr´ızen´ı

podporuje. V´ıce v kapitole 3

• Naslouch´an´ı: Odposlouch´av´an´ı datov´eho provozu na s´ıti. Ztˇeˇzuj´ı to pˇrep´ınan´e s´ıtˇe, ale

pokud se bude analyzovat provoz na hraniˇcn´ıch bodech, lze z´ıskat mnoˇzstv´ı informac´ı.

• Informaˇcn´ı dotazy na aplikaˇcn´ı vrstvˇe: Vyuˇzit´ı dotaz˚u DNS, datab´aze whois, zjiˇstˇen´ı

rozsahu IP adres organizace

Pro detekci tˇechto a dalˇs´ıch typ˚u ´utok˚u se dnes ve vˇetˇs´ıch s´ıt´ıch pouˇz´ıvaj´ıNetwork

In-trusion Detection System (NIDS) a Network Intrusion Prevention System(NIPS). Syst´em

NIDS ´utoky detekuje a rozpozn´av´a. ´Utok˚um se nesnaˇz´ı aktivnˇe br´anit - jedn´a se o pasivn´ı

obrann´y syst´em. NIPS se snaˇz´ı ´utok˚um aktivnˇe zabr´anit. Syst´em NIDS/NIPS tvoˇr´ı

sen-zory na vstupn´ıch bodech s´ıtˇe, kter´e analyzuj´ı s´ıt’ov´y provoz a snaˇz´ı se detekovat ´utoky.

Z´ıskan´a data pos´ılaj´ı centr´aln´ı stanici, kter´a je zpracov´av´a. ˇReˇsen´ı m˚uˇze b´yt ˇcistˇe

softwa-rov´e, napˇr. program snort, nebo specializovan´e zaˇr´ızen´ı, napˇr. Cisco Guard. Pˇri reakci na

´

utok je spuˇstˇen alarm. To je obecn´y n´azev pro akci, kterou syst´em upozorˇnuje na

deteko-vanou aktivitu. Z´aleˇz´ı na syst´emu, jak je tato akce realizov´ana. M˚uˇze se jednat napˇr´ıklad

o posl´an´ı e-mailu spr´avci nebo zaznamen´an´ı ud´alosti do logovac´ıho souboru. ˇZ´adn´y syst´em

NIDS/NIPS ale nen´ı natolik pˇresn´y, aby generoval pouze korektn´ı alarmy. C´ılem je

mini-malizovat faleˇsn´e pozitivn´ı a negativn´ı alarmy.

• Faleˇsn´e alarmy - ˇspatn´e vyhodnocen´ı situace

– faleˇsn´e pozitivn´ı alarmy - vygenerov´an alarm pˇri norm´aln´ı s´ıt’ov´e aktivitˇe

(10)

• Prav´e alarmy - spr´avn´e vyhodnocen´ı situace

– prav´e pozitivn´ı alarmy - vygenerov´an alarm pˇri ´utoku

– prav´e negativn´ı alarmy - pˇri normln´ı aktivitˇe nen´ı generov´an ˇz´adn´y alarm

Pro anal´yzu datov´eho toku a detekci ´utok˚u se pouˇz´ıv´a nˇekolik typ˚u anal´yz [19].

• Anal´yza vzor˚u - C´ılem je naj´ıt vzor, kter´y je pro ´utok specifick´y. Z tˇechto vzor˚u jsou

pak vytvoˇreny datab´aze, kter´e se vyuˇz´ıvaj´ı pro detekci (m˚uˇze b´yt dod´ana napˇr´ıklad

v´yrobcem spolu se syst´emem IDS). Posloupnost paket˚u, kter´e maj´ı nastaven pouze

pˇr´ıznak SYN, m˚uˇze b´yt napˇr´ıklad vzor ´utoku pro skenov´an´ı. Kaˇzd´y nov´y ´utok mus´ı

b´yt analyzov´an a uloˇzen jako nov´y vzor. Podle poˇctu paket˚u potˇrebn´ych k detekci

´

utoku m˚uˇzeme klasifikovat vzory atomick´e - staˇc´ı jeden paket, nebo sloˇzen´e - je

tˇreba v´ıce paket˚u. Syst´em IDS vyuˇz´ıvaj´ıc´ı tento typ anal´yzy m˚uˇze generovat zv´yˇsen´e

mnoˇzstv´ı jak faleˇsn´ych negativn´ıch alarm˚u (napˇr. pˇri mal´e zmˇenˇe zn´am´eho ´utoku)

tak faleˇsn´ych pozitivn´ıch (vzor je pˇr´ıliˇs neurˇcit´y).

• Statistick´a anal´yza - Nˇekdy oznaˇcov´ana tak´e jako detekce anom´ali´ı. Syst´em pracuj´ıc´ı

s touto anal´yzou se nauˇc´ı norm´aln´ı provoz v dan´e s´ıti, tzv. profil. Pokud n´aslednˇe

profil s´ıtˇe pˇres´ahne zvolenou odchylku, je generov´an alarm. V´yhodou tohoto syst´emu

je i moˇznost detekce nov´ych ´utok˚u a pokud je vytvoˇren kvalitn´ı profil, tak i sn´ıˇzen´ı

faleˇsn´ych pozitivn´ıch alarm˚u. Uˇzivatel´e sv´e chov´an´ı mohou ale mˇenit, coˇz negativnˇe

ovlivˇnuje poˇcet faleˇsnˇe pozitivn´ıch alarm˚u (je nutn´e aktualizovat profily pˇri zmˇenˇe

s´ıtˇe).

• Kontrola obsahu protokol˚u - Aplikaˇcn´ı protokoly jako FTP, HTTP, SMTP a jin´e

mo-hou b´yt analyzov´any na z´akladˇe obsahu jednotliv´ych paket˚u. Tato detekce a anal´yza

se t´yk´a sp´ıˇse syst´em˚u IPS, kter´e mohou blokovat vybran´e pˇr´ıkazy, slouˇzit jako proxy

servery a podobnˇe. Jedn´a se o aktivn´ı obranu.

Pokud je nˇejak´y ´utok detekov´an, z´avis´ı na pouˇzit´em syst´emu, jak´a bude dalˇs´ı reakce.

Pokud se jedn´a o syst´em NIDS, ´utok je zpravidla zaznamen´an do souboru se z´aznamy (logu)

a syst´em upozorn´ı spr´avce, kter´y provede bezpeˇcnostn´ı opatˇren´ı. Syst´em NIPS zpravidla

reaguje ihned a ´utoku se snaˇz´ı aktivnˇe zabr´anit. N´asleduje f´aze prevence, kdy se snaˇz´ı

upravit odolnost syst´emu, aby zabr´anil dalˇs´ım podobn´ym ´utok˚um. Moˇzn´e reakce a prevence:

• Reset spojen´ı TCP - u spojen´ı TCP je zasl´an paket s pˇr´ıznakem RST obˇema ´uˇcastn´ık˚um.

U spojen´ı UDP se generuje paket ICMP se zpr´avou Port Unreachable.

• Blokace spojen´ı - s´ıt’ov´e spojen´ı je ihned zruˇseno a zdrojov´a IP adresa je zablokov´ana.

• Odeb´ır´an´ı pˇridˇelen´ych prostˇredk˚u - v pˇr´ıpadˇe vyˇcerp´an´ı zdroj˚u se mˇen´ı napˇr. max.

poˇcet ˇc´asteˇcnˇe otevˇren´ych spojen´ı, max. doba neˇcinnosti spojen´ı (idle timeout), max. poˇcet

souˇcasnˇe otevˇren´ych spojen´ı, d´elka ˇcek´an´ı na ukonˇcovac´ı paket (pˇr´ıznak FIN) a jin´e.

• Vyuˇzit´ı proxy - u protokolu HTTP i jin´ych aplikaˇcn´ıch protokol˚u, u spojen´ı TCP se

(11)

Kapitola 3

Skenovac´ı techniky a n´

astroje

Skenov´an´ı s´ıtˇe b´yv´a rozdˇeleno vˇetˇsinou na tˇri typy, podle zp˚usobu, jak´ym skenuje porty (viz

obr´azek 3.1). Pˇri horizont´aln´ım skenov´an´ı ´utoˇcn´ık skenuje jeden port na v´ıce poˇc´ıtaˇc´ıch.

U vertik´aln´ıho skenov´an´ı skenuje v´ıce port˚u na jednom poˇc´ıtaˇci a blokov´e skenov´an´ı je

kombinac´ı obou. blokové skenování vertikální skenování horizontální skenování IP porty 1.1.1.1 ~ 1.1.1.255 ~ 1.1.2.1 ~ 1 22 23 21 1023 ~ ~ ~

Obr´azek 3.1: Typy skenov´an´ı

Skenov´an´ı je realizov´ano u protokolu TCP a UDP skenov´an´ım port˚u [8]. Porty mohou

b´yt v n´asleduj´ıc´ıch stavech:

• open, accepted: Pokud je port open (otevˇren´y), znamen´a to, ˇze na nˇem bˇeˇz´ı s´ıt’ov´a

sluˇzba a je moˇzno s n´ım nav´azat spojen´ı.

• closed, denied: closed port znaˇc´ı uzavˇren´y port. Na pokus o pˇripojen´ı k takov´emu

portu je u TCP portu posl´an zpˇet paket s nastaven´ymi pˇr´ıznaky RST a ACK,

v pˇr´ıpadˇe portu UDP je posl´an ICMP paket typu 3, k´od 3 (port unreachable).

• filtered, blocked: Pˇri pokusu o kontaktov´an´ı tohoto portu nebyla zjiˇstˇena odpovˇed’

(kladn´a ani z´aporn´a)

Dalˇs´ı zjiˇst’ov´an´ı informac´ı o tom, co na dan´em portu bˇeˇz´ı za sluˇzbu, pˇr´ıpadnˇe jak´y OS

(12)

3.1

Skenovac´ı techniky

3.1.1 TCP

U skenov´an´ı TCP port˚u m˚uˇzeme vyuˇz´ıt v´ıce technik. Vˇetˇsina vyuˇz´ıv´a r˚uzn´ych nastaven´ych

pˇr´ıznak˚u v TCP paketu a toho, ˇze u protokolu TCP se navazuje a ustanovuje spojen´ı. Pˇri

navazov´an´ı spojen´ı jde o tzv. tˇr´ıf´azovou synchronizaci (three-way handshake). Pokud port

odpov´ı tak jak m´a (pˇr´ıznaky SYN/ACK), je ve stavu open. Pˇri odpovˇedi RST je ve stavu

closed a pˇri ˇz´adn´e odpovˇedi ve stavu filtered/blocked.

Skenov´an´ı SYN

Skenov´an´ı SYN nikdy nedokonˇc´ı TCP spojen´ı. Pro zjiˇstˇen´ı toho, zda je port otevˇren, mu

staˇc´ı poslat pouze paket s pˇr´ıznakem SYN a ˇcekat na odpovˇed’. Pokud pˇrijde SYN/ACK,

´

utoˇcn´ık v´ı, ˇze port je otevˇren´y. Podle tˇr´ıf´azov´e synchronizace by mˇel poslat paket s pˇr´ıznakem

ACK, ale ten nepoˇsle a kompletn´ı spojen´ı tedy nenav´aˇze. Tento typ skenov´an´ı se vyuˇz´ıv´a

pro svou rychlost a proto, ˇze je vˇetˇs´ı pravdˇepodobnost, ˇze nekompletn´ı nav´az´an´ı spojen´ı

nebude logov´ano.

Skenov´an´ı connect

Skenov´an´ı connect je vlastnˇe klasick´e kompletn´ı nav´az´an´ı spojen´ı. Pokud je port ve stavu

open, probˇehnou vˇsechny tˇri kroky synchronizace TCP. Tato skenovac´ı technika nen´ı pˇr´ıliˇs

vyuˇz´ıv´ana, protoˇze poskytuje stejn´e informace jako SYN scan, ale je pomalejˇs´ı a kompletn´ı

spojen´ı b´yvaj´ı logov´ana.

Skenov´an´ı Null, FIN a Xmas

Tyto zp˚usoby skenov´an´ı vyuˇz´ıvaj´ı znˇen´ı TCP RFC 793 [15], kde je ˇreˇceno, ˇze pokud je

port ve stavu closed, na kaˇzd´a pˇr´ıchoz´ı data, kter´a neobsahuj´ı pˇr´ıznak RST, m´a odpovˇedˇet

paketem s pˇr´ıznakem RST. Pokud je port ve stavu open, m´a na jak´ekoliv pakety, kde nejsou

nastaveny ani jedny z pˇr´ıznak˚u SYN, RST, ACK, zareagovat zahozen´ım paketu.

• Skenov´an´ı Null pos´ıl´a pakety bez nastaven´ı jak´ehokoliv pˇr´ıznaku.

• Skenov´an´ı FIN nastavuje u paketu pouze pˇr´ıznak FIN.

• Skenov´an´ı Xmas nastavuje pˇr´ıznaky FIN, URG a PSH.

Skenov´an´ı Ack

Tento zp˚usob skenov´an´ı m´a za ´uˇcel zjistit pouze to, zda je port filtrov´an nebo ne. Pokud

je port nefiltrov´an, tak open i closed port by na paket s pˇr´ıznakem ACK mˇel odpovˇedˇet

paketem s pˇr´ıznakem RST. Pokud je port filtrov´an, tak neodpov´ı.

3.1.2 UDP

U protokolu UDP se vyuˇz´ıv´a pouze jedin´eho skenov´an´ı. Pro oskenov´an´ı UDP portu se pos´ıl´a

paket UDP pouze s hlaviˇckou, kter´y neobsahuje ˇz´adn´a data. Pokud se vr´at´ı jako odpovˇed’

paket ICMP typu 3, k´odu 3, je port oznaˇcen jako closed. Pokud se vr´at´ı paket ICMP jin´eho

k´odu (1,2,9,10,13), m˚uˇzeme port oznaˇcit jako filtered. Pˇri otevˇren´em portu jako odpovˇed’

(13)

3.2

Skenovac´ı n´

astroje

Vˇetˇsinu v´yˇse zmiˇnovan´ych technik skenov´an´ı lze vyzkouˇset pomoc´ı skenovac´ıho n´astroje.

Kromˇe skenov´an´ı connect, kter´e je v podstatˇe stejn´e, jako pˇripojen´ı se na dan´y port

telne-tem, vyuˇz´ıvaj´ı ostatn´ı techniky upraven´e pˇr´ıznaky v hlaviˇck´ach TCP paket˚u, kter´e vyˇzaduj´ı

extern´ı knihovny a administr´atorsk´a opr´avnˇen´ı. Nejzn´amˇejˇs´ı a nejpouˇz´ıvanˇejˇs´ı skener port˚u

a s´ıtˇe obecnˇe je n´astroj Network Mapper, zkr´acenˇe nmap.

Nmap [14]

Nmap (”Network Mapper”) je bezpeˇcnostn´ı a s´ıt’ov´y skener. Dok´aˇze odhalovat poˇc´ıtaˇce

v s´ıti a sluˇzby, kter´e na nich bˇeˇz´ı. Z pokroˇcilejˇs´ıch nastaven´ı lze pouˇz´ıt detekci operaˇcn´ıho

syst´emu, jak´e filtry a firewally jsou pouˇzity a jak´e verze sluˇzeb bˇeˇz´ı na dan´em poˇc´ıtaˇci apod.

Je ˇs´ıˇren pod licenc´ı GNU GPL. Pokud ponech´ame z´akladn´ı nastaven´ı, tak z´akladn´ı pˇr´ıkaz

#nmap ip.skenovan´eho.poˇc´ıtaˇce zadan´y na pˇr´ıkazov´e ˇr´adce otestuje, zda je poˇc´ıtaˇc

ak-tivn´ı a pokud ano, testuje pˇribliˇzne 1000 nejpouˇz´ıvanˇejˇs´ıch port˚u. Nmap m´a obrovsk´e

mnoˇzstv´ı nastaven´ı a r˚uzn´ych zp˚usob˚u jak zjistit, jak´e sluˇzby poˇc´ıtaˇc poskytuje. V´ıce

in-formac´ı lze z´ıskat v manu´alov´e str´ance nebo na str´ance projektu.

Nessus [1]

Nessus je program pro kompletn´ı bezpeˇcnostn´ı anal´yzu. Skl´ad´a se z d´emonanessusd, kter´y

se star´a o samotn´e skenov´an´ı a klientanessus, kter´y nastavuje r˚uzn´e parametry skenov´an´ı,

spouˇst´ı skenov´an´ı a zobrazuje v´ysledky uˇzivateli. Pro samotn´e skenov´an´ı pouˇz´ıv´a z´asuvn´e

moduly, napsan´e ve vlastn´ım skriptovac´ım jazyce NASL1. Tˇechto modul˚u existuje velk´e

mnoˇzstv´ı (pˇres 20 000) a st´ale se aktualizuj´ı, podle aktu´aln´ıch bezpeˇcnostn´ıch zranitelnost´ı.

Pˇri testov´an´ı zranitelnosti pouˇz´ıv´a Nessus na zaˇc´atku skenov´an´ı port˚u dan´eho poˇc´ıtaˇce. M´a

vlastn´ı skener, ale dok´aˇze pouˇz´ıt tak´e extern´ı, jako napˇr. nmap. U zjiˇstˇen´ych otevˇren´ych

port˚u zkouˇs´ı vyuˇz´ıt zn´am´ych bezpeˇcnostn´ıch chyb sluˇzeb, kter´e na dan´em portu naslouchaj´ı.

Testuje tak´e konfiguraci a chybˇej´ıc´ı bezpeˇcnostn´ı z´aplaty, zda se nepouˇz´ıvaj´ı standardn´ı

a nevyplnˇen´a hesla a dalˇs´ı. Do roku 2005 to byl projekt s otevˇren´ym zdrojov´ym k´odem,

pak byl uzavˇren. Pro nekomerˇcn´ı vyuˇzit´ı je st´ale k dispozici zdarma (je nutn´a registrace),

ale aktualizovan´e moduly jsou nab´ızeny se sedmidenn´ım zpoˇzdˇen´ım.

EtherScopeTMSeries II [2]

S´ıt’ m˚uˇzeme skenovat i pomoc´ı hardwarov´ych zaˇr´ızen´ı. Jedn´ım z analyz´ator˚u, je pˇr´ıstroj

EtherScopeTMSeries II od firmy Fluke networks. Tento pˇr´ıstroj dok´aˇze analyzovat s´ıt’, do

kter´e je pˇripojen. Zvl´ad´a otestovat kabel´aˇz, analyzovat provoz v s´ıti, identifikovat VLAN

s´ıtˇe, odhalit aktivn´ı zaˇr´ızen´ı v s´ıti. Je schopen zobrazit statistiky a grafy protokol˚u, kter´e se

na s´ıti pouˇz´ıvaj´ı, detekovat ´uzk´a m´ısta v s´ıti (bottleneck) a mnoho dalˇs´ıho. Zaˇr´ızen´ı pouˇz´ıv´a

jako operaˇcn´ı syst´em Linux a pro zobrazen´ı v´ysledk˚u platformu Qtopia od firmy Trolltech.

Podrobnˇejˇs´ı popis je k dispozici v dokumentaci u v´yrobce.

1

(14)

Kapitola 4

NetFlow

Tato kapitola popisuje protokol NetFlow. Je zde pops´an princip fungov´an´ı protokolu, n´astroje,

kter´e se pˇri pr´aci s t´ımto protokolem pouˇz´ıvaj´ı, a sonda NetFlow, coˇz je hardwarov´e zaˇr´ızen´ı

vyuˇz´ıvaj´ıc´ı NetFlow protokol. Pomoc´ı tohoto protokolu lze ukl´adat z´aznam o provozu v s´ıti.

Tato data budou v pr´aci d´ale analyzov´ana a pokus´ım se zjistit, zda lze z tˇechto dat odhalit

skenov´an´ı s´ıtˇe.

4.1

Protokol NetFlow

4.1.1 Z´akladn´ı popis

Protokol NetFlow je protokol pro pˇrenos z´aznam˚u o toc´ıch, kter´y vyvinula spoleˇcnost Cisco.

NetFlow je tak´e ch´ap´an i jako cel´y proces mˇeˇren´ı tok˚u. Jako dalˇs´ı protokoly t´eto spoleˇcnosti

je uzavˇren´y, ale je k dispozici jeho specifikace v RFC 3954 [5](posledn´ı verze 9). D´ıky

dostupnosti specifikace je protokol implementov´an a podporov´an tak´e na jin´ych platform´ach

neˇz Cisco IOS napˇr. smˇerovaˇce Juniper nebo distribuce FreeBSD, OpenBSD a GNU/Linux.

Vzniklo nˇekolik verz´ı tohoto protokolu. Nejpouˇz´ıvanˇejˇs´ı je v dneˇsn´ı dobˇe verze 5 a rozˇsiˇruje

se tak´e posledn´ı verze 9. Posledn´ı verze protokolu NetFlow je tak´e z´akladem protokolu

IPFIX1, vytvoˇren´y IETF, kter´y pravdˇepodobnˇe bude v bl´ızk´e dobˇe schv´alen jako standard.

Protokol definuje nˇekolik pojm˚u, se kter´ymi je nutn´e se sezn´amit.

• IP tok (IP Flow): ˇCasto se pouˇz´ıv´a pouze n´azev tok. Tok je posloupnost paket˚u

proch´azej´ıc´ı monitorovan´ym rozhran´ım za urˇcit´y ˇcasov´y interval. Tyto pakety se

sho-duj´ı ve zdrojov´e a c´ılov´e IP adrese, zdrojov´em a c´ılov´em portu UDP nebo TCP,

protokolu, rozhran´ı a stejnˇe nastaven´ym bajtem Type of Service [6].

• NetFlow z´aznam(Flow Record, NetFlow data): Podrobnˇejˇs´ı informace k dan´emu

IP toku. Jsou zde informace o d´elce toku, poˇctu pˇrenesen´ych bajt˚u, paket˚u a dalˇs´ıch.

• Export´er (Exporter): Zaˇr´ızen´ı (napˇr. smˇerovaˇc), kter´e monitoruje proch´azej´ıc´ı

pa-kety a vytv´aˇr´ı z nich IP toky. Informace z tˇechto tok˚u jsou ve formˇe z´aznam˚u NetFlow

odes´ıl´any do kolektoru.

• Exportovan´y paket(Export Packet): Paket vytv´aˇren´y export´erem, kter´y obsahuje

z´aznamy NetFlow. Je odes´ıl´an export´erem do kolektoru.

(15)

• NetFlow kolektor(NetFlow collector): Kolektor, kter´y pˇrij´ım´a a zpracov´av´a pakety

z jednoho nebo v´ıce export´er˚u. Tyto pakety jsou pak ukl´ad´any na disk.

Sch´ema fungov´an´ı protokolu lze vidˇet na obr´azku 4.1. Zde jsou na pozici export´er˚u

smˇerovaˇce Cisco. Ty vytv´aˇrej´ı toky, kter´e jsou dedikovanou linkou pos´ıl´any do kolektoru.

N´aslednˇe mohou b´yt tato data zobrazena napˇr. pomoc´ı n´astroj˚u nfdump 4.3 nebo nfsen

4.3.

Obr´azek 4.1: Princip fungov´an´ı protokolu

4.1.2 Princip fungov´an´ı a vznik protokolu

Kv˚uli urychlen´ı pˇrep´ın´an´ı na modern´ıch pˇrep´ınaˇc´ıch, kter´e pracuj´ı na tˇret´ı vrstvˇe

refe-renˇcn´ıho modelu ISO/OSI a vyuˇz´ıvaj´ı pokroˇcilejˇs´ı techniky pˇri pˇrep´ın´an´ı jako napˇr. access

list, byl pˇrepracov´an syst´em vyrovn´avac´ıch pamˇet´ı na pˇrep´ınaˇc´ıch a smˇerovaˇc´ıch Cisco.

Zaˇcalo se vyuˇz´ıvat informac´ı o s´ıt’ov´em toku. Tento tok se shodoval ve zdrojov´e a c´ılov´e

IP adrese a zdrojov´em a c´ılov´em portu, viz obr´azek 4.2.

zdrojová IP adresa cílová IP adresa zdrojový port cílový port L3 protokol TOS vstupní rozhraní síťový provoz analýza paketu Vytvoření toků z atributů paketu

Informace o toku Počet paketů Bajtů/paket

adresy, porty . . . 13 456 1 234 . . .

Vyrovnávací paměť NetFlow

Zařízení s podporou NetFlow

Obr´azek 4.2: Princip vytv´aˇren´ı toku [6]

Vedlejˇs´ım efektem byl zisk zaj´ımav´ych statistik o s´ıt’ov´em toku. Tyto statistiky byly

rozˇs´ıˇreny a za cenu m´ırnˇe vyˇsˇs´ı reˇzie pˇri pr˚uchodu paket˚u jsou z´ısk´av´any informace, kter´e

mohou b´yt pouˇzity k celkov´e anal´yze vyt´ıˇzen´ı s´ıtˇe, anal´yze provozu dat proch´azej´ıc´ı

(16)

kter´e dok´azaly s protokolem NetFlow pracovat a pouˇz´ıvat ho napˇr. k ´uˇctov´an´ı z´akazn´ık˚u

za mnoˇzstv´ı odeslan´ych dat nebo konektivitu.

Protokol NetFlow vytv´aˇr´ı pro vˇsechny aktivn´ı toky vyrovn´avac´ı pamˇet’, kter´a je

vy-tvoˇrena na z´akladˇe pˇrijet´ı prvn´ıho paketu dan´eho toku. V t´eto vyrovn´avac´ı pamˇeti se

po-stupnˇe ukl´adaj´ı dalˇs´ı informace o toku, kter´e jsou pozdˇeji odesl´any do kolektoru. Tyto

exporty jsou prov´adˇeny jednou za ˇcas podle nastaven´ı zaˇr´ızen´ı, kter´e export dat prov´ad´ı.

Export dat u protokolu NetFlow by mˇel b´yt dostateˇcnˇe efektivn´ı a podle statistik by mˇel

tvoˇrit pouze 1,5 % [20] pˇrenesen´ych dat na smˇerovaˇci. Ukonˇcov´an´ı toku a n´asledn´y export

se obvykle ˇr´ıd´ı podle n´asleduj´ıc´ıch pravidel:

• Spojen´ı TCP bylo uzavˇreno, at’ uˇz pomoc´ı ukonˇcen´ı spojen´ı (pˇr´ıznak FIN) nebo

zruˇsen´ı (pˇr´ıznak RST).

• Tok je po urˇcitou dobu neaktivn´ı.

• Tok trv´a pˇr´ıliˇs dlouho (z´akladn´ı hodnota v nastaven´ı je 20 minut).

• Zaplnˇen´ı vyrovn´avac´ı pamˇeti, hrozba pˇreteˇcen´ı ˇc´ıtaˇc˚u.

Ukonˇcen´e datov´e toky se z´aznamy NetFlow jsou spojeny do paketu viz. 4.1.1 -

Exporto-van´y paket a odesl´any do kolektoru. Tento paket m˚uˇze obsahovat aˇz 30 z´aznam˚u NetFlow.

Data se pos´ılaj´ı jako datagramy UDP a po odesl´an´ı jsou export´erem zahozeny. Protoˇze je

protokol UDP bezestavov´y, m˚uˇze doj´ıt ke ztr´atˇe datagramu.

4.1.3 Ukl´adan´e informace

V n´asleduj´ıc´ı tabulce lze vidˇet, co vˇse protokol NetFlow ukl´ad´a a jak´e informace tedy

m˚uˇzeme pouˇz´ıt k n´asledn´e anal´yze. Tato data lze z´ıskat pomoc´ı n´astroje nfdump 4.3

Date flow start Cas, kdy byl tok poprv´ˇ e zaznamen´an. Ukl´ad´an ve form´atu

ISO 8601 vˇcetnˇe milisekund.

Date flow end Konec toku. ˇCas, kdy byl tok naposledy detekov´an. Ukl´ad´an

ve form´atu ISO 8601 vˇcetnˇe milisekund.

Duration D´elka toku v milisekund´ach. Pokud jsou toky agregovan´e,

d´elka toku je souˇctem d´elek vˇsech tˇechto tok˚u.

Proto Protokol, kter´y byl pouˇzit v dan´em toku

Src IP Addr:port Zdrojov´a adresa a port

Dst IP Addr:port C´ılov´a adresa a port

TCP flags Pˇr´ıznaky u paketu TCP (SYN,ACK aj.)

ToS Typ sluˇzby (Type of service)

inif, outif Zdrojov´e a c´ılov´e s´ıt’ov´e rozhran´ı

src AS, dst AS Zdrojov´y a c´ılov´y autonomn´ı syst´em

Packets Poˇcet paket˚u v toku. Pokud jsou toky agregovan´e tak jejich

souˇcet

pps Poˇcet paket˚u za sekundu: poˇcet paket˚u / d´elka toku

bps Poˇcet bit˚u za sekundu: 8 * poˇcet bajt˚u / d´elka toku

Bpp Poˇcet bajt˚u za paket: poˇcet bajt˚u / poˇcet paket˚u

Flows Poˇcet tok˚u. Pokud jsou toky jenom vyps´any - vˇzdy 1. Pokud

(17)

4.1.4 Architektura NetFlow

Klasicky se pˇredpokl´ad´a na pozici export´era Cisco smˇerovaˇc se zapnutou sluˇzbou NetFlow.

Smˇerovaˇce pak potom kromˇe pˇrepos´ıl´an´ı paket˚u mus´ı sv˚uj v´ypoˇcetn´ı v´ykon vˇenovat tak´e

tvorbˇe statistik. Pokud smˇerovaˇcem proch´az´ı vyˇsˇs´ı datov´y tok, nem˚uˇze v´ypoˇcetnˇe zvl´adat

zpracov´av´an´ı kaˇzd´eho paketu a z´aroveˇn generovat statistiky pro dan´y tok. Proto se prov´ad´ı

vzorkov´an´ı, tedy pro v´ypoˇcet statistiky se vyuˇz´ıv´a pouze kaˇzd´y n-t´y paket. Pokud z´aznamy

NetFlow z tˇechto smˇerovaˇc˚u slouˇz´ı pouze pro sbˇer statistik, pak vzorkov´an´ı nem´a vˇetˇs´ı

ne-gativn´ı vliv. Pouze sniˇzuje pˇresnost. Pokud ale chceme zabr´anit bezpeˇcnostn´ım incident˚um,

je v´ybˇer pouze kaˇzd´eho n-t´eho paketu probl´em.

Probl´em se vzorkov´an´ım paket˚u ˇreˇs´ı hardwarovˇe akcelerovan´e sondy NetFlow. Podrobnˇejˇs´ı

popis sondy je v sekci 4.2.

4.2

Sonda NetFlow

Sonda NetFlow je pasivn´ım (data jsou pouze monitorov´ana, nezasahuje se do nich)

monito-rovac´ım zaˇr´ızen´ım [22]. Je schopn´a monitorovat IP toky a pos´ılat je do extern´ıch kolektor˚u.

Pokud sondu zapoj´ıme na linku, kterou chceme monitorovat, pˇr´ıchoz´ı provoz je posl´an

pˇr´ımo ke sv´emu c´ıli a z´aroveˇn je kopie pˇred´ana sondˇe ke zpracov´an´ı. Pokud data odes´ıl´ame

dedikovanou linkou pˇr´ımo do kolektoru, je sonda neviditeln´a na linkov´e a vyˇsˇs´ı vrstvˇe. D´ıky

tomu je t´emˇeˇr vylouˇcen pˇr´ıpadn´y ´utok proti sondˇe. Pouˇzit´ı t´eto sondy m´ısto smˇerovaˇc˚u

odstraˇnuje probl´em se vzorkov´an´ım paket˚u a pˇrin´aˇs´ı dalˇs´ı v´yhody. Smˇerovaˇce pak mohou

sv˚uj procesorov´y ˇcas vyuˇz´ıt pouze k tomu, k ˇcemu jsou urˇceny - smˇerov´an´ı. Anal´yzou bylo

zjiˇstˇeno, ˇze sonda zvl´ad´a na lince datovou propustnost 1Gbps bez ztr´aty paket˚u a bez

ohledu na velikost paket˚u [10].

4.2.1 Vlastnosti sondy:

• monitorov´an´ı dvou 1Gbps port˚u

• pˇresn´y ˇcas pˇri anal´yze paket˚u

• aktivn´ı ˇcasov´y limit - za jak dlouho se tok, kter´y je povaˇzov´an za aktivn´ı, mus´ı odeslat

do kolektoru

• neaktivn´ı ˇcasov´y limit - umoˇzˇnuje nastavit ˇcasov´y interval, za kter´y bude tok

klasifi-kov´an jako ukonˇcen´y a odesl´an do kolektoru

• export dat ve verzi NetFlow 5, verzi 9 nebo IPFX

• export dat na v´ıce kolektor˚u z´aroveˇn

• moˇznost nastavit vzorkovan´ı

• sbˇer statistik - z´ısk´av´an´ı statistik o IP adrese, ˇc´ıslech port˚u, protokolech, poˇctech

(18)

4.3

astroje

Pro pr´aci se z´aznamy NetFlow existuje cel´a ˇrada n´astroj˚u:

• nfdump(netflow dump) [4]: N´astroj pro ˇcten´ı a zpracov´av´an´ı dat NetFlow uloˇzen´ych

pomoc´ınfcapd. Dok´aˇze z tˇechto dat vytv´aˇret statistiky. Naps´an v C pro vˇetˇs´ı rychlost.

D´ıky tomu dok´aˇze filtrovat v´ıce neˇz 4 mili´ony tok˚u za vteˇrinu na 3GHz procesoru Intel

[9], nebo vypoˇc´ıtat statistiku top N za 2.5s pˇri 1,5 mili´on˚u tok˚u. Pracuje v pˇr´ıkazov´e

ˇr´adce, podobn´y programu tcpdump. Podporuje z´aznamy NetFlow verze 5, 7 a 9. Lze

pouˇz´ıt filtrov´an´ı podobn´e jako u libpcap nebo WinPcap, kter´e pouˇz´ıv´a napˇr. tcpdump

a wireshark.

• nfcapd(netflow capture deamon): Zaznamen´av´a data NetFlow ze s´ıtˇe a ukl´ad´a je do

soubor˚u. Dok´aˇze pracovat se z´aznamy NetFlow verze 5, 7, 9.

• nfprofile(netflow profiler): Dok´aˇze proch´azet soubory uloˇzen´e pomoc´ınfcapd. Tyto

soubory filtruje podle zadan´ych filtr˚u a ukl´ad´a pro pozdˇejˇs´ı anal´yzu.

• nfreplay (netflow replay): ˇCte soubory s daty NetFlow uloˇzen´e pomoc´ı nfcapd

a pos´ıl´a je po s´ıti na jin´y poˇc´ıtaˇc.

• nfclean(netflow cleanup): Skript pro maz´an´ı star´ych dat.

• nfsen(netflow sensor): Jedn´a se o grafick´e rozhran´ı pro n´astrojnfdump. D´ıky tomuto

n´astroji lze pomoc´ı webov´ych str´anek jednoduˇse proch´azet uloˇzen´a data z kolektoru.

Dok´aˇze z tˇechto dat zobrazit grafy pro jednotliv´a rozhran´ı, protokoly, zvolit si ˇcasov´y

´

usek, za kter´y budou grafy vykresleny, a dalˇs´ı. Uk´azka rozhran´ı je v pˇr´ıloze B

(19)

Kapitola 5

Skenov´

an´ı a NetFlow

Skenovac´ı n´astroje jsou bˇeˇznˇe pouˇz´ıv´any pro anal´yzu s´ıtˇe. M˚uˇze je tak´e ale pouˇz´ıt ´utoˇcn´ık

a informace z´ıskan´e z tˇechto skenov´an´ı pouˇz´ıt pro dalˇs´ı ´utok. Pokud chceme toto

ske-nov´an´ı detekovat, je tˇreba analyzovat, co za pakety tyto n´astroje pouˇz´ıvaj´ı. V laboratorn´ıch

podm´ınk´ach jsem vyzkouˇsel skenov´an´ı pomoc´ı n´astroj˚u nmap a EtherScope.

5.1

Skenov´

an´ı pomoc´ı nmap

N´asleduje pˇr´ıklad, jak se uloˇz´ı data NetFlow pˇri skenov´an´ı pomoc´ı n´astroje nmap. Sch´ema

5.1 ukazuje zapojen´ı sondy NetFlow v laboratoˇri. M˚uˇzeme si povˇsimnout, ˇze sonda nen´ı

zapojena pˇr´ımo do pˇrep´ınaˇce. Je to z toho d˚uvodu, ˇze dan´e skenov´an´ı bychom potom v˚ubec

neodhalili. Na s´ıti tvoˇren´e pˇrep´ınaˇci a smˇerovaˇci se data pos´ılaj´ı pouze od zdroje k c´ıli

(pokud pomineme r˚uzn´e ´utoky jako arp cache poisoning, zaplnˇen´ı CAM tabulky a jin´e)

a data by pro sondu nebyla v˚ubec viditeln´a.

Obr´azek 5.1: Sch´ema zapojen´ı

Pokud nyn´ı provedeme skenov´an´ı pomoc´ı n´astroje nmap, z´akladn´ım pˇr´ıkazem#nmap 10.10.10.1,

a prohl´edneme si, pomoc´ı n´astroje nfdump, co sonda zaznamenala, z´ısk´ame ´udaje, kter´e

(20)

Date flow start Src IP Addr:Port Dst IP Addr:Port Flags Packets Flows 2008-11-18 16:03:56.423 10.10.10.106:43578 10.10.10.1:80 ....S. 1 1 2008-11-18 16:03:56.420 10.10.10.106:43578 10.10.10.1:22 ....S. 1 1 2008-11-18 16:03:56.422 10.10.10.106:43578 10.10.10.1:23 ....S. 1 1 2008-11-18 16:03:56.420 10.10.10.106:43578 10.10.10.1:143 ....S. 1 1 2008-11-18 16:03:56.422 10.10.10.106:43578 10.10.10.1:443 ....S. 1 1 2008-11-18 16:03:56.425 10.10.10.106:43578 10.10.10.1:21 ....S. 1 1 2008-11-18 16:03:56.425 10.10.10.106:43578 10.10.10.1:1024 ....S. 1 1 2008-11-18 16:03:57.645 10.10.10.106:43579 10.10.10.1:1301 ....S. 1 1

Pro pˇrehlednost byly z tabulky vypuˇstˇeny nˇekter´e ´udaje. Jsou to informace o d´elce toku,

typ protokolu, ToS1 a poˇcet bajt˚u. Jak lze vidˇet, je skenov´ano asi 1000 nejpouˇz´ıvanˇejˇs´ıch

port˚u. Tok se vˇzdy zobrazuje jako jednosmˇern´y provoz. Tedy tyto stejn´e toky dostaneme

i v opaˇcn´em smˇeru, ale budou m´ıt nastaven´e jin´e pˇr´ıznaky u paketu TCP (pˇr´ıznak RST,

odm´ıtnut´ı spojen´ı). Na prvn´ı pohled lze vidˇet, ˇze bylo pouˇzito skenov´an´ı SYN. Toho m˚uˇzeme

pˇri pozdˇejˇs´ım n´avrhu vyuˇz´ıt. Dalˇs´ı vˇec urˇcuj´ıc´ı skenov´an´ı je kr´atk´a d´elka toku a mal´y poˇcet

paket˚u v toku. Tyto informace bude tˇreba zpracovat a na z´akladˇe nich se rozhodovat.

N´astroj nfdump umoˇzˇnuje i tvorbu filtr˚u. Jednoduch´ym filtrem, kter´y m˚uˇzeme pouˇz´ıt na

snadnˇejˇs´ı odhalen´ı skenov´an´ı SYN, by mohl b´yt napˇr´ıklad filtr

proto tcp and flags S and not flags ARFPU

Tento filtr vyp´ıˇse vˇsechny TCP toky, kter´e maj´ı u paketu TCP nastaven´y pouze pˇr´ıznak

SYN.

Vyzkouˇsel jsem vˇsechny typy skenov´an´ı, kter´e nmap poskytuje. Podrobnˇeji jsou tyto

techniky a principy, kter´e pouˇz´ıvaj´ı k detekci port˚u, pops´any v kapitole 3. Pokud se jedn´a

o skenov´an´ı SYN, tak je funkˇcn´ı, rychl´e a spolehliv´e. Skenov´an´ı connect je pomalejˇs´ı, ale

pokud na dan´em zaˇr´ızen´ı nem´a uˇzivatel administr´atorsk´a opr´avnˇen´ı, je takt´eˇz pouˇziteln´e.

U m´enˇe obvykl´ych technik jako skenov´an´ı FIN a XMASS z´aleˇz´ı na zaˇr´ızen´ı. Vˇetˇsinou ale

zobraz´ı poˇcet otevˇren´ych ˇci filtrovan´ych port˚u. U skenov´an´ı NULL jsem se sp´ıˇse setkal s t´ım,

ˇ

ze na nˇe s´ıt’ov´e zaˇr´ızen´ı v˚ubec neodpovˇedˇelo, pˇrestoˇze by u zavˇren´ych port˚u mˇelo generovat

paket s pˇr´ıznakem RST.

5.2

Skenov´

an´ı pomoc´ı EtherScope

TM

Series II

Dalˇs´ı skenovac´ı zaˇr´ızen´ı, kter´e jsem vyzkouˇsel v laboratoˇri je pˇr´ıstroj EtherScope [2]. Tento

s´ıt’ov´y analyz´ator skenuje celou s´ıt’. Sondu jsem zapojil pˇr´ımo za toto zaˇr´ızen´ı, jak je vidˇet

na obr´azku 5.2, abych z´ıskal veˇsker´e ´udaje o paketech, kter´e toto zaˇr´ızen´ı pos´ıl´a. Pˇribliˇzn´a

data lze vidˇet v n´asleduj´ıc´ı tabulce 5.2

1

(21)

Obr´azek 5.2: Sch´ema zapojen´ı II

Duration Proto Src IP Addr:Port Dst IP Addr:Port Flags Packets Bytes Flows

0.219 ICMP 10.10.10.150:0 10.10.10.106:8.0 ... 2 84 1 0.000 UDP 10.10.10.150:35072 255.255.255.255:7 ... 1 52 1 0.219 ICMP 10.10.10.150:0 10.10.10.51:8.0 ... 2 84 1 2.878 UDP 10.10.10.150:137 10.10.10.255:137 ... 3 234 1 13.650 ICMP 10.10.10.150:0 255.255.255.255:8.0 ... 2 80 1 0.220 ICMP 10.10.10.150:0 10.10.10.63:8.0 ... 2 84 1 0.218 ICMP 10.10.10.150:0 10.10.10.119:8.0 ... 2 84 1

Z t´eto tabulky byly odstraˇneny ´udaje o ˇcasu skenov´an´ı a ToS. Tady vid´ıme, ˇze zaˇr´ızen´ı

EtherScope pos´ıl´a pˇrev´aˇznˇe pakety ICMP a UDP. U tˇechto paket˚u nem˚uˇzeme prov´est

fil-trov´an´ı jako u skenov´an´ı SYN. Jsou to ale toky vesmˇes velmi kr´atk´e, s mal´ym poˇctem

pa-ket˚u a kr´atkou dobou trv´an´ı. Tyto toky by se v s´ıti nemˇely vyskytovat pˇr´ıliˇs ˇcasto. Vˇetˇsina

uˇzivatel˚u pouˇz´ıv´a pˇripojen´ı pro prohl´ıˇzen´ı webov´ych str´anek, komunikaci nebo mail a tam

je trv´an´ı tok˚u delˇs´ı, s vˇetˇs´ım poˇctem paket˚u. Statistick´e v´ysledky, kter´e zjiˇst’uj´ı, zda toto

(22)

Kapitola 6

Pr´

ace s daty NetFlow v rozs´

ahl´

ych

s´ıt´ıch

Objem dat NetFlow ukl´ad´an´ych smˇerovaˇci nebo sondami NetFlow z´aleˇz´ı na velikosti

pro-vozu s´ıtˇe. Velikost exportovan´ych soubor˚u se m˚uˇze pohybovat od nˇekolika MB v mal´ych

s´ıt´ıch do stovek MB ve velmi rozs´ahl´ych s´ıt´ıch.

V mal´ych s´ıt´ıch mohou b´yt pouˇzity pro vytv´aˇren´ı z´aznam˚u NetFlow smˇerovaˇce, kter´e

tento protokol podporuj´ı. Ve vˇetˇs´ıch s´ıt´ıch s velk´ym datov´ym provozem to jiˇz ale nen´ı moˇzn´e

a je nutno zaznamen´avat data pomoc´ı hardwarovˇe akcelerovan´ych zaˇr´ızen´ı, jako jsou napˇr.

sondy NetFlow 4.2. Ty b´yvaj´ı nasazovan´e do s´ıt´ı od velikosti pades´ati zaˇr´ızen´ı. ˇCasto jsou

nasazov´any v s´ıt´ıch o 100-500 zaˇr´ızen´ı. N´asleduj´ı banky, poskytovatel´e pˇripojen´ı, st´atn´ı

instituce aj., kde se velikost s´ıtˇe pohybuje v nˇekolika tis´ıc´ıch zaˇr´ızen´ı.

6.1

Zdroj dat NetFlow

Pˇri zkuˇsebn´ım provozu sondy NetFlow zapojen´e v r´amci vnitˇrn´ı s´ıtˇe FIT, byl ukl´adan´y

provoz minim´aln´ı a nehodil se k ˇz´adn´e anal´yze. Pro podrobnˇejˇs´ı anal´yzu byla poskytnuta

data z p´ateˇrn´ı s´ıtˇe VUT, kter´a je pˇripojena do akademick´e s´ıtˇe CESNET. Tato data jsou

z´ısk´av´ana ze dvou extern´ıch 10Gb/s linek, kter´e pˇripojuj´ı s´ıt’ VUT do CESNETu. Sbˇer

dat je prov´adˇen 10Gb/s kartami na provozu odboˇcen´em prostˇrednictv´ım TAPu. TAP je

hardwarov´e zaˇr´ızen´ı, kter´e umoˇzˇnuje monitorovat komunikaci mezi dvˇema body. Zaˇr´ızen´ı

m´a minim´alnˇe tˇri porty. Port pro monitorov´an´ı a port pro kaˇzd´e monitorovan´e zaˇr´ızen´ı.

Veˇsker´a prob´ıhaj´ıc´ı komunikace mezi tˇemito body je pak zkop´ırov´ana na monitorovac´ı port.

Data jsou ukl´ad´ana jako hodinov´y z´aznam (dump) provozu. Toto je celkem nestandardn´ı

ˇreˇsen´ı, protoˇze NetFlow export´er je standardnˇe nastaven na pˇetiminutov´e exportov´an´ı a toto

dodrˇzuje dle zkuˇsenost´ı z praxe vˇetˇsina firem.

Dodan´a data, s kter´ymi jsem pracoval, nejsou kompletn´ı data NetFlow. Chyb´ı jim

nˇekolik poloˇzek, napˇr. pˇr´ıznaky u paket˚u TCP. Toto do znaˇcn´e m´ıry ztˇeˇzuje vyhled´av´an´ı

skenov´an´ı, protoˇze nejv´ıce skenovac´ıch ´utok˚u je skenov´an´ı SYN [13]. Pokud bychom mˇeli

uloˇzeny i pˇr´ıznaky, mohli bychom pouˇz´ıt filtry, kter´e by z tok˚u vypsaly pouze ty s

na-staven´ym pˇr´ıznakem SYN a t´ımto do jist´e m´ıry odhalit skenov´an´ı. U ustanoven´ı nov´eho

spojen´ı TCP se sice tak´e pos´ıl´a paket SYN, ale tento paket m´a nastaven i pˇr´ıznak ACK

a tedy by nezkreslil filtrovan´e v´ysledky. Dalˇs´ı podstatn´a chybˇej´ıc´ı poloˇzka je u protokolu

ICMP. NetFlow dok´aˇze u tohoto protokolu ukl´adat typ a k´od paketu. Tyto poloˇzky ukl´ad´a

(23)

Request-100 150 200 250 300 350 400 00:00 05:00 10:00 15:00 20:00 čas / hod ve lik os t s ou bo ru / M B

Obr´azek 6.1: Pr˚umˇern´a velikost soubor˚u s NetFlow daty

Echo Reply, pouˇz´ıv´ana pˇr´ıkazem ping, bude ve zdrojov´em portu uloˇzena 0 a v c´ılov´em 8.0.

Odpovˇed’ Echo Reply (typ 0) na dotaz Echo Request (typ 8, k´od 0). Tento nedostatek,

stejnˇe jako chybˇej´ıc´ı pˇr´ıznaky u protokolu TCP, ztˇeˇzuje n´asledn´e odhalen´ı ´utok˚u, kter´e

tˇechto paket˚u ICMP vyuˇz´ıvaj´ı k zjiˇstˇen´ı ˇzivosti s´ıt’ov´ych zaˇr´ızen´ı. ˇCasem se vˇsak pl´anuje

zakoupen´ı sondy, kter´a bude schopna exportovat plnohodnotn´e data NetFlow.

Data jsou postupnˇe ukl´ad´ana na server od 15.11.2008 a zat´ım je moˇzno analyzovat

pˇribliˇznˇe 740 GB dat. Pˇribliˇzn´a velikost jednotliv´ych soubor˚u a poˇcet tok˚u za hodinu lze

vidˇet v grafu 6.1 a 6.2. U grafu 6.1 je vypoˇc´ıtan´a pr˚umˇern´a velikost soubor˚u za jednotliv´e

hodiny. Pr˚umˇer je vypoˇc´ıt´an z uloˇzen´ych z´aznam˚u za tˇri mˇes´ıce. V grafu 6.2 je poˇcet tok˚u

vypoˇc´ıt´an obdobnˇe, jako pr˚umˇern´y poˇcet tok˚u za danou hodinu v dan´y den. Pr˚umˇer je

vypoˇc´ıt´an tak´e za tˇri mˇes´ıce z´aznam˚u. Z´akazn´ıci pouˇz´ıvaj´ıc´ı sondy NetFlow v ˇCR dos´ahnou

maxim´aln´ı propustnosti okolo 400 tok˚u za sekundu. Jak lze vidˇet, poˇcet tok˚u dosahovan´ych

v r´amci p´ateˇrn´ı s´ıtˇe VUT je nejm´enˇe 1600 tok˚u/s, bˇeˇznˇe ale dos´ahne 3500 tok˚u/s.

Zpracov´avat takov´e mnoˇzstv´ı dat je ˇcasovˇe velmi n´aroˇcn´e. Pr˚umˇernou dobu generov´an´ı

statistik na poˇc´ıtaˇc´ıch, kter´e jsem pouˇz´ıval, lze vidˇet v tabulce 6.1.

Procesor/RAM Pr˚umˇern´a doba vytvoˇren´ı statistiky

Pentium-M 1.86 GHz / 1GB 22s

Intel Xeon 2.4 GHz / 3GB 12s

Tabulka 6.1: Pr˚umˇern´a doba zpracov´an´ı

Pr˚umˇern´a doba vytvoˇren´ı statistiky je doba, za kterou se vytvoˇr´ı statistika top 20 IP

adres seˇrazen´ych podle poˇctu tok˚u z jednoho souboru, kter´y obsahuje hodinov´y z´aznam

provozu. N´astroj nfdump umoˇzˇnuje proch´azet i v´ıce soubor˚u najednou a generovat z nich

glob´aln´ı statistiky. To je ale extr´emnˇe n´aroˇcn´e na v´ypoˇcetn´ı zdroje a operaˇcn´ı pamˇet’. Doba

(24)

5e+06 6e+06 7e+06 8e+06 9e+06 1e+07 1.1e+07 1.2e+07 1.3e+07 1.4e+07 1.5e+07 00:00 5:00 10:00 15:00 20:00 po če t t ok ů čas / h

Obr´azek 6.2: Pr˚umˇern´y poˇcet tok˚u za jednotliv´e hodiny

6.2

Zpracov´

an´ı dat

Z v´yˇse uveden´ych dob zpracov´an´ı a velikost´ı dat lze stanovit urˇcit´e postupy, jak budou data

d´ale zpracov´ana. Nab´ızej´ı se dvˇe moˇznosti. Ukl´adat data do relaˇcn´ı datab´aze a pokusit se je

zpracovat dotazovac´ım jazykem ˇci nˇejak´ym rozˇs´ıˇren´ım pro data mining u datab´aze Oracle,

nebo se je pokusit zpracovat pˇr´ımo pomoc´ı skriptovac´ıch jazyk˚u. U relaˇcn´ı datab´aze by

se nejprve musel vygenerovat skript pro uloˇzen´ı dat, n´aslednˇe data nahr´at do datab´aze

a zpracovat, pravdˇepodobnˇe jazykem PHP nebo podobn´ym. U skriptovac´ıch jazyk˚u se data

mohou zpracovat rovnou a pravdˇepodobnˇe jsou ke zpracov´an´ı vhodnˇejˇs´ı.

U obou ˇreˇsen´ı se pot´yk´ame s velk´ymi objemy dat pro zpracov´an´ı. Tento objem dat by

mohl b´yt sn´ıˇzen filtrov´an´ım. Abychom vˇedˇeli, jak´a data je moˇzn´e odfiltrovat, jsou v kapitole

7 vytvoˇreny statistiky ze z´ıskan´ych dat, kter´e by mohly pomoci s rozhodov´an´ım, kter´a data

(25)

Kapitola 7

Statistika dat NetFlow v

rozs´

ahl´

ych s´ıt´ıch

V rozs´ahl´ych s´ıt´ıch s velk´ym poˇctem aktivn´ıch uzl˚u a nˇekolika tis´ıci spojen´ımi za sekundu

je obt´ıˇzn´e v˚ubec z´ıskat plnohodnotn´a data NetFlow v pomˇeru 1:11. Data jsou bˇeˇznˇe

vzor-kov´ana a hod´ı se hlavnˇe pro statistick´e ´uˇcely. Pokud jsou z´ısk´av´ana kompletn´ı data, lze

v kapitole 6 vidˇet, ˇze tˇechto dat je velk´e mnoˇzstv´ı a zpracov´an´ı nen´ı nejrychlejˇs´ı. M˚uˇzeme

se tedy pokusit pod´ıvat na data jako celek, zjistit jak´e sluˇzby jsou v toc´ıch dominantn´ı,

jak´e jsou pˇrenosy dat, atp.

Na n´asleduj´ıc´ım grafu 7.1 je vidˇet pr˚umˇern´e mnoˇzstv´ı unik´atn´ıch IP adres v pr˚ubˇehu

dne. Tento graf bude posl´eze d˚uleˇzit´y pˇri n´avrhu zpracov´an´ı dat pro odhalen´ı skenov´an´ı.

Pokud bychom chtˇeli porovn´avat jednotliv´e z´aznamy mezi sebou, ˇcasov´a sloˇzitost takov´e

operace by byla kvadratick´a O(n2). U z´aznamu, kter´y m´a 2 mil. unik´atn´ıch IP adres za

hodinu, by poˇcet operac´ı potom dos´ahl 412, coˇz je ne´umˇernˇe n´aroˇcn´e a mus´ı b´yt pouˇzit jin´y

pˇr´ıstup. 1e+06 1.2e+06 1.4e+06 1.6e+06 1.8e+06 2e+06 2.2e+06 2.4e+06 2.6e+06 00:00 05:00 10:00 15:00 20:00 po če t u nik át ní ch IP čas/hod

Obr´azek 7.1: Poˇcet unik´atn´ıch IP adres v toku

Graf 7.2 ukazuje, kolik je pr˚umˇernˇe vymˇenˇeno paket˚u v toku. V datech, ze kter´ych je

1

(26)

1 10 100 1000 10000 100000 1e+06 1e+07 1e+08 1 10 100 1000 10000 100000 1e+06 Če tn os t

Počet paketů v toku

Obr´azek 7.2: Frekvence poˇctu paket˚u v toku

tento graf vygenerov´an, se vyskytovalo t´emˇeˇr 35 mil. jednopaketov´ych tok˚u, coˇz pˇredstavuje

pˇribliˇznˇe 55 %. Toky do 3 paket˚u pak tvoˇrily pˇribliˇznˇe 80 % vˇsech tok˚u. D´ıky t´eto statistice

se v´yraznˇe zmˇenilo tvrzen´ı, kter´e jsme uvaˇzovali v kapitole 5, tedy ˇze kr´atk´ych tok˚u bude

mal´e mnoˇzstv´ı.

Pokud se na toky pod´ıv´ame z hlediska sluˇzeb, nenalezneme pˇr´ıliˇs pˇrekvapiv´e v´ysledky.

Dominantn´ı sluˇzbou je protokol HTTP, HTTPS. U UDP je to protokol DNS. Co se t´yˇce

pˇrenesen´ych dat, zde je dominantn´ı tunelovac´ı protokol GRE2 od firmy Cisco.

Počet toků u služeb

HTTPS 1.7% HTTP 9.2% ICMP 4.0% DNS 2.7%

rest of 82.3%

Počet bytů u služeb

GRE 2.9% HTTP 1.7% HTTPS 0.4% dynamic ports 1.6% SSH 0.3% rest of 93.1%

Obr´azek 7.3: Statistika jednotliv´ych sluˇzeb

Z n´asleduj´ıc´ıch graf˚u 7.3 se m˚uˇze zd´at, ˇze tyto sluˇzby jsou zastoupeny v miziv´em

mnoˇzstv´ı. Je tˇreba si ale uvˇedomit, ˇze celkov´e mnoˇzstv´ı port˚u je 65535. Tedy souˇcet

vˇsech ostatn´ıch tok˚u a bajt˚u proud´ıc´ı na ostatn´ı porty je samozˇrejmˇe vˇetˇs´ı. Poloˇzka

dy-2

(27)

namick´e porty znamen´a porty od 49152 v´yˇse. Tyto porty se ve statistice mˇen´ı kaˇzd´y den

a pravdˇepodobnˇe to budou vytvoˇren´e tunelovac´ı spoje. To usuzuji za pˇredpokladu, ˇze tyto

dynamick´e porty maj´ı velice podobn´y pomˇer poˇctu tok˚u ku pˇrenesen´ym bajt˚um. Jako dalˇs´ı

v´yznamn´a poloˇzka z hlediska poˇctu tok˚u je protokol ICMP. Pˇredpokl´ad´am, ˇze vˇetˇsina tˇechto

tok˚u jsou pakety ICMP Echo-Request a Echo-Replay, ale z d˚uvod˚u uveden´ych v kapitole

6 to nelze pˇresnˇe urˇcit. Pokud jsem zkoumal data, kter´a byla k dispozici od firmy Invea,

lze v toc´ıch ICMP pozorovat tak´e hodnˇe paket˚u k´odu 3 - Destination unreachable. Pˇresto

Echo pakety pˇrevaˇzuj´ı.

V tabulce 7.1 lze vidˇet pˇribliˇzn´y pomˇer tok˚u a bajt˚u u nejfrekventovanˇejˇs´ıch sluˇzeb.

Tato statistika je generov´ana za ˇctyˇr hodinov´y provoz v nejfrekventovanˇejˇs´ı denn´ı dobu. Za

tyto ˇctyˇri hodiny bylo v pˇribliˇznˇe 77 mil. toc´ıch pˇreneseno 1,2 TB dat. Lze vidˇet, ˇze pomoc´ı

tunelovac´ıho protokolu se pˇren´aˇs´ı velk´e mnoˇzstv´ı dat, ale poˇcet tok˚u je velice mal´y, d´ıky

velice dlouh´emu trv´an´ı spojen´ı. U protokolu HTTP je naopak pˇreneseno velk´e mnoˇzstv´ı

bajt˚u pˇri nˇekolikan´asobn´em mnoˇzstv´ı tok˚u. Proto jsem v´yˇse usoudil, ˇze dynamick´e porty,

kter´e se objevuj´ı ve statistik´ach budou pravdˇepodobnˇe dalˇs´ı tunelovac´ı protokoly, jako napˇr.

VPN.

Protokol Poˇcet pˇrenesen´ych bajt˚u Poˇcet tok˚u

GRE 31.6 GB 7694

HTTP 18.4 GB 7.1 mil.

dynamic ports 15 GB 7318

SSH 3.6 GB 20 494

Tabulka 7.1: Pomˇer pˇrenesen´ych byt˚u k poˇctu tok˚u

U skenov´an´ı se pˇripojuje ´utoˇcn´ık na jednotliv´e porty zaˇr´ızen´ı, kter´e skenuje. Pokud

skenuje napˇr. pomoc´ı z´akladn´ıho nastaven´ı skeneru nmap, testuje u jednoho poˇc´ıtaˇce tis´ıc

port˚u. Bylo by tedy zaj´ımav´e zjistit, na kolik port˚u se v re´aln´em provozu pr˚umˇernˇe uˇzivatel

pˇripojuje. Toto lze vidˇet na grafu 7.4. Lze vidˇet, ˇze pr˚umˇernˇe se uˇzivatel pˇripojuje na velice

mal´e mnoˇzstv´ı port˚u. V 80 % pˇr´ıpad˚u je to dokonce pouze jeden port.

1 10 100 1000 10000 100000 1e+06 1e+07 0 200 400 600 800 1000 1200 1400 Če tn os t

Počet navštívených portů

Obr´azek 7.4: Frekvence poˇctu navˇst´ıven´ych port˚u

(28)

vy-tvoˇren z 26,3 mil. tok˚u, ve kter´em bylo 2,6 mil. unik´atn´ıch IP adres. Poˇcet IP adres, kter´e

vytv´aˇr´ı pouze jeden tok je sice nejvˇetˇs´ı, ale z celkov´eho mnoˇzstv´ı je to pouze okolo 6 %. Je

totiˇz daleko v´ıce IP adres, kter´e maj´ı vˇetˇs´ı mnoˇzstv´ı tok˚u.

1 10 100 1000 10000 100000 1e+06 1e+07 1 10 100 1000 10000 100000 1e+06 Če tn os t Počet toků na IP

(29)

Kapitola 8

Anal´

yza z´ıskan´

ych dat a n´

avrh

aplikace

V pˇredch´azej´ıc´ıch kapitol´ach jsem vytvoˇril ˇradu statistik, kter´e popisuj´ı provoz v s´ıti. Ze

z´ıskan´ych ´udaj˚u je nyn´ı nutn´e vybrat z´akladn´ı prvky, d´ıky kter´ym bude moˇzno odhalit

skenov´an´ı i v takto rozs´ahl´e s´ıti. D´ale je nutno zodpovˇedˇet ot´azky t´ykaj´ıc´ı se samotn´e

aplikace. N´asleduje shrnut´ı nejpodstatnˇejˇs´ıch ´udaj˚u.

8.1

Shrnut´ı z´ıskan´

ych statistik

• Unik´atn´ı IP adresy: V provozu jsem zjistil velk´y poˇcet unik´atn´ıch IP adres. Bˇeˇznˇe je

to kolem 2 mil. adres za hodinu. Kaˇzd´a adresa se samozˇrejmˇe pˇripojuje v libovoln´y

ˇcas a v z´aznamu se tedy vyskytuje tis´ıce tok˚u se stejnou IP adresou. Pokud bych chtˇel

na z´akladˇe IP adresy toky analyzovat, musel bych pro kaˇzdou IP adresu proj´ıt cel´y

z´aznam.

• Navˇst´ıven´e porty: Pokud jsem sledoval pr˚umˇern´y poˇcet navˇst´ıven´ych port˚u u IP

ad-resy, v 80 % pˇr´ıpad˚u je to pouze jeden port. Jak jiˇz bylo zm´ınˇeno, u skenov´an´ı se

´

utoˇcn´ık pˇripojuje k velk´emu mnoˇzstv´ı port˚u nebo k jednomu, ale na velk´em mnoˇzstv´ı

poˇc´ıtaˇc˚u.

• Poˇcet paket˚u v toku: U skenov´an´ı je vyuˇz´ıv´ano pˇredevˇs´ım skenov´an´ı SYN, kter´e

pouˇz´ıv´a pouze jeden paket. Tok˚u, kter´e obsahuj´ı pouze jeden paket, je ale v´ıce neˇz

polovina. Tato situace je tedy podobn´a jako u unik´atn´ıch IP adres.

• Mnoˇzstv´ı dat: Z´aznamy v hodinov´ych dumpech provozu obsahuj´ı velk´e mnoˇzstv´ı dat.

Zpracov´avat tato data je pak ˇcasovˇe n´aroˇcn´e.

Je nutn´e si uvˇedomit, ˇze i kdyby byla k dispozici velk´a v´ypoˇcetn´ı s´ıla a nebyl bych

ome-zen pamˇet´ı apod., analyzovat data delˇs´ı ˇcasov´y ´usek je bezpˇredmˇetn´e. Skenovac´ı ´utok ˇcasto

pˇredch´az´ı ´utok jin´y a je tedy v´yhodn´e na nˇej rychle reagovat a dalˇs´ım ´utok˚um tak zabr´anit.

Tak´e je ale d˚uleˇzit´e si uvˇedomit, ˇze v´ysledky, zda doˇslo v re´aln´em provozu ke skenov´an´ı,

nemohu odhalit ihned. Z´aznam NetFlow nem˚uˇze export´er odes´ılat kaˇzdou sekundu, protoˇze

by zahltil s´ıt’. Standardnˇe je pos´ıl´an po pˇeti minut´ach.

Co z v´yˇse uveden´ych bod˚u vypl´yv´a? U dat by bylo vhodn´e se pokusit odfiltrovat ta

data, o kter´ych jsme pˇresvˇedˇceni, ˇze neobsahuj´ı podezˇrelou aktivitu a zmenˇsit tak objem

(30)

skenov´an´ı nejd˚uleˇzitˇejˇs´ı, je nejv´ıc. Ve vˇetˇsinˇe pˇr´ıpad˚u jsou to totiˇz kr´atk´e, nˇekolikapaketov´e

toky, tedy stejn´a data, jak´a pos´ılaj´ı n´astroje pro skenov´an´ı port˚u. Odfiltrov´an´ım delˇs´ıch

tok˚u sice zmenˇs´ım ˇc´asteˇcnˇe objem, ale 80 % dat mi stejnˇe z˚ustane a ˇreˇs´ım stejn´y probl´em.

ˇ

Cas na zpracov´an´ı dat aplikac´ı mus´ı b´yt pˇrinejhorˇs´ım stejn´y, jako ˇcas, za kter´y se vytv´aˇr´ı

z´aznamy. Pokud jsou z´aznamy pos´ıl´any do kolektoru v desetiminutov´ych intervalech, nelze

data zpracov´avat d´ele neˇz 10 minut. Zpracov´an´ı by ale mˇelo trvat podstatnˇe kratˇs´ı dobu.

Odhalit vˇsechna skenov´an´ı v s´ıti, kter´a m´a mili´ony spojen´ı za hodinu, je nemoˇzn´e. Pokud

bude ´utoˇcn´ık skenovat pouze nˇekolik poˇc´ıtaˇc˚u a port˚u, je to v takto objemn´ych datech

neodhaliteln´e. Toto ale ani nen´ı poˇzadavkem. U takto velk´ych s´ıt´ı je c´ılem odhalit ´utoˇcn´ıky,

kteˇr´ı prov´ad´ı horizont´aln´ı skenov´an´ı cel´ych pods´ıt´ı, pˇr´ıpadnˇe velk´e blokov´e skenov´an´ı.

Zamˇeˇrme se tedy na horizont´aln´ı skenov´an´ı. Pro toto skenov´an´ı plat´ı:

• Pouˇz´ıv´a jedno aˇz dvou paketov´e toky

• Skenuje velk´e mnoˇzstv´ı IP adres

• Toky trvaj´ı kr´atce. D´elka skenov´an´ı z´avis´ı na poˇctu IP adres.

• Poˇcet bajt˚u je st´ale stejn´y

Protoˇze v hodinov´em z´aznamu o provozu jsem nedok´azal efektivnˇe odhalit ˇz´adn´e ´utoky,

zamˇeˇril jsem se na omezen´ı velikosti zpracov´avan´ych dat. Jak jsem uk´azal v kapitole 7,

velk´y poˇcet tok˚u na IP adresu je relativnˇe mal´y. Skenov´an´ı trv´a tak´e relativnˇe kr´atkou

dobu. Za tuto kr´atkou dobu ale vytvoˇr´ı ´utoˇcn´ık velk´e mnoˇzstv´ı tok˚u. Omezil jsem si tedy

hodinov´y z´aznam na nejkratˇs´ı rozumn´y ”pˇetiminutov´y”z´aznam. Pokud se v tomto kr´atk´em

ˇ

casov´em ´useku objev´ı ´utoˇcn´ık, mˇela by nastat n´asleduj´ıc´ı situace:

1. ´Utoˇcn´ık vytvoˇr´ı velk´e mnoˇzstv´ı spojen´ı. Toto by se mˇelo projevit ve statice tok˚u na

z´akladˇe zdrojov´e IP adresy.

2. Toky ´utoˇcn´ıka by mˇely vykazovat stejn´y poˇcet paket˚u, stejn´y poˇcet byt˚u a kr´atkou

dobu trv´an´ı.

3. Legitimn´ı uˇzivatel´e by nemˇeli podle z´ıskan´ych statistik vytv´aˇret velk´e mnoˇzstv´ı tok˚u.

4. Servery, kter´e obsluhuj´ı hodnˇe klient˚u, vytv´aˇr´ı tak´e hodnˇe tok˚u. V tˇechto toc´ıch by

ale poˇcet paket˚u mˇel kol´ısat, stejnˇe tak poˇcet pˇrenesen´ych bajt˚u.

Z v´yˇse uveden´ych ´uvah jsem postupoval n´asleduj´ıc´ım zp˚usobem.

1. Z pˇetiminutov´eho toku je vytvoˇrena statistika o nejfrekventovanˇejˇs´ıch IP adres´ach na

z´akladˇe poˇctu tok˚u.

2. U kaˇzd´e IP adresy je vyfiltrov´an z´aznam o vˇsech jej´ıch toc´ıch v dan´em ˇcasov´em

intervalu.

3. Tento z´aznam je zpracov´an pomoc´ı rozhodovac´ıho algoritmu.

(31)

8.2

Rozhodovac´ı algoritmus

Pro rozhodov´an´ı, zda dan´y tok je, nebo nen´ı souˇc´ast skenov´an´ı, je vhodn´e pouˇz´ıt techniky

pro strojov´e uˇcen´ı a dolovan´ı z dat. Pˇri dolov´an´ı z dat se zde uplatn´ı hlavnˇe analytick´a

metodologie, pˇri kter´e se pouˇz´ıvaj´ı rozhodovac´ı stromy, neuronov´e s´ıtˇe nebo genetick´e

pro-gramov´an´ı. Pro tuto pr´aci jsem usoudil, ˇze bude nejvhodnˇejˇs´ı pouˇz´ıt rozhodovac´ı strom

generovan´y algoritmem ID31 [16].

Rozhodovac´ı stromy jsou induktivn´ı algoritmy vytvoˇren´e ke klasifikaci instanc´ı. M˚uˇzeme

je pouˇz´ıt, kdyˇz jsou instance pops´any atributy a hodnotami (napˇr. VLHKOST: norm´aln´ı,

vysok´a) a c´ılov´a funkce nab´yv´a diskr´etn´ıch hodnost (napˇr. ANO / NE). Tr´enovac´ı data

mohou obsahovat i chyby a tak´e nemus´ı obsahovat hodnoty vˇsech atribut˚u.

C´ılov´a funkce je reprezentov´ana rozhodovac´ım stromem (sekvenc´ı rozhodnut´ıif-then-else).

Klasifikace se prov´ad´ı pr˚uchodem stromem od koˇrene k list˚um, kdy se testuje hodnota

jed-noho atributu instance pro kaˇzd´y uzel. Kaˇzd´a hrana odpov´ıd´a jedn´e hodnotˇe. Kaˇzd´y list

pak urˇcuje klasifikaci instance.

U ID3 algoritmu vytv´aˇr´ıme na z´akladˇe tr´enovac´ıch dat rozhodovac´ı strom. Strom se

vytv´aˇr´ı od koˇrene. V kaˇzd´em uzlu se zjiˇst’uje, kter´y atribut je pro pr´avˇe tento uzel

nej-vhodnˇejˇs´ı. Poˇcet potomk˚u odpov´ıd´a poˇctu hodnot vybran´eho atributu. Tr´enovac´ı data se

rozdˇel´ı podle pˇr´ısluˇsn´e hodnoty atributu na pˇr´ısluˇsn´e podmoˇziny. Algoritmus pracuje

re-kurzivnˇe v n´asleduj´ıc´ıch kroc´ıch.

Pˇr´ıklad vytvoˇren´eho rozhodovac´ıho stromu m˚uˇzeme vidˇet na obr´azku 8.1. U tohoto

pˇr´ıkladu je strom pouˇzit k rozhodnut´ı, zda m´am nebo nem´am j´ıt hr´at golf.

Předpověď Slunečno Zataženo Déšť Vlhkost Vysoká Normální NE ANO ANO Vítr Silný Slabý NE ANO

Obr´azek 8.1: Pˇr´ıklad rozhodovac´ıho stromu

1

(32)

ID3(Tr´enovac´ı data, C´ılov´y atribut, Atributy)

1. Zaloˇz Koˇrenstromu

2. Pokud jsou vˇsechnaTr´enovac´ı datapozitivn´ı, vytvoˇr jednouzlov´y strom s koˇrenem

oznaˇcen´ym +

3. Jsou-li vˇsechnaTr´enovac´ı datanegativn´ı, vytvoˇr jednouzlov´y strom s koˇrenem oznaˇcen´ym

-4. Je-li mnoˇzina atribut˚uAtributypr´azdn´a, vrat’ jednouzlov´y strom s koˇrenem oznaˇcen´ym

nejˇcastˇejˇs´ı hodnotou c´ılov´eho atributu v tr´enovac´ıch datech

5. Jinak:

Vyber atribut A, kter´y nejl´epe klasifikuje tr´enovac´ı data,Koˇren = A

5.1 Pro kaˇzdou jeho moˇznou hodnotu vytvoˇr novou vˇetev

5.2 Vytvoˇr Podmnoˇzinavi z tr´enovac´ıch dat, pokud A=vi

5.3 Je-li Podmoˇzinavi pr´azdn´a, pod danou vˇetv´ı zaloˇz list stromu oznaˇcen´y

nejˇcastˇejˇs´ı hodnotou c´ılov´eho atributu v tr´enovac´ıch datech

5.4 Jinak pˇridej pod vˇetev podstromID3(Podmnoˇzinavi, C´ılov´y atribut,Atributy - A)

6. Vrat’ v´ysledn´y podstrom

V´ybˇer nejlepˇs´ıho atributu prob´ıh´a na z´akladˇe entropie (zisku informace) [7]. Necht’ X je

n´ahodn´y jev, jenˇz m˚uˇze nab´yvat hodnotx1, x2, . . . , xns pravdˇepodobnostmip(x1), p(x2), . . . , p(xn)

a necht’ je

n

X

i=1

p(xi) = 1. Pak entropie jevuX je

H(X) =− n

X

i=1

p(xi) log2p(xi)

Krit´erium oˇcek´avan´eho zisku m˚uˇzeme definovat jako m´ıru oˇcek´avan´eho sn´ıˇzen´ı entropie po

rozdˇelen´ı tr´enovac´ıch dat podle hodnoty vybran´eho atributu [23]. Tedy informace, kterou

n´am pˇrin´aˇs´ı znalost hodnoty atributu. Form´aln´ı z´apis potom ukazuje rovnice 8.1:

Gain(D, A)≡H(D)− X v∈V alues(A)

|Dv|

|D|H(Dv) (8.1)

• A - atribut; A(d) - hodnota atributuA v instancid

• V alues(A) - mnoˇzina vˇsech moˇzn´ych hodnot atributu A

• D- tr´enovac´ı data

(33)

Tr´enovac´ı data

Pro klasifikaci, zda tok je nebo nen´ı souˇc´ast´ı skenov´an´ı, jsem vytvoˇril n´asleduj´ıc´ı sadu

pravidel. Popis atribut˚u:

• C´ılov´a IP:

– mal´y rozd´ıl v rozsahu: Tato hodnota znamen´a, ˇze IP adresy jdou postupnˇe

za sebou v jedn´e pods´ıti. Napˇr 10.10.10.1, 10.10.10.2atd.

– stejn´a: Stejn´a IP adresa ve dvou po sobˇe n´asleduj´ıc´ıch toc´ıch – rozd´ıln´a: IP adresa je z rozd´ıln´ych pods´ıt´ı

• C´ılov´y port:

– rozd´ıl <5: Podobnˇe jako u IP adresy tato hodnota atributu urˇcuje, zda porty

jdou postupnˇe za sebou.

– stejn´y: Porty po dvou po sobˇe jdouc´ıch toc´ıch jsou shodn´e. – rozd´ıln´e:Dva po sobˇe jdouc´ı toky maj´ı rozd´ıln´e porty.

• Poˇcet paket˚u:

– < 5:Tok obsahuje m´enˇe neˇz pˇet paket˚u.

– > 5:Tok obsahuje v´ıce neˇz pˇet paket˚u.

• Poˇcet byt˚u:

– stejn´y, nebo dvojn´asobn´y nebo poloviˇcn´ı:Tok m´a stejn´y, nebo dvojn´asobn´y

nebo poloviˇcn´ı poˇcet bajt˚u jako tok pˇredch´azej´ıc´ı.

– rozd´ıln´y:Rozd´ıln´y poˇcet bajt˚u ve 2 toc´ıch.

C´ılov´a IP C´ılov´y port Poˇcet paket˚u Poˇcet bajt˚u Skenov´an´ı

mal´y rozd´ıl v rozsahu stejn´y <5 stejn´y, nebo 2x nebo 12 ANO

stejn´a rozd´ıl <5 <5 stejn´y, nebo 2x nebo 12 ANO

rozd´ıln´a rozd´ıln´y <5 rozd´ıln´y NE

stejn´a rozd´ıln´y <5 rozd´ıln´y NE

stejn´a rozd´ıl <5 >5 rozd´ıln´y NE

mal´y rozd´ıl v rozsahu rozd´ıl <5 <5 stejn´y, nebo 2x nebo 12 ANO

rozd´ıln´a rozd´ıl <5 >5 rozd´ıln´y NE

rozd´ıln´a rozd´ıln´y >5 stejn´y, nebo 2x nebo 12 NE

stejn´a stejn´y >5 rozd´ıln´y NE

mal´y rozd´ıl v rozsahu rozd´ıln´y >5 rozd´ıln´y NE

mal´y rozd´ıl v rozsahu rozd´ıl <5 <5 rozd´ıln´y ANO

stejn´a rozd´ıl <5 <5 rozd´ıln´y ANO

(34)

Z tabulky 8.1 jsem vytvoˇril mnoˇzinu tr´enovac´ıch dat. Algoritmus pro vytvoˇren´ı

rozho-dovac´ıho stromu jsem vytvoˇril v jazyce python. ˇC´asti algoritmu jsou pˇrevzat´e z [18]. Po

vytvoˇren´ı rozhodovac´ıho stromu jsem zjistil, ˇze z hlediska oˇcek´avan´eho zisku jsou d˚uleˇzit´e

pouze atributyPoˇcet paket˚uaC´ılov´y port. T´ım by ale nebylo moc moˇznost´ı, jak

ovliv-nit ”citlivost”detekce. Doplnil jsem tedy i dalˇs´ı atributy. ˇC´ast vˇetve v´ysledn´eho stromu je

na obr´azku 8.2 Pakety IP Porty > 5 NE IP IP Počet bajtů .. . > 5 rozdíl < 5 = rozdílný = < 5 rozdílná = != . . . . . . . .

. Počet bajtů Počet bajtů

ANO Podezřelé

(35)

Kapitola 9

Implementace

9.1

Popis implementace

Uloˇzen´a data NetFlow zpracov´av´am pomoc´ı nˇekolika skript˚u implementovan´ych pomoc´ı

skriptovac´ıch jazyk˚u Bash a Python. Vytv´aˇret univerz´aln´ı aplikaci je n´aroˇcn´e z nˇekolika

hledisek. Data mohou b´yt um´ıstˇena na r˚uzn´ych syst´emech rozd´ılnˇe. Toto lze ˇc´asteˇcnˇe ˇreˇsit

konfiguraˇcn´ım souborem, kde nastav´ıme v´ychoz´ı adres´aˇre. Ty ale mohou m´ıt rozd´ılnou

adres´aˇrovou strukturu, rozd´ıln´y zp˚usob pojmenov´an´ı, atd. Vytvoˇril jsem nˇekolik skript˚u,

kter´e spojuji do vˇetˇs´ıho celku. D˚uvodem, proˇc jsem vytv´aˇrel mal´e, jedno´uˇcelov´e skripty, je

vˇetˇs´ı univerz´alnost. Data z p´ateˇrn´ı s´ıtˇe VUT tvoˇr´ı z´aznamy hodinov´eho provozu. Tyto

z´aznamy potˇrebuji rozdˇelit na pˇetiminutov´e, ale jin´e syst´emy mohou ukl´adat data jiˇz

v poˇzadovan´em ˇcasov´em rozsahu. Proto m˚uˇze b´yt vˇetˇsina skript˚u vynech´ana a spr´avce

pouˇzije pouze ty, kter´e potˇrebuje pro analyzov´an´ı dat. Sadu skript˚u jsem tedy vytvoˇril

s ohledem na univerz´alnost, ale prim´arnˇe pro zpracov´an´ı dat ze s´ıtˇe VUT. Pro zpracov´an´ı

na jin´ych syst´emech bude pravdˇepodobnˇe potˇreba je pˇrekonfigurovat, pˇr´ıpadnˇe pˇrizp˚usobit.

Data na serveru VUT jsou uloˇzena v t´eto adres´aˇrov´e struktuˇre:

/data/netflow/CESNET.anonymized/yyyy-mm-dd/nfcapd.yyyymmddhhmm

kde yyyy = rok, mm = mˇes´ıc, dd = den, hh = hodina(24h/den), mm = minuta. Tyto

soubory jsou hodinov´e z´aznamy provozu. Nejdˇr´ıve je nutn´e je rozdˇelit na pˇetiminutov´e

z´aznamy.

Pˇr´ıklad rozdˇelen´ı hodinov´eho souboru na pˇetiminutov´y.

nfdump -r /cesta/netflow -t 2009/01/01.00:00:00-2009/01/01.00:04:59 \

-w /kam/ulozit/2009-01-01.00-05

• -r: urˇcuje zdroj NetFlow dat

• -t: filtruje data pouze podle ˇcasov´eho okna zadan´eho jako parametr

• -w: soubor ukl´ad´a jako NetFlow z´aznam do poˇzadovan´eho adres´aˇre (v z´akladn´ım

nastaven´ı jsou z´aznamy vyps´any na standardn´ı v´ystup a nemohou b´yt zpracov´ana

znovu pomoc´ı n´astrojenfdump)

Sch´ema vol´an´ı skript˚u je na obr´azku 9.1.

Pro rozdˇelen´ı hodinov´ych z´aznam˚u NetFlow slouˇz´ı skript split.sh. Pomoc´ı n´astroje

References

Related documents

To capture CNVs within CDH candidate regions, we developed and tested a targeted array comparative genomic hybridization platform to identify CNVs within 140 regions in 196 patients

Tobacco-attributable cancers are a cause of significant differences in life expectancy between males and females and contribute to male excess mortality rates in Poland.. Ac-

In summary, our basic model suggests that the health share rises over time as income grows if the joy associated with living an extra year does not diminish as quickly as the

Working in conjunction with the Stroke Association this service provides a community approach in rehabilitation supporting those with an acquired brain injury and/or

Furthermore, traditional livestock farming directly fosters the usage of groundwater and dug wells (Oshikweyo) and indirectly reduces the water supply security by, for in-

事前テストと事後テストはそれぞれリーディング Part5 から Part7 に分かれており、TOEIC テストの出題形式と同じ形式で Part 5 短文穴埋め問題 13 問、Part 6 長文穴埋め問題 3