sprecavanje mreznih napada

  • Upload
    -

  • View
    35

  • Download
    1

Embed Size (px)

DESCRIPTION

aa

Citation preview

  • ZAVOD ZA ELEKTRONIKU, MIKROELEKTRONIKU, RAUNALNE I INTELIGENTNE SUSTAVEFAKULTET ELEKTROTEHNIKE I RAUNARSTVA

    SVEUILITE U ZAGREBU

    DIPLOMSKI RAD br. 1708

    RASPODIJELJENI SUSTAV ZA SPRIJEAVANJE MRENIH NAPADA

    Igor Pogaj

    Zagreb, veljaa 2008.

  • Zahvaljujem svima koji su mi na bilo koji nain pomogli u izradi ovog diplomskog rada. Posebno zahvaljujem mr.sc. Stjepanu Grou i prof.dr.sc. Vladi Glaviniu na strunom vodstvu, te obitelji i mojoj djevojci Meliti na pruenoj podrci.

  • Saetak

    Uz standardne tehnike zatite raunalnih mrea esto se koriste i sustavi ija je osnovna namjena prepoznavanje sumnjivih aktivnosti i napada na mrei. Cilj ovoga rada je prikazati funkcije i nain rada takvih sustava, opisati arhitekturu tipinog sustava za otkrivanje mrenih napada, te prikazati najee probleme kod njihovog koritenja kao i neka od moguih rjeenja.Kao praktini dio rada razvijen je jednostavni program s osnovnim funkcijama sustava za prepoznavanje i sprjeavanje mrenih napada, Koriteni su standardni alati otvorenog koda te programski jezik Python. Funkcionalnost programa obuhvaa oslukivanje mrenog prometa, prepoznavanje raznih vrsta napada, njihovo zapisivanje u datoteke dnevnika, te sprjeavanje daljnjih napada. Sprjeavanje napada mogue je obavljati runo definiranjem odgovarajue sigurnosne politike ili automatski zadavanjem odreenih pravila unutar programa.

    Abstract

    In addition to standard techniques used for protecting the computer networks, systems which main goal is detection of attacks and suspicious actions are also commonly used. Goal of this thesis is to elaborate tasks and functionality of such systems, describe the typical architecture of network intrusion detection system, and to show the most common problems of using such systems as well as solutions for that problems.Practical part of the thesis includes developed application with basic functionalities of intrusion detection and prevention system. Program is developed in Python programming language and by using the common open source tools. Functionalities of application include network traffic sniffing, detection of various kinds of network attacks, logging of attacks and prevention of further attacks. Prevention of attacks is possible by manually defining the security policy, or it can be taken automatically by using special commands inside the application.

  • Sadraj1. Uvod......................................................................................................................1

    2. Sustavi za otkrivanje mrenih napada..................................................................42.1. Definicija i funkcionalnost........................................................................................42.2. Vrste IDS-a.............................................................................................................52.3. Arhitektura IDS-a....................................................................................................7

    2.3.1. Dekoder paketa.............................................................................................................82.3.2. Pretprocesor..................................................................................................................92.3.3. Sustav otkrivanja.........................................................................................................102.3.4. Sustav za voenje dnevnika i upozoravanje................................................................112.3.5. Izlazni moduli...............................................................................................................12

    2.4. Poloaj u razliitim mrenim topologijama.............................................................132.4.1. Smjetaj IDS-a.............................................................................................................132.4.2. Rjeavanje problema s preklopnicima.........................................................................142.4.3. Mrena prikljunica......................................................................................................16

    2.5. Problemi i nedostaci IDS-ova................................................................................172.6. Zatita IDS-a.........................................................................................................182.7. Standardizacija.....................................................................................................19

    3. Sustav za otkrivanje mrenih napada Snort.......................................................213.1. Snort IDS..............................................................................................................213.2. Naini rada............................................................................................................22

    3.2.1. Sniffer nain rada.........................................................................................................223.2.2. Packet logger nain rada.............................................................................................253.2.3. NIDS nain rada..........................................................................................................273.2.4. Nain rada koritenjem iptables-a................................................................................31

    3.3. Postavljanje...........................................................................................................333.4. Pretprocesori.........................................................................................................363.5. Izlazni moduli........................................................................................................403.6. Prilagoena pravila...............................................................................................413.7. Dodatni alati..........................................................................................................47

    3.7.1. iptables........................................................................................................................473.7.2. Ostali alati....................................................................................................................49

    4. Praktini rad........................................................................................................514.1. Opis problema.......................................................................................................514.2. Izrada programa....................................................................................................52

    4.2.1. Arhitektura rjeenja......................................................................................................524.2.2. Funkcionalna analiza...................................................................................................574.2.3. Koritene tehnologije...................................................................................................58

    4.3. Eksperimentalno koritenje programa...................................................................68

    5. Zakljuak.............................................................................................................70

    6. Literatura.............................................................................................................71

  • 1. UvodRaunalna sigurnost je, zahvaljujui sve brem rastu raunalne industrije, postala nezaobilazna tema u projektiranju bilo kojeg informacijskog sustava. Novi propusti i metode napada na razne sustave otkrivaju se gotovo svakodnevno. Prema podacima preuzetih od CERT-a (eng. Computer Emergency Response Team) broj prijavljenih sigurnosnih incidenata u razdoblju od petnaest godina porastao je gotovo 1000 puta, kao to prikazuje slika 1.1, a praktiki se udvostruuje svake sljedee godine [7]. Razlozi za ovakav drastian porast broja sigurnosnih incidenata su mnogobrojni. Posljednjih godina pristup Internetu je sve jednostavniji i jeftiniji, a broj korisnika se neprestano poveava. Nadalje, tritem trenutno dominira vrlo mali broj operacijskih sustava, pa pronalaenjem propusta u bilo kojem od njih napada automatski dobiva veliki broj potencijalnih rtava na kojima moe iskoristiti pronaeni propust. Brzi razvoj tehnologije esto izbacuje na trite nekompletna i neprovjerena rjeenja koja na kraju rezultiraju velikim brojem sigurnosnih propusta. esto navoeni primjer je sluaj WEP protokola (eng. Wired Equivalent Privacy) u beinim mreama. Dvije godine nakon objave pronaeni su ozbiljni propusti u protokolu, a u samo nekoliko iduih mjeseci pojavio se niz alata za iskoritavanje njegovih nedostataka (npr. airsnort). Uza sve navedeno, popularizacijom Interneta informacije o novim propustima se trivijalno i vrlo brzo ire meu velikim brojem ljudi, a pronalaenje alata za napade na razne informacijske sustave svodi se na jednostavno upisivanje kljunih rijei u trailicu, te preuzimanje gotovih alata s jedne od mnogobrojnih crackerskih stranica. Zbog toga znanje i vjetine napadaa postaju sve manje vani faktori, te sve vei udio u populaciji napadaa ine takozvani script kiddies, napadai koji koriste ve gotove alate bez detaljnog znanja o alatu koji koriste ili o propustu koji iskoritavaju.

    Struktura napada se tijekom vremena takoer drastino promijenila. Prema podacima iz CERT-a, prije desetak godina veinu prijavljenih incidenata su sainjavale prijave vezane uz tetno djelovanje virusa, pogaanje korisnikih lozinki raznim metodama pretraivanja (eng. brute force password guessing), te iskoritavanje dobro poznatih propusta u sustavima. Porastom kompleksnosti informacijskih sustava uvelike se poveao i broj sigurnosnih propusta, to je jasno vidljivo i na slici 1.2. Danas veinu prijava CERT-u

    1

    Slika 1.1: Prijavljeni sigurnosni incidenti [CERT]

  • 1. Uvod

    sainjavaju razni tipovi napada s mree u rasponu od jednostavnog prikrivenog skeniranja pristupnih vrata (eng. stealth port scanning) pa sve do vrlo ozbiljnih napada poput raspodijeljenih napada uskraivanjem usluge (eng. distributed denial of service). U vrijeme kada je gotovo svako raunalo prikljueno na Internet i zbog svih prethodno navedenih razloga, mrena sigurnost i razvoj sigurnosnih rjeenja za obranu od napada s mree ine jedno od najbre razvijajuih podruja raunalne industrije. Posebnu ulogu u tome ima i razvoj alata za obranu ranjivih mrenih usluga, meu kojima vanu ulogu imaju i sustavi za otkrivanje napada sa mree.

    Paralelno s razvojem raznih metoda napada na informacijske sustave razvijali su se i obrambeni mehanizmi i tehnike. Jedna od prvih, a danas vjerojatno i najee koritenih metoda je koritenje mrene sigurnosne stijene (eng. firewall). Sigurnosna stijena je u svojoj osnovi programsko ili sklopovsko rjeenje koje djeluje kao filtar paketa i slui za osnovno nadziranje prometa izmeu raznih podruja povjerenja (eng. zones of trust), ime je mogue u potpunosti zabraniti ili selektivno proputati promet prema odreenim grupama raunala. Tipina takva podruja koja se koriste su lokalna mrea (eng. local network) s najveim stupnjem povjerenja, demilitarizirano podruje (eng. demilitarized zone) s manjim stupnjem povjerenja, te Internet s najmanjim stupnjem povjerenja. Prve implementacije sigurnosne stijene su bile statine i nisu pratile stanje veze (eng. stateless packet filter) pa su mogle blokirati promet samo u ovisnosti o mrenim adresama i pristupnim vratima (eng. port). Danas je takav pristup uglavnom manje zastupljen i koriste se sigurnosne stijene koje mogu pratiti i stanje veze (eng. stateful packet filter). Praenje stanja veze omoguuje izradu puno sloenijih pravila jer se svakoj vezi pridruuje i jedno od moguih stanja. Neka od mogua stanja veze su nova (eng, new), uspostavljena (eng. established), povezana (eng. related) itd. Ova tehnika takoer omoguava prevoenje adresa u sigurnosnoj stijeni (eng. network address translation, NAT) kao i bolje funkcioniranje s problematinim mrenim uslugama poput FTP-a (eng. file transfer protocol).Glavni nedostatak zatite sigurnosnom stijenom je to veina takvih rjeenja radi na mrenom (L3) i prijenosnom (L4) sloju, ime je mogue proputanje ili zabranjivanje prometa samo u ovisnosti o podacima dostupnim na tim slojevima. Moderne metode zatite zahtijevaju analizu prometa na slojevima viim od prijenosnog, posebice na aplikacijskom (L7) sloju. Primjerice, paket koji dolazi na posluitelj i sadri tetni

    2

    Slika 1.2: Pronaeni sigurnosni propusti

  • 1. Uvod

    programski kd koji e napadau omoguiti pristup ljusci operacijskog sustava (eng. shell), sigurnosna stijena nee moi odbaciti jer su na mrenom i prijenosnom sloju dostupne samo informacije o mrenim adresama odnosno pristupnim vratima, pa sigurnosna stijena ne moe znati nita o sadraju paketa. Za puno vei stupanj nadzora prometa koji prolazi mreom potrebno rjeenje koje e izmeu ostalog moi analizirati i sadraj samoga paketa na aplikacijskom sloju, te na osnovu tih informacija odluiti da li e paket biti proputen ili odbaen. Upravo je to jedna od funkcija sustava za otkrivanje napada sa mree.

    Ponekad se za analizu sigurnosti na odreenoj mrei koriste i sustavi za privlaenje napadaa (eng. honeypots). Sustav za privlaenje napadaa je raunalni sustav koji se nalazi u istoj mrei na kojoj se nalazi i stvarni posluitelj iju sigurnost treba ispitivati, a ija je osnovna namjena zavarati napadaa tako da povjeruje da radi sa stvarnim posluiteljem. Cilj ove tehnike je mogunost pravovremenog dobijanja informacije o napadu, te dobijanje informacija o tehnikama koje napada koristi da bi ostvario taj napad. Sustav uobiajeno ima pokrenute usluge koje napadai najee napadaju (telnet, ssh, ftp, httpd, nfs, samba), a sigurnosni mehanizmi na njemu su puno slabiji od onih na stvarnom posluitelju. esto se i pristupna vrata navedenih mrenih usluga sa stvarnog posluitelja preusmjeravaju na pristupna vrata sustava za privlaenje napadaa, pod uvjetom da se ne koriste za neki korisni promet. Raunalni sustav za privlaenje napadaa mora biti dobro izoliran od stvarnog posluitelja iz razloga da napada nema mogunost napada na ostala raunala u mrei ukoliko uspije kompromitirati napadnuto raunalo. Ovakvi sustavi su vrlo esto usko objedinjeni sa sustavima za otkrivanje napada sa mree.

    Danas se, zahvaljujui vrlo brzom razvoju virtualizacijskih tehnika i alata (VMWare, Xen, QEMU, kvm itd.) najee koriste ve gotova rjeenja koja obuhvaaju sva tri navedena aspekta zatite i nadziranja sigurnosti (sigurnosnu stijenu, sustav za otkrivanje napada sa mree i sustav za privlaenje napadaa). Prednost takvog pristupa je mogunost vrlo brzog postavljanja sustava za nadzor i zatitu u gotovo bilo koju mrenu topologiju, te uz vrlo nisku cijenu i trokove odravanja. Takva rjeenja su esto objavljenja pod raznim licencama otvorenog kda i razvijaju se gotovo svakodnevno, pa predstavljaju ozbiljnu konkurenciju i vrlo skupim komercijalnim i vlasnikim (eng. proprietary) proizvodima.

    3

  • 2. Sustavi za otkrivanje mrenih napada2.1. Definicija i funkcionalnostSustavi za otkrivanje napada (eng. intrusion detection systems) su dio skupa tehnologija za podizanje ukupne razine sigurnosti informacijskih sustava. Njihov rad se zasniva na prikupljanju informacija s itavog niza mrenih i raunalnih izvora, te analiziranju tih informacija s ciljem otkrivanja eventualnih nedozvoljenih aktivnosti i zlouporabe sustava na kojem se nalaze. Sustavi za otkrivanje napada (u daljnjem tekstu koristi se u literaturi uobiajena kratica IDS) prate i analiziraju mreni promet i razliite dijelove operacijskog sustava, meutim ne poduzimaju nikakve akcije koje bi sprijeile tetni ili neeljeni promet. Ukoliko se takav promet uoi, najee se samo zabiljei u dnevnik (eng. log), te se obavjetavaju nadlene osobe putem razliitih mehanizama obavjetavanja. U literaturi se esto razlikuju sustavi koji otkrivaju napade od onih koji otkrivaju pogreno koritenje sustava. Uobiajeno se napadom smatra tetna aktivnost koja na sustav djeluje s lokacije izvan sustava, a iste takve aktivnosti koje djeluju unutar samog sustava se smatraju pogrenim koritenjem. Napadi se od pogrenog koritenja dodatno razlikuju i po svojem intenzitetu odnosno brzini pojavljivanja, vanosti napadnutog objekta itd. Na primjer, zaposlenik prijavljen za rad na jednom od raunala u lokalnoj mrei koji vie puta za redom unese krivo korisniko ime kod prijavljivanja na neku mrenu uslugu u korporacijskom intranetu krivo koristi sustav. Isti postupak, ali s raunala izvan tvrtkine lokalne mree te koji se pojavljuje stotinjak puta unutar jedne minute, smatra se napadom. U veini implementacija ovakvih programa najee se ne pravi razlika izmeu napada i pogrenog koritenja sustava ve se oboje tretiraju jednako, kao napad.

    Rad IDS-a zasniva se na nadziranju pojedinih dijelova operacijskog sustava, te analiziranju zaglavlja i sadraja paketa na raznim slojevima mrenog stoga. Obje vrste podataka sadre informacije o aktivnostima korisnika, pa je na osnovu analize njihova sadraja mogue prepoznati neuobiajene aktivnosti i napade. Pri analiziranju mrenog prometa IDS ni na koji nain ne smije usporavati mreni promet njegov rad mora biti u potpunosti nevidljiv korisnicima mree i svih sustava na mrei. Iz razloga to analiza cjelokupnog prometa na visoko propusnim mreama moe biti prilino zahtjevan posao, primjenjuju se posebne metode, npr. mrene prikljunice (eng. network taps), da bi se izbjegle takve vrste problema. Analizu mrenog prometa mogue je obavljati na raunalu posebno namijenjenom samo svrsi prepoznavanja i praenja napada na odreeni posluitelj, aplikaciju ili grupu raunala u mrei. Iako je mogue smjestiti IDS na isto raunalo na kojem je instaliran i posluitelj koji se eli nadzirati, najee se ipak nalazi na zasebnom raunalu namijenjenom posebno prepoznavanju napada. U literaturi se ovakvo raunalo namijenjeno iskljuivo radu IDS-a ili nekih od njegovih komponenti naziva senzor [5].Za prepoznavanje tetnih aktivnosti na raunalnom sustavu ili mrei, IDS koristi dvije uobiajene metode: prepoznavanje potpisa i prepoznavanje neuobiajenog ponaanja. Kod prepoznavanja potpisa (eng. signatures detecting, pattern matching) sadraj dnevnika ili mrenih paketa alje se u posebni pretraivaki program (eng. detection engine) gdje se usporeuje s unaprijed poznatim i definiranim potpisima napada ili s unaprijed definiranim uobiajenim ponaanjem sustava. Potpis napada je skup uzoraka na temelju kojih sustav

    4

  • 2. Sustavi za otkrivanje mrenih napada

    moe otkriti da proitani paket predstavlja potencijalni napad na sustav. S druge strane, sustavi koji koriste prepoznavanje neuobiajenog ponaanja rade na naelima prikupljanja i statistike obrade podataka o uobiajenom radu sustava. Statistika obrada podataka slui da bi sustav za otkrivanje napada odredio uobiajeno koritenje sustav poput najee koritenih protokola, pristupnih vrata, adresa i vremena pristupa uslugama. Kada se primijeti znatnije odstupanje od tako sakupljenih i statistiki obraenih podataka, IDS e smatrati da je u tijeku napad na sustav. Sustav za otkrivanje koji koristi prepoznavanje neuobiajenog ponaanja u pravilu koristi vie sistemskih resursa, ali e nakon poetnog razdoblja uenja moi prepoznati i neke od novih vrsta napada, dok je sustav koji koristi prepoznavanje potpisa uinkovit samo toliko koliko je aurna njegova baza podataka s potpisima napada. Usporedba pojedinih vanijih karakteristika sustava koji su zasnovani na prepoznavanju potpisa, te onih koji koriste prepoznavanje neuobiajenog ponaanja, prikazana je tablicom 2.1.

    Prepoznavanje potpisima Prepoznavanje neuobiajenog ponaanjaManji broj lanih prepoznavanja Mogui vei broj lanih prepoznavanja

    Proizvoa IDS mora odravati i redovito izdavati potpise novih otkrivenih vrsta napada

    Prilagodljiviji sustav, moe otkriti i vrste napada koje se ne nalaze u bazi s potpisima napada

    Bra obrada, zahtjeva manje raunalnih resursa Zahtjeva vie raunalnih resursa, sporija obrada

    Nije potrebno poetno razdoblje uenje sustava da bi prepoznavao napade, koriste se ve gotovi potpisi napada

    Potrebno je poetno razdoblje uenja sustava za prepoznavanje napada, moe predstavljati problem u dinaminim sredinama

    Teko odravanje pravila Manje pravila i lake odravanje

    Tablica 2.1: Karakteristike razliith naina prepoznavanja napada

    Potrebno je i napomenuti da veina besplatnih kao i komercijalnih IDS-ova danas koristi kombinaciju obje navedene metode prepoznavanja, ali se ipak vei naglasak stavlja na metodu prepoznavanja potpisa. Primjer takvog programa je i sustav za otkrivanje napada sa mree Snort koji je opisan kasnije u nastavku rada.

    2.2. Vrste IDS-aZa razliku od klasifikacije sustava za prepoznavanje napada po nainu na koji prepoznaju napade, u literaturi se IDS-ovi najee klasificiraju prema svojoj namijeni. Po toj podjeli moemo ih razvrstati u dvije osnovne skupine:

    raunalno temeljeni IDS

    mreni IDS

    Raunalno temeljeni IDS (eng. host based intrusion detection system - HIDS) je sustav namijenjen analiziranju mrenog prometa koji je usmjeren prema samom raunalu na kojem je postavljen IDS, te analiziranju datotenog sustava, procesa i drugih vanijih dijelova operacijskog sustava. Vrste napada koje moe otkrivati ovakav sustav su vrlo

    5

  • 2. Sustavi za otkrivanje mrenih napada

    raznolike. Rad HIDS-a se zasniva na prikupljanju potpisa ili saetka (eng. hash, digest) te praenju dozvola na kritinim sistemskim datotekama, nadziranju rada s datotenim sustavom, nadziranju procesa, memorije itd. Vaan dio HIDS-a je baza podataka koja sadri informacije o ranjivim programima i uslugama na osnovu kojih sustav moe procijeniti rizinost pojedinih pokrenutih aplikacija, te dati ukupnu ocjenu o sigurnosti. Primjeri esto koritenih HIDS programa su nessus [19] i samhain [20], ali i manji alati za otkrivanje tetnog programskog kda poput chkrootkit, rkhunter i tripwire.Mreni IDS (eng. network intrusion detection system NIDS) je sustav namijenjen prikupljanju i analiziranju mrenog prometa koji nije nuno stvoren ili usmjeren prema raunalu na kojem je postavljen IDS, to jest prema IDS senzoru. Cilj NIDS-a je nadzirati rad ranjivih mrenih usluga i aplikacija, pratiti rad korisnika na mrei te paziti na dobro poznate propuste u mrenim protokolima i porukama koje se razmjenjuju. NIDS u svojoj osnovi djeluje vrlo slino kao i aplikacijska (L7) sigurnosna stijena ili aplikacijski prilaz (eng. application level gateway). Za razliku od sigurnosne stijene, NIDS ne moe utjecati na stanje veze pa se njegove aktivnosti svode na prepoznavanje i upozoravanje na napade. Nadalje, nain rada i funkcija NIDS-a se bitno razlikuje od aplikacijske sigurnosne stijene koja je primarno namijenjena selektivnom proputanju mrenog prometa koji stvaraju programi koristei skup tono odreenih mrenih protokola. Glavna tema ovog rada su mreni IDS-ovi pa e se pod pojmom IDS, ukoliko nije drukije eksplicitno navedeno, u nastavku rada podrazumijevati mreni IDS (NIDS).

    Mreni IDS-ovi mogu otkriti veliki broj razliitih vrsta napada na mrei zahvaljujui ve unaprijed poznatim potpisima napada ili podacima o unaprijed ustanovljenom uobiajenom koritenju sustava. Glavne vrste potpisa napada vezane su uz nadziranje karakteristinih binarnih ili tekstualnih nizova znakova u mrenim paketima. Najee se nadziru sadraj paketa (eng. payload) na aplikacijskom sloju te kompletna zaglavlja paketa (eng. packet header) na mrenom i prijenosnom sloju. Primjer niza znakova koji se moe traiti, te koji e nakon otkrivanja aktivirati upozorenje je nizcat "+ +" > /.rhosts

    koji ukoliko se izvri u ljusci operacijskog sustava UNIX moe uiniti sustav vrlo izloen daljnjim napadima. Nizovi znakova koji se takoer esto trae su cgi-bin, ifs, aglimpse i drugi. Druga vrsta potpisa trai sumnjive pakete koji stiu na raunalo i cilj im je pristupiti karakteristinim pristupnim vratima (NetBIOS, SunRPC, telnet, FTP itd.), a na lokalnom raunalu nisu nuno pokrenute mrene usluge na tim pristupnim vratima. Posljednja vrsta potpisa zaduena je za otkrivanje neuobiajenih kombinacija zastavica u zaglavljima mrenih paketa. Najpoznatiji primjer programa koji je koristio propust s neuobiajenim kombinacijama zastavica je program Winnuke koji alje pakete na NetBIOS pristupna vrata s ukljuenim zastavicama URG (eng. urgent) i OOB (eng. out of band). Zbog propusta u operacijskom sustavu Microsoft Windows takvi paketi su uzrokovali trenutno ruenje sustava. Slian primjer zloudnih paketa su i paketi koji u zaglavlju imaju ukljuenu i SYN i FIN zastavicu ime napada istovremeno pokuava uspostaviti i zatvoriti TCP vezu. U ovu klasu potpisa pripadaju i potpisi kojima je cilj otkriti razne vrste skeniranja pristupnih vrata (syn, connect, xmas, ymas itd.). Najpoznatiji programi koji mogu otkriti sve prethodno navedene vrste napada su Snort, Axent, Prelude, Cisco Secure IDS, ISS, Shadow itd.

    6

  • 2. Sustavi za otkrivanje mrenih napada

    2.3. Arhitektura IDS-aIDS je logiki podijeljen na nekoliko zasebnih komponenti. Logika podjela moe odgovarati i stvarnoj fizikoj realizaciji sustava, meutim ei je sluaj gdje su pojedine komponente udruene u kompleksnije cjeline ili su dodatno razdvojene na jo nekoliko komponenti. Pojedine komponente sustava meusobno komuniciraju s zajednikim ciljem uinkovitog otkrivanja pojedinih vrsta napada te stvaranja sigurnosnih upozorenja i njihovog spremanja u dnevnik. Komunikacija izmeu pojedinih komponenti ostvarena je razmjenom poruka. Primarna namjena razdvajanja cjelokupnog sustava na vie meusobno ovisnih komponenti je jednostavnost razvoja, bolja podjela zadataka unutar sustava te mogunost koritenja modula iz razliitih IDS sustava u jednoj raznolikoj (heterogenoj) cjelini. Pojedine komponente mogu se smjetati i na zasebnim raunalima ime se ostvaruje mogunost izrade sustava koji e maksimalno iskoristiti paralelni rad (npr. clustering rjeenja) i dati najbolja radna svojstva. Naalost, arhitektura pojedinanih IDS rjeenja u stvarnosti dosta varira od proizvoaa do proizvoaa, bilo zbog nedovoljne primjene standarda ili namjere proizvoaa da onemogui koritenje pojedinih komponenti i od konkurentskih proizvoda (npr. da se uz pretprocesor jednog proizvoaa moe koristiti sustav otkrivanja drugog proizvoaa). Glavna prepreka komunikaciji komponenti raznih proizvoaa je uglavnom nedostatak primjene standardnog formata poruka i primjene standardiziranih protokola za razmjenu tih poruka. Umjesto otvorenih i slobodnih ee se koriste zatvoreni i vlasniki formati te poruke, to predstavlja dodatni problem kod meusobne suradnje razliitih komponenti, ali i kod procesa standardizacije. U ovome smislu programi otvorenog koda vie pridonose standardizaciji protokola i formata poruka jer je njihova specifikacija kao i implementacija javno dostupna, pa je mogue i zajedniko koritenje razliitih komponenti. Primjerice, mogue je kombinirati dva vrlo popularna IDS sustava otvorenog koda, Snort i Prelude, tako da Snort obavlja funkcije otkrivanja napada, a otkrivene napade predaje na daljnju obradu programu Prelude.

    Tipine komponente od kojih se sastoji sustav za otkrivanje napada s mree su sljedee:

    dekoder paketa

    pretprocesor

    sustav otkrivanja

    sustav za voenje dnevnika i upozoravanje

    izlazni moduli

    Kao to je ve navedeno, mogua su i grupiranja pojedinih komponenti sa slinim funkcijama u jedinstveni modul. Primjerice dekoder paketa i pretprocesor mogu biti dio jedinstvenog modula za pripremanje mrenih paketa, a izlazni modul moe biti ugraen u sustav za voenje dnevnika i upozoravanje, npr. u sluaju da e se koristiti iskljuivo zapisivanje upozorenja u datoteku dnevnika.

    Meusobnu ovisnost pojedinih komponenti IDS-a prikazuje slika 2.1. Tok paketa kroz sustav prikazan je punom strelicom. Potencijalne akcije koje IDS moe poduzeti na paketima prikazane su isprekidanom crtom. Na putu od dekodera paketa do izlaznih modula paket moe biti isputen, odnosno za njega se nee stvoriti nikakva sigurnosna upozorenja, ili e se stvoriti odgovarajue sigurnosno upozorenje i zapis u dnevniku.

    7

  • 2. Sustavi za otkrivanje mrenih napada

    Mogue je da u nekim implementacijama IDS-ova neke od navedenih komponenti nisu zasebno realizirane ili se uope niti ne koriste. Komponente koje se u pravilu nalaze u svakom IDS-u su dekoder paketa, pretprocesor i sustav otkrivanja. Za sustav otkrivanja ponegdje se koristi i naziv engine.

    Sve navedene komponente ine IDS, odnosno IDS senzor. Cjelokupni sustav za nadzor mree moe se sastojati od jednog ili vie senzora. Ponegdje se kao posebna vrsta IDS senzora izdvaja i konzola za nadziranje rada sustava. Konzola za nadziranje sustava slui za praenje rada (eng. monitoring) i upravljanje pojedinim dijelovima sustava, primarno IDS senzorima i njihovim funkcijama. U veini implementacija IDS-ova, konzola za nadziranje sustava nije nita drugo nego posebno izdvojeni senzor ili jo ee svaki senzor ima mogunost upravljanja ostalim senzorima, tj. ne pravi se razlika izmeu nadzornog (aktivnog) i ostalih senzora. Funkcionalnost nadzornog senzora najee se moe koristiti putem posebnog programa s grafikim korisnikim sueljem ili putem web aplikacije. Primjer nadzornog programa je Site Protector Console u sluaju ISS IDS-a.

    2.3.1. Dekoder paketaSvi paketi koji dolaze s mree prvo ulaze u dekoder paketa. Zadaa ove komponente IDS-a je pripremanje paketa s razliitih mrenih suelja prije daljnjeg prosljeivanja pretprocesoru. Dekoder paketa omoguuje da se ostatak sustava koristi na jednak nain bez obzira na vrstu mrenog suelja koja se koristi na ulazu u IDS, na primjer Ethernet, SLIP ili PPP. Poto u IDS dolaze sirovi paketi (eng. raw packets) koji e biti razliiti ovisno o vrsti suelja s kojeg dolaze, nuno je ostalim dijelovima sustava osigurati jedinstveni format dekodiranog paketa. Bez ovakvog pristupa u projektiranju IDS-a, sustav bi bio vrlo ogranien jer bi se sve komponente kojima dekoder dalje prosljeuje pakete morali dizajnirati za neku specifinu vrstu paketa. Primjerice, morali bi zasebno biti implementirani pretprocesori za SLIP odnosno PPP suelja. Umjesto toga, nakon dekodiranja sadraja dalje se prosljeuje i koristi vlastiti format paketa.

    8

    Slika 2.1: Arhitektura tipinog IDS sustava

  • 2. Sustavi za otkrivanje mrenih napada

    2.3.2. PretprocesorPretprocesor je vrlo vana komponenta IDS-a koja moe preurediti i mijenjati tekstualne ili binarne nizove znakova u paketu prije nego to ih sustav otkrivanja pone detaljnije analizirati. Neke vrste IDS-a su tako dizajnirane da ak i pretprocesor moe stvarati sigurnosna upozorenja nakon to otkrije pogreke u pojedinim dijelovima paketa (primjerice Snort). Pogreke koje na paketima moe otkriti pretprocesor su vrlo raznolike i u osnovi se svode na elementarnu provjeru zaglavlja u primljenim paketima. IDS moe imati i vie od jednog pretprocesora. U takvom modularnom sluaju svaki od pretprocesora obavlja ue specijalizirani dio posla koji bi inae obavljao cijeli pretprocesor. U razliitim kombinacijama raspodijeljenih i centraliziranih IDS arhitektura obino svaki od senzora ima svoj vlastiti pretprocesor. Prednost IDS-ova koji sadre vie pretprocesora je puno laki razvoj i nadogradnja sustava, te smanjenje zahtjeva nad pojedinim senzorima u sluaju da je arhitektura IDS-a takva da se pojedini pretprocesori izvode na razliitim raunalima.

    Uloga pretprocesora moe se najbolje opisati na jednostavnom primjeru otkrivanja napada na hipotetsku ranjivu mrenu aplikaciju ili primjerice na web posluitelj. Moemo pretpostaviti da e svaki bolji sustav za otkrivanje napada sadravati pravilo koje e stvarati sigurnosno upozorenje ako se tijekom nadgledanja HTTP veze (eng. session) u jednom od paketa otkrije pokuaj pristupa vanoj sistemskoj datoteci poput administratorske IIS datoteke scripts/iisadmin. Ukoliko sustav otkrivanja doslovce usporeuje staze do datoteka s onima navedenima u bazi potpisa, napada moe zaobii otkrivanje napada na nekoliko vrlo jednostavnih naina. Najjednostavniji takvi naini su koritenje zamjenskih ili escape znakova, koritenje apsolutnih staza, te koritenje oznaka . za pristup tekuem direktoriju i .. za pristup roditeljskom direktoriju. Tako na primjer svaka od sljedeih staza pokazuje na istu datoteku.

    scripts/./iisadmin scripts/examples/../iisadmin scripts\iisadmin scripts/.\iisadmin

    Problem se moe i dodatno zakomplicirati koritenjem Unicode (UTF-8 ili UTF-16) heksadecimalnih kodova u URI (eng. uniform resource identifier). Web posluitelj e uvijek moi otkriti da se radi o stazi do datoteke scripts/iisadmin, meutim ukoliko IDS tumai staze doslovno onda nee moi otkriti ovakve vrste napada. Uloga pretprocesora je rjeavanje upravo ovakvih i slinih vrsta problema.

    Pretprocesor se takoer koristi za defragmentaciju paketa. Kada se mreom prenosi preveliki paket, isti se uobiajeno razdvaja na vie dijelova fragmenata. Na primjer, najvei neprekinuti niz podataka koji se moe prenositi u Ethernet mreama je 1500 okteta. Iznos ove veliine se nadzire pomou MTU (eng. maximum transfer unit) vrijednosti mrenog suelja. Ukoliko se mreom eli prenositi paket ija je veliina vea od vrijednosti MTU, paket prvo mora biti razdvojen na dijelove veliine manje ili jednake vrijednosti MTU. Nakon primanja svih dijelova paketa, primatelj podataka moe ponovno sastaviti izvorni paket i oitati izvornu poruku. Fragmentacija paketa je jedan od uobiajenih naina kojim napadai pokuavaju zaobii otkrivanje napada i to ne samo kod IDS-a. Napada u ovu svrhu moe koristiti odreena polja u zaglavljima paketa, poput

    9

  • 2. Sustavi za otkrivanje mrenih napada

    zastavice DF (eng. don't fragment). Prije nego to IDS pone provjeravati da li primljeni paket ispunjava neki od uvjeta iz baze potpisa, prvo ga mora ponovno sastaviti iz svih njegovih primljenih dijelova. U sluaju prethodnog primjera s pristupom vanim sistemskim datotekama, jedan dio URI-a se moe nalaziti u jednom, a ostatak u drugom dijelu paketa. Kada bi se baza potpisa poela pretraivati za svaki dio paketa zasebno, sustav otkrivanja ne bi mogao otkriti napad.

    Pretprocesor moe rijeiti sve prethodno navedene probleme. U veini danas dostupnih IDS-ova pretprocesor je iznimno vana komponenta i obavlja funkcije defragmentacije paketa, dekodiranja URI-a te praenja i ponovnog sastavljanja (eng. reassembly) TCP veza bez kojih IDS ne bi mogao korektno raditi. Potrebno je naglasiti da je pojam pretprocesora prilino iroko definiran, te da u praktinim implementacijama sustava za otkrivanje napada s mree modeli pretprocesora znaju znatno odstupati od modela opisanog u ovom poglavlju.

    2.3.3. Sustav otkrivanjaSustav otkrivanja je najvaniji dio IDS-a. Njegova uloga je provjeravanje da li primljeni paketi ispunjavaju neki od uvjeta iz baze potpisa i pravila tj. da li je sadraj paketa u dozvoljenim granicama rada sustava u sluaju da je rije o sustavu koji prepoznaje napade prepoznavanjem neuobiajenog ponaanja. Baza potpisa i pravila organizirana je u interne strukture podataka u obliku povezanih lista (eng. linked lists). Pravila su u listama grupirana tako da ako se pronae odreeni uzorak u ulaznim podacima onda se aktivira itavi niz ispunjenih pravila. Time se izbjegava nepotrebno ponovno ispitivanje za isti uvjet, ali se i omoguava izrada sloenijih nizova pravila. Primjerice, ako postoji pedeset pravila za otkrivanje niza "/etc/shadow" unutar paketa, mogu se grupirati unutar jedne liste. Umjesto da se paket pretrauje za svako od tih pedeset pravila, pretraivati e se samo jednom za prvi element liste, te ukoliko zadovoljava njegove uvjete automatski e se aktivirati svako drugo pravilo iz te liste.

    Ako paket ispunjava bilo koje od pravila u bazi potpisa, poduzet e se odgovarajua akcija koja moe biti stvaranje sigurnosnog upozorenja, stvaranje zapisa u dnevniku ili oboje. U sluaju da paket nije zadovoljio niti jedno od proitanih pravila, sustav e ga smatrati ispravnim koritenjem sustava te ga nee dalje obraivati.

    Sustav otkrivanja je vremenski najkritinija i najosjetljivija komponenta IDS-a. Ovisno o tome koliko je brzo raunalo na kojem se nalazi, te o broju pravila i potpisa, vremenski odziv na razliite vrste paketa moe jako varirati. Ovo moe biti naroito vano ukoliko se od sustava zahtjeva da radi u stvarnome vremenu (eng. real time) gdje vrijeme prepoznavanja nikad ne smije prekoraiti unaprijed zadanu vremensku granicu. Problem posebno dolazi do izraaja kada sustav radi na mrei s iznimno velikom koliinom prometa ili u sluajevima gdje je baza potpisa velika. Primjerice, ako je baza potpisa vrlo velika mogue je da e doi do zaguenja sustava ak i ako IDS radi na mrei s relativno malim prometom, npr. na 10 Mbit vezi. U takvim uvjetima sustav nee moi raditi u stvarnome vremenu, a mogue su i situacije gdje e neki paketi biti proputeni, a da uope nisu bili pretraivani za tragove napada. U najgorem sluaju moe se dogoditi i da se nestruno postavljen IDS u potpunosti zagui i da prekine komunikaciju na pojedinim segmentima

    10

  • 2. Sustavi za otkrivanje mrenih napada

    mree. Kao rjeenje ovog problema mogue je primijeniti samo zapisivanje paketa, a tek naknadno napraviti pretraivanje njihovog sadraja na drugom posluitelju. Primjerice, ovakav pristup moe se ostvariti kombinacijom programa Snort i Barnyard, gdje Snort stvara zapise, a Barnyard ih naknadno analizira.

    Otkrivanje napada moe se obavljati na raznim dijelovima paketa:

    zaglavlja na mrenom sloju (IP, IPX, ICMP, itd.)

    zaglavlja na prijenosnom sloju (TCP, UDP, itd.)

    zaglavlja na aplikacijskom sloju (DNS, FTP, SNMP, SMTP, NNTP itd.)

    sadraj paketa (eng. payload) na aplikacijskom slojuSustav otkrivanja moe raditi na nekoliko naina. U prvom se nainu za paket koji zadovoljava jedan od uvjeta odmah stvara sigurnosno upozorenje i zapis u dnevniku, a paket se prestaje dalje obraivati. Posljedica ovakvog naina rada je injenica da e se stvarati samo jedno sigurnosno upozorenje za paket iako moda zadovoljava uvjete vie pravila. Ovakva tehnika e doprinijeti rastereenju sustava otkrivanja zato jer se nee morati pretraivati ostatak potpisa, meutim predstavlja ozbiljno ogranienje cjelokupnog sustava ukoliko bi paket zadovoljavao vie pravila, a prvo pronaeno je najmanje vanosti. Djelomino rjeenje ovog problema je i prethodno navedeno grupiranje pravila u povezane liste, meutim to samo umanjuje problem jer e jo uvijek postojati grupe meusobno iskljuivih pravila koja mogu biti aktivirana istim paketom. Drugo rjeenje uzima u obzir i ovakve probleme te svakome pravilu pridruuje i odgovarajuu teinu u ovisnosti o opasnosti koju paket moe uzrokovati. Nakon to se pronae prvo odgovarajue pravilo za paket, otkrivanje se nastavlja dalje sve dok nisu pretraena sva pravila u bazi potpisa. Nakon to se pretrai cijela baza i sve liste pravila, moe se dogoditi da paket zadovoljava i vie pravila. Ovisno o tome kako je sustav postavljen, kao konani rezultat pretrage se mogu prikazati sva zadovoljena pravila ili samo ona najvieg prioriteta. Kao dodatna optimizacija mogue je da su pravila ve unaprijed poredana po vrijednosti prioriteta, pa nema potrebe za pretraivanjem cijele liste ukoliko se doe do zadovoljavajue razine prioriteta. U tom sluaju prekida se s daljnjim pretraivanjem ostatka liste pravila.

    2.3.4. Sustav za voenje dnevnika i upozoravanjeOvisno o tome to sustav otkrivanja pronae unutar paketa, sustav za voenje dnevnika i upozoravanje moe stvoriti sigurnosno upozorenje te odgovarajui zapis u dnevniku. Samo fiziko spremanje zapisa u npr. datoteku ili bazu podataka obavljaju izlazni moduli. Dnevnik sadri podatke primljene od sustava otkrivanja i obino se sastoji od sljedeih podataka o aktiviranom pravilu te paketu koji ga je aktivirao:

    vrijeme kada je pravilo aktivirano

    izvorina i odredina IP adresa paketa

    identifikacijski broj pravila

    opis pravila i referenca na detaljnije informacije

    sadraj i zaglavlje paketa

    11

  • 2. Sustavi za otkrivanje mrenih napada

    oznaka komponente koja je otkrila napad

    prioritet otkrivenog napada

    Veina IDS sustava prua dodatne opcije za nadziranje ovog dijela sustava ime se omoguuje filtriranje odreenih vrsta upozorenja ili ograniavanje brzine njihovog zapisivanja. Mogunost filtriranja i ograniavanja broja zapisa kod stvaranja upozorenja je vana jer e u veini sluajeva IDS stvarati veliki broj lanih upozorenja iste vrste, te bez razloga puniti dnevnik i stvarati dodatni bespotrebni mreni promet. Filtriranjem i ograniavanjem moe se jednostavno ograniiti broj zapisivanja odreene vrste pravila u jedinici vremena ili ga u potpunosti zabraniti.

    2.3.5. Izlazni moduliIzlazni moduli su zadueni za formatiranje podataka primljenih od sustava za voenje dnevnika i upozoravanje. Ovaj dio IDS-a odreuje format zapisa, primjerice u datoteci ili bazi podataka, te definira metodu dojave sigurnosnog upozorenja. Izlazni moduli su vrlo vana komponenta IDS-a jer omoguavaju rad IDS-a na raznorodnim okolinama. Na primjer, sustav otkrivanja i ostale kritine komponente se mogu nalaziti na Linux operacijskom sustavu, dok se zahvaljujui izlaznom modulu koji omoguava stvaranje zapisa pomou SMB poruka dnevnici mogu uvati na raunalima koja koriste drukiji operacijski sustav poput Microsoft Windowsa. Dodatni razlog za razliite vrste izlaznih formata dnevnikih zapisa je injenica da se u veini sluajeva datoteke zapisa ne itaju direktno nego se dalje analiziraju s razliitim dodatnim alatima. Koritenjem dodatnih alata za analizu mogue je dobiti detaljniji uvid u najee napade i njihovu strukturu.

    Neki od uobiajenih i najeih koritenih formata datoteka dnevnika te naina dojavljivanja su sljedei:

    tekstualne datoteke

    XML (eng. Extensible Markup Language) datoteke postavljanje SNMP varijabli koritenje usluga operacijskog sustava (npr. syslog) koritenje sustava za upravljanje relacijskim bazama podataka (RDBMS)

    slanje SMB (eng. Service Message Block) poruka slanje upozorenja elektronikom potom

    12

  • 2. Sustavi za otkrivanje mrenih napada

    2.4. Poloaj u razliitim mrenim topologijama

    2.4.1. Smjetaj IDS-aOvisno o mrenoj topologiji na koju se postavlja, IDS senzor moe biti smjeten na jedno ili vie mjesta u mrei koja se nadzire. Smjetaj takoer ovisi o prirodi napada koju je potrebno otkrivati: napade s lokalne mree (unutranje napade), napade izvan lokalne mree (vanjske napade) ili oboje. Na primjer, ako elimo otkrivati samo vanjske napade, a mrea se sastoji od samo jednog usmjernika (eng. router) preko kojega lokalna mrea s nekoliko segmenata ima pristup Internetu, najbolje je IDS postaviti odmah iza usmjernika jer e tako sav promet koji dolazi s Interneta u lokalnu mreu morati proi kroz usmjernik pa samim time i kroz IDS senzor. Ako mrea ima vie izlaza na Internet, tada se IDS mora nalaziti na svakoj izlaznoj toki iz mree. Ako elimo otkrivati i unutranje napade, tada je IDS senzore potrebno postaviti na svaki zasebni mreni segment kako bi senzori imali pristup cjelokupnom prometu koji prolazi tom mreom. U veini sluajeva nema potrebe za nadziranjem svakog pojedinanog segmenta nego se nadziru samo pojedini povjerljivi i kritini dijelovi mree, primjerice segment na kojem se nalazi sigurnosna stijena ili neki vaniji aplikacijski posluitelj, baza podataka itd. U pravilu se IDS senzor u lokalnoj mrei postavlja iza svakog usmjernika i sigurnosne zatitne stijene. Mjesta koja se obino izbjegavaju su zalihosni (redundantni) dijelovi mree poput paralelnih mrenih veza, nakupina raunala (eng. clusters), viestrukih preklopnika, sustava s failover rjeenjima protiv ispada pojedinih mrenih kartica itd.

    Posebnu panju kod postavljanja IDS senzora i dimenzioniranja mree treba obratiti na nain na koji e se obraivati prikupljeni podaci. Ovi problemi posebice dolaze do izraaja u sloenijim konfiguracijama IDS-a gdje je potrebno postaviti vie od jednog IDS senzora, te kada isti moraju meusobno komunicirati. U takvim sluajevima najee je potrebno odabrati rjeenje koje e biti kompromis izmeu potrebne procesorske snage te koliine prometa koja e se izmjenjivati izmeu pojedinih IDS senzora. Podaci iz pojedinih senzora mogu se obraivati raspodijeljeno ili centralizirano. Kod raspodijeljenog pristupa podaci se obrauju u onim senzorima u kojima su i prikupljeni, dok se kod centraliziranog pristupa podaci sakupljeni u senzorima alju u centralni senzor ili analizator gdje e biti podrobnije ispitani. Prednost centraliziranog pristupa projektiranju IDS-a je lake upravljanje cjelokupnim sustavom, meutim takvo rjeenje znatno poveava koliinu mrenog prometa koji se razmjenjuje izmeu pojedinih senzora i centralnog senzora tj. konzole, te zahtjeva znatno veu procesorsku mo centralnog senzora koji e morati obraivati dogaaje iz cijelog sustava. Raspodijeljeni je pristup znatno tee realizirati i odravati, ali se zato smanjuje koliina mrenog prometa koji se izmjenjuje izmeu pojedinih senzora u sustavu, a za razliku od centraliziranog sustava potrebna je puno manja procesorska snaga za obradu prikupljenih podataka. Dodatna injenica koja ide u prilog raspodijeljenom pristupu u oblikovanju IDS je bolja otpornost na ispade u sustavu. Poto su pojedine komponente u raspodijeljenom sustavu potpuno samostalne i ne ovise o niti jednom drugom elementu sustava, ukoliko jedan od senzora u sustavu prestane s radom, ostatak sustava moe i dalje ispravno raditi. Centralizirani sustav nije tako fleksibilan i otporan je samo na ispade senzorskih raunala, a ukoliko se pokvari centralni senzor ili nadzorna konzola, tada e prestati ispravno funkcionirati i ostatak sustava. U praksi se najee javlja kombinacija oba prethodno navedena pristupa pri emu raspodijeljeni

    13

  • 2. Sustavi za otkrivanje mrenih napada

    senzori prikupljaju podatke i na njima obavljaju neke osnovne akcije (npr. pretprocesiranje mrenih paketa), te ih zatim prosljeuju jednom ili vie centralnih senzora koji e ih podrobnije analizirati te poduzeti potrebne akcije ovisno o njihovom sadraju. Svim komponentama u takvim sustavima moe se upravljati s jednog mjesta putem posebne nadzorne konzole. Nadzorna konzola je specijalizirani senzor koji uz mogunosti otkrivanja napada ima i mogunost upravljanja drugim senzorima, primjerice mijenjanje njihovih postavki za vrijeme rada sustava ili pokretanje i gaenje senzora. Mogue je da nadzorna konzola ima iskljuivo upravljake mogunosti te da ne moe otkrivati napade.

    Kao to je ve navedeno, pravilan smjetaj IDS-a je od kljune vanosti za njegovo pravilno djelovanje. Odabirom ispravne pozicije moemo djelovati na niz aspekata cijelog sustava, poevi od koliine prometa koji e biti potrebno analizirati, pa sve do procesorske snage koja e biti potrebna za analizu dobivenih podataka. Tipini smjetaj IDS-a u jednostavnoj lokalnoj mrei prikazuje slika 2.2. U sluaju da se zahtjeva da mrea mora sadravati i demilitarizirano podruje, takoer je potrebno smjestiti jedan od IDS senzora i u taj segment mree, iako bi u pravilu postavke za stvaranje sigurnosnih upozorenja u tom podruju trebale biti puno blae od onih u privatnim dijelovima mree, to zbog same prirode i namjene tog podruja u kojem se obino ne nalaze kljuni sustavi za poslovanje nego sustavi iji ispad nee uzrokovati pad cijele mree, te zbog oekivanoga veeg broja prepoznatih napada nego u unutranjoj mrei. U protivnome je mogue zaguenje IDS senzora u demilitariziranom podruju zbog prevelikoga broja otkrivenih potencijalnih napada.

    2.4.2. Rjeavanje problema s preklopnicimaPoseban problem u smjetaju IDS-a i pojedinih senzora predstavlja mrena oprema koja na bilo koji nain blokira neku vrstu prometa. Primjer takve mrene opreme je preklopnik (eng, switch). Problem se moe pojaviti u sluajevima poput onoga koji prikazuje slika 2.2. Preklopnik e pakete koje dobije na jedan od izlaza proslijediti na tono onaj izlaz koji je prikljuen na onaj segment mree na kojemu se nalazi ciljna adresa (preklopnik radi sa adresama na podatkovnom sloju, tj. s MAC adresama). Naravno, izuzetak od ovoga je poetna faza rada ureaja u kojemu jo nisu popunjene sve tablice s podacima o

    14

    Slika 2.2: Tipian smjetaj IDS-a

  • 2. Sustavi za otkrivanje mrenih napada

    usmjeravanju prometa. Ovo predstavlja ozbiljno ogranienje u radu IDS-a jer je u tom sluaju potrebno postavljati senzore na svaki od izlaza preklopnika, tj. na svako zasebno podruje vidljivosti to bitno uveava trokove i vrijeme potrebno za postavljanje, ali i odravanje takvog rjeenja.

    Veina preklopnika (npr. tvrtke Cisco) su tako dizajnirani i mogu raditi u takvome nainu rada da se TX/RX (eng. transmit i receive) linije s jednog ili vie izlaza mogu zrcaliti ili mirorirati na drugi izlaz preklopnika. Takav izlaz na koji se zrcali se obino naziva SPAN (eng. Switch Port Analyser) ili zrcalni izlaz (eng. mirrored port). Ukoliko se senzor prikljui na takav izlaz, a preklopnik je postavljen tako da zrcali izlaz koji je prikljuen prema usmjerniku na SPAN izlaz, sav promet koji prolazi od usmjernika k posluiteljima kroz preklopnik dolaziti e i do IDS senzora, ne ometajui pri tome normalnu komunikaciju prema posluiteljima. Na taj nain se izbjegava potreba za postavljanjem dodatnih senzora u svaki pojedini segment mree na koji je spojen preklopnik. Koritenje SPAN izlaza je vrlo jednostavno i ne zahtjeva nikakvo dodatno mijenjanje postojee mrene topologije, uz uvjet da ga ureaj podrava. Prikljuivanjem IDS senzora na SPAN izlaz preklopnika nije potrebno mijenjati konfiguracije ostalih mrenih komponenti poput tablica prosljeivanja u usmjernicima ili pravila u sigurnosnim stijenama. Meutim, uz sve dobre osobine, koritenje SPAN izlaza ima i niz nedostataka. Na jednom preklopniku se moe nalaziti samo jedan SPAN izlaz. Ukoliko je potrebno nadzirati vie od jednog izlaza preklopnika tada se na SPAN izlaz umjesto samo jednog mora zrcaliti promet sa itavog raspona izlaza. Ovakvo zrcaljenje prometa sa vie izlaza nije poeljno jer moe vrlo brzo zakriti i preopteretiti SPAN izlaz i znatno smanjiti radna svojstva (performanse) rada preklopnika. Problem je pogotovo izraen ako se nadzire promet u dvosmjernoj vezi (eng. full duplex link). Nadalje, bez dodatnih promjena u konfiguraciji IDS-a, ovakav nain rada preklopnika omoguava napadau napad direktno na IDS senzor spojen na SPAN izlaz, osim ako je zatien radom u prikrivenom (eng. stealth) nainu rada kako je opisano u poglavlju o zatiti IDS-a. Jo jedan nedostatak ovakvog rjeenja je i injenica da e preklopnik odbacivati pakete za koje izraunato zatitno CRC polje ne odgovara onome u primljenom paketu. IDS inae analizira i ovakve pakete jer napadai koriste razne tehnike u kojima namjerno stvaraju pakete sa krivim CRC poljima kako bi zaobili mehanizme zatite i otkrivanja ili otkrili njihovu prisutnost. Ipak, ovakve pakete je mogue vidjeti na samom preklopniku, s podacima o adresi napadaa, vremenu napada i broju takvih paketa.

    Drugo rjeenje problema s preklopnicima je koritenje dodatne specijalizirane mrene opreme. Jedno od najdostupnijih i najjeftinijih rjeenja je upotreba koncentratora (eng. hub). Koncentrator se koristi u parinim mreama i radi na takav nain da e sve pakete koje dobije na jedan od svojih izlaza proslijediti na sve ostale izlaze, tj slui kao obnavlja signala sa vie izlaza (eng. multiport repeater). Ovakav nain rada koncentratora moe se iskoristiti za slanje preslike prometa prema IDS-u pri emu je potrebno napraviti takvu topologiju mree u kojoj e se koncentrator nalaziti izmeu usmjernika i preklopnika, a IDS se prikljui na dodatni izlaz koncentratora kao to prikazuje slika 2.3.

    U ovom sluaju sav promet koji prolazi od usmjernika prema preklopniku, zahvaljujui koncentratoru biti e proslijeen i preklopniku i IDS senzoru. Potrebno je i napomenuti da je ovakva topologija mree pogodna samo za otkrivanje vanjskih napada, jer IDS moe vidjeti samo promet koji dolazi s Interneta. Zbog naina rada preklopnika IDS nee vidjeti promet koji meusobno razmjenjuju posluitelji koji se nalaze iza preklopnika. U sluaju

    15

  • 2. Sustavi za otkrivanje mrenih napada

    da je potrebno nadzirati promet i na tom segmentu mree, potrebno je dodati jo jedan IDS senzor na ve prije navedeni SPAN izlaz preklopnika. Koritenje koncentratora za rjeavanje problema sa preklopnicima ima niz prednosti. Koncentratori s etiri izlaza koji se koriste u ovakvim konfiguracijama su relativno jeftini ureaji i vrlo se jednostavno postavljaju u ve postojeu mrenu topologiju. Postavljanjem koncentratora takoer nije potrebno mijenjati postavke usmjernika i sigurnosnih stijena. Meutim i koritenje koncentratora ima svoje nedostatke. Ako je veza izmeu usmjernika i preklopnika dvosmjerna, zbog uestalih kolizija paketa propusnost veze moe postati bitno smanjena to e znatno smanjiti radna svojstva cijele mree. Kolizije e naroito doi do izraaja ako se uz usmjernik, preklopnik i IDS senzor na etvrti izlaz koncentratora spoji i nadzorna konzola IDS-a to e bitno utjecati na tok podataka izmeu usmjernika i koncentratora. U zadnje vrijeme koncentratori se sve manje koriste u ovu namjenu, te se ee koriste specijalizirani mreni ureaji konstruirani upravo za ovakve namjene. Primjer takvog ureaja je mrena prikljunica (eng. network tap).

    2.4.3. Mrena prikljunicaZa rjeavanje svih prethodno navedenih problema kod rada IDS-a s preklopnicima danas se najee koriste posebni mreni ureaji dizajnirani upravo tako da zaobiu sve nedostatke prethodno navedenih pristupa. Mrena prikljunica (eng. network tap) je ureaj namijenjen preslikavanju prometa u Ethernet, 802.11, FDDI i ATM mreama. Funkcionalnost ureaja odvija se na fizikom i podatkovnom sloju, a dodatna je pogodnost to moe raditi i na ianim (bakrenim) i na optikim medijima. Na tritu su dostupne dvije vrste mrenih prikljunica: aktivne i pasivne. Pasivne mrene prikljunice (eng. passive ethernet tap) ne koriste nikakvo dodatno napajanje pa mogu dovesti do male degradacije signala na mrenom kabelu na kojem se koriste. Aktivne mrene prikljunice (eng. active ethernet tap) koriste dodatni izvor napajanja. Prikljunica se obino koristi za nadziranje i ispitivanje prometa na najkritinijim i najzahtjevnijim segmentima mree iz razloga to kvarovi i gubitak napajanja na ureaju ni na koji nain nee utjecati na povezanost i radna svojstva ostatka mree. Ponegdje se u literaturi izraz tap iz engleskog izvornika tumai kao kratica od engleskog izraza Test Access Port.

    16

    Slika 2.3: Koritenje koncentratora u mreama sa preklopnicima

  • 2. Sustavi za otkrivanje mrenih napada

    Mrene prikljunice su ureaji s tri ili vie izlaza. Na primjer, mrena prikljunica s etiri izlaza uobiajeno izlaze ima oznaene sa A, B, A tap i B tap. Izlazi A i B su podatkovni izlazi i prikljuuju se izravno na segment mree koji je potrebno nadzirati, a tap izlazi se prikljuuju na IDS-ove. Tap izlazi slue za zrcaljenje podatkovnih izlaza, tako da tap izlazi A i B zrcale promet koji prolazi podatkovnim izlazima. Svaki tap izlaz daje identian promet. Mrena prikljunica se u mreu postavlja na isto mjesto na koje se postavlja i koncentrator, kao to je prethodno opisano i kako prikazuje slika 2.3.

    Prednosti koritenja mrenih prikljunica nad koncentratorom i SPAN izlazom preklopnika su mnogobrojne. Prikljunica je tolerantna na ispade u napajanju jer su podatkovni izlazi unutar prikljunice spojeni icom bez ikakvih drugih pasivnih ili aktivnih elektrikih elemenata pa stoga i ne ovise o vanjskom izvoru napajanja. Mogua je jedino mala degradacija signala u sluaju koritenja pasivnih izvedbi ovog ureaja. Prikljunica ne utjee na protonost podataka izmeu usmjernika i preklopnika, ne zahtjeva promjene u konfiguracijama ostalih mrenih ureaja poput sigurnosnih stijena i usmjernika, te ne zahtjeva promjenu arhitekture mree u cjelini. Nadalje, ureaj ne odbacuje pakete s loim CRC poljem pa e sav promet dolaziti nepromijenjen do IDS senzora koji e moi provesti kompletnu analizu dobivenoga prometa. Konano, prikljunica ne dozvoljava izravno povezivanje napadaa na IDS jer je njezino djelovanje na mrei potpuno nevidljivo pa pridonosi i cjelokupnoj sigurnosti sustava. Svi prethodno navedeni argumenti su glavni razlog zato su danas mrene prikljunice najei koriteni i najprihvatljiviji nain postavljanja (eng. deploying) IDS senzora u kompleksnija mrena okruenja. Dva danas najee koritena modela mrenih prikljunica su proizvodi tvrtki NetOptics [13] i Finisar [14].Nedostatak koritenja prikljunica je ve spomenuti problem s gubljenjem signala kod pasivnih izvedbi, te jo uvije prilino visoka cijena aktivnih izvedbi. Dodatna je injenica i da se bez dodatnih modifikacija veina ovakvih ureaja ne moe koristiti za nadzor prometa u oba smjera. U sluaju nadzora prometa u oba smjera potrebno je primijeniti udruivanje vie kanala u jedan (eng. channel bonding) na IDS senzorima koji se prikljuuju na takve ureaje. Iako se posljednjih godina proizvode ovakvi ureaju i za primjenu u dvosmjernim (eng. full duplex) segmentima, zbog cijene se jo uvijek vrlo rijetko koriste. Nadalje, IDS koji je prikljuen na prikljunicu mora biti postavljen za rad u prikrivenom nainu rada, kao to je opisano u poglavlju o zatiti sustava.

    2.5. Problemi i nedostaci IDS-ovaUz brojne prednosti, postoje i odreeni nedostaci koritenja IDS-ova. Pregledavanjem sadraja mrenih paketa esto se dozvoljeni promet krivo karakterizira kao nedozvoljeni, odnosno nedozvoljeni kao dozvoljeni. Do ove pojave dolazi uslijed previe openitih definicija potpisa pojedinih vrsta napada u sluaju da IDS radi prepoznavanje potpisa. Do greaka moe doi kod prepoznavanja neuobiajenog ponaanja, na primjer u dinamikim okolinama gdje se vrta prometa mijenja vrlo esto. IDS-ovi uglavnom ne mogu zaustaviti ili usporiti aktivne mrene napade, nego se za tu namjenu koriste sustavi za sprjeavanje mrenih napada. Zbog moguih dojava o lanim napadima na sustav, nije niti je poeljno

    17

  • 2. Sustavi za otkrivanje mrenih napada

    da IDS-ovi prekidaju uspostavljene veze jer bi to rezultiralo velikim brojem neopravdanih prekida u radu. Posljedica injenice da IDS-ovi ne mogu prekinuti napade je stvaranje onoliko sigurnosnih upozorenja koliko ima dnevnikih zapisa o samim napadima. Poto se ponekad i ispravni promet neopravdano prepoznaje kao napad, koliina upozorenja za sistemske administratore se time dodatno poveava.

    Sljedei problem je vremenski raskorak izmeu napada i otkrivanja napada. Iz razloga to IDS mora analizirati veliki broj zapisa te mogue potrebe za naknadnom provjerom dojave o napadu od strane sistemskog administratora, IDS-ovi pruaju spor odgovor na napade na raunalne i mrene resurse. Jo jedan od nedostataka IDS-ova je injenica da ne mogu otkriti nove vrste napada, nego mogu ustanoviti samo ve postojee. Kako ovakvi sustavi uglavnom usporeuju sadraje dnevnikih zapisa i mrenih paketa s definiranim potpisima za napade, novi napadi nisu sadrani u bazi potpisa pa ih IDS niti ne prepoznaje. Otkrivanje nepoznatih vrsta napada mogua je samo ukoliko je IDS zasnovan ili kombiniran sa metodom prepoznavanja neuobiajenog ponaanja, meutim i takav pristup ima svojih nedostataka.

    Na kraju, u zadnje vrijeme je prisutna sve vea tendencija enkripcije prometa koji prolazi kroz mreu. Sve vie mrenih usluga razmjenjuje poruke preko sigurnih kanala i virtualnih privatnih mrea (eng. virtual private network, VPN). IDS-ovi imaju velikih problema u nadziranju veza zatienih IPSec rjeenjima ili ostvarenih putem npr. SSH tuneliranja. Nemogunost prepoznavanja napada u kriptiranim vezama vidljiva je i na primjeru HTTPS-a, odnosno HTTP veza koje se odvijaju u kriptiranom obliku putem SSL protokola. Problem nadziranja HTTPS-a je naroito vaan kada se uzme u obzir sve vei broj razliitih napada na web aplikacije.

    Zbog spomenutih nedostataka jasno je da je nuno razinu sigurnosti pomaknuti s otkrivanja zlonamjernih aktivnosti na njihovo sprjeavanje, pa je tako dolo do razvoja sustava za spreavanje napada sa mree (eng. Intrusion Prevention Systems IPS). IPS-ovi omoguavaju preventivno djelovanje glede raunalnih napada i izbjegavanje nastajanja tete koja bi bila prouzroena tim napadima.

    2.6. Zatita IDS-aIDS je poput svake ostale komponente na mrei podloan raznim vrstama napada. Uobiajene su dvije mjere zatite IDS-a, rad na prikrivenom mrenom suelju i rad na mrenom suelju bez adrese.

    Suelja na kojima radi IDS obino su postavljena i za primanje i za slanje podataka, te rade u takvome nainu rada da primaju i pakete koji nisu namijenjeni direktno njima (eng. promiscuous mode). Prikriveno suelje (eng. stealth interface) je mreno suelje na kojem IDS senzor moe samo primati podatke, ali ih ne moe slati nazad. Takvo suelje se moe ostvariti na dva naina. Prvi nain je koritenje mrene prikljunice koja sama po sebi ne dozvoljava vraanje prometa, a drugi je koritenje posebne vrste UTP kabela (eng. sniffing cable). Ova vrsta kabela se moe napraviti od obinog UTP kabela na nekoliko naina. Najjednostavnije je na jednom kraju kabela kratko spojiti linije 1 i 2, a linije 3 i 6 se spoje s istim tim linijama na drugom kraju kabela. Umjesto da se linije 1 i 2 kratko spoje, izmeu njih se moe umetnuti kondenzator koji e sluiti kao visoko propusni filtar. Iznos

    18

  • 2. Sustavi za otkrivanje mrenih napada

    kondenzatora se moe izraunati iz izraza f = 1 / 2RC i iznosi 150 pF za 10 megabitni te 15 pF za 100 megabitni Ethernet. Postoje i naprednije izvedbe prikrivenog suelja poput takozvanoga UTP Y-kabela koji je detaljnije opisan (zajedno s uputama za implementaciju) na odgovarajuoj web adresi [21].

    Druga metoda zatite IDS-a je rad na suelju bez dodijeljene IP adrese. Ako IDS senzor nema dodijeljenu IP adresu tada se na njega ne moe pristupiti. Postavljanje ovakvog suelja je vrlo jednostavno i svodi se na podizanje suelja bez adrese i onemoguavanje protokola za automatsko dodjeljivanje adrese poput DHCP-a. Senzor obino ima dva suelja od kojih je jedno, ono prema Internetu, bez IP adrese ili ostvareno putem prikrivenog suelja, dok je drugo prema lokalnoj mrei ili nadzornoj konzoli, sa dodijeljenom IP adresom.

    Jo jedna popularna metoda zatite su i transparentni IDS premosnici (eng. transparent bridges). Takvi sustavi sadre dva mrena suelja i mogu se postaviti na bilo koje mjesto u lokalnoj mrei to ne zahtjeva dodatne promijene u mrenoj topologiji ili ve postojeim konfiguracijama usmjernika. Transparentni IDS premosnici kombiniraju koritenje Ethernet premosnika s IDS-om i sigurnosnom stijenom to ima niz prednosti nad npr. implementacijom sigurnosne stijene na usmjerniku. Poto se u takvim konfiguracijama sigurnosna stijena i IDS nalaze na premosniku, a ne na usmjerniku, to ih ini nevidljivima na mrenom sloju i stoga ih titi od napada. Svaki paket prolazi kroz premosnik sve dok IDS ne pronae potpis napada.

    2.7. StandardizacijaJedan od prvih pokuaja da se standardiziraju protokoli i aplikacijska programska suelja (eng. Application Programming Interface API) koja se koriste u IDS sustavima rezultirao je stvaranjem zajednikog IDS okvira poznatog kao CIDF (eng. Common Intrusion Detection Framework). Glavni cilj CIDF-a je pojednostavniti dijeljenje informacija i resursa izmeu razliitih IDS sustava te omoguiti da se njihove pojedine komponente mogu ponovno iskoristiti u drugim sustavima. Sam CIDF definiran je u etiri Internet nacrta (eng. draft):

    The Common Intrusion Detection Framework Architecture Communication in the Common Intrusion Detection Framework A Common Intrusion Specification Language (CISL) CIDF APIs: Their Care and Feeding

    Prvi nacrt je najvaniji i opisuje osnovne pojmove u CIDF terminologiji te daje detaljni opis CIDF arhitekture. Ostali dokumenti definiraju protokole, format poruka i programska suelja putem kojih pojedine komponente iz CIDF arhitekture IDS-a mogu meusobno komunicirati na siguran i uinkovit nain te obavljati meusobne provjere autentinosti i raspoloivosti. Svi navedeni dokumenti dostupni su na web sjeditu CIDF-a [15].

    CIDF opisuje IDS kao sustav koji sainjavaju etiri diskretne komponente. Komponente sustava su sljedee:

    19

  • 2. Sustavi za otkrivanje mrenih napada

    generatori dogaaja (eng. event generators, E box) analizatori dogaaja (eng. event analyzers, A box) baze podataka o dogaajima (eng. event databases, D box) jedinice za odgovaranje na dogaaje (eng. response units, R box)

    Sve etiri komponente meusobno komuniciraju razmjenom poruka (eng. message passing) standardiziranog formata i koritenjem jezika CISL (eng. Common Intrusion Specification Langague). S vremenom je CISL koji je prilino kompliciran zamijenjen jednostavnijim oblikom poruka za razmjenu podataka poznatim pod imenom IDMEF (eng. Intrusion Detection Message Exchange Format). Uloga generatora dogaaja je prikupljati podatke s mree i slati poruke o dogaajima ostalim komponentama sustava. Analizatori dogaaja su komponente na koje se uobiajeno misli kada se govori o IDS-ovima. Njihova uloga je primati poruke od ostalih komponenti, analizirati ih te vratiti poruke koje predstavljaju saetak analize ulaznih poruka. Baza podataka o dogaajima i jedinice za odgovaranje na dogaaje imaju slinu namjenu kao i baza potpisa i izlazni moduli u uobiajenim IDS arhitekturama.

    Neke od ideja koje su proizale iz CIDF projekta potakle su nastanak IETF radne grupe (eng. Internet Engineering Task Force Working Group) koja je dobila naziv Intrusion Detection Working Group. Glavni cilj ove radne grupe je predstaviti ideje CIDF projekta iroj javnosti.

    Svi pokuaji standardizacije nastali u okviru IETF-ovih radnih grupa i CIDF projekta datiraju jo iz 1998. godine i nisu rezultirali nekim pretjeranim uspjehom, a pojedini dijelovi standarda koriste se svega u nekoliko dostupnih IDS-ova (npr. Prelude), iako se neke ideje iz tih nacrta i danas koriste u promijenjenom obliku. Umjesto primjene ovakvih pravnih i slubenih standarda u veini dananjih IDS-ova prisutni su neformalni (de facto) standardi proizali iz nekih od najpopularnijih IDS programa.

    20

  • 3. Sustav za otkrivanje mrenih napada Snort3.1. Snort IDSSnort je trenutno najpopularniji i mogunostima najbogatiji besplatni sustav za prepoznavanje napada sa mree. Program posjeduje mogunosti analize prometa u realnom vremenu, kao i biljeenje paketa u IP mreama. Dostupne su funkcije poput analize protokola na raznim slojevima te pretraivanja i provjere podudaranja sadraja paketa s unaprijed definiranim potpisima napada. Koristei ove funkcije mogu se izvoditi operacije prepoznavanja standardnih napada poput skeniranja i probi, prekoraenja meuspremnika (eng. buffer overflow), CGI napada, SMB probi, pokuaja prepoznavanja tipa operacijskog sustava (eng. OS fingerprint attemp) i niz drugih vrsta napada.Program je prvi puta objavljen 1999. godine. Originalni autor Snorta je Martin Roesch, a razvoj i odravanje programa preuzela je tvrtka Sourcefire (osniva i voditelj razvojnog tima tvrtke je ve navedeni autor). U trenutno dostupnoj verziji Snort je prilagoen za rada na nizu razliitih platformi (Linux, Microsoft Windows, SunOS/Solaris, FreeBSD, OpenBSD, NetBSD, IRIX, HP-UX). Iako je program u potpunosti besplatan, tvrtka Sourcefire prua mogunost nabave i komercijalnih verzija posebno razvijenih za razne velike okoline (eng. enterprise environment), koje ukljuuju i tehniku podrku i mogu se nabaviti uz dodatnu specijaliziranu programsku i sklopovsku opremu.

    Ukratko opisano, glavni argumenti za koritenje Snorta ispred ostalih besplatnih IDS programa su:

    Snort prua mogunost podeavanja svake pojedine komponente sustava

    Snort je slobodan i besplatan

    Snort je de facto standard IDS na LAMP platformi

    Snort radi na gotovo svakom danas poznatijem operacijskom sustavu

    Snort se kontinuirano poboljava i nadograuje

    mogunost pisanja vlastitih pravila

    Tehniki gledano, Snort moe izvoditi veinu akcija kao i popularni komercijalni IDS sustavi. Centralnu ulogu u Snortu imaju pretprocesori i sustav otkrivanja. Koritenjem raznih pretprocesora Snort moe izvoditi defragmentaciju IP paketa, ponovno sastavljanje TCP tokova podataka (eng. TCP stream reassembly) te provoditi analizu stanja raznih mrenih protokola. Shematski prikaz glavnih komponenti Snorta kao i tok izmjene informacija izmeu njih prikazuje slika 3.1.

    21

  • 3. Sustav za otkrivanje mrenih napada Snort

    Zadaa sustava za itanje paketa (eng. packet capture subsystem) je preuzimanje paketa s mree i njihovo prosljeivanje u dekoder paketa. Standardno se u Snortu za ovu namjenu koristi biblioteka libpcap (u inaici za operacijski sustav Windows koristi se biblioteka winpcap), osim u sluaju koritenja inline naina rada koji e biti opisan kasnije u ovome poglavlju. Dekoder paketa zaduen je za stvaranje unificiranog zapisa paketa neovisno o vrsti mrenog suelja s kojeg je paket primljen. Pretprocesori i sustav otkrivanja su centralni elementi Snorta i upravo su oni zadueni za otkrivanje napada te upozoravanje korisnika. Rezultati otkrivanja napada spremaju se u datoteke dnevnika ili se dojavljuju na neki drugi nain koritenjem raznih izlaznih modula.

    Za opisivanje potpisa napada Snort koristi vrlo prilagodljiv jezik zasnovan na pravilima, a sam program dizajniran je tako da omoguava laku izmjenu podataka s drugim programima (npr. SnortSnarf, squil, OSSIM, BASE itd.). Ovo je vrlo vana injenica jer je Snort sam po sebi komandno linijski alat i nema ugraene mogunosti vizualizacije te statistike analize dobivenih podataka. Program se uz odreene prepravke i zakrpe (eng. patch) moe koristiti zajedno s antivirusnim programima otvorenog koda (npr. ClamAV) i to je vrlo esta praksa u postavljanju Snorta u kompleksnije okoline. Tvrtka Sourcefire je krajem 2007. godine i kupila ClamAV projekt. Jednostavnost i velika prilagodljivost jezika za opis pravila omoguuju da svatko napie vlastita prilagoena pravila za otkrivanje novih vrsta napada. Postoje i posebne kolekcije tj. biblioteke tako napisanih pravila odravanih od strane zajednice otvorenog koda, primjerice Bleeding Edge Threats, koje obuhvaaju pravila za prepoznavanje gotovo svakog danas poznatog naina napada. Mogunosti jezika za opis pravila te kratki pregled programa koji mogu suraivati sa Snortom opisani su u poglavlju o podeavanju Snorta.

    O vanosti samog programa govori i injenica da je Snort de facto standard na svakoj veoj implementaciji nekog projekta temeljenog na LAMP (Linux, Apache, MySQL, PHP) platformu, te da je nezaobilazni dio skupine najee koritenih programa otvorenog koda (eng. open source programs suite).

    22

    Slika 3.1: Arhitektura Snorta

  • 3. Sustav za otkrivanje mrenih napada Snort

    3.2. Naini rada

    3.2.1. Sniffer nain radaNajjednostavniji nain rada Snorta je sniffer ili packet dump. U sniffer nainu rada program jednostavno ita sve primljene pakete i prikazuje njihova zaglavlja ili kompletni sadraj na standardnom izlazu, uobiajeno na ekranu. U nastavku rada podrazumijeva se koritenje Snorta verzije 2.8.

    Za pokretanje Snorta u sniffer nainu rada, dovoljno ga je pokrenuti iz komandne linije koristei sljedeu naredbu:# snort -v

    Pokrenut na ovaj nain, program e ispisivati samo zaglavlja TCP, UDP, IP i ICMP paketa, te osnovne informacije o nekim drugim protokolima. Opcija -v (eng. verbose) koristi se za naznaivanje da je potrebno raditi ispis na standardni izlaz. Ukoliko je potrebno ispisivati i sadraj proitanih paketa, potrebno je dodati opciju -d. Dodatni detalji koji ukljuuju i zaglavlja sa podatkovnog sloja mogu se dobiti koritenjem opcije -e. Opcije programa se mogu navoditi pojedinano, ali i zajedno. Poredak pojedinih opcija kod poziva programa nije bitan. Sljedei primjeri poziva programa djeluju u potpunosti jednako:# snort -dev# snort -d -e -v# snort -v -de

    Vano je i napomenuti da po definiciji program poinje sluati na mrenom suelju eth0, pa ukoliko raunalo ima vie mrenih suelja, a potrebno je sluati na nekom drugom suelju od podrazumijevanog, moe se koristiti opcija -i iza koje slijedi naziv mrenog suelja. Iz prethodno navedenoga ispisa po znaku ljuske (eng. prompt) moe se i primijetiti da se Snort mora pokrenuti koristei privilegirani korisniki raun, tj. koristei root raun na Unix/Linux operacijskim sustavima, odnosno administratorski korisniki raun na Microsoft Windows operacijskom sustavu.

    Sljedei primjer pokazuje kompletan primjer koritenja Snorta u sniffer nainu rada kao i primjer ispisa pri snimanju prometa kod pokuaja spajanja protokolom ssh (eng. secure shell) na udaljeni posluitelj faramir.zemris.fer.hr. Iz ispisa zaglavlja paketa izbaeni su oni dijelovi koji se ne odnose na navedeni pokuaj spajanja.# snort -v -i eth1=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=02/02-17:17:02.437723 192.168.1.65:33052 -> 192.168.1.254:53 UDP TTL:64 TOS:0x0 ID:8124 IpLen:20 DgmLen:67 DF Len: 39 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=02/02-17:17:02.449481 192.168.1.254:53 -> 192.168.1.65:33052 UDP TTL:64 TOS:0x0 ID:27019 IpLen:20 DgmLen:121 Len: 93 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ =02/02-17:17:02.449768 192.168.1.65:44354 -> 161.53.65.246:22 TCP TTL:64 TOS:0x0 ID:28798 IpLen:20 DgmLen:60 DF ******S* Seq: 0x2AE36FC1 Ack: 0x0 Win: 0x16D0 TcpLen: 40

    23

  • 3. Sustav za otkrivanje mrenih napada Snort

    TCP Options (5) => MSS: 1460 SackOK TS: 6430655 0 NOP WS: 6 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=02/02-17:17:02.460107 161.53.65.246:22 -> 192.168.1.65:44354 TCP TTL:56 TOS:0x0 ID:0 IpLen:20 DgmLen:60 DF ***A**S* Seq: 0x2CDC5ED2 Ack: 0x2AE36FC2 Win: 0x16A0 TcpLen: 40 TCP Options (5) => MSS: 1440 SackOK TS: 256510792 6430655 NOP WS: 6 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=02/02-17:17:02.460148 192.168.1.65:44354 -> 161.53.65.246:22 TCP TTL:64 TOS:0x0 ID:28799 IpLen:20 DgmLen:52 DF ***A**** Seq: 0x2AE36FC2 Ack: 0x2CDC5ED3 Win: 0x5C TcpLen: 32 TCP Options (3) => NOP NOP TS: 6430657 256510792 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=*** Caught Int-Signal Run time prior to being shutdown was 23.183057 seconds =================================================================== Snort received 52 packets Analyzed: 51(98.077%) Dropped: 0(0.000%) Outstanding: 1(1.923%) =================================================================== Breakdown by protocol: TCP: 33 (64.706%) UDP: 18 (35.294%) ICMP: 0 (0.000%) ARP: 0 (0.000%) EAPOL: 0 (0.000%) IPv6: 0 (0.000%) ETHLOOP: 0 (0.000%) IPX: 0 (0.000%) FRAG: 0 (0.000%) OTHER: 0 (0.000%) DISCARD: 0 (0.000%) InvChkSum: 0 (0.000%) ===================================================================Action Stats: ALERTS: 0 LOGGED: 0 PASSED: 0 =================================================================== Snort exiting

    U ovom primjeru Snort je pokrenut na beinom (eng. wireless) suelju eth1 raunala u lokalnoj mrei. Raunalo ima adresu 192.168.1.64 s mrenom maskom 255.255.255.0, a adresa podrazumijevanog usmjernika (eng default gateway) je 192.168.1.254. Adresa posluitelja faramir.zemris.fer.hr je 161.53.65.246, a usluga ssh je pokrenuta na standardnim pristupnim vratima 22/tcp. Nakon pokretanja program prvo ispisuje informacije o verziji, licenci, postavkama pokretanja te ukljuenim dodacima (eng. plugins). Radi kratkoe prikaza ti podaci su iskljueni iz prikazanog ispisa. Zatim slijede informacije o snimljenim paketima. Podaci o pojedinim paketima su meusobno odvojeni jednostavnom ASCII grafikom. Prva dva prikazana paketa predstavljaju DNS promet, tj. DNS upit za adresom posluitelja na koji se spaja, te odgovor s adresom posluitelja. Prva linija ispisa sadrava vrijeme kada je paket

    24

  • 3. Sustav za otkrivanje mrenih napada Snort

    primljen, te izvorinu i odredinu IP adresu odnosno broj pristupnih vrata. U sljedeoj liniji nalaze se podaci o raznim poljima unutar IP paketa, kao i o samom paketu (time to live, type of service, don't fragment, duljina IP zaglavlja, datagrama itd.), te vrsta protokola koji se koristi na prijenosnom sloju. U ovom sluaju jasno je vidljivo da se DNS upiti prenose UDP protokolom (iznimka su prijenosi zone te odgovori vei od 512 okteta). Posljednja linija prikazuje ukupnu veliinu paketa u oktetima. Vano je i primijetiti da se ispis za prva dva sluaju kada se na prijenosnom sloju koristi UDP protokol razlikuje od ispisa za ostale pakete gdje se na prijenosnom sloju koristi TCP protokol.

    Sljedea tri paketa u prikazu predstavljaju pakete u protokolu sinkronizacije u tri koraka kod uspostave TCP veze (eng. three way handshake). Prve dvije linije u ispisu su identine sluaju za DNS upite, osim to se umjesto UDP protokola koristi TCP. Trea i etvrta linija su razliite i u ovom sluaju prikazuju informacije o TCP protokolu s prijenosnog sloja (npr. sequence i acknowledge brojeve, oznake prozora itd.). Prvo polje u treoj liniji je posebno vano kod dijagnostike jer pokazuje stanje zastavica u TCP zaglavlju. Ukoliko zastavica nije ukljuena, tj. u zaglavlju paketa ima vrijednost nule, u ispisu e na njenom mjestu stajati znak zvjezdice. U protivnome e kao oznake zastavica umjesto zvjezdice stajati sljedee oznake: C (CWR), E (ECE), U (URG), A (ACK), P (PSH), R (RST), S (SYN), i F (FIN). Na prikazanom konkretnom primjeru mogu se primijetiti tri paketa s razliitim upaljenim zastavicama. Pojedini paketi u tom prikazu odgovaraju ve spomenutom protokolu sinkronizacije u tri koraka kod uspostave TCP veze:

    1. Klijent alje posluitelju paket s upaljenom SYN zastavicom

    2. Posluitelj odgovara paketom s upaljenim zastavicama SYN i ACK. U sluaju da na posluitelju nema pokrenute usluge na tim pristupnim vratima vraa se paket s upaljenim zastavicama RST i ACK.

    3. Klijent potvruje uspostavu veze paketom upaljenom zastavicom ACK

    Nakon toga, rad programa je zaustavljen pritiskom na tipke CTRL-C, tj. slanjem signala SIGINT Snort procesu. Primanjem ovog signala program prazni sve meuspremnike, zapisuje potrebne informacije na disk, te zaustavlja s radom ispisujui razne statistike sakupljene tijekom rada programa. Prve grupe govore o vremenu izvoenja programa, te o u ukupnom broju primljenih paketa i o broju i postotku obraenih (eng. analyzed), isputenih (eng. dropped) te jo neobraenih paketa (eng. outstanding). Iz ispisa je vidljivo da je program prekinut upravo u trenutku kada je obraivao paket, pa otuda i jedan paket u statistici za neobraene pakete. Grupa nazvana breakdown by protocol daje statistiki uvid u koliinu prometa po pojedinoj vrsti protokola. U ovom sluaju sav promet otpada na TCP i UDP promet. Posljednja grupa u statistici govori o poduzetim akcijama od strane sustava, meutim u ovom nainu rada te statistike e uvijek biti na nuli poto se funkcionalnost svodi samo na snimanje prometa. Detaljni opis pojedinih akcija koje su navedene u ovoj statistici slijedi u narednim poglavljima.

    25

  • 3. Sustav za otkrivanje mrenih napada Snort

    3.2.2. Packet logger nain radaNain rada packet logger je u svojoj osnovi isti kao i sniffer nain rada, osim to se umjesto na standardni izlaz informacije zapisuju u datoteku dnevnika ili na neki drugi izlazni medij, ovisno o odabranim izlaznim modulima. Za pokretanje Snorta u ovome nainu rada, dovoljno je koritenjem opcije -l zadati apsolutnu ili relativnu stazu do direktorija gdje e se zapisivati datoteke dnevnika:# snort -dev -l ./logs

    Direktorij koji se koristi za zapisivanje datoteka dnevnika mora biti kreiran prije pokretanja programa, u protivnome e biti prijavljena pogreka da direktorij ne postoji. Podaci o svakome proitanom paketu smjetaju se unutar zadanog direktorija. Hijerarhija i imena dodatnih direktorija u zadanom direktoriju odreuju se ovisno o IP adresama pronaenim u proitanim paketima. Ako se koristi samo opcija -l, ponekad e se za ime direktorija koristiti adresa raunala na kojem je program pokrenut, a nekad e se koristiti adresa udaljenog raunala. Ukoliko je potrebno sve adrese gledati relativno prema adresi raunala na kojemu se program izvodi, potrebno je koristiti opciju -h (home network) s argumentom koji oznaava adresu mree s koje se pokree program. Jednaki efekt ima definiranje varijable $HOME_NET unutar konfiguracijske datoteke snort.conf kao to je prikazano kasnije u nastavku poglavlja.# snort -dev -l ./logs -h 192.168.1.0/24

    Koristei ove opcije, Snort e biljeiti sva zaglavlja s prijenosnog, mrenog i podatkovnog sloja, te ih biljeiti oznaene relativno prema adresama mree 192.168.1.0/24. U direktoriju sa zapisima nalaziti e se dodatni direktoriji s adresom udaljenih raunala u svojem imenu. U sluaju da su i odredite i polazite paketa na istoj mrei, ime direktorija se odreuje prema onom paketu koji ima vei broj pristupnih vrata (obino poiljatelj).

    Podrazumijevani nain zapisa datoteka dnevnika je u ASCII obliku, meutim ukoliko se oekuje velika koliina prometa, preporua se koritenje binarnog formata za zapis koji je puno bri i kompaktniji te moe utediti znatne koliine prostora. Unaprijed pripremljeni Snort paketi u razliitim distribucijama mogu koristiti i binarni nain zapisa kao podrazumijevani, ukoliko je autor paketa naveo takve postavke. Kod koritenja binarnog naina zapisa datoteka dnevnika nije potrebno koristiti opciju -h za navoenje adrese lokalne mree jer se svi podaci zapisuju u istu datoteku. Format zapisa u ovom nainu rada istovjetan je zapisu kakvog ga daje komando linijski alat tcpdump. Za zapisivanje paketa u binarnog obliku, program je potrebno pokrenuti koristei opciju -b:# snort -b -l ./logs

    Koristei opciju -b, nije potrebno koristiti ostale opcije za prikaz vie detalja o paketu poput opcija -d i -e, jer binarni oblik u sebi ve ukljuuje ne samo sva zaglavlja nego i kompletan sadraj proitanog paketa. Ovakav zapis se kasnije moe proitati s bilo kojim programom koji podrava tcpdump zapis, primjerice sa samim programom tcpdump ili programom Ethereal/Wireshark. Binarni zapis se takoer moe ponovno iskoristiti i od strane samog programa Snort, koristei opciju -r za ponavljanje (eng. replay). Na ovaj nain moe se proizvesti zapis u ASCII obliku kakav je bio prikazan u prethodnog poglavlju koristei prethodno snimljeni tcpdump zapis:

    26

  • 3. Sustav za otkrivanje mrenih napada Snort

    # snort -dv -r packet.logPonavljanje paketa moe se koristiti i za ispitivanje novih pravila. Na primjer, na jednom raunalu se moe izvesti itav niz napada, te zatim datoteku sa snimljenim prometom prenijeti na drugo raunalo na kojem elimo ispitivati mogunosti otkrivanja. Jednako tako, mogue je rekonstruirati sav promet koji je uzrokovao napad na nekom raunalu. Ovo je naroito korisno kod forenzike analize kompromitiranih posluitelja, pa je mogue ponoviti sve dogaaje koji su se dogaali za vrijeme napada u kontroliranim laboratorijskim uvjetima.

    Dodatna mogunost kod ponavljanja zapisa je i koritenje BPF notacije (eng. Berkley packet filter). BPF notacija omoguava filtriranje prikazanih paketa koritenjem raznih izraza. BPF izrazi se sastoje od primitiva poput src host (izvorina adresa), dst host (odredina adresa), port (pristupna vrata), ip proto (vrsta protokola) itd. BPF notaciju mogu koristiti i slini programi poput tcpdump i Wireshark, te svi programi koji implementiraju biblioteku libpcap. Primjerice, elimo li iz prethodno snimljene datoteke prikazati samo pakete koji su koristili ICMP protokol, dostupna nam je sljedea notacija:# snort -dv -r packet.log icmp

    Mogui su i znatno sloeniji izrazi za odabir paketa koji e biti prikazani, a jednostavniji izrazi se mogu kombinirati koritenjem logikih operatora not, and i or. Ukoliko se neki logiki operator odnosi na grupu izraza, tada se grupa tih izraza moe navesti unutar zagrada. U sluaju koritenja specijalnih znakova poput zagrada, BPF notacija se mora navoditi unutar dvostrukih navodnika, ili se svaki specijalni znak mora koristiti s takozvanim escape znakom. U protivnome se specijalni znakovi interpretiraju u onom kontekstu koje im dodjeljuje ljuska u kojoj se naredba pokree, a ne u kontekstu Snorta odnosno BPF zapisa. Primjer svega navedenoga uz sloenije BPF zapise prikazuje naredba koja e ispisati TCP pakete s odredinim pristupnim vratima 80, ali koji ne dolaze sa raunala faramir i graph:# snort -dv -r packet.log tcp port 80 and not \(faramir or graph\)

    U sluaju duih BPF zapisa za odabira paketa, nepraktino ih je navoditi u komandnoj liniji, pa postoji mogunost njihovog navoenja unutar tekstualne datoteke. Sadraj takve datoteke se moe proslijediti programu na obradu koritenjem -F opcije. BPF zapis je izuzetno kompleksan te prua fleksibilan i moan nain odabira paketa za prikaz. Daljnje izlaganje o njegovim mogunostima izlazi izvan opsega ovog rada, pa se nee detaljnije prouavati. Detaljnije informacije o BPF notaciji mogu se pronai u dokumentacijskoj stranici (eng. UNIX man page) alata tcpdump, te na web stranicama navedenim u popisu literature na kraju rada.

    3.2.3. NIDS nain radaPrimarna namjena programa Snort je rad u nainu rada za otkrivanje napada sa mree, tj. kao mreni IDS. Zbog toga je IDS najee koriteni nain rada. Da bi Snort radio u IDS nainu rada, potrebno je pri pokretanju zadati stazu do datoteke s opisom pravila za prepoznavanje napada. Uz pravila prepoznavanja, datoteka sadri niz drugih uputa vezanih uz pokretanje i rad Snorta, uputa za postavljanje pretprocesora i izlaznih modula,

    27

  • 3. Sustav za otkrivanje mrenih napada Snort

    ograniavanje broja upozorenja itd. Uobiajeni naziv ove datoteke je snort.conf, te se obino nalazi u direktoriju /etc/snort ili /etc/snort/conf. Pravila navedena o ovoj datoteci primjenjuju se na svaki proitani mreni paket i na osnovu njih se odluuje o moguim daljnjim akcijama. Ukoliko nije navedeno drukije, podrazumijeva se zapisivanje svih informacija i rezultata otkrivanja u datoteke dnevnika u direktoriju /var/log/snort. Zbog brzine izvoenja, u ovom nainu rada se ne preporua istodobni ispis paketa na standardni izlaz pomou -v opcije. Isto tako, rijetko kad se koristi i opcija -e za prikaz zaglavlja s podatkovnog sloja. Najei nain pokretanja u IDS nainu je sljedei:# snort -d -h 192.168.1.0/24 -c /etc/snort/snort.conf

    Pokrenut na ovaj nain, Snort e itati pakete s podrazumijevanog mrenog suelja, ispitivati ih da li zadovoljavaju neka od navedenih pravila unutar konfiguracijske datoteke snort.conf, te ukoliko nae neka pravila koja su zadovoljena zapisati zaglavlja i sadraj paketa u datoteku dnevnika unutar /var/log/snort direktorija. Format datoteka dnevnika je tekstualan (tj.