SVEUČILIŠTE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

 

 

 

 

 

 

 

 

 

SEMINAR

Penetracijski test na bežične mreže

Luka Drvoderić

Voditelj: doc.dr.sc. Marin Golub

 

 

 

 

 

 

 

 

 

 

 

 

 

Zagreb, srpanj, 2007.



Sadržaj

1.     Uvod. 1

2.     Penetracijski test 2

3.     Razlozi za provođenje penetracijskog testa. 3

3.1       Otkrivanje propusta prije napadača. 3

3.2       Izvještavanje menadžmenta o problemima. 3

3.3       Potvrđivanje sigurnosti sustava. 4

3.4       Sigurnosna obuka za informatičko osoblje. 4

3.5       Otkrivanje propusta neusklađenosti 4

3.6       Testiranje novih tehnologija. 4

4.     Klasifikacija penetracijskih testova. 5

4.1       Penetracijski testovi prema bazi informacija. 6

4.2       Penetracijski testovi prema agresivnosti 6

4.3       Penetracijski testovi prema opsegu. 7

4.4       Penetracijski testovi prema pristup. 7

4.5       Penetracijski testovi prema primijenjenoj tehnici 8

4.6       Penetracijski testovi prema početnoj točki 8

5.     Provođenje penetracijskog testa. 9

5.1       Planiranje. 9

5.2       Istraživanje. 10

5.3       Napad. 11

5.4       Izvještavanje. 13

6.     Karakteristični napadi bežičnih mreža. 14

6.1       Sprečavanje servisa. 14

6.2       Čovjek u sredini 16

6.3       ARP trovanje. 17

7.     Provođenje penetracijskog testa na bežične mreže. 19

7.1       Otkrivanje bežične mreže. 20

7.2       Utvrđivanje razine zaštite. 21

7.3       Napad na bežičnu mrežu. 22

8.     Kismet alat 25

8.1       Konfiguriranje Kismet alata. 25

8.2       Pokretanje Kismet alata. 29

8.3       Korištenje sučelja Kismet alata. 31

9.     Otkrivanje lokacije pristupne točke korištenjem GPS uređaja. 37

9.1       Pokretanje GPSd pozadinskog procesa. 37

9.2       Prikupljanje informacija korištenjem Kismet alata. 37

9.3       Crtanje mape korištenjem GPSMap alata. 40

10.   Zaključak. 42

11.   Literatura. 43

 

 


1.       Uvod

Zahvaljujući stalnom razvoju, informacijske tehnologije danas rješavaju najrazličitije zadatke, od automatizacije složenih procesa do svakodnevne upotrebe u najširem krugu korisnika. Svaki je računalni sustav podložan programerskim pogreškama, a većina takvih grešaka ima kritične posljedice. Da stvar bude još gora, spomenute pogreške su veoma rasprostranjene na računalima u Internet prostoru. Motivirani zlonamjerni napadači (engl. cracker) veoma lako pronalaze takve propuste i jednako lako ih iskorištavaju [6].

Ne treba zanemariti da složenost sustava zahtjeva pažljivu konfiguraciju, a pogreške u jednom sustavu mogu se neugodno odraziti u drugim sustavima. Propusti li se pravovremeno prepoznavanje i otklanjanje računalne ranjivosti (engl. vulnerability) na svim sustavima, a naročito onim koji se nalaze na Internetu, izlaže se velikim rizicima. Posljedice takvih propusta kreću se od negativnog publiciteta, preko prekida dostupnosti servisa pa do sofisticiranih krađa podataka koje se veoma teško otkrivaju. Godišnje se registrira nekoliko tisuća programskih ranjivosti na komercijalnim ili javno dostupnim programskim paketima, a ako se tome pribroje mnoge konfiguracijske pogreške koje se nalaze na istim resursima, onda održavanje tehničke ispravnosti računalnih sustava postaje veoma zahtjevan proces.

Otkrivanje ranjivosti je prvi korak u ovom procesu. Svi sigurnosni standardi i brojni dokumenti o dobroj brizi o računalnim resursima najozbiljnije preporučuju redovitu provjeru sigurnosti računalnih resursa kako bi se na vrijeme prepoznale i otklonile ranjivosti.

Iako postoje razni načini kako zaštititi sustav i aplikacije, jedan od načina koji nam daje uvid u sigurnost sustava je provođenje penetracijskog testa (engl. penetration test). Provođenjem penetracijskog testa repliciraju se tipovi akcija koje bi poduzeo zlonamjerni napadač dajući time precizniju reprezentaciju u sigurnosno stanje sustava. Razvijene su robusne metode testiranja u stvarnom vremenu i kvalitetni alati koji pružaju visoku kvalitetnost i povjerljivost u rezultate testiranja.

Neke organizacije prakticiraju provođenje penetracijskih testova povremeno, jednom ili dvaput godišnje. To je svakako korisna praksa, no dinamika pojavljivanja ranjivosti je takva da se odgovorna organizacija ne može osloniti na takvu prorijeđenu dinamiku testova. Otkrivanje ranjivosti mora postati redoviti, mjesečni ili tjedni, a ponekad i učestaliji zadatak, kako bi zadržali sigurnost sustava na visokom nivou i time spriječili neželjene posljedice.

2.       Penetracijski test

Penetracijski test je jedan od načina identificiranja ranjivosti nekog sustava ili mreže u kojima postoje određene sigurnosne mjere. Penetracijski test obično uključuje korištenje metoda napada upravljanih od povjerljivog pojedinca, penetracijskog ispitivača (engl penetration tester), na način sličan napadu zlonamjernog napadača. Ovisno o tipu testiranja koje se obavlja, to može uključivati jednostavno pretraživanje IP adresa (engl. Internet protocol address) kako bi se identificirala računala koja posjeduju ranjive servise ili pa čak iskorištavanje poznatih ranjivosti na sustave koji nisu zaštićeni najnovijim sigurnosnim zakrpama. Rezultati takvih testiranja i napada se zatim dokumentiraju i prezentiraju u obliku izvještaja vlasniku sustava kako bi se sustav zaštitio od identificiranih propusta.

Potrebno je imati na umu da penetracijski test ne traje za uvijek. Vrijeme provođenja pojedinog testa varira. Penetracijski test je u osnovi pokušaj narušavanja sigurnosti sustava ili mreže i nije potpuna sigurnosna procjena. To znači da je penetracijski test samo pogled na stanje sigurnosti sustava u određenom trenutku vremena. Trenutno poznati sigurnosni propusti, ranjivosti ili neadekvatna konfiguracija prisutna u sustava neće biti otklonjeni sve do vremenskog trenutka provođenja penetracijskog testa [12].

Penetracijsko testiranje se obično provodi da poveća osviještenost menadžmenta o sigurnosti ili radi testiranja otpornosti sustava na napade te njihove sposobnosti i odziv. Također pomaže menadžmentu u procesu donošenja odluka. Moguće je da menadžment neće prihvatiti proces otklanjanja svih ranjivosti otkrivenih kompletnom procjenom ranjivosti sustava već samo važnih sistemskih slabosti otkrivenih kroz penetracijske testove. Razlog tome je što uklanjanje svih ranjivosti može biti skupo pa većina organizacija nije u mogućnosti izdvojiti toliki budžet.

Penetracijski testovi mogu imati ozbiljnih posljedica za mrežu na kojoj se provode. Ukoliko se loše provode mogu uzrokovati zagušenje mreže ili pad sustava. U najgorem slučaju mogu završiti upravo u scenariju za koji su namijenjeni da ga spriječe. To je kompromis sustava i penetracijskog ispitivača. Stoga je ključno dobiti odobrenje od strane menadžmenta organizacije prije provođenja penetracijskog testa na njihov sustav ili mrežu [4].

3.       Razlozi za provođenje penetracijskog testa

Postoji mnogo razloga zašto se preporuča provoditi penetracijske testove. Jedan od glavnih razloga je zasigurno pronaći i ispraviti sigurnosne propuste prije nego ih pronađe i iskoristi napadač. Iako je informatičko osoblje (engl. department of information technology) često svjesno da postoje ranjivosti obično je potreban i vanjski ekspert koji daje izvještaje o sigurnosti kako bi menadžment mogao pravovremeno reagirati i odobriti resurse potrebne za zaštitu sustava. Pokazalo se da je učinkovito imati takvog vanjskog eksperta koji će nadzirati sigurnost sustava. Testiranje novog sustava prije nego što se priključi na javnu mrežu također je dobar razlog za provođenje penetracijskog testa. Obično se penetracijskim testovima testiraju i sposobnosti informatičkog osoblja ciljane organizacije da odgovori na napad. Standardi za zaštitu podataka industrije kartičnog plaćanja i ostale sigurnosne regulacije također zahtijevaju posebno sigurnosno testiranje [11].

3.1       Otkrivanje propusta prije napadača

U svako doba postoje aktivni napadači koji koriste veliki broj automatiziranih alata tražeći propuste u sustavu ili mreži. Namjera takvih napadača je iskoristiti pronađene propuste i provaliti u sustav. Jedino nekolicina od njih koristi naprednije tehnike, još javno nepoznate ranjivosti (engl. zero day exploit), dok većina od njih koristiti dobro poznate i predvidive načine napada. Penetracijski testovi daju informatičkom osoblju jasnu sliku ranjivosti u njihovoj mreži. Cilj ovakvog penetracijskog testa je pronaći ranjivosti sustava kako bi se takvi mogli ispraviti prije nego ih otkrije napadač. U usporedbi, ovakav penetracijski test sličan je redovitom liječničkom pregledu čovjeka. Čak iako se vjeruje u trenutno zdravlje, kao ljudi prolazimo različita testiranja (neka stara, neka nova) kako bi se dijagnosticirale eventualne bolesti čiji simptomi nisu još razvijeni.

3.2       Izvještavanje menadžmenta o problemima

Ukoliko je informatičko osoblje već istaknulo menadžmentu nedostatak sigurnosti u sustavu, rezultati penetracijskog testa pomoći će u opravdanju izdvajanja sredstava potrebnih za njihovo rješavanje. Obično je informatičko osoblje organizacije svjesno slabosti u sigurnosti njihovog sustava, ali je s druge strane problem zadobiti menadžment da podupru obavljanje potrebnih promjena. Pokazalo se da menadžment ima više respekta prema vanjskoj ekspertnoj grupi za sigurnost (engl. outside security expert) te je stoga korisno posjedovati takvu u organizaciji. Unutar korporacije obično postoje političke nesuglasice i ograničenje resursa pa je vanjski ispitivač također pogodniji zbog neutralne strane. Informatičko osoblje najčešće zahtijeva porast budžeta za nove tehnologije. Koristeći neutralnu stranu da potvrdi nužne potrebe, menadžmentu je dano dodatno opravdanje za odobrenje ili zabranu novčanih prihoda za sigurnosnu tehnologiju. Slično tome informatičko osoblje upoznao je sa složenošću njihove okoline te načinima kako se kompromitirati sa sustavom. Menadžmentu nije neobično pretpostaviti da bi bez takvog znanja napadač bio u nemogućnosti pristupiti neovlaštenim sadržajima. Koristeći također neutralnu stranu koja ne posjeduje unutarnje znanje, penetracijski ispitivački tim je u mogućnosti identificirati iste ranjivosti uočene od unutrašnjeg tima i pomoći uvjeriti menadžment da bi ranjivosti trebale biti uklonjene.

Krajnja odgovornost za sigurnost informacijske tehnologije dakako stoji na menadžmentu. Ta odgovornost stoji prvenstveno na njima jer oni odlučuju koja je prihvatljiva razina rizika za njihovu organizaciju.

3.3       Potvrđivanje sigurnosti sustava

Ukoliko je informatičko osoblje organizacije pouzdano u njihovim postupcima i konačnim rezultatima, penetracijski test će to samo potvrditi. Postojanje vanjskog entiteta za potvrdu sigurnosti također daje dobar uvid u sigurnost neovisno o unutarnjim čimbenicima organizacije. Vanjski entitet može također dati i dobru procjenu efektivnosti unutarnjeg tima kao sigurnosnog osoblja. Penetracijski test neće učiniti mrežu sigurnijom, ali će ukazati na propuste između znanja i implementacije.

3.4       Sigurnosna obuka za informatičko osoblje

Penetracijski testovi daju informatičkom osoblju priliku da prepozna i odgovori na mrežni napad. Primjerice, ukoliko penetracijski ispitivač uspješno kompromitira sustav bez ičijeg znanja, to je samo indikator neadekvatnog pristupa obuci osoblja zaduženog za sigurnost. Osoblje za testiranje, praćenje i rješavanje incidenata može na ovaj način pokazati svoje sposobnosti razlučivanja situacije stanja sustava i pokazati efektivnost njihovog odgovora na detektirani napad. Kada osoblje za sigurnost ne uspije identificirati neprijateljsku aktivnost, rezultati penetracijskog testiranja mogu biti korisni u usavršavanju njihovih vještina na odaziv i sprečavanje neprimjerenih aktivnosti u sustavu.

3.5       Otkrivanje propusta neusklađenosti

Korištenje penetracijskih testova u terminu otkrivanja propusta u neusklađenosti bliže je tehnikama ispitivanja (engl. auditing) nego pravom sigurnosnom inženjeringu (engl. security engineering). No, iskusniji penetracijski ispitivači često prelaze te granice.  Jedan od razloga je što nisu sva računala nadograđena najnovijim zakrpama ili pak je neusklađeno računalo privremeno priključeno u sustav te je kao takvo postalo kritičnim resursom. U današnja vremena, okolina sustava se teško regulira, te stoga mnoge organizacije traže bolje načine za kontinuiranu procjenu njihove usklađenosti. Takve regulacije posjeduju višestruke komponente specifično povezane sa sistemskim ispitivanjem i sigurnošću.

3.6       Testiranje novih tehnologija

Idealno vrijeme za testiranje nove tehnologije je upravo vrijeme prije njenog puštanja u pogon. Izvođenjem penetracijskog testa na nove tehnologije, aplikacije i njihovu okolinu prije njihove javne aktivnosti često znači uštedu vremena i novca. Razlog tome je što je jednostavnije testirati i modificirati novu tehnologiju o kojoj nitko nije ovisan. Primjerice, testiranje novog web poslužitelja, nove bežične infrastrukture itd.

4.       Klasifikacija penetracijskih testova

Penetracijske testove možemo klasificirati u nekoliko kategorija (Slika 4.1). Testovi se klasificiraju s obzirom na kriterije koji se koriste za njihov opis, odnosno s obzirom na obilježja koja ih međusobno razlikuju [9]. Postoji šest glavnih kategorija:

Svaka od tih kategorija sadrži daljnje grupacije koje detaljnije opisuju obilježja i namjenu dotičnog testa.

Slika 4.1 Klasifikacija penetracijskih testova

Različita obilježja koja karakteriziraju neki penetracijski test moraju se prilagoditi na način da zadovolje cilj te osiguraju efikasan ishod testa s minimalnim rizikom. Kako bi se smanjio rizik, preporuča se primjena kombinacije različitih penetracijskih testova danih ovom klasifikacijom. Primjerice, u prvom koraku može se provesti oprezan, prikriven test bez informacija izvana, a nakon toga agresivan, javan test s informacijama iznutra. Takav pristup kombinira prednosti testa bez informacija, realne simulacije pravog napada, s pogodnostima testa s informacijama kako bi se postigla maksimalna učinkovitosti i limitirala moguća šteta.

Važno je također imati na umu da je potrebno pažljivo birati koja kombinacija testa će se provoditi jer u protivnom test može biti beskoristan. Primjerice, agresivan test je obično otkriven vrlo brzo pa ga stoga nije prikladno koristiti u kombinaciji s prikrivenim tehnikama. Slično tome, javan penetracijski test nije prikladan za dobivanje povjerljivih informacija od zaposlenika koji su unaprijed bili upozoreni tehnikama socijalnog inženjeringa.

4.1       Penetracijski testovi prema bazi informacija

Kategorizacija penetracijskih testova prema bazi informacija (engl. information base) razlikuje testove s obzirom na početni nivo znanja i informacija o ciljanom računalnom sustavu ili mreži koja se testira. Postoje dva tipa ovakvih testova:

Test bez informacija o sustavu (engl. black box penetration test) sličan je napadu stvarnog vanjskog napadača gdje penetracijski ispitivač ne posjeduje gotovo nikakvo znanje o testiranom sustavu, osim eventualno internet adrese ili domenskog imena. Penetracijski ispitivač treba sam prikupiti dodatne informacije o ciljanom sustavu ili mreži koje su mu potrebne za provođenje testa. Nasuprot tome u testu s informacijama (engl. white box penetration test) penetracijski ispitivač obično posjeduje kompletno znanje o računalnom sustavu ili mreži koja se ispituje. To uključuje topologiju mreže, internet adrese, izvorni kod, detalje operacijskog sustava, itd. Ovaj način testiranja također je vanjski kao i test bez informacija, ali je precizniji i efikasniji iz razloga što predstavlja gori slučaj scenarija u kojem napadač ima prethodno znanje o sustavu.

4.2       Penetracijski testovi prema agresivnosti

Penetracijski testovi s obzirom na kriterij agresivnosti (engl. aggressiveness) odnose se na stupanj agresivnosti ispitivača prilikom izvođenja testa. Kako bi se postigla dovoljna razlika između pojedinih stupnjeva ova klasifikacija svrstava penetracijske testove u četiri kategorije:

Stupanj najniže razine agresivnosti je stupanj pasivnosti (engl. passive penetration test). Testirani sustav ispituje se samo pasivno što znači da se detektirane ranjivosti sustava ne iskorišćuju, već se samo detektiraju. Drugi stupanj je stupanj opreznosti (engl. cautious penetration test). U ovom slučaju otkrivene ranjivosti se iskorišćuju jedino pod kontrolom i punim znanjem ispitivača, na način da sustav ostane neoštećen. To su primjerice radnje korištenja dobro poznatih lozinki ili pokušavanje pristupa kazalima web poslužitelja. Stupanj procjene (engl. calculated penetration test) je treći nivo u kategoriji agresivnosti. Ispitivač također iskorišćuje ranjivosti, ali također koristi i one koje mogu uzrokovati poremećaje sustava. To uključuje primjerice automatizirano pogađanje lozinka te iskorištavanje poznatih preljeva spremnika u precizno identificiranom ciljanom sustavu. Prije poduzimanja ovog koraka, ispitivač mora pomno procijeniti koliko je ovakva radnja poželjna za uspješnost testa, te koliko će biti ozbiljne njene posljedice. Najviši stupanj je stupanj agresivnosti (engl. agressive test). U ovom slučaju ispitivač pokušava iskoristiti sve potencijalne ranjivosti sustava. Primjerice, pokušaj preljeva spremnika koristi se čak i na ciljanom sustavu koji nije jasno identificiran ili pak je sigurnosni sustav deaktiviran namjernim preopterećenjima (napadom sprečavanja servisa). Ispitivač mora biti svjestan da ovakvo testiranjem može negativno utjecati čak i na okolinu testiranog sustava, bilo susjednih računalni sustavi ili mrežnih komponenta.

4.3       Penetracijski testovi prema opsegu

Opseg (engl. scope) određuje koji će sve dio sustava biti podvrgnut penetracijskom testiranju. Kada se penetracijski test provodi po prvi puta, preporuča se obavljanje potpunog testa kako bi izbjegli previđene propuste u neispitanim sustavima. Vrijeme potrebno za obavljanje penetracijskog testa obično je izravno vezano za opseg sustava koji se testira. Identični i skoro identični sustavi obično se mogu ispitati u jednom testu, no čim postoje različite konfiguracije svaki sustav će se trebati podvrgnuti testu odvojeno. Tako u ovoj kategoriji postoje sljedeći testovi:

Ako se ispituje samo izdvojeni dio mreže ili samo dio sustava kažemo da je penetracijski test usredotočen (engl. focused penetration test). Ovakav test prikladan je obično nakon modifikacije ili proširenja okoline sustava. Slično tome, u ograničenom (engl. limited penetration test) penetracijskom testu ispituje se također ograničen broj sustava ili servisa, ali onih koji tvore jednu funkcijsku jedinicu. Primjerice, ispituju se svi sustavi u demilitariziranoj zoni. Također se može provodi i potpuni (engl. full penetration test) penetracijski test kojim je pokriveno ispitivanje cijelog sustava.

4.4       Penetracijski testovi prema pristup

Klasifikacija prema pristupu (engl. approach) svrstava testove u dvije kategorije s obzirom na uočljivost prisutnosti ispitivača prilikom provođenja testa. To su kategorije:

Penetracijski test koji se provodi trebao bi barem u početku biti prikriven (engl. covert penetration test). Takav test obično se koristi u inicijalnoj fazi te iskorišćuje samo metode koje se direktno ne identificiraju kao pokušaji napada na sustav. Tek ukoliko prikriveni pristup ne uspije dati reakciju preporuča se koristiti javne (engl. overt penetration test) metode, kao što je primjerice iscrpno pretraživanje vrata (engl. port).

4.5       Penetracijski testovi prema primijenjenoj tehnici

Penetracijski testovi s obzirom na primijenjenu tehniku (engl. tehnique) dijele se na:

U konvencionalnim penetracijskim testovima sustav se napada isključivo preko mreže. Mrežni (engl. network based penetration test) penetracijski test je postupak koji simulira tipičnog napadača. Većina današnjih mreža koristi TCP/IP protokol, zbog čega se ovakvi testovi još nazivaju i penetracijski testovi bazirani na IP-u. Osim uobičajenih TCP/IP mreža postoje i ostale komunikacijske mreže koje se također mogu iskoristiti za izvođenje napada. Ova grupacija uključuje telefonske mreže, bežične mreže za mobilnu komunikaciju, bluetooth tehnologiju.

Danas veliku važnost u sigurnosti imaju sigurnosne stijene (engl. firewall). Konfiguracija tih sustava pruža vrlo visok stupanj sigurnosti, što povlači i izrazito tešku, ako ne i nemoguću "pobjedu" nad napadnutim sustavom. Često je jednostavnije i brže u takvim situacijama doći do potrebnih podataka svladavanjem sustava direktnim fizičkim napadom (engl. physical attack). Fizički napad može primjerice biti direktni pristup podacima na lozinkom nezaštićenoj radnoj stanici nakon dobivanja neautoriziranog pristupa u zgradu organizacije, odnosno ulaska u poslužiteljsku sobu. Ljudi su najčešće najslabija veza u sigurnosnom lancu. Tehnike socijalnog inženjeringa (engl. social engineering) obično uspijevaju zbog neadekvatne i nedovoljne upoznatosti ljudskog kadra sa sigurnošću. Ispitivač bi trebao uvijek obavijestiti klijenta o mogućim posljedicama socijalnog inženjeringa i stanju da će ta tehnika u većini slučajeva uspjeti, ukoliko korisnici nisu prethodno informirani.

4.6       Penetracijski testovi prema početnoj točki

Klasifikacija prema početnoj točki razlikuje penetracijske testove ovisno o mjestu s kojeg se test odvija. Početna točka penetracijskog testa (engl. starting point) je u praksi točka na kojoj ispitivač priključuje svoje računalo na mrežu. Ovisno o tome da li se napadi odvijaju unutar ili izvan ciljane mreže ili organizacije razlikujemo dva tipa penetracijskih testova:

Većina napada odvija se preko Interneta. Vanjski (engl. outside penetration test) penetracijski test omogućuje detekciju i evaluaciju potencijalnih rizika ovakvog napada. Tipično su ovakvim testovima podvrgnute sigurnosne stijene i veze udaljenog pristupa. U unutarnjim (engl. inside penetration test) penetracijskim testovima ispitivač uobičajeno ne treba zaobilaziti sigurnosnu stijenu i druge mehanizme zaštite pristupa internoj mreži. Stoga unutarnji penetracijski test može procijeniti efekte pogrešaka u konfiguraciji sigurnosne stijene, uspješan napad na sigurnosnu stijenu ili napada osobe koja ima pristup internoj mreži.

5.       Provođenje penetracijskog testa

Penetracijski test može se općenito provesti u četiri faze (Slika 5.1) [10]:

Slika 5.1 Četiri faze provođenja penetracijskog testa

5.1       Planiranje

U fazi planiranja (engl. planning phase) definira se doseg zadatka te dokumentacija i sporazum s menadžmentom koji treba odobriti provođenje penetracijskog testa. Tim penetracijskih ispitivača definira jednoznačnu strategiju zadatka. Faktori kao što su postojeća sigurnosna politika, industrijski standardi itd., obično se koriste kao ulazi za definiranje opsega testa. Ova faza obično obuhvaća sve aktivnosti koje treba provesti prije započinjanja samog penetracijskog testa.

Postoje različiti faktori koje je potrebno razmotriti da bi se izvršio ispravno planirani kontrolirani napad. Za razliku od klasičnog napadača, penetracijski ispitivač ima mnogo ograničenja prilikom izvođenja testa. Stoga je potrebno ispravno planiranje za uspješno provođenje penetracijskog testa. Neka od tih ograničenja su vrijeme i legalne restrikcije. U realnoj situaciji napadač ima obično mnogo više vremena za pažljivo osmišljanje napada. Za penetracijskog ispitivača to je vremenski ograničena aktivnost. On se mora pridržavati striktnog vremena koje je prethodno dogovoreno. Također se mora imati u uvidu i faktor poput aktivnih poslovnih sati organizacije. Penetracijski ispitivač je također ograničen legalnim sporazumom koji određuje prihvatljive i neprihvatljive korake koje penetracijski ispitivač mora strogo poštivati. Također postoje i druga ograničenja koja organizacija može nametnuti penetracijskom ispitivaču. To su uglavnom ograničenja koja mogu utjecati direktno na poslovne učinke kao što je primjerice vrijeme neaktivnosti zbog pada sustava, curenje informacija (engl. information leakage) itd. Svi ti faktori moraju se razmotriti tijekom faze planiranja.

5.2       Istraživanje

Faza istraživanja (engl. discovery phase) je točka gdje zapravo započinje penetracijski test. Može se razmatrati kao faza prikupljanja i analize informacija. Tu fazu možemo podijeliti u tri kategorije

5.2.1       Traženje otisaka

Proces traženja otisaka (engl. footprinting phase) je nenametljiva aktivnost koja se izvodi s namjerom prikupljanja što većeg broja informacija o ciljanoj organizaciji i njezinom sustavu, bilo to informacije tehničke ili druge prirode. To uključuje pretraživanje Interneta, postavljanje upita različitim javnim repozitorijima (domenskim poslužiteljima, pretplatničkim listama, različitim grupama itd.)

Mnogi penetracijski ispitivači imaju tendenciju preskočiti ovu fazu, no ova faza daje značajnu količinu korisnih informacija. Ove informacije mogu se prikupiti bez direktnog zabadanja u ciljani sustav te stoga penetracijski ispitivač ostaje nezapažen. To su obično informacije detalja postavki informacijske tehnologije, mail adresa organizacije, konfiguracije uređaja, pa čak ponekad i korisnička imena i lozinke. Ove informacije obično su korisne za daljnji napad, primjerice tehnikama socijalnog inženjeringa. Penetracijski ispitivač mora ovu fazu iskoristiti što više i biti dovoljno kreativan u identificiranju različitih propusta. Na taj način ispitivač u najkraćem mogućem vremenu istražuje svaki aspekt koji bi mogao dovesti do relevantnih curenja informacija o traženoj organizaciji. Mnogi od tih postupaka mogu biti automatizirani različitim skriptama i programima.

5.2.2       Iscrpno pretraživanje

Faza iscrpnog pretraživanja (engl. scanning and enumeration phase) obično obuhvaća identificiranje aktivnih sustava, otvorenih vrata, servisima koji djeluju iza tih vrata, otkrivanje pravila sigurnosne stijene, identificiranje operacijskog sustava i njegovih detalja, otkrivanje mrežne staze, itd. Ta faza sadrži mnogo aktivnog testiranja na ciljanom sustavu. Stoga penetracijski ispitivač mora oprezno koristiti alate za te aktivnosti imajući na umu da ne preoptereti ciljani sustav pretjeranim prometom. Svi alati koji se koriste u ovoj fazi moraju se prethodno isprobati u testnom okruženju kako ne bi doveli do neočekivanih situacija. Različiti alati za otkrivanje otvorenih vrata dostupni su besplatno na Internetu. Neki od popularniji su Nmap, SuperScan, Hping. Nakon uspješne identifikacije otvorenih vrata, potrebno je identificirati i servise koji su u njihovoj pozadini, bilo to korištenjem dostupnih alata, bilo manualno.

Preporuča se da penetracijski ispitivač točno potvrdi operacijski sustav, te imena i verzije servisa koji su aktivni na ciljanom sustavu prije nego ih navede u konačnom izvještaju. To će pomoći u identificiranju i eliminiranju različitih lažnih pozitivnosti pronađenih u kasnijim razmatranjima. Također postoji veći broj alata za detekciju servisa i operacijskog sustava, dostupnih besplatno putem Interneta. To su primjerice Xprobe2, Queso, Nmap, p0f, Httprint, Amap, Winfingerprint.

5.2.3       Analiza ranjivosti

Nakon uspješnog identificiranja ciljnog sustava i prikupljanja potrebnih detalja iz prethodnih faza, penetracijski ispitivač trebao bi pokušati naći moguće ranjivosti (engl. vulnerability) koje postoje u ciljanom sustavu. Tokom ove faze penetracijski ispitivač također može koristiti automatizirane alate za otkrivanje poznatih ranjivosti. Ti alati obično posjeduju vlastitu bazu koja sadrži informacije o najnovijim ranjivostima i njihovim detaljima.

Važno je za svakog penetracijskog ispitivača da bude u toku sa najsvježijim sigurnosno vezanim aktivnostima. Često puta ova faza ne ovisi isključivo o vlastitom iskustvu penetracijskog ispitivača. Stoga će uspješan penetracijski ispitivač uvijek biti opskrbljen informacijama o najnovijim ranjivostima bilo praćenjem foruma, grupa, dnevnika ili savjeta vezanih uz sigurnost.

U ovoj fazi penetracijski ispitivač također može ispitivati sustav primjenom neispravnih ulaza, nasumičnih nizova znakova, itd. ispitujući time greške i neočekivana ponašanja u izlazima sustava. Primjenjujući ove mogućnosti penetracijski ispitivač može naići na ranjivosti koje nisu mogli identificirati automatizirani alati. Stoga je vrlo važno za penetracijskog ispitivača da se ne oslanja isključivo na automatizirane alate, nego da primjenjuje i manualne tehnike testiranja. Mnogi dobri alati za pronalaženje ranjivosti dostupni su bilo kao komercijalni bilo kao alati otvorenog koda. Neki od njih su Nessus, Shadow Security Scanner, Retina, ISS Scanner, SARA, GFI LANguard. Bitno je ponovo naglasiti da penetracijski test nije samo puka aktivnost korištenja automatiziranih alata. Penetracijski ispitivač mora koristiti svoju stručnost i prosuđivanje u svakoj situaciji.

5.3       Napad

Ova faza je srž penetracijskog testa. Najinteresantnija je i najizazovnija. Faza napada može se općenito podijeliti na dvije faze:

5.3.1       Iskorištavanje

Tokom ove faze penetracijski ispitivač pokušava iskoristiti upade za različite ranjivosti otkrivene u prethodnoj fazi analize ranjivosti. Na Internetu postoji mnogo repozitorija koji nude primjere upada za velik broj ranjivosti. Penetracijski ispitivač trebao bi poznavati osnovne vještine programiranja u C jeziku, posebice programiranje utičnica (engl. socket), te vještine skriptnih jezika poput Perl-a, Python-a ili Ruby-a. Takve vještine pomažu u razumijevanju i pisanju različitih upada, alata i automatiziranih skripti. Ova faza može biti opasna ukoliko joj se ne pristupa ispravno. Postoje vjerojatnosti da pokretanje upadnih programa onesposobi i sruši sustav. Stoga se svi upadni programi prethodno trebaju isprobati u testnom okruženju. Neke organizacije mogu zahtijevati zabranu primjene upadnih programa za određene ranjivosti. U takvom slučaju penetracijski ispitivač mora dati dostatne dokaze, tj. dobro dokumentirane koncepte koji jasno opisuju ranjivosti organizacije.

Također je važno spomenuti da postoje i dobra razvojna okruženja koja pomažu penetracijskom ispitivaču prilikom razvoja vlastitih upadnih programa i njihovog pokretanja na sistematski način. Nekoliko dobrih komercijalnih kao i onih otvorenog koda čine The Metasploit Project, Core Security Technology's Impact, Immunity's CANVAS. Razborito je da penetracijski ispitivač potpuno iskoristi potencijal takvih razvojnih okolina. Ta okruženja mogu uštedjeti dovoljno vremena za pisanje vlastitih upadnih programa.

Često puta uspješan upad neće dovesti direktno do administratorskih privilegija. U takvom slučaju mora se poduzeti sljedeći korak. Zahtjeva se daljnja analiza, istraživanje i traženje drugih propusta koji mogu dovesti do administratorskih privilegija. Stoga se može reći da postoji petlja između faze istraživanja i faze napada (Slika 5.2).

Slika 5.2 Faza napada sa petljom na fazu istraživanja

5.3.2       Širenje privilegija

Kao što je prethodno spomenuto, postoje slučajevi u kojima uspješno upadanje neće dovesti do administratorskih privilegija. Tako će primjerice za određene ranjivosti penetracijski ispitivač dobiti tek korisničke privilegije. U takvom času potrebno je uložiti dodatni napor, nastaviti daljnju analizu na ciljanom sustavu kako bi se prikupile nove informacije koje mogu dovesti do administratorskih privilegija. Taj proces se naziva širenje privilegija. Primjerice kada penetracijski ispitivač zadobije korisničke privilegije može nastaviti pretraživati ranjivosti na lokalnom računalu. Ispitivač će možda trebati instalirati dodatne programe koji će mu pomoći u dobivanju viših privilegija. Penetracijski ispitivač također treba razmotriti mogućnost pivotiranja (engl. pivoting) nakon uspješnog provaljivanja u neki sustav. Pivotiranje je proces u kojem ispitivač koristi kompromitirani sustav kako bi napao ostale sustave u ciljanoj mreži. To će također dati jasan uvid utjecaja propusta u sigurnost organizacije. No, penetracijski ispitivač mora biti oprezan i prije nego što nastavi prodirati dalje treba dobiti dozvole od strane organizacije za koju provodi test. Dobar penetracijski ispitivač također će uvijek čuvati zapise svih izvedenih aktivnosti. Oni mogu posebno koristi u fazi izvještavanja i također su dokaz svih izvedenih akcija.

5.4       Izvještavanje

Posljednja faza u procesu provođenja penetracijskog testa je faza izvještavanja (engl. reporting phase). Ta faza može se izvoditi paralelno sa ostale tri faze ili na kraju faze napada. Mnogi penetracijski ispitivači nisu usredotočeni na tu fazu i slijede samo brzinski pristup u davanju izvještaja. No, ova faza najvažnija je od svih jer prije svega ciljana organizacija plaća upravo za taj konačni dokument.

Konačni izvještaj mora sadržavati oba aspekta, menadžerski i tehnički aspekt. Potrebno je detaljno prikazati sve pronalaske odgovarajućim grafovima, skicama, slikama, itd. kako bi dali valjanu prezentaciju ranjivosti i njihovog učinka na biznis ciljane organizacije. Završni rezime mora jasno opisivati obavljene radnje, otkrivene propuste te važne preporuke za rješavanje sigurnosnih pitanja. Temeljem tih pronalazaka definira se cijena za implementaciju danih preporuka.

Također je potrebno dati detaljan tehnički opis pronađenih ranjivosti i preporuku za njihovo ublažavanje. Svi pronađeni sigurnosni propusti moraju biti popraćeni odgovarajućim dokazima kao što je slika stanja sustava nakon uspješne primjene upadnog programa ili bilo kakva druga slična metoda.

Izvještaj mora biti precizan. Ništa nejasnog se ne smije ostaviti klijentu. Takva precizna dokumentacija uvijek pokazuje sposobnost uspješnog penetracijskog ispitivača.

Nužne stvari koje izvještaj treba sadržavati jesu:

6.       Karakteristični napadi bežičnih mreža

Od samih početaka bežična mreža susreće se s mnogim problemima i prijetnjama.  Poznati su mnogi tipovi napada koje je vrlo teško, pa čak i nemoguće izvesti na klasičnim žičnim mrežama. Medij bežične mreže je zrak te je dostupnost mreži ograničena dosegom signala. Stoga ulice, parkovi, obližnje zgrade, automobili "mogu poslužiti kao virtualna vrata" na bežičnu mrežu [8]. Također napadač ima više slobode i manja je vjerojatnost da bude uhvaćen pri pokušaju iskorištavanja mreže. Postoje tri uobičajena tipa napada na bežične mreže [7]:

6.1       Sprečavanje servisa

Cilj napada sprečavanja servisa (engl. denial of service attack) je spriječiti korisnika da pristupa mrežnim resursima, tj. zabraniti uslugu servisa. Uobičajene metode takvog napada jesu odašiljanje velikog broja lažnih paketa koji stvaraju zagušenje mreže i onemogućuju sustavu da komunicira. Bežične mreže su posebno podložne napadima sprečavanja servisa upravo zbog načina na koji različiti slojevi OSI stoga (engl. open systems interconnection stack) međusobno komuniciraju.

Prvi i najočitiji napad je napad na fizičkom sloju. Takav napad je mnogo jednostavnije izvesti na bežičnoj mreži nego na žičnoj iz razloga što je fizički medij zrak odnosno okolina oko pristupne točke. Napadač ne treba imati direktni pristup u zgradu ciljane organizacije, već napad može izvesti s bilo kojeg mjesta gdje doseže signal pristupne točke. Za razliku od žičnih mreža gdje postoje vidljivi dokazi fizičkog napada (ištekani kablovi, video zapis nadzornih kamera), kod bežičnih mreža nema dokaza da se nešto fizički promijenilo. Napadač može izvesti fizički napad sprečavanja servisa pomoću bilo kakvog uređaja koji ima mogućnost odašiljanja signala spektra bežične mreže (2.4GHz) stvarajući "buku" i nelegalan promet.

Na podatkovnom sloju OSI stoga također postoje brojni razlozi zbog kojih je napad sprečavanja servisa mnogo jednostavnije provesti na bežičnim mrežama. Čak i uz uključenu zaštitu na podatkovnom sloju napadač mu može pristupati. Jedan od najčešćih načina napada na podatkovnom sloju je napad manipulacijom diverzijskih antena (engl. manipulation of diversity antennas) priključne točke (Slika 6.1). Priključne točke obično koriste veći broj antena kako bi signalom pokrili šire područje. Ukoliko takve antene ne pokrivaju isti fizički prostor, napadač je u mogućnosti iskoristiti taj propust i onemogućiti posluživanje određene stanice priključene na bežičnu mrežu.

Slika 6.1 Napad manipulacijom diverzijskih antena

Primjerice neka priključna točka koristi antene A i B na način da svaka pokriva drugi fizički prostor. Alice se nalazi s jedne strane tako da komunicira s pristupnom točkom preko antene A, dok se Bob nalazi s druge strane i komunicira s priključnom točkom preko antene B. Bob može onemogućiti Alice da komunicira mrežom postavljanjem lažne MAC adrese (engl. medium access control address), tj. umjesto svoje MAC adrese može postaviti MAC adresu od Alice. Bob također mora osigurati da njegov signal na antenu B bude jači od signala Alice na antenu A. Jednom kad pristupna točka detektira da je Bobov signal jači na anteni B, pristupna točka će slati i primati okvire za dotičnu MAC adresu preko antene B. Sve dok Bob kontinuirano šalje promet prema pristupnoj točki, okviri od Alice će se ignorirati.

Ukoliko klijent ne koristi zaštitu na podatkovnom sloju ili pak napadač poznaje ključ zaštite, tada je klijent ranjiv na napade sprečavanja servisa lažiranjem pristupne točke. Klijent može biti konfiguriran na način da se spaja na priključnu točku bilo kojeg identifikatora (engl. service set identifier, SSID), ili na priključnu točku točno određenog identifikatora. Ukoliko je klijent konfiguriran da se spaja na pristupne točke određenog identifikatora mreže, on će odabrati onu priključnu točku koja ima najjači signal. Postavljanjem lažne priključne točke (engl. spoofed access point) napadač može efektivno koristiti promet žrtve, te upravljati komunikacijom onemogućujući joj pristup na stvarnu priključnu točku (Slika 6.2).

Slika 6.2 Nadjačavanje valjane pristupne točke lažnom

Primjerice, ukoliko je klijent konfiguriran da se povezuje na priključne točke identifikatora shmoo, klijent će tražiti sve dostupne priključne točke tog imena. Na posljetku povezat će se s onom priključnom točkom koja ima najjači signal. Lažna pristupna točka može osigurati najjači signal bilo korištenjem jačih ili usmjerenih antena, pojačala signala. itd. Klijent će se tada povezati na lažnu pristupnu točku, a napadač će kontrolirati klijentski promet, bilo da ga odbacuje ili koristi za danju analizu.

Ukoliko je na bežičnu mrežu dozvoljeno spajanje bilo kojeg klijenta, tada je ona ranjiva i na napade sprečavanja servisa na mrežnom sloju. Napadač može zagušiti takvu mrežu razašiljanjem velikog broja ICMP zahtjeva (engl. Internet control message protocol) ili drugog neautentičnog sadržaja, blokirajući time pristup do određenih uređaja spojenih na tu mrežu.

6.2       Čovjek u sredini

Napad s čovjekom u sredini (engl. man in the middle attack) ima dva oblika [2]:

Prisluškivanje (engl. eavesdropping) je radnja u kojoj napadač prima niz komunikacijskih podataka. To nije toliko direktni napad već više curenje informacija. Prisluškivač može pohraniti i analizirati podatke koje prisluškuje. Manipuliranje (engl. manipulation) naspram prisluškivanja zahtjeva da napadač ne prima samo podatke već da ih je sposoban i izmijeniti i proslijediti dalje (Slika 6.3).

Slika 6.3 Napad čovjek u sredini (prisluškivanje i manipuliranje)

Napad s čovjekom u sredini u žičnoj mreži zahtjeva pristup mreži kroz koju prolazi žrtvin promet. To znači da napadač mora fizički imati pristup žici iste mreže kako bi mogao presretati promet ili pak ga usmjeravati kroz maliciozno računalo. Takvo kontrolirano usmjeravanje moguće je izvođenjem napada ARP trovanja (engl. address resolution protocol poisoning).

Prisluškivanje u bežičnim mrežama je jednostavno jer bežična komunikacija nije striktno vezana za fizički prostor. Napadač u dosegu signala može  primati radio valove bežične mreže bez nekog velikog napora ili značajnije opreme. Svi okviri poslani kroz bežičnu mrežu mogu se promatrati u stvarnom vremenu ili pohraniti za kasniju analizu. Potrebno je koristiti kriptiranje kako bi se spriječilo napadača da prikuplja povjerljive informacije analizom uhvaćenog prometa. Ukoliko promet nije klasično zaštićen na podatkovnom sloju tada je potrebno koristiti sigurnosne mehanizme viših slojeva kako bi se zaštitili podaci. Ukoliko se ne koriste sigurnosni mehanizmi tada su podaci bez bilo kakvog danjeg napora dostupni bilo kome tko u dotičnom području posjeduje uređaj za bežičnu mrežu.

Naspram prisluškivanja, manipuliranje je zahtjevnija i naprednija metoda. Napadač koji može uspješno manipulirati podacima na mreži može slati lažne podatke predstavljajući se kao računalo žrtve. Korištenjem ARP trovanja napadač može preusmjeravati promet kroz neko maliciozno računalo u njegovoj kontroli. Na taj način može primjerice mijenjati sadržaj podataka kao što je sadržaj elektroničke pošte, transakcija koje se odvijaju, ili pa jednostavno spriječiti daljnje prosljeđivanje paketa, sprečavajući time žrtvi pristup na mrežu.

6.3       ARP trovanje

ARP (engl. address resolution protocol) je mehanizam koji omogućuje uređajima spojenim na mrežu da utvrde koji uređaj na mreži ima traženu IP adresu. Kada neko računalo želi komunicirati s drugim računalom ono šalje najprije ARP upit u kojem pita tko ima traženu IP adresu. Svi uređaji na toj mreži primaju upit, te uređaj čija se adresa traži povratno odgovara svojom MAC adresom. Tu adresu  tada koristi računalo koje je poslalo inicijalni ARP zahtjev kako bi  prosljeđivalo podatke do računala tražene IP adrese.

S namjerom da se smanji broj ARP zahtjeva, mnogi moderni mrežni uređaji i operacijski sustavi implementiraju mehanizam učenja MAC adresa. Ukoliko računalo primi paket od drugog na istoj mreži ono će pretpostaviti da je izvorišna MAC adresa dotičnog paketa upravo MAC adresa koja pripada računalu izvorišne IP adrese. To računalo tada pohranjuje MAC/IP par u svoju lokalnu tablicu MAC adresa i koristi ga za daljnju komunikaciju s računalom na toj IP adresi.

Napadač može preusmjeriti pakete kroz neko drugo maliciozno računalo iskorištavanjem ranjivosti mehanizma za učenje MAC adresa. Pretpostavimo da napadač želi presresti promet između nekog klijenta i poslužitelja za koje su mu poznate IP adrese, te da su napadač te oba ciljna računala na istoj mreži. Napadač može tada klijentu poslati ARP odgovor koji ima izvorišnu IP adresu poslužitelja, ali izvorišnu MAC adresu malicioznog računala kroz koje želi preusmjeravati promet. Klijent će tada misliti da poslužitelj ima MAC adresu malicioznog računala te će sav promet namijenjen IP adresi poslužitelja slati prema malicioznom klijentu. Slično, napadač šalje poslužitelju paket s izvorišnom IP adresom klijenta, a izvorišnom MAC adresom malicioznog računala. Kao i u situaciji s klijentom paketi će se preusmjeravati kroz maliciozno računalo.

Od tog trenutka napadač može pratiti, odbijati, preusmjeravati i manipulirati podacima koji prolaze između klijenta i poslužitelja.

7.       Provođenje penetracijskog testa na bežične mreže

Prije započinjanja penetracijskog testa na bežičnu mrežu važno je razumjeti njene nedostatke i ranjivosti. Standard za bežične mreže, 802.11, razvijen je kao "otvoreni" standard. Drugim riječima, kada je bio pisan primarni cilj je bio ostvariti jednostavan pristup i povezivanje. Sigurnosni mehanizmi imali su sporednu ulogu i bili su u drugom planu. Ukoliko sigurnost nije planirana od samih početaka, teško da će sigurnosna pitanja kroz povijest biti optimalna. Iako danas postoje mnogi mehanizmi zaštite malo je onih koji nude robusno rješenje. Ranjivosti bežičnih mreža mogu se svrstati u dvije grupe [1]:

Problemi loše konfiguracije (engl. poor configuration) najčešći su razlozi ranjivosti vezanih uz bežične mreže. Iz razloga što je infrastrukturu bežične mreže jednostavno postaviti, ona je isto tako u mnogo navrata postavljena bez prethodne sigurnosne konfiguracije ili je sigurnosna zaštita potpuno neadekvatna. Otvorena bežična mreža koja prethodno nije konfigurirana najčešće ne zahtijeva rad za penetracijskog ispitivača. Pristup takvoj mreži moguć je jednostavnom konfiguracijom bežične kartice na način da se spaja na otvorene mreže.

Slična situacija javlja se kada su korištene neadekvatne mjere zaštite (engl. poor encryption). U mnogo navrata administrator tek jednostavno "prikrije" pristupnu točku tako da omogući filtiranje adresa MAC sloja.

Niti jedna od ovih mjera ne pruža stvarnu sigurnost, i obje se jednostavno nadvladaju od strane penetracijskog ispitivača. Čak i u slučaju postavljanja nekog od mehanizama enkripcije penetracijski test još uvijek može biti uspješan zbog mogućih slabosti forme na kojoj funkcionira algoritam enkripcije.

Uspješan penetracijski test moguće je izvoditi s mnogih platforma koristeći različite alate. Bez obzira na operacijski sustav i korištene alate primjenjuju se određeni osnovni principi prilikom penetracijskog testa. Penetracijski test na bežične mreže može se općenito podijeliti u tri faze [1]:

Izvršavanje penetracijskog testa na bežičnu mrežu često je inicijalno uporište za upad u mrežu, odnosno dobra odskočna točka za provođenje penetracijskog testa na internu mrežu organizacije (Slika 7.1).

Slika 7.1 Penetracijski test na bežičnu mrežu kao odskočna točka prema internoj mreži

7.1       Otkrivanje bežične mreže

Mnogi koncepti penetracijskog testa bežičnih mreža isti su kao i oni kod žičnih mreža. Glavna razlika je u tome što kod žičnih mreža penetracijski ispitivač obično posjeduje IP adresu sustava, ili u slučaju da je test interni priključuje se direktno na priključak ciljane mreže. Kod bežičnih penetracijskih testova, organizacije vrlo često zahtijevaju od ispitivača da prije provođenja testa identificira njihovu mrežu te na taj način simulira stvarnog napadača koji ima namjeru provaliti u mrežu organizacije. U nekim navratima ispitivaču se daje i identifikator bežične mreže ili MAC adresa pristupne točke. U tom slučaju identifikacija je prilično jednostavna dok je s druge strane zahtjev za identificiranjem mreže bez prethodnog znanja daleko teži.

Otkad su bežične mreže postale raširene, kako u poslovnim organizacijama tako i u kućnoj upotrebi, otkrivanje ciljane mreže može predstavljati problem. Taj problem je posebno očit ako ime identifikatora mreže ne određuje pobliže ciljanu organizaciju ili pak su pristupne točke ciljne mreže postavljene tako da ne odašilju pakete kroz koje je moguće otkriti njen identifikator.

Jedan od načina kako je moguće povećati izglede identificiranja ciljane mreže u takvom slučaju je korištenjem javno dostupnih informacija. Postavljanje upita raznim tražilicama, praćenje foruma, grupa, itd. može biti izvor mnogih informacija o organizaciji. Takve informacijama ispitivač može iskoristiti uspoređujući ih primjerice s imenima projekata, ureda, pojedinačnih imena ili bilo kojom drugom poznatom informacijom kako bi identificirao ciljanu mrežu. Čest je slučaj da je identifikator mreže usko vezan uz značenje organizacije, iako organizacija nije striktno dala mreži ime koje je uvjerljivo identificira.

Drugi način identifikacije bežične mreže je lociranje pristupne točke korištenjem GPS uređaja (engl. global positioning system). Pomoću GPS uređaja penetracijski ispitivač može dobiti precizne koordinate lokacije pristupne točke, te na temelju tih podataka generirati mapu iz koje jasno može vidjeti koje pristupne točke pripadaju ciljanoj organizaciji. Mape generirane na ovaj način vrlo su korisne kako za preciznu identifikaciju lokacije pristupne točke tako i njenog dosega, područja pokrivanja signalom. Takva informacija također daje ispitivaču uvid o tome koliko daleko može biti od same pristupne točke, a da joj još uvijek može pristupiti.

Još jedna metoda koju je moguće primijeniti za identificiranje mreže je stupiti u prostore organizacije te izmjeriti jačinu signala. Poželjno je da ta radnja bude prikrivena te je stoga potreban dobar ručni bežični uređaj.

Bez obzira na metodu koju penetracijski ispitivač odabire za identificiranje cilja važno je prije samog provođenja penetracijskog testa valjano potvrditi da je ciljana mreža ispravno identificirana.

Neki od poznatijih alata za otkrivanje bežičnih mreža jesu Kismet, Netstumbler i Kismac.

7.2       Utvrđivanje razine zaštite

Postoji četiri osnovna tipa zaštite s kojima bi penetracijski ispitivač morao biti pobliže upoznat:

Ovisno o tipu zaštite koja se koristi varirat će i metoda napada te alata koji će se koristiti za provođenje penetracijskog testa.

7.2.1       WEP

WEP je bio prvi enkripcijski standard raspoloživ za bežične mreže. WEP se može podijeliti u dva nivoa jačine zaštite: 64 bitni i 128 bitni [5]. 64 bitni WEP se sastoji od 40 bitnog tajnog ključa i 24 bitnog inicijalizacijskog vektora te se stoga još spominje kao "40-bitni WEP". 128 bitni WEP koristi 104 bitni tajni ključ i 24 bitni inicijalizacijski vektor, a poznat je i kao "104 bitni WEP". Veza na WEP zaštićenu bežičnu mrežu može se ostvariti pomoću lozinke, koja je zapisana kao ASCII ili heksadekadski ključ. Implementacija RC4 algoritma kod WEP enkripcije pokazala se ranjivom, te kao takva omogućuje napadaču probijanje ključa i kompromitiranje s WEP zaštićenom bežičnom mrežom.

7.2.2       WPA/WPA2

WPA je razvijen kako bi zamijenio WEP enkripciju [3]. Može se primijeniti korištenjem WPA-PSK (engl. wi-fi protected access with pre shared key) ili pak se povezati s poslužiteljem za autentifikaciju, WPA-RADIUS (engl .wi-fi protected access with remote authentication dial-in user service). WPA koristi ili protokol privremenog ključa, TKIP (engl. temporal key integrity protocol) ili pak napredni enkripcijski standard, AES (engl. advanced encryption standard). Također su otkrivene ranjivosti sa određenim implementacijama WPA-PSK. Iz tog razloga, te s namjerom da se pojača sigurnost, razvijen je WPA2. Osnovna razlika između WPA i WPA2 je u tome što WPA2 zahtjeva korištenje oba protokola, protokol privremenog ključa te naprednog enkripcijskog protokola, dok WPA dozvoljava korisniku da odluči koji će koristiti. WPA i WPA2 zahtjevaju korištenje autentifikacijskog dijela uz enkripcijski dio. U te svrhe koristi se oblik EAP autentifikacije. Postoji pet različitih tipova EAP autentifikacija koje se koriste u WPA i WPA2 zaštiti:

7.2.3       EAP

EAP se ne mora nužno koristiti povezano s WPA enkripcijom već može biti samostalni mehanizam zaštite. Postoji tri dodatna tipa EAP zaštite koja se mogu koristiti za bežične mreže:

Iako EAP nije tehnički enkripcijski standard važno ga je spomenuti zbog ranjivosti vezanih uz LEAP zaštitu.

7.2.4       VPN

VPN, virtualna privatna mreža, koristi javnu infrastrukturu i osigurava privatnost korištenjem kriptiranog tunela. Mnoge organizacije često koriste VPN vezano s bežičnim mrežama na način da ne dozvoljavaju pristup internim ili eksternim resursima preko bežične mreže sve dok nije uspostavljen VPN tunel. Ispravno konfiguriran i primijenjen VPN ima efektivno značenje na području sigurnosti bežičnih mreža. Nažalost, u nekim situacijama, kao primjerice u slučaju ranjivosti VPN aplikacije, korištenje VPN-a može dovesti u situaciju da omogući napadaču zaobilaženje sigurnosnog mehanizam VPN-a.

7.3       Napad na bežičnu mrežu

Ukoliko je ciljana bežična mreža nezaštićena, izvršiti napad je vrlo jednostavno. Potrebno je samo ispravno konfigurirati bežičnu karticu da se povezuje na ciljanu pristupnu točku. No, mogućnost ovakvog napada postaje sve rjeđa. Mnogo češće penetracijski ispitivač morat će izvršiti napad na neki od sigurnosnih mehanizama koji štite ciljanu bežičnu mrežu.

Iako postoji nekoliko različitih sigurnosnih mehanizama, postoje također i načini kako ih napasti. Također je raspoloživ i čitav niz alata za automatizaciju takvih napada. Da bi penetracijski ispitivač bio uspješan u pothvatu napada važno je ne samo razumjeti alate, već i same mehanizme zaštite i postupak na kojem se napad temelji. Postoji četiri osnovna tipa napada na zaštitne mehanizme bežične mreže [1]:

7.3.1       Napad na WEP

Postoje dva osnovna tipa napada na bežične mreže zaštićene WEP enkripcijom:

FMS napad dobio je ime prema inicijalima prezimena začetnika ove metode; Scott Fluhrer, Itsik Mantin i Adi Shamir. Bazira se na ranjivosti WEP implementacije RC4 enkripcijskog algoritma. Za uspješnost ovog napada potrebno je prikupiti značajan broj paketa da bi pronašli ranjive inicijalizacijske vektore. Jednom kad je prikupljeno dovoljno ranjivih inicijalizacijskih vektora, WEP ključ koji se koristi moguće je probiti pomoću raznih besplatnih alata kao što su AirSnort i WEPCrack. Poradi toga, mnogi proizvođači pristupnih točaka objavljuju razne zakrpe upravljačke programske podrške (engl. firmware) takvih uređaja koje smanjuju ili eliminiraju transmisiju ranjivih inicijalizacijskih vektora.

Prikupljanje ranjivih inicijalizacijskih vektora nije jedini način napada na WEP. Postoji također druga metoda, metoda odsijecanja, koja je efektivnija u probijanju WEP ključa. Ova metoda eliminira potrebu za ranjivim inicijalizacijskim vektorima, no također zahtijeva prikupljanje velikog broja kriptiranih paketa. Ona odsijeca posljednji bajt paketa te njegovom manipulacijom omogućuje utvrđivanje WEP ključa prikupljajući jedinstvene inicijalizacijske vektore.

7.3.2       Napad na WPA

WPA kriptirane bežične mreže pružaju viši nivo sigurnosti od WEP kriptiranih mreža. Unatoč tome, neke implementacije WPA enkripcije mogu se probiti. Postoje dva osnovna tipa WPA enkripcije:

WPA-RADIUS koristi u pozadini RADIUS poslužitelj i općenito se može reći da je siguran. Za razliku od toga WPA-PSK može se probiti korištenjem napada pomoću rječnika. U ovom napadu prethodno je potrebno prikupiti podatke koji se razmjenjuju prilikom autentifikacije korisnika. Penetracijski ispitivač može čekati na legitimnu autentifikaciju ili pak može prisiljavati ponovno spajanje klijenta odašiljanjem odgovarajućih paketa na mrežu. Kod ponovne autentifikacije odašilju se odgovarajući paketi za autorizaciju putem EAPOL protokola (engl. Extensible Authentication Protocol Over LAN). Kada penetracijski ispitivač dohvati takve koristi prisilnu metodu probijanja ključa korištenjem rječnika. Ova metoda uspijeva u slučaju kada je ključ pohranjen u rječniku što povlači potrebu posjedovanja obilnog kvalitetnog rječnika. CoWPAtty je alat koji se koristi za ovakav napad.

7.3.3       Napad na LEAP

LEAP je Cisco-v odgovor na sigurnost bežičnih mreža, a proizlazi iz ranjivosti WEP enkripcije. Iz razloga što mu je mana slična mani WPA enkripcije (ranjivost na napad pomoću rječnika), ovaj način zaštite nije široko primijenjen. Napad na LEAP enkripciju je također automatiziran pomoću nekolicine besplatnih alata, kao što je Asleap.

7.3.4       Napad na VPN

Odgovor na sigurnosne probleme koje donose bežične mreže javlja se kao zahtjev korisnika da koristi virtualnu privatnu mrežu kada pristupa internoj mreži. Napad na ovako koncipiranu bežičnu mrežu moguć je u slučaju kada je korištena VPN aplikacija ranjiva.

Bežične mreže koje koriste VPN najčešće imaju otvoren pristup bežičnoj mreži, te svoju sigurnost baziraju tek na VPN tehnologiji. Na bežičnu mrežu većinom se spajaju prijenosna računala. Zbog njihove mobilne prirode takva računala često su podložna "preskočiti" instaliranje tipičnih cikličnih zakrpa koje s druge strane posjeduju stolna računala. Ukoliko je bežična mreža na koju su spojene takva računala postavljena bez sigurnosne zaštite, penetracijski ispitivač može iskoristiti ovu prednost na način da se spoji na mrežu te pronađe ranjivo računalo. Na takvo računalo može postaviti programe koji će mu omogućiti praćenje rada klijenta. Tako može prikupiti potrebne informacije za pristup VPN mreži, a ujedno i internoj mreži organizacije.

8.       Kismet alat

Kismet je alat otvorenog koda koji se obično koristi u početnoj fazi provođenja penetracijskog testa na bežične mreže [13]. Prvenstveno je namijenjen za detekciju pristupnih točaka te prikupljanje raznih informacija o pristupnim točkama. To su informacije poput identifikatora mreže, jačine signala, korištene zaštite, pa čak i informacije o klijentima spojenim na dotičnu pristupnu točku. Kismet također pohranjuje obilan opseg dnevničkih datoteka (engl. log files) koje ge čine vrlo atraktivnim. Za razliku od nekih drugih alata, Kismet ne samo da detektira pristupne točke, već pohranjuje kompletni zapis svih uhvaćenih paketa. Takvi zapisi mogu se naknadno iskoristiti pomoću drugih alata (Ethereal, Wireshark) za daljnju analizu i provođenje penetracijskog testa.

Jedna od najvećih prednosti je mogućnost rada u nadglednom načinu (engl. monitor mode) što omogućava pasivno istraživanje i detekciju bežičnih mreža koje ne odašilju svoj identifikator. Za razliku od aktivnog istraživanja, pasivno ne odašilje nikakav signal. Umjesto toga pasivni programi osluškuju radio frekvenciju za bilo koji bežični promet koji je u dosegu signala bežične kartice. Ova prednost čini ga aktualnijim od njegovih konkurenata kao primjerice NetStumbler alatom za Windowse.

8.1       Konfiguriranje Kismet alata

Uz pretpostavku da je Kismet alat uspješno instaliran potrebno je podesiti njegovu konfiguraciju kroz dvije konfiguracijske datoteke:

Uobičajeno se te datoteke kod većine Linux distribucija nalaze u /etc/kismet kazalu.

8.1.1       Konfiguracijska datoteka kismet_ui.conf

Datoteka kismet_ui.conf sadrži opcije o korisničkom sučelju Kismet alata. Za većinu stvari dovoljno je ostaviti već predefinirane parametre; osim ukoliko se želi izmijeniti izgled korisničkog sučelja. Prilikom pokretanja Kismet alata obično se pojavljuje pozdravna poruka (Slika 8.1).

Slika 8.1 Pozdravna poruka

Njezino pojavljivanje moguće je isključiti u kismet_ui.conf datoteci, postavljanjem parametra varijable showintro u false.

# Do we show the intro window?

showintro=false

U ovoj datoteci također se može promijeniti čitav niz drugih parametara kao što su boja sučelja, zvučna upozorenja, količina prikazanih informacija itd.

8.1.2       Konfiguracijska datoteka kismet.conf

Datoteka kismet.conf je konfiguracijska datoteka koja sadrži važne konfiguracijske parametre kao što su parametri potrebni za ispravnu komunikaciju Kismet alata i bežične kartice, komunikaciju s GPS uređajem, postavljanja privilegija rada, korištenja određenih kanala, generiranja dnevničkih datoteka itd.

Kako bi Kismet ispravno funkcionirao, prije prvog pokretanja potrebno je urediti ovu datoteku i ispravno postaviti informacije o okolini i sklopovlju.

Za sigurniji rad Kismet alata potrebno je izmijeniti suiduser varijablu. Ova varijabla definira korisnika pod čijim privilegijama će Kismet raditi nakon što "prebaci" bežičnu karticu u nadgledni način rada.

# User to setid to (should be your normal user)

suiduser=roamer

Zatim je potrebno postaviti source varijablu. To je varijabla koja definira koji tip pokretačkog programa (engl. driver) i kartice sustav koristi, kao i sučelje na kojem je postavljena kartica. Sljedeći primjer definira izvor koji koristi HostAP pokretački program, karticu konfiguriranu na sučelju wlan0. Treći parametar varijable source, može biti postavljen na bilo koju vrijednost. To je obično ime koje identificira taj izvor, primjerice wlan.

source=hostap,wlan0,wlan

Ovdje je nekoliko uobičajenih primjera izvora za različite bežične kartice i pokretačke programe:

# Source line for Intel Pro Wireless 2200

source=ipw2200,eth0,ipw2200source

# Source line for wlan-ng Prism2 driver

source=prism2,wlan0,prism

# Source line for Cisco (dependent on Cisco driver used)

source=cisco,eth0,cisco

# Alternate Source line for Cisco (dependent on Cisco driver used)

source=cisco_cvs,eth1:wifi0,ciscocvs

# Source line for Hermes based cards (Orinoco)

source=orinoco,eth0,orinocosource

Kismet također nudi mogućnost korištenja više izvora paralelno. Sve dok se koristi jedan izvor nije potrebno mijenjati postavke varijable enablesources koja je predefinirano pod znakom komentara. Tek u slučaju korištenja više izvora potrebno je obrisati znak komentara ispred dotične varijable te navesti listu izvora koju će Kismet koristiti.

Kismet predefinirano "skače" kroz kanale. To omogućuje Kismet alatu da pronalazi pristupne točke koje rade na različitim kanalima pojasa bežične mreže, te se kontrolira putem varijable channelhop. Sve dok nije potrebna detekcija pristupnih točaka na samo određenom kanalu potrebno je postaviti ovu varijablu u true.

# Do we channelhop

channelhop=true

Tek ukoliko je poželjno da se detekcija obavlja na jednom kanalu treba postaviti varijablu channelhop u flase te postaviti parametar inicijalnog kanala u soruce varijabli. Primjerice kako bi se detektirale pristupne točke na kanalu 8:

source=hostap,wlan0,wlan,8

channelhop=false

Sljedeći varijabla koju je moguće podešavati je brzina kanala. Ona određuje kroz koliko kanala će Kismet prolaziti unutar jedne sekunde. Predefinirano je postavljena na tri kanala po sekundi što je u većini slučajeva prihvatljivo. Da bi se povećala brzina kojom Kismet skače kroz kanale potrebno je povećati ovaj broj, odnosno smanjiti u slučaju da se želi usporiti brzina skakanja. Potrebno je imati na umu da je skakanjem kroz kanale moguć gubitak nekih podataka koji prolaze bežičnom mrežom.

# How many channels per second do we hop? (1-10)

# The following option scans each channel for 1/5 of a second

# channelvelocity=5

# The following option scans each channel for 1/2 of a second

channelvelocity=2

Kismet također nudi mogućnost povezivanja s GPS uređajem za dohvaćanje koordinata položaja pristupnih točaka. Postavke za korištenje GPS-a namještaju se pomoću varijabla gps i gpshost. Ukoliko je GPS aktiviran potrebno je gps varijablu postaviti u true. Varijabla gpshost određuje da li je GPSd pozadinski proces (engl. daemon) pokrenut na lokalnom ili nekom udaljenom računalu.

# Do we have a GPS?

gps=true

# Host:port that GPSD is running on. This can be localhost OR remote!

gpshost=localhost:2947

Sljedeća opcija koju vrijedi pogledati je interval u kojem se zapisuju detektirane informacije u dnevničke datoteke. Parametar ove varijable je predefinirano postavljen na pet minuta. Iz razloga što je moguće da sustav ili aplikacija padnu preporučeno je smanjiti ovaj parametar na približno jednu minutu.

# How often (in seconds) do we write all our data files

# (0 to disable)

writeinterval=60

Kismet generira vrlo opsežan set dnevničkih datoteka (Tablica 8.1).

Tablica 8.1 Kismet dnevničke datoteke

Dump

"Sirovi" format uhvaćenih podataka koji se mogu pregledati pomoću Ethereal alata ili drugih alata za analizu paketa.

Network

Tekstualna datoteka koja sadrži popis detektiranih pristupnih točaka i informacija o njima.

CSV

Zarezom odvojen popis detektiranih pristupnih točaka i informacija o njima.

XML

Detektirane mreže zapisane u XML formatu. Ovakav dnevnički zapis koristan je za uključivanje ovih zapisa unutar drugih aplikacija.

Weak

Detektirani paketi ranjivog inicijalizacijskog vektora (IV) zapisani u formatu pogodnom za daljnju analizu pomoću AirSnort alata.

Cisco

Dnevnički zapis detektiranih informacija Cisco protokola kojeg odašilju Cisco uređaji.

GPS

Dnevnički zapis GPS koordinata detektiranih pristupnih točaka.

Varijabla logtype određuje koje će sve dnevničke zapise Kismet generirati. Predefinirana opcija je prihvatljiva (dump, network, csv, xml, weak, cisco, i gps); iako ponekad nisu potrebni svi ti zapisi. Minimalna osnova koju je potrebno osigurati u većini slučajeva je obično dump, network i gps zapisi.

logtypes=dump,network,gps

Varijabla logdefault specificira tekst koji dolazi kao prefiks imena datoteke dnevničkog zapisa. Kismet zapisuje datoteke u formatu [logdefault]-[date]-[sequence-number].[filetype]. Primjerice ako je logdefault varijabla postavljena na Roamer, tada će gps dnevnički zapis treće sesije određenog dana biti imenovan kao Roamer-Oct-14-2007-3.gps. Ova opcija može biti korisna u slučaju sortiranja rezultata ukoliko se pretražuje više područja istog dana.

# Default log title

logdefault=MyCustomer

Još jedna varijabla koju je moguće mijenjati kroz kismet.conf datoteku je logtemplate. Ovom varijablom se kontrolira lokacija na koju se zapisuju dnevničke datoteke te njihov format. Uobičajeno unutar /var/log/kismet/ kazala.

 Ukoliko se ne učine promjene nad ovom varijablom, dnevnički zapis će biti kreiran na predefiniran način, sa predefiniranim naslovom, unutar kazala gdje je Kismet pokrenut. Postoji sedam parametara koji su povezani s varijablom logtemplate (Tablica 8.2).

Tablica 8.2 Parametri varijable logtemplate

%n

Teks postavljen u varijabli logdefault.

%d

Trenutni datum u formatu Mjesec-Dan-Godina (Mj-DD-GGGG).

%D

Trenutni datum u formatu GGGGMMDD.

%t

Vrijeme kad je dnevnički zapis pokrenut.

%i

Inkrementalni broj dnevničkog zapisa (npr. 1 za prvi zapis u danu, 2 za drugi, itd.).

%l

Tip dnevničkog zapisa.

%h

Putanja korisničkog kazala.

Primjerice, ako je potrebno dnevničke zapise zapisivati u različita kazala prema tipu zapisa, te ih smjestiti unutar kazala PenTest potrebno je postaviti varijablu logtemplate na sljedeći način:

logtemplate=PenTest/%l/%n-%d-%i

Uz pretpostavku da je varijabla logtypes postavljena na dump, network i gps treba također kreirati kazalo PenTest s tri podkazala: dump, network i gps.

8.2       Pokretanje Kismet alata

Pretpostavljajući da je Kismet postavljen u putanji operacijskog sustava (engl. path), alat se pokreće jednostavnim upisivanjem kismet u komandnoj liniji. Može se dogoditi da prilikom pokretanja ne uspije postavljanje identifikacijske datoteke procesa (engl. pidfile), ukoliko aplikaciju pokreće obični korisnik (Slika 8.2). Razlog tome je što obični korisnik najčešće nema prava pisanja u kazalo /var/run.

Slika 8.2 Neuspješno pokrenut Kismet alat

Postoje dva načina za rješenje tog problema tj. za uspješno pokretanje alata (Slika 8.3). Jedan od načina je promjenom lokacije zapisivanja identifikacijske datoteke u kismet.conf datoteci.

# Where do we store the pid file of the server?

piddir=/home/roamer

Ukoliko pak je prilikom konfiguriranja Kismet alata postavljena suiduser varijabla u kismet.conf datoteci jednostavnije je pokrenuti Kismet alat kao root korisnik. To je korisnik koji ima sve dozvole kao i dozvolu za zapisivanje identifikacijske datoteke. Nakon pokretanja Kismet će prebaciti privilegije na korisnika definiranog suiduser varijablom, te na taj način izbjeći potencijalne sigurnosne propuste rada aplikacije pod root ovlastima.

Slika 8.3 Uspješno pokrenut Kismet alat

8.3       Korištenje sučelja Kismet alata

Pored mogućnosti identificiranja pristupnih točaka, Kismet ima i vrlo moćno korisničko sučelje. Kroz takvo sučelje dostupna je velika količina informacija o svakoj pristupnoj točki koja je identificirana. Neposredno je raspoloživa informacija o identifikatoru bežične mreže kao i neke druge uobičajene informacije poput  tipa mreže, tipa enkripcije, kanala pristupne točke itd. Žele li se dobiti detaljnije dostupne informacije o otkrivenoj bežičnoj mreži potrebno se pobliže upoznati s ostalim opcijama koje nudi Kismet sučelje.

8.3.1       Mogućnosti Kismet alata

8.3.1.1       Sortiranje

Jedna od vrlo korisnih opcija je opcija sortiranja. Standardno je Kismet postavljen u automatski način sortiranja. Nažalost u tom načinu sortiranja ne može se dobiti mnogo informacija o različitim pristupnim točkama. Kako bi se promijenio način sortiranja, potrebno je pritisnuti tipku "s" nakon čega će se pojaviti izbornik s mogućim načinima sortiranja (Slika 8.4).

Slika 8.4 Opcije sortiranja Kismet alata

Postoji četrnaest različitih načina za odabir koji se koriste zavisno o potrebama ispitivanja. Primjerice, ukoliko su ispitivaču potrebne informacije o pristupnim točkama specifičnog identifikacijskog imena, potrebno je odabrati opciju s kako bi se pristupne točke sortirale prema identifikatoru.

8.3.1.2       Informacije o pristupnoj točki

Jednom kad je odabrana metoda sortiranja, može se početi s daljnjim ispitivanjima dodatnih informacija o pojedinoj mreži. Za dodatne informacije potrebno se postaviti na zapis željene pristupne točke (korištenjem navigacijskih strelica) te pritisnuti tipku "enter" (Slika 8.5).

Slika 8.5 Detalji o odabranoj bežičnoj mreži

Takav odabir ponudit će mnoge dodatne informacije. Osim klasičnog identifikatora (SSID) dostupna je primjerice i informacija o MAC adresi pristupne točke (osnovni identifikator, BSSID). Na temelju maksimalne brzine prijenosa koja u ovom primjeru iznosi 54.0 dostupan je i podatak da se radi o 802.11g pristupnoj točki. U nekim slučajevima Kismet će otkriti i tip proizvođača pristupne točke. Također je zabilježeno i vrijeme kada je pristupna točka viđena, kanal na kojem radi kao i broj aktivnih klijenata. Kroz ovaj pogled dostupna je i informacija o načinu rada pristupne točke. Uz još mnoge druge informacije koje Kismet nudi važno je također spomenuti da Kismet detektira i tip zaštite koju koriste pristupne točke što je i većim djelom najkorisnija informacija za penetracijskog ispitivača. Kako bi se vratili u glavni pogled potrebno je pritisnuti tipku "q" za izlaz.

8.3.1.3       Lista klijenata pristupne točke

Korisna informacija koju također možemo dobiti pomoću Kismet alata je popis klijenata koji su spojenih na pristupnu točku. Do takve informacije dolazi se selektiranjem određene pristupne točke te pritiskom tipke "c" (Slika 8.6).

Slika 8.6 Lista klijenata spojenih na odabranu pristupnu točku

U pogledu liste klijenata dostupna je informacija o MAC adresi svakog klijenta, a u određenim slučajevima također je moguće dobiti informaciju o tipu kartice koju dotični klijent koristi. Identificira se i broj paketa koje je Kismet uhvatio i broju paketa koji su kriptirani. Kismet ima i mogućnost identificiranja IP adrese klijenata i snage njihovog signala. Povratak u glavni pogled također se obavlja pritiskom tipke "q".

8.3.1.4       Zaključavanje kanala

Ponekad je korisno prikupljati informacije o pristupnoj točki samo na određenom kanalu. Kako bi onemogućili skakanje na druge kanale i prikupljali podatke na samo jednom kanalu potrebno je odabrati željenu pristupnu točku te pritisnuti kombinaciju tipaka Shift + L (Slika 8.7). Na taj način prikupljat će se samo podaci na kanalu odabrane pristupne točke. Za povratak potrebno je pritisnuti kombinaciju tipaka Shift + H.

Slika 8.7 Prikupljanje podataka s određenog kanala

8.3.1.5       Sustav pomoći

Kismet također ima i robustan sustav pomoći. Tako su dodatne informacije o svakoj opciji dostupne pritiskom tipke "h" (Slika 8.8).

Slika 8.8 Sustav pomoći Kismet alata

9.       Otkrivanje lokacije pristupne točke korištenjem GPS uređaja

Prvi korak penetracijskog testa na bežičnu mrežu je otkrivanje ciljane pristupne točke, odnosno njeno ispravno identificiranje i lociranje. Otkad su bežične mreže postale raširene, otkrivanje ciljane mreže može predstavljati problem. Taj problem je posebno očit ukoliko ime identifikatora mreže ne određuje pobliže ciljanu organizaciju. Uz ove činjenice, kod bežičnih penetracijskih testova, organizacije također vrlo često zahtijevaju da ispitivač prije provođenja testa identificira njihovu mrežu bez prethodnog znanja.

Kroz ovaj praktični primjer biti će demonstrirano lociranje pristupnih točaka korištenjem GPS uređaja. Ova metoda češće je poznata kao pokretni rat (engl. wardriving).

Pokretni rat je čin kretanja specifičnim lokacijskim područjem te mapiranja populacije bežičnih pristupnih točaka u statističke svrhe. Te statistike su zatim korištene za podizanje svijesti o mogućim sigurnosnim problemima vezanih uz bežičnu mrežu dotičnog lokacijskog područja. Za penetracijskog ispitivača ova metoda koristi se u svrhe ispravnog lociranja ciljane pristupne točke.

U ovom primjeru biti će konkretno demonstrirano lociranje nekoliko pristupnih točaka Fakulteta elektrotehnike i računarstva u Zagrebu. Za sam scenarij od sklopovlja se koristi prijenosno računalo, bežična kartica s vanjskom antenom, te uređaj za GPS komunikaciju spojen preko USB sučelja. Korišten je Linux operacijski sustav, a od programskih alata Kismet alat za detekciju bežičnih mreža i prikupljanje podataka, GPSd pozadinski proces za komunikaciju s GPS uređajem, te GPSMap alat za iscrtavanje mapa lociranih pristupnih točaka.

Uz pretpostavku da je sklopovlje korektno povezano te da je programska podrška ispravno instalirana proces otkrivanja lokacije može se podijeliti u nekoliko koraka:

9.1       Pokretanje GPSd pozadinskog procesa

Prvi korak u procesu otkrivanja lokacije pristupne točke je pokretanje GPSd pozadinskog procesa. GPSd pozadinski proces služi za prikupljanje podataka s GPS uređaja te njihovo prevođenje u jednostavniji format koji dalje mogu koristiti drugi programi, u ovom slučaju Kismet. GPSd predefinirano poslužuje podatke putem TCP protokola na vratima 2947. Pokretanje GPSd pozadinskog procesa gdje je GPS uređaj spojen putem USB sučelja obavlja se naredbom:

# gpsd –p /dev/ttyUSBx

9.2       Prikupljanje informacija korištenjem Kismet alata

Nakon što je GPSd uspješno pokrenut, potrebno je izvršiti konfiguriranje Kismet alata kako bi ispravno komunicirao s GPSd procesom te locirao pristupne točke. Unutar kismet.conf datoteke postaviti parametar gps varijable kao true, te varijablu gpshost kao localhost:2947. Time je aktivirana komunikacija Kismet alata s GPS uređajem, te je definirano da GPSd pozadinski proces poslužuje podatke na lokalnom računalu na vratima 2947.

# Do we have a GPS?

gps=true

# Host:port that GPSD is running on. This can be localhost OR remote!

gpshost=localhost:2947

Tek nakon konfiguriranja Kismet alata slijedi njegovo pokretanje. Kismet alat pokreće se jednostavnom naredbom:

# kismet

Kada se Kismet ispravno pokrene (Slika 9.1) potrebno je nekoliko puta kružno obići ciljano područje (Slika 9.2), kako bi Kismet registrirao ispravne podatke o jačini signala otkrivenih pristupnih točaka kao i što preciznije koordinate putem GPS uređaja.

Slika 9.1 Kismet alat u kombinaciji s GPS-om

Slika 9.2 Kružno obilaženje ciljanog područja

Rezultate dnevničkih zapisa prikupljenih podataka Kismet pohranjuje u kazalo definirano logtemplate varijablom unutar kismet.conf datoteke. Uobičajeno je to kazalo /var/log/kismet/. Dnevnička datoteka korisna za ovaj scenarij je datoteka ekstenzije gps koja sadrži XML format zapisa koordinata otkrivenih pristupnih točaka (Slika 9.3). U ovom slučaju to je datoteka Kismet-Jun-20-2007-1.gps.

Slika 9.3 Primjer zapisa dnevničke GPS datoteke

Podaci te datoteke dalje se prosljeđuju GPSmap alatu koji na temelju njih crta locirane pristupne točke na mapu.

9.3       Crtanje mape korištenjem GPSMap alata

GPSmap je program koji se koristi za grafički prikaz lociranih pristupnih točaka na mapi. Dolazi u paketu zajedno s Kismet alatom te omogućuje kreiranje velikog broja različitih mapa i njihovih tipova. Mape generira na temelju podataka prikupljenih u "pokretnom ratu" pomoću Kismet alata. Za ove potrebe to su podaci datoteke Kismet-Jun-20-2007-1.gps. Radi jednostavnosti i preglednosti mape prikazano je samo nekoliko lociranih pristupnih točaka (Slika 9.4). Također je važno napomenuti da zbog nesavršenosti opreme kao i same situacije (neravnomjerno širenje signala pristupne točke kroz različite zapreke) lokacije pristupnih točaka nisu posve precizne. S druge strane dovoljno su dobre da bi se povezala pripadnost locirane pristupne točke ciljanoj organizaciji, u ovom slučaju Fakultetu elektrotehnike i računarstva u Zagrebu.

Slika 9.4 Prikaz lociranih pristupnih točaka

Ovo je tek početni korak penetracijskog testa na bežične mreže. Vrlo je važan jer daje dovoljno precizan uvid u lokaciju ciljane pristupne točke. Ovo je također i nužan korak jer temeljem ispravne lokacije pristupne točke ovisi daljnja uspješnost provođenja penetracijskog testa.

10. Zaključak

Zahvaljujući stalnom razvoju, informacijske tehnologije danas rješavaju najrazličitije zadatke, od automatizacije složenih procesa do svakodnevne upotrebe u najširem krugu korisnika. Svaki sustav podložan je programerskim pogreškama, a većina takvih grešaka ima kritične posljedice. Motivirani napadači veoma lako pronalaze takve propuste i jednako lako ih iskorištavaju.

Danas, jedna od najpopularnijih i najbrže rastućih tehnologija na tržištu je tehnologija bežičnih mreža. Bežične mreže susrećemo gotovo svugdje, bilo u kućnoj upotrebi ili  pak unutar neke organizacije ili kompanije. Ljudi su željni iskoristiti jednostavnost i praktičnost koju pružaju bežične mreže. Međutim, iako su bežične mreže praktičnije od žičnih,  čest slučaj je da se bežična mreža postavlja bez adekvatne sigurnosne zaštite. Od samih početaka bežična mreža susreće se s mnogim problemima i prijetnjama.  Poznati su mnogi tipovi napada koje je vrlo teško, pa čak i nemoguće izvesti na klasičnim žičnim mrežama. Medij bežične mreže je zrak te je dostupnost mreži ograničena dosegom signala. Napadač ima više slobode i manja je vjerojatnost da bude uhvaćen pri pokušaju iskorištavanja mreže.

Propusti li se pravovremeno prepoznavanje i otklanjanje bilo neispravne konfiguracije ili propusta u zaštiti, izlaže se velikim rizicima. Posljedice takvih propusta kreću se od negativnog publiciteta, preko prekida dostupnosti servisa pa do sofisticiranih krađa podataka. Godišnje se registrira nekoliko tisuća programskih ranjivosti na komercijalnim ili javno dostupnim programskim paketima, a ako se tome pribroje mnoge konfiguracijske pogreške koje se nalaze na istim resursima, onda održavanje tehničke ispravnosti postaje veoma zahtjevan proces.

Otkrivanje ranjivosti je prvi korak u ovom procesu. Svi sigurnosni standardi i brojni dokumenti o dobroj brizi o računalnim resursima najozbiljnije preporučuju redovitu provjeru sigurnosti računalnih resursa kako bi se na vrijeme prepoznale i otklonile ranjivosti ovih resursa.

Iako postoje razni načini kako zaštititi sustav i aplikacije, jedan od načina koji nam daje  uvid u sigurnost sustava je provođenje penetracijskog testa. Provođenjem penetracijskog testa repliciraju se tipovi akcija koje bi poduzeo zlonamjerni napadač dajući nam time precizniju reprezentaciju u sigurnosno stanje sustava. Razvijene su robusne metode testiranja u stvarnom vremenu i kvalitetni alati koji pružaju visoku kvalitetnost i povjerljivost u rezultate testiranja.

Potrebno je imati na umu da penetracijski test ne traje za uvijek. Penetracijski test je samo pogled na stanje sigurnosti sustava u određenom trenutku vremena. Trenutno poznati sigurnosni propusti, ranjivosti ili neadekvatna konfiguracija prisutna u sustava neće biti otklonjeni sve do vremenskog trenutka provođenja penetracijskog testa. Činjenica je da velik broj organizacija prakticira provođenje penetracijskih testova povremeno, jednom ili dvaput godišnje. To je svakako korisna praksa, no dinamika pojavljivanja ranjivosti je takva da se odgovorna organizacija ne može osloniti na takvu prorijeđenu dinamiku testova.

Otkrivanje ranjivosti mora postati redoviti, mjesečni ili tjedni, a ponekad i učestaliji zadatak, kako bi zadržali sigurnost sustava na visokom nivou i time spriječili neželjene posljedice.

11. Literatura

[1]        Hurley, C.; Rogers, R.; Thornton, F.; Connelly, D.; Baker, B. WarDriving and Wireless Penetration Testing. Rockland : Syngress Publishing, Inc., 2007.

[2]        Cross, M.; Johnson, N. L.; Piltzecker, T. Security+. Rockland : Syngress Publishing, Inc., 2003.

[3]        Pastore, M. Security+. Alameda : SYBEX, Inc., 2003.

[4]        Tiller, S. J. The Ethical Hack : A Framework for Business Value Penetration Testing. Auerbach Publications, 2003.

[5]        Whitaker, A.; Newman, D. P. Penetration Testing and Network Defense. Indianapolis : Cisco Press, 2006.

[6]        Bradley, T. Essential Computer Security. Rockland : Syngress Publishing, Inc., 2006.

[7]        Potter, B.; Fleck, B. 802.11 Security. O'reilly Media, Inc., 2002.

[8]        Managing WLAN Risks with Vulnerability Assessment. AirMagnet, Inc., 2005.

[9]        A Penetration Testing Model. Federal Office for Information Security.

URL: http://www.bsi.bund.de/english/publications/studies/penetration.pdf. (13.01.2007).

[10]    Saindane, M. S. Penetration testing – A Systematic Approach. Infosec Writers.

URL: http://www.infosecwriters.com/text_resources/pdf/PenTest_MSaindane.pdf. (09.01.2007).

[11]    Northcutt, S.; Shenk, J.; Shackleford, D.; Rosenberg, T.; Siles, R.; Manchini, S. Penetration Testing :  Assessing Your Overall Security Before Attackers Do.
SANS Institute.

URL: http://www.sans.org/reading_room/analysts_program/PenetrationTesting_June06.pdf. (25.1.2007).

[12]    Tuck Wai, C. Conducting a Penetration Test on an Organization. SANS Institute.

URL: http://www.sans.org/reading_room/whitepapers/auditing/67.php. (20.01.2007).

[13]    Kershaw, M. Kismet 2007-01-R1.

URL: http://www.kismetwireless.net/documentation.shtml. (09.04.2007).