84
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD Br. 4844 ALATI ZA ISPITIVANJE RANJIVOSTI RAČUNALNIH SUSTAVA Konrad Višković Zagreb, lipanj 2017.

ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

SVEUČILIŠTE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

ZAVRŠNI RAD Br. 4844

ALATI ZA ISPITIVANJE RANJIVOSTI

RAČUNALNIH SUSTAVA

Konrad Višković

Zagreb, lipanj 2017.

Page 2: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim
Page 3: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim
Page 4: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

Sadržaj

1. UVOD................................................................................................................................................. 1

2. OSNOVNI POJMOVI RAČUNALNE SIGURNOSTI .................................................................................. 3

2.1. SIGURNOSNI ZAHTJEVI .......................................................................................................................... 3 2.2. VRSTE NAPADA NA SIGURNOST ............................................................................................................... 3 2.3. VRSTE NAPADAČA ................................................................................................................................ 6 2.4. ZLOĆUDNI PROGRAMI ........................................................................................................................... 7 2.5. NAPADI NA INFRASTRUKTURE ................................................................................................................. 8

3. PROCJENA RIZIKA I PRAVNI DOKUMENTI SIGURNOSNE INFRASTRUKTURE U RH ............................. 10

3.1. PROCJENA RIZIKA ............................................................................................................................... 10 3.2. RAČUNALNA SIGURNOST U RH ............................................................................................................. 12

4. PROCES ISPITIVANJA RANJIVOSTI RAČUNALNOG SUSTAVA ............................................................. 17

4.1. ISPITIVANJE RANJIVOSTI ...................................................................................................................... 17 4.2. RAZLOZI PROVOĐENJA ISPITIVANJA RANJIVOSTI ........................................................................................ 18 4.3. KORACI ISPITIVANJA RANJIVOSTI ........................................................................................................... 18 4.4. OGRANIČENJA ISPITIVANJA RANJIVOSTI .................................................................................................. 21

5. RANJIVOSTI SUSTAVA I UZROCI NJIHOVOG NASTANKA ................................................................... 22

5.1. O RANJIVOSTIMA ............................................................................................................................... 22 5.2. VRSTE I UZROCI RANJIVOSTI ................................................................................................................. 24

6. PODJELA ALATA ZA ISPITIVANJE RANJIVOSTI ................................................................................... 34

6.1. ALATI ZA SAKUPLJANJE INFORMACIJA ..................................................................................................... 34 6.2. ALATI ZA ANALIZU RANJIVOSTI .............................................................................................................. 37 6.3. ALATI ZA BEŽIČNE NAPADE ................................................................................................................... 39 6.4. ALATI ZA WEB APLIKACIJE .................................................................................................................... 41 6.5. ALATI ZA ISKORIŠTAVANJE RANJIVOSTI .................................................................................................... 43 6.6. ALATI ZA FORENZIKU .......................................................................................................................... 44 6.7. ALATI ZA STRES ISPITIVANJE ................................................................................................................. 45 6.8. ALATI ZA PRISLUŠKIVANJE I LAŽNO PREDSTAVLJANJE .................................................................................. 45 6.9. ALATI ZA NAPADANJE LOZINKI .............................................................................................................. 47 6.10. ALATI ZA ZADRŽAVANJE PRISTUPA ......................................................................................................... 48 6.11. ALATI ZA REVERZNI INŽENJERING ........................................................................................................... 49

7. PRAKTIČAN RAD .............................................................................................................................. 52

7.1. ALAT METASPLOIT ............................................................................................................................. 52 7.2. ALAT OWASP ZAP ........................................................................................................................... 58 7.3. OPIS OKRUŽENJA ............................................................................................................................... 61 7.4. ISPITIVANJE FUNKCIONALNOSTI ALATA ................................................................................................... 63

8. ZAKLJUČAK ...................................................................................................................................... 75

9. LITERATURA ..................................................................................................................................... 77

Page 5: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

1

1. Uvod

U današnje je doba modernizacije gotovo nezaobilazno biti u doticaju s informacijskim

tehnologijama koje nas povezuju i koje nam olakšavaju svakodnevan život. Pojavom

pametnih telefona njihova je primjena odavno nadišla jednostavno pozivanje i slanje

poruka, pa nam osim toga omogućavaju i povezanost putem društvenim mrežama, plaćanja

putem internet bankarstva, nadgledanje nadzornih kamera, korištenje telefona kao

pametnog upravljača televizora i slično. Uz pametne se telefone i osobna računala na

tržištu sve više pojavljuju i ostali pametni uređaji kao što su pametni hladnjaci i razni

kućanski aparati, pametni satovi, kamere i ostali uređaji koji imaju mogućnost povezivanja

s pametnim telefonima ili računalima putem aplikacija. Teško je zamisliti gospodarsku

djelatnost kojoj neki oblik informacijske tehnologije ne bi mogao pružiti potporu u radu, a

danas je kod većine i neophodan.

Iskorištavanje prednosti informacijskih tehnologija korisnicima omogućava bolje

organizacijske sposobnosti i manje vremenske gubitke, a tvrtke se njihovim uvođenjem i

korištenjem mogu brže razvijati i poslovati efikasnije, otvarajući u procesu i nova radna

mjesta na održavanju i razvijanju opreme. Široka primjena i velika dostupnost

informacijskih tehnologija osim navedenih prednosti ima i mane, a one su vezane uz njenu

sigurnosnu infrastrukturu.

Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

korisnicima) onemogućilo korištenje proizvoda na način za koji taj proizvod nije predviđen

i da bi se korisnika osiguralo od vanjskih napadača. Zbog velike konkurentnosti u sektoru

informacijskih tehnologija, tvrtke teže ka što bržem razvoju kako bi i dalje mogle ostati

konkurentne, a to se reflektira i na kvalitetu njihovih proizvoda pa je tako izazov napraviti

kvalitetan, robustan i siguran proizvod u što kraćem vremenu. Tvrtke u procesu

proizvodnje (bilo fizičkih sustava ili računalnih programa) mogu namjerno ili nenamjerno

zanemarivati ili podcjenjivati sigurnosne zahtjeve uz izgovor da je trošenje financijskih

sredstava za sprječavanje prijetnji nepotrebno ili jer je procjena rizika pogrešno provedena,

ne shvaćajući da posljedice napada mogu biti katastrofalne.

Nakon izrade proizvoda i ispitivanja njegove funkcionalnosti potrebno je provesti i

sigurnosno ispitivanje. Neki od uobičajenih izraza koji se koriste kada se govori o

sigurnosnom ispitivanju i koji će detaljnije biti opisani kasnije su: otkrivanje (engl.

Discovery), skeniranje ranjivosti (engl. Vulnerability scan), procjena ranjivosti (engl.

Vulnerability assessment), sigurnosna procjena (engl. Security Assessment), ispitivanje

ranjivosti (engl. Penetration test), sigurnosna revizija (engl. Security Audit), sigurnosni

pregled (engl. Security Review). U okviru ovog rada bit će opisan postupak ispitivanja

ranjivosti računalnog sustava.

Ispitivanje ranjivosti je postupak kojim se simulira napad na neki računalni sustav. Alata za

ispitivanje ranjivosti računalnih sustava ima mnogo i najčešće se koriste zajedno u

kombinacijama kako bi se postigao željeni cilj. U ovome radu opisani su alati po

Page 6: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

2

kategorijama kojim pripadaju, a detaljnije su opisana dva alata: Metasploit i OWASP Zap

te je provedenim ispitivanjem ranjivih sustava analiziran njihov rad.

Page 7: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

3

2. Osnovni pojmovi računalne sigurnosti

Prije svega, potrebno je opisati neke osnovne pojmove računalne sigurnosti koji će nam

pomoći da jasnije shvatimo njenu ulogu i značaj. Cilj računalne sigurnosti je zaštita samog

računalnog sustava, kao i programa, operacijskog sustava i podataka od neovlaštenog

korištenja.

2.1. Sigurnosni zahtjevi

Glavni sigurnosni zahtjevi su:

1. povjerljivost ili tajnost

2. raspoloživost

3. besprijekornost

4. autentičnost

5. autorizacija

6. neporecivost

Tajnost podataka (engl. Confidentiality) zahtjeva da podacima mogu pristupati samo

ovlašteni korisnici. Raspoloživost (engl. Availability) zahtjeva da podaci moraju uvijek

biti na raspolaganju ovlaštenim korisnicima neovisno o mogućim nepredvidljivim

događajima kao što su nestanak struje ili zlonamjerni napad. Besprijekornost podataka

zahtjeva da se podaci u sustavu mogu mijenjati samo od strane ovlaštenih korisnika.

Autentičnost osigurava da se korisnici mogu jednoznačno prepoznati, obavlja se

postupkom autentifikacije. Autorizacija služi kako bi se ograničio pristup resursima samo

odabranim korisnicima. Neporicivost (engl. Nonrepudiation) nudi mogućnost zaštite od

opovrgavanja neke radnje koju je ovlašteni korisnik izveo. [1] Iako sigurnosnih zahtjeva

ima mnogo, nije ih uvijek potrebno sve implementirati, a odabir onih koje je potrebno

implementirati vrši se u ovisnosti o namjeni proizvoda i području u kojem se koristi.

Dublja analiza sigurnosnih zahtjeva nadilazi područje ovog rada.

2.2. Vrste napada na sigurnost

Računalni napad je napad sa ciljem narušavanja sigurnosnih zahtjeva, a najčešće

povjerljivosti, raspoloživosti ili besprijekornosti (integriteta) podataka. Izvorište i odredište

napada se mogu nalaziti u jednom računalu ili u različitim računalima raspodijeljenog

sustava.[1] Ispitivanje ranjivosti je po sebi vrsta napada na računalni sustav, no regulirana

sa strane ispitivača i korisnika koji odobrava ispitivanje.

Vrste napada na sigurnost:

1. prisluškivanje

2. prekidanje

Page 8: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

4

3. promjena sadržaja poruka

4. izmišljanje poruka

5. lažno predstavljanje

6. poricanje

Prisluškivanje (engl. Eavesdropping) je najjednostavniji način napada na sigurnost jer ne

zahtjeva nikakvo aktivno sudjelovanje napadača. Napadač koji prisluškuje mrežu može

čitati podatke s nje, to može biti opasno ako su podaci koji se šalju nezaštićene lozinke ili

neki drugi osjetljivi podaci koji se šalju nekriptiranim kanalom. Prilikom prisluškivanja na

nezaštićenom kanalu napadač sve primljene pakete može pogledati i iz njih iščitati

osjetljive informacije koje nisu bile namijenjene njemu. Prisluškivanje je napad na

povjerljivost informacija.[1]

Slika 2.1. Prisluškivanje

U praksi se napad prisluškivanjem najčešće provode na mreži i naziva se sniffing. Napadač

može napisati program ili koristiti već gotove alate za prisluškivanje kako bi presreo

mrežni promet na svojoj mrežnoj kartici i čitao ga.

Prekidanje (engl. Interruption) je napad na raspoloživost informacija i izvodi se tako da se

prekine komunikacijski kanal čime se onemogućuje komunikacija između sugovornika.[1]

Page 9: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

5

Slika 2.2. Prekidanje

U praksi se napadi prekidanjem zovu DoS napadi (engl. Denial of Service) i izvode se

najčešće preko mreže tako da napadač svojoj žrtvi šalje velik broj zahtjeva koje žrtva ne

stiže obraditi te se oni legitimni zahtjevi ne stignu obraditi i time se uskraćuje neka usluga.

Promjena sadržaja poruka (engl. Modification) izvodi se tako da napadač prekine

komunikacijski kanal tako da se on uključi u komunikaciju kao posrednik, lažno se

predstavljajući kao izvorište, što mu omogućava izmjenu sadržaja poslanih poruka i time i

utjecaj na integritet informacija.[1]

Slika 2.3. Promjena sadržaja

Promjena sadržaja se popularno naziva napad čovjekom u sredini (engl. Man In The

Middle) i može se izvesti tako da se presretne veza između dva sugovornika te se

izmjenom pošiljatelja ili primatelja IP paketa može zavarati sugovornike misleći da oni

pričaju jedan s drugim, no zapravo sav njihov promet dolazi indirektno preko napadača

koji u tom trenutku može svojevoljno izmjenjivati sadržaj poruke.

Izmišljanje poruka (engl. Fabrication) je napad u kojem napadač započinje komunikaciju

s jednim entitetom lažno se predstavljajući kao izvorište. Ovim napadom napadač može

slati izmišljene poruke ili ponavljati spremljene stare poruke što narušava integritet

informacija.[1]

Page 10: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

6

Slika 2.4. Izmišljanje poruka

Poricanje (engl. Repudiation) je napad kod kojeg korisnik šalje poruku primatelju i potom

poriče autorstvo te poruke tvrdeći da je poruku poslao netko drugi, a ne on.[1]

Lažnim predstavljanjem napadač se može predstaviti kao neki drugi korisnik sustava ili

se namještanjem računala može pretvarati kao neko drugo računalo varajući računala

kojima se lažno predstavlja.[1]

2.3. Vrste napadača

Popularno, pod pojmom napadača najčešće se misli se na osobu koja je aktivni sudionik u

računalnom kriminalu i koja se računalnim kriminalom bavi isključivo za svoj profit, no to

nije uvijek istina. Postoje različiti tipovi napadača i oni ne moraju uvijek imati zle namjere.

Pojam haker prvi se puta pojavio na američkom sveučilištu MIT 1960-ih godina i

označavao je osobu koja je sposobna izmijeniti način rada nekog stroja ili naprave (ne

nužno računala) tako da radi nešto za što nije namijenjena, a s vremenom se taj pojam

počeo povezivati sa računalnim kriminalom i izrastao je u to što je danas, pojam za osobu

koja koristi računalo u maliciozne svrhe. Napadači se dijele na tri vrste:

• bijeli šeširi (engl. White Hat)

• sivi šeširi (engl. Grey Hat)

• crni šeširi (engl. Black Hat)

Bijeli šeširi su najčešće profesionalci ili entuzijasti koji računalne napade koriste za

ispitivanje sustava pokušavajući pri tome pronaći njegove ranjivosti i zakrpati ih.

Ispitivanje ranjivosti spada u aktivnosti bijelih šešira. Neke velike tvrtke kao što su

Facebook ili Google provode programe sigurnog ispitivanja gdje novčanim nagradama

potiču korisnike da ispitaju njihove proizvode i prijavljuju pronađene propuste i ranjivosti.

Crni šeširi su oni napadači koji sve svoje aktivnosti provode s ciljem vlastitog profita ili

štete korisnika. Postoje napadači koji djeluju samostalno i u grupama. Njihove su žrtve

najčešće nasumični korisnici koji pregledavanjem interneta nemaju instalirane antivirusne

Page 11: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

7

programe ili preuzimaju sadržaj sa nesigurnih stranica. Najopasniji su oni napadači koji

djeluju u organiziranim skupinama napadajući pri tom ciljane mete koje mogu biti

određeni korisnici kao što su političari, mogu napadati određene ustanove kao što su

bolnice ili škole i krasti informacije o pacijentima ili osoblja, a mogu napadati i tvrtke i

kasnije ih iznuđivati ili prodavati poslovne tajne i slično. Kao svoje alate koriste vlastito

razvijene maliciozne programe ili alate dizajnirane za dostavljanje malicioznih programa.

Sivi šeširi su svi oni napadači koji ne spadaju u bijele ili crne šešire, to mogu biti aktivisti

čiji su ciljevi napada politički, mogu biti znatiželjnici koji isprobavaju alate pronađene na

internetu ne znajući pritom moguće posljedice i ostali.

I crne i bijele šešire povezuje to što se radi o pojedincima visokog znanja rada računala,

programa i računalne sigurnosti općenito.

2.4. Zloćudni programi

Zloćudni programi su programi koji su napisani sa strane napadača i mogu imati više

namjena. Crni šeširi ih redovito koriste kako bi postigli svoje ciljeve: kompromitirali

računala i stekli osobnu korist.

Vrste zloćudnih programa:

• Računalni virus: maliciozni programi s ciljem stvaranja štete na računalu. Jednom

kada stigne na računalo inficira datoteke i programe izmjenjujući ih i u njih

ubacujući zlonamjeran kod koji se pokreće prije pokretanja programa.

• Računalni crv: maliciozni program koji se širi mrežom i to im je primarna

namjena. Najčešće se šire putem elektroničke pošte, a mogu i putem društvenih

mreža. Čini štetu tako što koristi resurse ili u sebi sadrže druge maliciozne dijelove.

• Špijunski programi (eng. Spyware): maliciozni programi koji sakupljaju

korisničke informacije i informacije o korištenju računala i mogu ih slati na

udaljeni poslužitelj kojim upravlja napadač. Informacije koje kradu mogu biti

financijski podaci kao što su brojevi kartica i lozinke.

• Trojanski konj: tip malicioznog programa koji se prikriva kao legitimni program

na računalu s namjerom da prevari korisnika da ga pokrene. Jednom kada je

pokrenut, trojanski konj može dalje instalirati ili preuzeti druge maliciozne

programe, krasti podatke, izmjenjivati podatke i slično.

• Oglašivački programi (engl. Adware): programi koji korisniku prikazuju oglase

čak i kada korisnik nije spojen na internet. Šire se preko besplatnih aplikacija i time

autorima omogućuju zaradu.

• Keylogger: maliciozni program koji se pokreće u pozadini i bilježi korisnikov unos

preko tipkovnice koje kasnije može internetom poslati napadaču.

• Rootkit: tip malicioznog programa dizajniran tako da napadaču omogućuje pristup

ili kontrolu računala putem interneta bez da ga korisnik ili antivirusni programi

detektiraju.

Page 12: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

8

• Ucjenjivački programi (engl. Ransomware): danas možda najopasnija prijetnja, to

je tip malicioznog programa koji koristeći napredne kriptografske algoritme kriptira

podatke na računalu i nakon toga putem poruke o tome obavještava korisnika i traži

ga otkupninu.

2.5. Napadi na infrastrukture

Sve veće prisustvo računalnog kriminala u svijetu i njegova fleksibilnost i mogućnosti

dovode do pitanja skalabilnosti napada. Zabilježeni su napadi organiziranih skupina koje

kao mete napada osim visoko rangiranih pojedinaca ili organizacija odabiru i čitave

zemlje. Kao u doba konflikata, svaka zemlja ima svoje kritične točke u obliku određenih

infrastruktura koje ako su napadnute ili onemogućene, mogu imati velike posljedice na

način života ili sigurnost neke zemlje. Kritične infrastrukture mogu biti: kontrolni sustavi,

energetska infrastruktura, financije, telekomunikacije, prijevoz i ostale.

• Kontrolni sustavi: zaduženi su za nadgledanje i aktiviranje industrijskih ili

mehaničkih kontrola. Takvi se sustavi mogu nalaziti u raznim postrojenjima i

sastoje se od mnogo fizičkih uređaja međusobno povezanih u mrežu. Samim time

što je tih uređaja mnogo, teško je kvalitetno provesti mjere sigurnosti i ako je

moguće doprijeti do unutarnje mreže kontrolnog sustava, napadači mogu

prouzročiti velike štete. Primjer takvog napada je napad na iranska nuklearna

postrojenja koji je ujedno i najpoznatiji primjer takvog napada. Stuxnet je naziv

malicioznog programa, računalnog crva uvedenog u iranska nuklearna postrojenja

koja su radila na procesu obogaćivanja uranija. Kao rezultat, nuklearno je

postrojenje izgubilo 984 centrifuga za obogaćivanje uranija sa procjenom od 30%

smanjenja efikasnosti obogaćivanja. [2]

• Energetska infrastruktura: energetska infrastruktura jedna je od najbitnijih

infrastruktura bilo koje zemlje, iako je mala vjerojatnost uspješnog napada s

velikim posljedicama, najgore posljedice mogu biti gašenje infrastrukture,

ekonomski i financijski poremećaji ili gubici života i masovne prirodne štete.[3]

Primjer napada na energetsku infrastrukturu dogodio se 2013. godine slučajno,

kada se dio austrijske i njemačke energetske mreže skoro ugasio zbog pogrešno

upućene kontrolne poruke. Vjeruje se da je određeni zahtjev poslan razašiljanjem

putem novopostavljene mreže iz njemačke energetske kompanije kao ispitivanje

njihove novopostavljene mreže slučajno dospio do austrijske mreže za kontrolu

električne energije, a kao posljedicu je imao stvaranje tisuće novi zahtjeva koji su

se širili mrežom i time prepunili mrežu. Da bi se zaustavio tako nastali DDoS

napad, dio kontrolne mreže morao je biti isključen, a na sreću, nikakvih većih

posljedica nije bilo.[4]

• Financijska infrastruktura: financijska infrastruktura je povezana računalnim

sustavima i zbog toga je najotvorenija za napade. U financijskim institucijama

većina dnevnog toka novca prolazi računalnim sustavima, a ne u obliku gotovine,

pa to daje motiv napadačima za napad. Ako bi se financijske usluge prekinule pa

čak i na kratak vremenski period, posljedice bi mogle biti velike. Posljedice koje

mogu nastati prekidom financijskih usluga mogu biti narušavanje ugleda tvrtki ili

Page 13: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

9

prekid financiranja sa strane ulagača, mogu utjecati na dionice i slično. Primjer

napada na financijsku infrastrukturu je napad na centralnu banku u Bangladešu.

Sofisticirana skupina napadača uspjela je ući u bankovnu unutarnju komunikacijsku

mrežu krađom korisničkih imena i lozinki. Šteta koju su napadači prouzročili

krađom procjenjuje se na preko 80 milijuna dolara.[5]

• Telekomunikacijska infrastruktura: napadi na telekomunikacijsku infrastrukturu

imaju jasne rezultate, sve je više VoIP (engl. Voice over IP) mreža i osim običnog

uskraćivanja usluge klasičnim DoS napadima, svakim danom razvijaju se sve

kompleksniji napadi koji bi potencijalno mogli ciljati fizičke strukture za prijenos

telekomunikacijskih signala. Takav prekid signala bi za posljedicu imao gubitak

mogućnosti komunikacije, a u doba konflikata to bi za napadača značila jasna

prednost pred protivnikom.

• Prijevoz: onemogućavanje prijevozne infrastrukture moglo bi dovesti do utjecaja

na prijevoz robe i sukladno s time i na ekonomiju zemlje. Primjer ovakvog napada

je razdoblje u 2003. godini kada je računalni virus po imenu Slammer prisilio tvrtku

Continental Airlines da zaustavi letove zbog poteškoća s računalima. [6]

Page 14: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

10

3. Procjena rizika i pravni dokumenti sigurnosne

infrastrukture u RH

3.1. Procjena rizika

Rizike u računalnoj sigurnosti predstavljaju sve neostvarene prijetnje, odnosno svi

otkriveni ili neotkriveni neispravljeni propusti ili ranjivosti koje napadači mogu

potencijalno iskoristiti za napad na računalni sustav. Procjenom rizika određuje se što mora

biti zaštićeno, koje su opasnosti ili ranjivosti prisutne na sustavu, koje su implikacije ako

dođe do napada na sustav, kolika je vrijednost rizika za tvrtku i ostalo. Rezultat provedbe

procjene rizika unutar neke tvrtke su preporuke za maksimizaciju zaštite integriteta,

povjerljivosti, integriteta i dostupnosti uz pružanje funkcionalnosti i korisnosti.

Ključna područja procjene rizika su:

• doseg (engl. Scope)

• prikupljanje podataka (engl. Data Collection)

• analiza politika i procedura (engl. Analysis of Policies and Procesures)

• analiza prijetnji (engl. Threat Analysis)

• analiza ranjivosti (engl.Vulnerability Analysis)

• korelacija i procjena prihvatljivosti rizika (engl. Correlation and assessment of Risk

Acceptability)

Identificiranje dosega je najbitniji korak u procesu procjene rizika. Doseg ispitivaču pruža

informacije o tome što procjena pokriva a što ne. Identificira što sve treba biti zaštićeno,

osjetljivost onoga što mora biti zaštićeno i do koje razine i detalja. Prilikom određivanja

dosega potrebno je imati na umu publiku završnih preporuka (npr. Senior menadžeri, IT

odjel ili certifikacijski autoritet). Doseg treba određivati vrši li se analiza s unutarnjeg ili

vanjskog stajališta ili oboje. Razina detalja izravno je povezana sa planiranim primateljem

završne analize.

Prikupljanje podataka uključuje prikupljanje svih politika i procedura koje su trenutno

na snazi i identificiranje onih koje fale ili su nedokumentirane. Razgovori s djelatnicima

mogu pomoći u ovom koraku. Sustavi i aplikacije identificirani dosegom numeriraju se i

prikupljaju se svi podaci o trenutnom statusu tih sustava:

• pokrenute usluge

• razine uslužnih paketa

• instalirani operacijski sustavi

• pokrenute mrežne aplikacije

• fizičke lokacije sustava

Page 15: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

11

• kontrola pristupa

• skeniranje portova

• ispitivanje otkrivanja upada

• ispitivanje vatrozida

• …

Analiza politika i procedura provodi se s ciljem provjere razine usklađenosti unutar

organizacije. Izvori za usklađivanje pravila koji se mogu koristiti su:

• ISO 17799

• BSI 7799

• ISO 15504

Potrebno je prepoznati dijelove za koje se smatra da nisu u skladu s obzirom na specifičnu

industriju ili organizaciju. Zbog toga što postoji toliko sigurnosnih standarda, teško je

odrediti koji se najbolje primjenjuju unutar organizacije. Općeniti standardi pružaju najširi

pogled ali nekada zahtijevaju implementaciju sigurnosnih mjera koje su neprimjerene za

određenu industriju na koju se standard želi primijeniti.

Cilj analize ranjivosti je uzimanje svega identificiranog u prikupljanju informacija i

provesti ispitivanja kako bi se utvrdila trenutna razina izloženosti i jesu li trenutne mjere

sigurnosti dovoljne u smislu povjerljivosti, integriteta i dostupnosti. Postoje razni alati koji

se mogu koristiti za identificiranje ranjivosti sustava, a jedan od najpoznatijih je Nessus.

Korak analize ranjivosti uključuje ispitivanje ranjivosti sa ciljem prikupljanja nečega od

velike vrijednosti kao što je tekstualna datoteka, datoteka s lozinkama, povjerljiva datoteka

i slično, a prije provedbe ispitivanja ranjivosti potrebno je unaprijed odrediti o kojim će se

datotekama raditi. Ispitivanje ranjivosti može se izvoditi kao eksterno ispitivanje u kojem

se pretpostavlja nepoznavanje informacija vezanih za sustav koji se napada i interno

ispitivanje u kojem se preuzima uloga nekog zaposlenika. Pronađene ranjivosti mogu se

klasificirati s obzirom na razinu ozbiljnosti i rizika kojeg pružaju organizaciji.

Analiza prijetnji bavi se bilo kojim elementom rizika koji se može dogoditi. Prijetnje su

opisane kao bilo što može pridonijeti izmjenjivanjem, uništenjem ili prekidom bilo koje

usluge ili vrijednosne stvari. Prijetnje se mogu podijeliti na ljudske kao što su napadači

(hakeri), krađa, neadekvatno obučeno osoblje i ostale, te na neljudske kao što su poplave,

grmljavina, virusi, požari, kontrola temperature itd. Prijetnje idu ruku pod ruku sa

ranjivostima i identificirane prijetnje moraju se analizirati u relaciji s radnim okruženjem i

kakav im je utjecaj na organizaciju. Primjer je neadekvatno obučeno osoblje koje nije jako

motivirano za maliciozne radnje dok s druge strane, napadači-hakeri jesu.

Analiza prihvatljivih rizika je završni korak u postupku procjene rizika. Procjenjuje jesu

li trenutne politike koje se provode adekvatne. Provodi se pregled postojećih i planiranih

zaštitnih mjera koje treba provesti kako bi se utvrdilo je li utjecaj poznatih i novootkrivenih

prijetnji ublažen. Posao analitičara nije da utvrdi što je prihvatljivi rizik za određenu

organizaciju već da koristi pronalaske pri analizi kako bi asistirao određivanju koje su

razine rizika prihvatljive organizaciji. Rezultat je temelj za odabir primjerenih sigurnosnih

Page 16: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

12

mjera ili da se uklone one neefikasne. Prije preporuke proizvoda ili postupaka potrebno je

uzeti u obzir i veličinu organizacije i njihovog IT odjela kako bi se utvrdilo hoće li

organizacija moći održavati novopostavljenu sigurnosnu infrastrukturu.

Organizacije koje ne provode analizu rizika i prijetnji ostaju otvorene situacijama koje

mogu prouzročiti štetu, prekid usluge ili uništenje sposobnosti poslovanja stoga se važnost

provedbe analize rizika mora shvatiti sa strane samog odjela organizacije koje održava

infrastrukturu i korisnika usluga organizacije čije poslovanje o njoj ovisi. [7]

3.2. Računalna sigurnost u RH

Datuma 13. srpnja 2007. godine Hrvatski je sabor donio Zakon o informacijskoj sigurnosti.

Tim se zakonom utvrđuje pojam informacijske sigurnosti, mjere i standardi informacijske

sigurnosti, područja računalne sigurnosti, te nadležna tijela za donošenje, provođenje i

nadzor mjera i standarda informacijske sigurnosti. Ovim se zakonom također nalaže da se

minimalni kriteriji za zaštitu klasificiranih i neklasificiranih podataka utvrđuju mjerama i

standardima informacijske sigurnosti. Standarde za provedbu tih mjera propisuju pravilnici

koje donose čelnici središnjih državnih tijela za informacijsku sigurnost.[9]

Mjere i standardi informacijske sigurnosti su propisane za slijedeća područja informacijske

sigurnosti:

• sigurnosna provjera

• fizička sigurnost

• sigurnost podataka

• sigurnost informacijskog sustava

• sigurnost poslovne suradnje

Sigurnosna provjera je područje informacijske sigurnosti unutar kojeg se utvrđuju mjere i

standardi informacijske sigurnosti koji se primjenjuju na osobe koje imaju pristup

klasificiranim podacima. [9] Primjer je utvrđivanje prava pristupa podacima po

stupnjevima tajnosti: „Povjerljivo“, „Tajno“ i „Vrlo tajno“.

Fizička sigurnost je područje informacijske sigurnosti unutar kojeg se određuju mjere i

standardi za zaštitu objekata, prostora i uređaja u kojem se nalaze klasificirani podaci.

Izvodi se kategorizacija objekata i prostora na sigurne zone koje su propisane mjerama i

standardima informacijske sigurnosti.[9]

Sigurnost podataka je područje informacijske sigurnosti za koje se utvrđuju mjere i

standardi informacijske sigurnosti koje se primjenjuju kao opće zaštitne mjere za

prevenciju, otkrivanje i otklanjanje štete od gubitaka ili neovlaštenog otkrivanja

klasificiranih i neklasificiranih podataka.[9]

Sigurnost informacijskog sustava je područje informacijske sigurnosti unutar kojeg se

utvrđuju mjere i standardi informacijske sigurnosti klasificiranog i neklasificiranog

podatka koji se obrađuje, pohranjuje ili prenosi u informacijskom sustavu, te zaštite u

Page 17: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

13

cjelovitosti i raspoloživosti informacijskog sustava u procesu planiranja, projektiranja,

izgradnje, uporabe, održavanja i prestanka rada informacijskog sustava.

Sigurnost poslovne suradnje je područje informacijske sigurnosti u kojem se primjenjuju

propisane mjere i standardi informacijske sigurnosti za provedbu natječaja ili ugovora s

klasificiranom dokumentacijom koji obvezuju pravne i fizičke osobe.[9]

Središnja državna tijela za informacijsku sigurnost su:

• Ured Vijeća za nacionalnu sigurnost: središnje državno tijelo za informacijsku

sigurnost koje koordinira i usklađuje donošenje i primjenu mjera i standarda

informacijske sigurnosti u Republici Hrvatskoj i u razmjeni klasificiranih i

neklasificiranih podataka između Republike Hrvatske i stranih zemalja i

organizacija. On donosi pravilnike o standardima fizičke sigurnosti, sigurnosti

podataka, o standardima organizacije i upravljanja područjem sigurnosti

informacijskih sustava te sigurnosti poslovne suradnje. [9]

• Zavod za sigurnost informacijskih sustava: središnje državno tijelo za tehnička

područja sigurnosti informacijskih sustava u tijelima i pravnim osobama. Ovaj

zavod zadužen je za usklađivanje standarda tehničkih područja sigurnosti

informacijskih sustava u Republici Hrvatskoj s međunarodnim standardima i

preporukama te sudjeluje u nacionalnoj normizaciji područja sigurnosti

informacijskih sustava.

U skladu s ovim zakonom 2008. godine osnovan je Nacionalni CERT. Nacionalni CERT je

tijelo za prevenciju i zaštitu od računalnih ugroza sigurnosti javnih informacijskih sustava

u Republici Hrvatskoj. To je zasebna ustrojstvena jedinica koja se ustrojava u Hrvatskoj

akademskoj i istraživačkoj mreži (CARNet). CERT i Zavod za sigurnost informacijskih

sustava surađuju na prevenciji i zaštiti od računalnih ugroza sigurnosti te sudjeluju u izradi

preporuka i normi u Republici Hrvatskoj iz područja sigurnosti informacijskih sustava.[9]

Neke usluge koje nudi Nacionalni CERT:

• informiranje javnosti o novostima vezanih uz informacijsku sigurnost

• edukacija ciljanih skupina

• izdavanje sigurnosnih preporuka

• provjere ranjivosti javnih sustava

• obrada i koordinacija incidenata

• prikupljanje informacija o kompromitiranim računalima i incidentima u RH

• forenzika malicioznih programa i poslužitelja

Vrste incidenata koji su u nadležnosti Nacionalnog CERT-a:

• onemogućavanje rada pojedine usluge (DoS/DDos)

• kompromitiranje poslužitelja

• nedozvoljene mrežne aktivnosti (port scan)

Page 18: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

14

• slanje spama

• phishing i ostale prijevare

Incidenti se odnose na računala koja imaju statičke ili dinamičke IP adrese. Nacionalni

CERT obrađuje incidente sa statičkim IP adresama jer je vlasnik računala poznat, a

informacije o računalima s dinamičkom IP adresom šalju se ISP-u, te se vodi statistička

obrada incidenata na računalima s dinamičkom IP adresom.

Nacionalni CERT također nudi uvid u nedavnu statistiku obrađenih incidenata temeljem

njihovog pravilnika, Slika 3.1. prikazuje broj registriranih botova (računalnih programa

koji se izvršavaju samostalno) koji mogu služiti za automatsko slanje spama (neželjene

elektroničke pošte) ili druge neželjene i maliciozne radnje:

Slika 3.1. Kretanje broja registriranih botova

Slika 3.2. opisuje postotak obrađenih incidenata u periodu od 24.3.2017. do 24.4.2017.

koje je obradio Nacionalni CERT:

Page 19: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

15

Slika 3.2. Obrađeni incidenti u periodu od 24.3.2017. do 24.4.2017.

Slika 3.3. opisuje kretanje broja incidenata na poslužiteljima koje je detektirao Nacionalni

CERT:

Slika 3.3. Kretanje broja incidenata na poslužiteljima

Još jedan dokument koji nije detaljno opisan u ovome radu je Nacionalna strategija

kibernetičke sigurnosti donesena 7. listopada 2015. godine. Nacionalna strategija

kibernetičke sigurnosti je dokument kojim Republika Hrvatska nastoji započeti sustavno i

sveobuhvatno planiranje najvažnijih aktivnosti u svrhu zaštite svih korisnika suvremenih

Page 20: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

16

elektroničkih usluga, kako u javnom i gospodarskom sektoru, tako i u građanstvu u cjelini.

Strategijom se želi postići uravnotežen i koordiniran odgovor niza institucija koje

predstavljaju sve sektore društva, na sigurnosne prijetnje u suvremenom kibernetičkom

prostoru. [13] U njoj se navode načela, opći ciljevi strategije, sektori društva i oblici

suradnje dionika računalne sigurnosti, područja kibernetičke sigurnosti i ostalo.

Zainteresirani čitatelj upućuje se na [11] i [12] za daljnje istraživanje.

Page 21: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

17

4. Proces ispitivanja ranjivosti računalnog sustava

4.1. Ispitivanje ranjivosti

Ispitivanje ranjivosti je proces pokušavanja dobivanja pristupa određenim resursima bez

poznavanja korisničkih imena, lozinki i ostalih normalnih pristupnih podataka. Primjer

uspješnog ispitivanja ranjivosti bio bi dohvaćanje nedovoljno zaštićenih povjerljivih

dokumenata ili baza podataka s računala, stoga se može reći da je ispitivanje ranjivosti

vrsta sigurnosnog ispitivanja koja se koristi za ispitivanje nesigurnosti određene aplikacije

ili resursa. Glavna razlika između zlonamjernog napada i ispitivanja ranjivosti je dozvola

za obavljanje takve radnje koju daje vlasnik resursa nad kojim se vrši ispitivanje. Osoba

zadužena za ispitivanje ranjivosti obavezna je napisati detaljan izvještaj pronađenih

propusta i nesigurnosti sustava tijekom ispitivanja kako bi se rezultati mogli potvrditi i

razriješiti. Cilj ispitivanja ranjivosti je povećanje sigurnosti ispitivanih resursa. U većini

slučajeva osoba koja provodi ispitivanje ranjivosti ima pristup resursu kao i običan

korisnik i cilj je da danim takvim pristupom, uspije uzdignuti svoja korisnička prava ili na

neki drugi način pristupiti resursima za koje inače ne bi imala pravo pristupa. Bitno je

razumjeti da osoba koja provodi ispitivanje ranjivosti najčešće ne može pronaći sve

propuste i sigurnosne probleme zato što se programi i njihovo okruženje često mijenjaju

zbog različitih zakrpa i poboljšanja koja mogu stvoriti nove propuste koji nisu bili

pristupni prilikom posljednjeg ispitivanja.[14]

Razlika između ispitivanja ranjivosti i procjene rizika ponekad može biti zbunjujuća. Ta su

dva pojma blisko povezana ali ispitivanje se ranjivosti fokusira na konkretan pokušaj

pristupa nekim resursima za koja trenutna korisnička prava nisu predviđena, a procjena

rizika se svodi na otkrivanje i analiziranje svih mjesta koja potencijalno mogu postati meta

napada.

Postupci identificiranja ranjivosti koje koriste osobe ovlaštene za ispitivanje ranjivosti

slični su onima koje koriste neovlašteni napadači. Razlika između njihovih postupaka je ta

što za razliku od ovlaštenog ispitivača, napadač još mora paziti kako ne bi ostavljao

tragove kojim bi ga se kasnije moglo identificirati što ga čini sporijim. Prvi korak

ispitivanja ranjivosti je izviđanje. Izviđanjem ispitivač nastoji upoznati sustav kojeg

ispituje i naučiti što više informacija kao što su: koji se operacijski sustav koristi, koji su

portovi otvoreni i koje se usluge koriste, informacije o programima koji se nalaze na

sustavu i slično. Nakon sakupljanja informacija o sustavu, ispitivač može pregledati bazu

podataka ranjivosti i pretražiti koje su sve ranjivosti pronađene za određenu uslugu,

program ili operacijski sustav pronađen postupkom izviđanja. Neke od stranica koje

pružaju takve informacije su:

• National Vulnerability Database: https://nvd.nist.gov/

• Security Focus: http://www.securityfocus.com/vulnerabilities

• IBM X-Force Exchange: https://exchange.xforce.ibmcloud.com/

• OSVDB: https://blog.osvdb.org/

• Common Vulnerabilities and Exposures: https://cve.mitre.org/

Page 22: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

18

Nakon pronalaska neke ranjivosti, ispitivač provodi ispitivanje ranjivosti za koju sumnja da

je prisutna na sustavu pomoću javno dostupnih alata ili vlastitih alata i programa.[14]

4.2. Razlozi provođenja ispitivanja ranjivosti

Postoji više razloga zašto bi se ispitivanje ranjivosti trebalo provoditi. Najbitniji od tih

razloga je pronalazak ranjivosti prije napadača kako bi se sustav stigao na vrijeme zaštititi

da bi se spriječila šteta. Ponekad su IT odjeli u tvrtkama svjesni propusta u svojim

proizvodima ali je potreban vanjski stručnjak koji će službeno izjaviti postojanje propusta

kako bi menadžment tvrtke odobrio resurse potrebne za ispravljanje propusta. Još jedan

razlog je ispitivanje sustava prije nego što mu se omogući pristup internetu. Neki standardi

i regulacije zahtijevaju obavezno vanjsko sigurnosno ispitivanje. Rutinska ispitivanja su

važna jer determinirani napadači mogu konstantno izviđati mrežni pristup tvrtki čekajući

da se stvori neispravljena ranjivost sustava koja će im pružiti priliku za napad. Iako

nekolicina ljudi ima pristup tzv. „0-day“ ranjivostima, odnosno još neotkrivenim

ranjivostima koje ne postoje u javno dostupnim bazama ranjivosti, većina zlonamjernih

napadača koristi one dobro poznate ranjivosti za napad na sustav pa se stoga rutinska

ispitivanja preporučuju.[14]

Osim tehničkih razloga, još jedan razlog zbog kojeg postoje ranjivosti na sustavima neke

tvrtke proizlazi od menadžerskog i izvršnog dijela tvrtke, naime često su te osobe svjesne

postojećih ranjivosti ali odbijaju pružiti resurse za njihovo rješavanje jer smatraju da osobe

bez internih znanja ne mogu iskoristiti te ranjivosti ili je vjerojatnost za njihovo otkrivanje

dovoljno mala da bi taj rizik ostao prihvatljiv. Ispitivanje ranjivosti izvršeno od treće strane

moglo bi izvršnom dijelu tvrtke promijeniti mišljenje ustanovi li se suprotno i ako se

pokaže obujam štete koja može nastati iskorištavanjem te ranjivosti.

4.3. Koraci ispitivanja ranjivosti

Planiranje i pripremanje

Kako bi izvedba ispitivanja ranjivosti bila uspješna, prethodno je potrebno provesti

planiranje i pripremanje. Idealno, potrebno je sazvati sastanak između organizacije i osoba

koje provode ispitivanje ranjivosti, a sastankom se trebaju utvrditi doseg i cilj ispitivanja

ranjivosti kao i osobe uključene u samu provedbu ispitivanja. Mora se utvrditi i oblik u

kojem će se rezultati ispitivanja prezentirati. Vitalna stvar koju treba dogovoriti na

sastanku je vrijeme trajanja i provedbe ispitivanja jer se time omogućava da se svi ostali

poslovi tvrtke mogu nastaviti izvoditi nesmetano. U slučajevima kada se izvođenje

ispitivanja podudara s vremenom nekih poslova organizacije tijekom kojih na mreži dolazi

do povećanog prometa mogu nastati konflikti između potrebe da su svi dijelovi sustava

ispitani i potrebe za održavanjem normalne količine mrežnog prometa. Ispitivanja

ranjivosti ponekad koriste neobičan mrežni promet mogu prouzročiti rušenje sustava

organizacije, a ako se takav rizik ne može tolerirati, neki će sustavi morati biti izostavljeni

iz procesa ispitivanja. Na sastanku se također trebaju utvrditi i vrste ispitivanja koje će se

Page 23: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

19

izvoditi nad sustavom jer niti jedna organizacija ne želi da im ispitivanje izravno utječe na

poslovanje. Kao loš primjer: zamislimo si provedbu ispitivanja DoS ispitivanjem na mreži

sveučilišta u trenutku kada većina studenata piše ispite na računalima spojenim na tu

mrežu, to je primjer loše vremenske procjene i loše komunikacije između sveučilišta i

ispitivača. Još jedna bitna odluka kod provođenja ispitivanja je određivanje koje se osoblje

mora, i mora li se uopće, informirati prije provođenja ispitivanja unutar organizacije. Ovo

je bitna odluka jer nepotrebno informiranje osoblja može izmijeniti njihovo ponašanje koje

bi kao posljedicu moglo imati utjecaj na rezultate ispitivanja, a s druge strane bi

neinformiranje osoblja moglo izazvati njihovo reagiranje i provedbu određenih postupaka

koji bi mogli imati utjecaja na rad organizacije. Primjer takve situacije je očekivanje

sigurnosnog tima organizacije da reagira tako da prekine mrežnu vezu između tvrtkine

unutarnje mreže s vanjskom internetskom mrežom i time onemogući normalan rad nekih

usluga. Najbitnija stvar u procesu provedbe ispitivanja ranjivosti je pravna zaštita, tvrtke

moraju shvatiti da je ono što ispitivači rade često ilegalno i kako bi se oni mogli zaštititi,

obavezno je da organizacija potpiše dokument s kojim će se odobriti ispitivanja i da će se

svi ispitivanjem dohvaćeni podaci smatrati povjerljivima te da će se na kraju ispitivanja

uništiti ili vratiti. Ovo je bitan korak koji se ne smije izostaviti pa makar se ispitivanja

provode u vlastitoj tvrtki jer se time ispitivači štite ako se tijekom ispitivanja desi nešto

neočekivano ili loše. [15]

Prikupljanje informacija i analiza

Nakon potrebnih dogovora i planiranja, sljedeći korak je prikupljanje što više informacija o

sustavima i mrežama koje su meta ispitivanja. Ako ispitani subjekt raspolaže online

stranicom, to je dobro mjesto za započeti prikupljanje informacija. Sve informacije

prikupljene u ovom koraku mogu biti od koristi u kasnijim koracima. Postoji mnogo alata

koji mogu biti od pomoći u ovom koraku koji će biti navedeni u kasnijim poglavljima. U

ovom koraku provodi se istraživanje mreže koje nam pruža uvid u pristupačne sustave,

očekivane informacije koje mogu biti od koristi su: domenska imena, imena poslužitelja,

informacije o pružatelju internetske usluge (ISP), IP adrese domaćina i ostale. Ovime

možemo saznati opseg IP adresa koje organizacija koristi. Najpoznatiji alat za provođenje

istraživanja mreže zove se Nmap i on će također biti naveden u kasnijem poglavlju.

Sljedeći korak kod prikupljanja informacija je skeniranje vrata (engl. Port) da vidimo koja

su sva vrata otvorena i zatvorena na sustavima unutar mreže. U ovom koraku, ako postoje

neke IP adrese koje organizacije ne žele ispitati, nad njima se skeniranje vrata ne provodi.

Bitno je napraviti provjeru pripadaju li IP adrese koje skeniramo organizaciji. Postoji

65,536 vrata. Neki alati u ovom koraku nude i mogućnost informiranja o operacijskom

sustavu koji se nalazi na ispitivanom računalu. [15]

Otkrivanje ranjivosti

Nakon spoznaje relevantnih informacija o ciljanim sustavima idući je korak određivanje

postoje li na tim sustavima neke ranjivosti. Na temelju informacija prikupljenih u

prethodnom koraku ispituje se postojanje ranjivosti na manualan ili automatizirani način.

Manualan način od ispitivača zahtjeva dobro znanje o konkretnim uslugama, programima i

drugim prisutnostima na sustavu kako bi znao pronaći ranjivosti dok se automatizirani

Page 24: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

20

način provodi putem alata koji ispisuju listu svih pronađenih ranjivosti. Ustanovi li se

prisutnost ranjivosti ide se na idući korak.

Pokušaj napada

Nakon što se ustanovilo postojanje ranjivosti u sustavu, idući korak je identifikacija

prikladnih meta za napad. Potrebno je dobro procijeniti potrebno vrijeme i resurse potrebne

za izvođenje napada. Ispitivači često imaju ograničeno vrijeme unutar kojeg moraju izvršiti

ispitivanje pa se stoga nepotrebno trošenje vremena mora izbjeći ako je to moguće. Jedan

primjer kod kojeg bi se utrošak nepotrebnog vremena smanjio je prepoznavanje imena

računala na mreži ako postoji posebno imenovanje koje odražava njihovu svrhu,

prepoznavanje takvih računala ispitivaču govori koja računala mogu imati veći prioritet,

npr. radi li se o poslužiteljima ili običnim korisničkim računalima. Nakon odabira

prikladnih meta izvodi se pokušaj napada. Postoje alati koji omogućuju napade na

ranjivosti no često zahtijevaju dodatne korisničke prilagodbe. Iako je ustanovljeno da

ranjivosti postoje, neke će ranjivosti bili teško napasti pa će neki napadi ostati samo

mogući u teoriji, a problem može biti zahtijevanje prevelike količine resursa za napad ili

posebna oprema. Pokušaji napada ne moraju se isključivo svoditi na one računalne,

korištenjem tzv. socijalnog inženjeringa napad se usmjeruje na slabost ljudskog elementa

unutar organizacije tako da se napadač predstavi kao netko iz tvrtke i uz pomoć laži i

manipulacije zaposlenika dođe do nekih povjerljivih podataka. [15] Jedan od najpoznatijih

socijalnih inženjera i hakera je Kevin Mitnick. Mitnick je napisao nekoliko knjiga koje

opisuju njegove dogodovštine i načine manipulacije ljudima koje je iskorištavao kako bi

došao do zanimljivih i korisnih informacija, neke knjige koje se zainteresiranom čitatelju

preporučuju su: Ghost in the Wires, The Art of Deception, The Art of Intrusion i ostale.

Analiza i izvještavanje

Nakon provedbe svih prethodno opisanih koraka, sljedeći zadatak je pisanje detaljnog

izvještaja za organizaciju. Izvještaj bi trebao sadržavati pregled provedenog procesa

ispitivanja ranjivosti, analizu pronađenih ranjivosti i komentar na njih. Prilikom navođenja

pronađenih ranjivosti preporučuje se korištenje jasnih oznaka koje su ranjivosti bitnije a

koje manje, takvo označavanje pomaže organizaciji kod odlučivanja koje ranjivosti moraju

ispraviti prije ili koje ranjivosti moraju ostaviti ako nemaju dovoljno resursa da ih u tom

trenutku isprave sve.[15]

Čišćenje

U ovom koraku se čisti sav nered nastao kao posljedica izvođenja ispitivanja ranjivosti.

Primjer nereda mogu biti stvoreni korisnički računi tijekom provođenja ispitivanja ili drugi

slični događaji koji su bili korišteni pri napadu. Bitno je sačuvati sav detaljan opis

provedenih koraka kod provođenja ispitivanja kako bi se postupak čišćenja mogao provesti

ispravno. U najgorem slučaju postupak čišćenja može biti potpuni backup i vraćanje

podataka. Ispitivačeva je odgovornost da obavijesti organizaciju o svim izmjenama u

sustavu nastalim provedbom ispitivanja.[15]

Page 25: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

21

4.4. Ograničenja ispitivanja ranjivosti

Glavna ograničenja ispitivanja ranjivosti su ta što ispitivači ne poznaju sve detalje o

sustavima koje ispituju. One ranjivosti koje ispitivači nisu niti detektirali, zaposlenicima

koji imaju pristup svim informacijama te ranjivosti mogu biti očigledne. Drugi problem je

taj što je provedba ispitivanja vremenski ograničena što nam omogućuje da saznamo tek

„sliku sigurnosti“ sustava i ne osigurava nas da smo pronašli sve ranjivosti. Neke se

ranjivosti mogu otkriti danima, mjesecima ili čak godinama kasnije, stoga je preporučljivo

da se ovakvi ispitivanja izvode redovito.

Page 26: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

22

5. Ranjivosti sustava i uzroci njihovog nastanka

5.1. O ranjivostima

Ranjivosti računalnih sustava općenito opisuju slabosti sustava koje računalni sustav izlažu

rizicima od napada. Definiranje pojma ranjivosti nije jednostavno pa stoga postoji više

definicija od kojih su neke:

„Sigurnosna ranjivost je slabost u proizvodu koja napadaču može omogućiti

kompromitiranje integriteta, dostupnosti ili povjerljivosti tog proizvoda“

– Microsoft [16]

„Slabost imovine koja može biti iskorištena sa strane jedne ili više prijetnji“

– ISO 27005 [17]

Gdje je imovina bilo što predstavlja vrijednost organizaciji.

„Nedostatak ili slabost u dizajnu sustava, implementacije ili rada i upravljanja koja se

može iskoristiti za narušavanje sigurnosne politike sustava“

– IETF RC 2828 [18]

Postoje još mnoge definicije koje je moguće pronaći u različitim radovima, no sve se u

suštini svode na isto: potencijalnu otvorenost sustava za napade. Ranjivosti nije uvijek lako

otkriti jer i oni najiskusniji programeri ponekad rade greške za čije je otkrivanje potrebno

puno znanja o konkretnoj domeni i sposobnosti da mislimo kao napadač, odnosno da

razmišljamo o tome kako bi neki sustav koji je namijenjen da radi na jedan način natjerali

da se ponaša drugačije, a da je to nama korisno, neovisno radi li se o malicioznoj svrsi ili

ne. Iz tih razloga nije neobično da se neke ranjivosti otkriju nakon više dana, mjeseci ili

godina, što je za tvrtke noćna mora jer se ne može znati je li neki zloćudni napadač znao za

tu ranjivost puno prije nego je ona otkrivena i iskorištavao je kako bi na primjer krao

podatke organizacije ili prisluškivao zaposlenike. Organizacije imaju dužnost

obavještavanja javnosti ako na njihovim sustavima dođe do napada što ih dovodi u vrlo

neugodan položaj jer time gube kredibilitet i povjerenje klijenata, a time i poslovanje.

Ekonomski utjecaj računalnih napada na organizacije analiziran je u [8] i [19]. Iz razloga

jer kompanije često žele zataškati propuste u svojim proizvodima ili napade koji su

rezultirali nekim propustima, osmišljen je način otkrivanja ranjivosti javnosti.

Kada treća strana (na primjer korisnik usluga organizacije) otkrije ranjivost, postavlja se

složeno pitanje tko, što i kada reći. Informacije o ranjivostima programa, jednom puštene,

mogu prouzročiti to da organizacija reagira brzo i ispravi nedostatke, no međutim ta ista

radnja može povećati rizike za korisnike jer to omogućuje zlonamjernim napadačima da

iskoriste ranjivosti prije nego li se one stignu zakrpati. Postoje različite vrste otkrivanja

ranjivosti:

• neotkrivanje ranjivosti

Page 27: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

23

• potpuno otkrivanje

• odgovorno otkrivanje

Neotkrivanje ranjivosti

Najjednostavniji oblik otkrivanja, kod ovakvog otkrivanja istraživač nakon otkrivanja

ranjivosti, ranjivost drži tajnom i ne otkriva je nikome. Ovakvo je ponašanje

karakteristično za crne šešire (black-hat hakere) koji takvo znanje koriste u svoju korist

iskorištavajući ranjivosti sustava za provođenje napada. Drugi razlog neotkrivanja (engl.

Non-Disclosure) ranjivosti je lijenost istraživača da kontaktira proizvođača ili organizaciju.

Neotkrivanje ranjivosti je često kritizirano jer dopušta da sustav ostane nezakrpan i ne

motivira proizvođače da zakrpaju ranjivost. Ostale varijacije neotkrivanja ranjivosti mogu

imati još gori rezultat, na primjer informacije o pronađenoj ranjivosti mogu biti prodane

zlonamjernim napadačima za velik novac na crnom tržištu.[20]

Potpuno otkrivanje

U ovom modelu, prilikom otkrivanja ranjivosti istraživač informira javnost tako da odmah

objavi specifikacije pronađene ranjivosti kao što su: kako je ona pronađena, koji su

programski proizvodi i verzije njome pogođeni, ponekad kako se ranjivost iskorištava i

kako se sustavi mogu zaštititi od te ranjivosti. Postoje brojni argumenti za i protiv

potpunog otkrivanja (engl. Full-Disclosure), jedan argument je da je takvo otkrivanje

širokoj zajednici etički korektno kako bi ostali korisnici ili organizacije mogli na vrijeme

zakrpati ranjivost ako postoji, a drugi argument je da takav postupak motivira proizvođače

i organizacije da što prije zakrpaju svoje ranjivosti. Osim navedenih prednosti, potpuno

otkrivanje istraživaču koji je prvi pronašao ranjivost pridaje zasluge i postaje cjenjeniji

unutar istraživačke zajednice. S druge strane, potpuno otkrivanje može povećati rizik

napada na tu ranjivost jer proizvođači ili organizacije ne stignu na vrijeme donijeti

potrebne zakrpe, što je potpuno suprotno mišljenje od onoga da potpuno otkrivanje štiti

korisnike koji često nisu toliko svjesni sigurnosti sustava jer ih to ne zanima. Iako potpuno

otkrivanje tjera organizacije da što brže reagiraju na pronalazak ranjivosti i donesu zakrpe,

ispitivanje zakrpi, ispitivanje i dostupnost mogu potrajati danima, tjednima ili mjesecima

ako se radi o velikoj organizaciji, što ostavlja veliki vremenski raspon unutar kojeg je

ranjivost poznata, a nije zakrpana. Postoje jasni slučajevi gdje ima smisla potpuno otkriti

neku ranjivosti široj javnosti radi njihove sigurnosti: ako je proizvođač nedovoljno

odgovoran i često ne reagira na vrijeme ili u slučaju kada je ranjivost široko poznata

zlonamjernoj zajednici pa ju je moralno ispravno otkriti [20]

Odgovorno otkrivanje

Odgovorno otkrivanje (engl. Responsible-Disclosure) je kompromis između prethodno

navedenih vrsta otkrivanja. To je djelomično otkrivanje kod kojeg se ranjivost nakon što je

otkrivena, prezentira organizaciji ili proizvođaču i daje se razuman vremenski period (na

primjer 30 dana) unutar kojeg bi organizacija trebala zakrpati ranjivost i zakrpe učiniti

dostupnima svojim korisnicima. Unutar tog perioda ranjivost se ne otkriva široj javnosti, a

ako taj period istekne, istraživač potpuno otkriva ranjivost široj javnosti no bez detaljnih

Page 28: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

24

opisa kako bi se ta ranjivost mogla iskoristiti. Odgovorno otkrivanje je najprihvatljiviji

oblik otkrivanja unutar istraživačke zajednice te se i najčešće koristi. [20]

Istraživači i organizacije dijele isti cilj: smanjenje rizika informacijskim sustavima i

zaustavljanje zlonamjernih aktivnosti nad njima. Oboje žele informirati javnost o

ranjivostima ali dolazi do neslaganja kada se treba odlučiti oko nekih ključnih pitanja kao

što su kada, kome i kako otkriti ranjivosti, stoga su organizacije i pojedinci predložili i

osmislili različite politike otkrivanja, od kojih su neke:

• NTBugtraq (Cooper, Srpanj 1999.)

• Full Disclosure Policy (RP, Lipanj 2000.)

• Vulnerability disclosure (CERT/CC, Listopad 2000.)

• Responsible Vulnerability Disclosure Process (Christey i Wysopal, Veljača 2002.)

• Vulnerability Disclosure Framework (NIAC, Siječanj 2004.)

• Guidelines for Security Vulnerability Reporting and Response (OIS, Rujan 2004.)

5.2. Vrste i uzroci ranjivosti

Neispravna validacija unosa

Prepunjenje spremnika

Validacija unosa koristi se kako bi se osiguralo da podaci uneseni u program napadaču ne

omogućavaju pristup nenamijenjenim funkcionalnostima ili eskalaciju njegovih privilegija.

Uzrok ranjivosti preljeva spremnika (engl. Buffer Overflow) je programerska greška.

Ovakve se ranjivosti dešavaju najčešće jer programer u toku programiranja razmišlja o

tome što bi se trebalo predati kao unos, ili što bi se moglo unijeti kao greška, ne

razmišljajući na način „izvan kutije“ te što bi se desilo da je umjesto očekivanog

korisničkog imena unos bio niz od 1000 specifičnih znakova. Preljev spremnika dešava se

kada se u programu u nekakav spremnik pokušava upisati više podataka nego što u njega

stane, odnosno više od prostora koji je za neki spremnik rezervirano u memoriji. Dodatni

podaci mogu se preliti iz tog spremnika u susjednu memoriju i pregaziti njen sadržaj,

rezultirajući neispravnim ili neočekivanim radom programa. Pažljivim i uspješnim

prelijevanjem spremnika napadač može postići izvršavanje napadačevog vlastitog koda ili

barem srušiti program. Ovo je jedna od najčešćih ranjivosti. [21]

Preporuke za sprječavanje ranjivosti: Sav kod bi trebao biti napisan tako da provjerava

unesene podatke, svi programeri bi trebali biti upoznati i znati primijeniti praksu sigurnog

kodiranja, te bi se svi dijelovi koda čija je zadaća primanje korisničkih podataka trebali

provjeravati i ispitati. Treba se provjeravati duljina unosa, a duljina spremnika ne smije biti

određena posebnom unesenom vrijednošću. Ove mjere je posebno bitno provoditi u

programima pisanim u C/C++ jer sadrže funkcije za upravljanje memorijom koje se

jednostavno mogu koristiti na nesiguran način. [21]

Page 29: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

25

Jednostavan primjer ranjivosti preljeva spremnika:

1. #include <stdio.h> 2. 3. int main(int argc, char **argv){ 4. 5. char buf[8]; // spremnik za 8 znakova 6. gets(buf); // čitaj sa standardnog ulaza u spremnik 7. printf("%s\n", buf); // prikaži podatke spremljene u spremniku "buf" 8. 9. return 0; 10. }

U kodu iznad postoji ranjivost. Analizirajući dio po dio može se ustanoviti gdje se

ranjivost nalazi. Na 5. liniji nalazi se spremnik koji može sadržavati 8 znakova, na 6. liniji

je poziv funkcije gets koja kao argument prima pokazivač na spremnik unutar kojeg će se

spremiti podaci pročitani sa standardnog ulaza, odnosno tipkovnice. Naredba na 7. liniji

jednostavno ispisuje sadržaj spremnika. Pokretanjem programa uz unos „ABCD“

dobivamo sljedeći ispis:

Slika 5.1. Ispis programa uz argument „ABCD“

Sve se čini dobro. Ako se u spremnik spreme podaci duljine veće od osam znakova dogodi

se slijedeće:

Page 30: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

26

Slika 5.2. Ispis programa uz argument „ABCDEFGHIJKLM“

Vidimo da se u ovome slučaju program srušio. Ovaj je primjer jednostavan i služi samo za

prikaz ranjivosti, u praksi su takvi programi puno složeniji.

Nedostatak provjera granica

Ranjivost nedostatka provjere granica (engl. Lack of Bounds Checking) slična je

prethodnoj. Nedostatak provjere jesu li unesene vrijednosti u očekivanom rasponu. Ovakva

vrsta ranjivosti može nastati tijekom pristupa listama. Ako se unese neprovjerena

vrijednost izvan očekivanih granica, može doći do rušenja programa i usluga. [21]

Preporuke za sprječavanje ovakvih ranjivosti iste su kao i kod ranjivosti preljeva

spremnika, potrebna je validacija svih kritičnih mjesta kod kojih se obavlja interakcija

između korisnika i programskih objekata.

Umetanje naredbi

Umetanje naredbi (engl. Command Injection) omogućuje izvršavanje proizvoljnih naredbi i

koda po izboru napadača. Primjer takvog napada dešava se ako zlonamjerni korisnik unese

znak, na primjer dvotočku koja odvaja kraj jedne naredbe i početak druge i time

omogućuje napadaču unos potpuno nove i nepovezane naredbe koja se ne bi smjela

izvoditi. Ovakve ranjivosti dešavaju se na sljedeći način:

1. podaci koji ulaze u sustav dolaze iz neprovjerenih izvora

2. podaci su dio niza znakova koji se izvodi kao programska naredba

3. izvođenjem naredbe aplikacija napadaču pruža prava ili sposobnosti koje

napadaču inače ne bi bile dostupne

Preporuke za sprječavanje ranjivosti: Ako je moguće, koristiti knjižnične pozive umjesto

vanjskih procesa za reprodukciju željene funkcionalnosti. Koristiti whitelisting (dopuštanje

onoga za što smo sigurni da je ispravno), to jest prihvaćati samo one naredbe za koje smo

sigurni da su dobre i koje odgovaraju zadanoj specifikaciji, a ako ne odgovaraju tada ih

treba ignorirati. [21]

Primjer ubrizgivanja naredbi [22]:

Page 31: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

27

Pretpostavimo da imamo web aplikaciju koja korisnicima omogućava pretragu tekstualnih

datoteka na disku, korisnik upisuje termin kojeg želi pronaći unutar datoteka, a aplikacija

ispisuje datoteke u kojima je termin pronađen. Kod koji omogućuje ovakvu funkcionalnost

može izgledati ovako:

1. $direktorij = "datoteke/"; 2. $termin = $_POST['termin']; 3. 4. $rezultat = shell_exec('grep ' . $termin . ' ' . $direktorij . '*'); 5. 6. echo $rezultat;

Riječ za pretraživanje se aplikaciji šalje putem POST zahtjeva. Uobičajen i očekivan način

primjene bio bi ga se putem POST zahtjeva pošalje termin danas, pa će naredba koja se

izvodi u ljusci operacijskog sustava izgledati ovako:

grep danas datoteke/*

Ova će naredba u datotekama koje se nalaze u direktoriju datoteke tražiti sve datoteke koje

sadrže riječ danas. Zlonamjerni korisnik mogao bi tražiti riječ test test; cat/etc/passwd #.

Ovakav unos nije očekivan i naredba koja se izvršava izgledala bi ovako:

grep test test; cat/etc/passwd # datoteke/*

Ovakvim unosom se naredba dijeli na dvije naredbe, prva naredba koja traži riječ test u

datoteci test i druga naredba koja prikazuje sadržaj datoteke passwd koja sadrži podatke o

korisničkim računima. Ovaj primjer pokazuje koliko su zapravo opasne ovakve ranjivosti

jer dopuštaju izvođenje proizvoljnog koda na udaljenom računalu.

Umetanje programskog koda SQL

Danas su SQL baze prisutne gotovo svugdje. Internetske stranice koje koriste baze

podataka često su mete napada na ovakve ranjivosti. Ranjivosti se jednostavno detektiraju i

iskorištavaju. Ranjivost leži u tome što SQL ne razlikuje podatke i kod, pa se stoga na

primjer u polja za unos korisničkih podataka na stranici mogu ubrizgivati specifično

napravljeni nizovi znakova koje bi SQL protumačio kao kod i time izvršio radnje korisne

za napadača. Ovakvim se napadima mogu ukrasti čitave baze podataka koje sadrže

osjetljive podatke kao što su korisničke lozinke, ključevi i slično.

Preporuke za sprječavanje ranjivosti: Izvršavati SQL naredbe korištenjem pripremljenih

naredbi, parametriziranih upita ili spremljenih procedura. Ako je moguće, koristiti

strukturirane mehanizme koji automatski primjenjuju odvajanje između podataka i koda

tako da dodaju dodatno kodiranje i validaciju. [21]

Jednostavan primjer SQL umetanja (engl. SQL Injection) [22]:

U praksi, SQL upiti koji se izgrađuju na stranici nastaju miješanjem programerskog koda i

korisničkog unosa, zamislimo da imamo web aplikaciju koja služi za autentifikaciju

korisnika provjeravajući korisničko ime i lozinku:

1. function provjeri_korisnika(){ 2. $upit = "SELECT * FROM korisnici WHERE kor_ime='".$_POST['kor_ime']."' 3. AND lozinka='".$_POST['lozinka']."'"; 4.

Page 32: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

28

5. $rez = mysql_query($upit); 6. 7. if(mysql_num_rows($upit) == 0) 8. // podaci nisu dobri 9. return FALSE; 10. else 11. // podaci su dobri 12. return TRUE; 13. }

Primjer očekivanog unosa podataka je na primjer da korisnik upiše ime „pero“ i lozinku

„123“, tada je upit koji će se obaviti sljedeći:

1. SELECT * FROM korisnici WHERE kor_ime='pero' AND lozinka='123'

Drugi primjer unosa je neočekivani unos koji može izmijeniti namjenu i ponašanje upita:

1. SELECT * FROM korisnici WHERE kor_ime='pero' AND lozinka='' OR 1=1 -- '

U ovome će slučaju upit vratiti sve redove iz tablice „korisnici“ jer se predana lozinka: „'

OR 1=1 -- ' “ interpretira kao dio koda koji predstavlja uvjet koji će uvijek bit istinit.

Vidimo da ovakve ranjivosti napadaču omogućuju prikupljanje osjetljivih informacija iz

baze podataka.

Podvaljivanje web programa

Ranjivosti podvaljivanja web programa (engl. XSS, Cross-Site Scripting) napadaču

omogućavaju umetanje koda u ranjive web stranice. Napadačev kod izvodi se na klijentu

sa privilegijama servera. Glavni uzrok XSS ranjivosti isti je kao i kod SQL ubrizgavanja,

nedovoljna provjera unesenih podataka. Napadač može ubrizgati maliciozan kod na neku

poveznicu na stranici koja će taj isti kod vratiti internet pregledniku žrtve koji će taj kod

izvršiti, te potencijalno iskorištavajući neke od ranjivosti preglednika (ako postoje)

kompromitirati računalo žrtve. XSS napadi oslanjaju se na interakciju sa žrtvom pa se

stoga najčešće pojavljuju kao poveznice poslane od strane napadača. Najčešći napad

izvršen uz pomoć XSS-a uključuje otkrivanje informacija korisničkih kolačića. Zbog toga

što stranica koja zahtijeva pokretanje zlonamjernog koda ima pristup korisničkim

kolačićima i maliciozan kod ima također. Krađom kolačića napadač može slati zahtjeve

predstavljajući se kao korisnik-žrtva. Drugi napadi koji iskorištavaju ovu ranjivost mogu

biti:

• otkrivanje korisničkih informacija

• instaliranje trojanskih konja

• preusmjeravanje korisnika na druge stranice

• pokretanje Active X kontrola (pod Microsoft Internet Explorerom)

• …

Preporuke za zaštitu od ranjivosti: Web stranice se trebaju temeljito provjeravati i ispitati

na deformirane unose. [21]

Primjer ranjivosti [22]:

Page 33: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

29

Pretpostavimo da imamo web aplikaciju koja omogućuje unos i pregled komentara.

Sljedeći kod korisnikov komentar prihvaća i upisuje u bazu podataka:

1. $upit = "INSERT INTO komentar (datum,sadrzaj) VALUES (NOW(), '." 2. .$_POST['komentar_sadrzaj']."')"; 3. $rez = mysql_query($upit);

Aplikacija ima i kod koji prikazuje sve upisane komentare u obliku redova iz baze

podataka:

1. $upit = "SELECT * FROM komentar"; 2. $rez = mysql_query($upit); 3. 4. while($red = mysql_fetch_array($rez)){ 5. echo '<p>' . $red['sadrzaj'] . '</p>'; 6. echo '<hr>'; 7. }

Ovakav je kod ranjiv na XSS. Ranjivost dolazi do izražaja kada neki zlonamjerni korisnik

kao unos u obliku komentara napiše slijedeće znakove:

1. <script type="text/javascript"> 2. alert("Pozdrav!!!"); 3. </script>

HTML datoteka koja se prikazuje korisniku može izgledati ovako:

1. <p>Prvi komentar</p> 2. <hr> 3. <script type="text/javascript">alert("Pozdrav!!!");</script> 4. </hr> 5. <p>Drugi komentar</p>

To znači da će web preglednik sadržaj drugog paragrafa protumačiti kao HTML kod, a ne

tekstualni komentar, što će rezultirati izvršavanjem JavaScript funkcije alert i preglednik

će izbaciti ovakav prikaz:

Slika 5.3. HTML stranica s neispravnim prikazom

Ispravan prikaz trebao bi biti:

Page 34: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

30

Slika 5.4. HTML stranica s ispravnim prikazom

Nepravilno ograničavanje putanje do direktorija s ograničenim pristupom

Ovakve se ranjivosti dešavaju kada se putanje do datoteka ne provjeravaju. Ovakve se

ranjivosti najčešće povezuju s web aplikacijama iako se ovakve ranjivosti mogu pojaviti i

kod drugih aplikacija. Do ovih ranjivosti dolazi kada se vanjski unos koristi da bi se

izgradila putanja do određene datoteke ili direktorija koji se nalazi unutar nekog zaštićenog

direktorija-roditelja. Program koji prima vanjski unos ne neutralizira posebne elemente i

znakove koji se prilikom izgradnje mogu pretvoriti u lokaciju koja bi trebala biti

nepristupačna. Napadač tada može čitati, stvarati ili izmjenjivati datoteke i time izvršavati

određeni kod ili naredbe, srušiti sustav i izvršavati DoS napade.

Preporuke za zaštitu od ranjivosti: Kao i kod ranijih ranjivosti, najbitnije je koristiti

validaciju unesenih podataka, koristiti listu prihvatljivih unosa koji odgovaraju određenim

specifikacijama i odbiti bilo kakav unos koji ne odgovara tim specifikacijama. [21]

Slaba sigurnost koda

Slaba sigurnost koda odnosi se na probleme u kodu koji nisu nužno ranjivosti, ali ukazuju

na to da se proizvod ne izrađuje pravilno te da ovakvi proizvodi puno češće sadrže

ranjivosti.

Korištenje potencijalno opasnih funkcija

Potencijalno opasne funkcije unutar programa omogućavaju nastanak ranjivosti ako se

koriste na pogrešan način. U dokumentacijama jezika često je jasno napomenuto ako se

radi o opasnoj funkciji i koji su načini korištenja takvih funkcija ili se navode zamjenske

funkcije. Problem kod ovakvih funkcija je taj što je provjera unosa zadatak programera.

Primjer takve funkcije je funkcija strcpy u C/C++. Ako se na ikakav način može utjecati na

parametre predane toj funkciji, postoji rizik od nastanka ranjivosti prelijevanja spremnika.

Većina takvih funkcija ima svoje druge sigurne oblike, u ovom slučaju to je funkcija

strncpy koja kao parametre osim izvora i odredišta prima i veličinu niza znakova koje je

potrebno kopirati. [21]

Zaštita od opasnih funkcija se radi tako da se sav napisani kod kontrolira ručnim i

automatiziranim procesima.

Page 35: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

31

Neispravna uporaba NULL pokazivača

Neispravna uporaba NULL pokazivača kao posljedicu može imati rušenje i izlaz iz

programa. Sprječavanje ovakvih problema može se izvoditi tako da se rade provjere

prilikom korištenja pokazivača ili implementacijom upravljanja iznimkama. Tim bi se

provjerama trebali spriječiti gotovo svi problemi nastali neispravnom uporabom NULL

pokazivača. [21]

Dopuštenja, privilegije i kontrola pristupa

Ovo poglavlje također ne opisuje izravne ranjivosti već propuste ili loše prakse koje

potencijalno mogu dovesti do stvaranja ranjivosti.

Neispravna kontrola pristupa (autorizacija)

Neispravna kontrola pristupa korisnicima koji ne moraju nužno biti zlonamjerni dopušta

pristup resursima za koje inače nemaju pristup i time ih mogu kompromitirati. Kontrola

pristupa može sadržavati više računa na jednom računalu i pridavanje minimalno potrebnih

dopuštenja korisnicima za obavljanje svog posla.

Izvođenje s nepotrebnim privilegijama

Naredbe ili usluge koje korisnici računa mogu koristiti trebaju biti ograničeni pravima tog

korisnika. Nepotrebno izvođenje naredba kao administrator sustava može dovesti do

iskorištavanja takvog pristupa i namjernog ili nenamjernog pristupa određenim podacima.

U privilegiranom načinu rada trebaju se pokretati samo one usluge i programi za koje je

takav način rada nužno potreban za njihov ispravan rad i željeni učinak.

Neispravna autentifikacija

Neispravna autentifikacija uzrok je mnogim ranjivostima sustava. Usluge koje sadrže slabe

autentifikacijske metode postaju nesigurni i mogu biti iskorišteni za dobivanje većih

privilegija na sustavu.

Zaobilaženje autentifikacije

Računalni program ne provodi ispravno proces provjere korisničkih podataka dopuštajući

zaobilaženje postupka autentifikacije. Postupak zaštite uključuje temeljito ispitivanje web

aplikacija i programa ispitujući kako ponašanje prilikom davanja deformiranog unosa. [21]

Klijentska provjera poslužiteljske sigurnosti

Aplikacije koje provjeravaju autentičnost korisnika na klijentskoj strani dopuštaju

zlonamjernim napadačima da ukradu korisničke podatke ili zaobiđu proces lokalne

autentifikacije npr. reverznim inženjerstvom. Sprječavanje ovakvih situacija rješava se

implementacijom robusne autentifikacije na strani poslužitelja, a one provjere koje se

provjeravaju lokalno na klijentu trebaju se udvostručiti i provjeravati i na poslužitelju. [21]

Kanal pristupačan trećoj strani

Napad čovjekom u sredini (engl. Man in the middle attack)moguć je ako se u tijeku

komunikacije ne vrši ispravna provjera identiteta obje strane ili integritet kanala nije dobro

Page 36: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

32

osiguran, tako da je dostupan akteru koji nije dio te komunikacije koji može utjecati na

kanal ili podatke koji se njime prenose i time manipulirati komunikacijom. Napad

čovjekom u sredini već je opisan ranije. [21] Ovakvi nedostaci u sustavu mogu se ispraviti

tako da se uvede bolja autentifikacija oba aktera koja sudjeluju u komunikaciji i da se

kanal osigura primjenom sigurnih kriptografskih algoritama. Treba se provoditi i provjera

integriteta poruka kako bi se ustanovilo ako su podaci bili mijenjani tijekom prijenosa.

Nedovoljna provjera autentičnosti podataka

Cross-Site Request Forgery (CSRF)

Kada je poslužitelj dizajniran tako da može primiti zahtjev od klijenta bez dodatne provjere

da je zahtjev bio namjerno poslan, moguće je da napadač prevari klijenta da nenamjerno

pošalje zahtjev web poslužitelju koji bi ga interpretirao kao valjani zahtjev i time bi

napadaču bilo omogućeno izvođenje bilo kakvih aktivnosti kao i običnom korisniku.

Prijedlog za sprječavanje ovakvih scenarija može biti dodavanje nasumičnog tokena svakoj

formi na stranici i provjeravati odgovara li token klijenta tokenu spremljenom na

poslužitelju za tu sesiju. Token bi trebao biti dovoljno dugačak za sprječavanje napada

grubom silom (engl. Brute Force) stoga je duljina od 15 znakova preporučljiva. [21]

Nepostojanje provjere integriteta podataka

Integritet podataka provjerava se sažetkom (engl. Hash ili Checksum) koji jednom

izračunat nad nekim nizom podataka jednoznačno određuje te podatke. Ako je provjera

integriteta nepostojeća, napadač može izmjenjivati podatke u prijenosu i time ostvariti

korist. Pojednostavljeni primjer bio bi kada osoba A iz banke A' prebacuje neki iznos na

račun u banku B' osobi B. Ako osoba C u toku prijenosa može presresti podatke (napadom

čovjeka u sredini) i izmijeniti odredište podataka tako da umjesto banke B' iznos ide u

banku C' osobe C, tada bi se zbog neprovjeravanja integriteta podataka ovakva transakcija

uspješno provela sa bankovnog računa osobe A na račun osobe C. Provjera integriteta

mora se provoditi na što je moguće nižem sloju komunikacije kako bi se u kasnijim, višim

slojevima mogle vršiti druge provjere. Rješenje ovakvog problema je dodavanje sažetka u

komunikacijski protokol što osigurava da se integritet podataka može provjeriti prije

njihove uporabe. Računanje sažetka mora se izvoditi primjenom sigurnih kriptografskih

algoritama za izračunavanje sažetka, primjer takvih algoritama je algoritam SHA3.

Naglasak je na sigurnim algoritmima jer ako je napadač može izmisliti podatke čiji sažetak

odgovara sažetku originalne poruke, sustav za provjeru sažetaka prihvatio bi napadačeve

podatke ne znajući sadrže li zlonamjeran sadržaj. U vrijeme pisanja ovog rada Google je

uspio pronaći koliziju primjenom algoritma SHA1 te se stoga taj algoritam službeno

smatra nesigurnim.

Preuzimanje koda bez provjere integriteta

Nesigurnost ovakvog postupka očigledna je, napadač s pristupom poslužitelju na kojem se

nalazi preuzimani kod može izmijeniti taj kod ili ga zamijeniti sa nekim proizvoljnim

kodom koji će se kasnije, nakon što je preuzet sa strane korisnika, izvršiti na njegovom

računalu. [21] Ovakvim se napadima vrlo efikasno mogu napraviti mreže računala koje

napadaču mogu koristiti za daljnje napadanje njegovih žrtava napadom uskraćivanja

Page 37: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

33

usluge. Rješenje ovakvom problemu je dodavanje kriptografskih sažetaka u ažuriranim

verzijama koda kojima se provjerava njegov integritet.

Kriptografski problemi

Nepostojanje enkripcije osjetljivih podataka

Samo ime govori kako nepostojanje enkripcije takvih podataka podatke čini dostupnima

svima koji ih uspiju dohvatiti. Jednostavan primjer je slanje nekriptiranih lozinki putem

nesigurnog kanala što omogućuje napadaču da presretne podatke i jednostavno ih pročita.

Rješenje je jednostavno: kanale preko kojih se šalju osjetljive informacije potrebno je

zaštititi enkripcijom, a kao dodatan sloj zaštite preporučuje se kriptirati i podatke kako bi

se zaštitili od napada na rubnim točkama komunikacije.

Korištenje probijenih ili rizičnih kriptografskih algoritama

Kao prethodno navedeni SHA1 algoritam, neki su algoritmi visokog rizika zato što mogu

sadržavati ranjivosti zbog njihove implementacije ili zato što su otkriveni novi napadi na

njih ili je trenutna računalna oprema dovoljno snažna da provede napad grubom silom u

razumnom vremenu. Pojam razumnog vremena varira, postoje napadi koje trenutno mogu

izvršiti samo neke organizacije koje raspolažu s dovoljno resursa i računalne snage da

takve napade uspiju provesti kroz tjedne ili mjesece, dok će takva snaga široj javnosti biti

nedostupna možda narednih par stoljeća. Neovisno o tome, napadi koji su uspješno

izvedeni prestaju biti teorijski te se algoritmi koji su tim napadima probijeni smatraju

nesigurnim i ne bi se smjeli više koristiti.

Page 38: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

34

6. Podjela alata za ispitivanje ranjivosti

Tijekom ručne analize ranjivosti, programeri i ispitivači su razvijali vlastite programe za

ispitivanje ranjivosti koji su prerasli u ozbiljne alate prihvaćene od strane istraživačke

zajednice koji služe kao osnovni alati za ispitivanje. Uvijek je moguće napisati svoje

programe za ispitivanje ranjivosti, a ovi alati obuhvaćaju najčešće primjenjivane prakse za

postizanje određenog cilja ili se koriste kao pomoćni programi za dostavu glavnog

programa kojeg piše programer. Alati za ispitivanje ranjivosti dijele se na više kategorija, u

okviru ovog rada neće biti navedeni isključivo alati za ispitivanje ranjivosti već i oni koji

potpomažu samom procesu ispitivanja ranjivosti. U svakome će poglavlju biti naglasak na

neke poznatije alate dok će drugi alati biti samo navedeni. Neki se alati mogu pojavljivati u

više kategorija iz razloga jer imaju više namjena od kojih su neke sporedne, a neke

primarne.

6.1. Alati za sakupljanje informacija

Alati za sakupljanje informacija pružaju potporu prvom koraku procesa ispitivanja

ranjivosti. Ovi alati služe kako bi ispitivač dobio korisne informacije o sustavu kojeg želi

ispitati, neke od informacija uključuju: IP adresu, otvorena i zatvorena vrata (port),

operacijski sustav i ostali.

Alat Nmap

Nmap je program koji primarno služi za otkrivanje domaćina i usluga na računalnim

mrežama, time mapirajući mrežu. Ovo je jedan od najpoznatijih alata koji se danas koriste

u ispitivanju ranjivosti u tu svrhu. Nmap nudi mnogo ugrađenih opcija za ispitivanje

ranjivosti kao i opcija za podržavanje korisničkih skripti. Počeo je s razvojem kao alat za

Linux operacijski sustav, a danas je dostupan i za Windows, Solaris i ostale. Zenmap je

naziv za grafičko sučelje za upravljanje Nmap-om. Autor programa je Gordon Lyon.

Page 39: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

35

Slika 6.1. Zenmap grafičko sučelje

Alat Wireshark

Uz Nmap, ovaj je alat na vrhu ljestvice popularnosti u industriji ispitivanja ranjivosti. On je

program otvorenog koda koji služi za analizu paketa tako da presreće sve pakete koji su

dostupni mrežnoj kartici. Ima mnogo opcija filtriranja i prikazuje jako detaljne informacije

o uhvaćenim paketima, a osim toga prepoznaje i mnogo komunikacijskih protokola.

Dostupan je na Linux, Windows, BSD, Solaris i ostalim operacijskim sustavima. Glavni

autor je Gerald Combs.

Page 40: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

36

Slika 6.2. Grafičko sučelje Wiresharka

Alat DMitry

DMitry je program dostupan na UNIX operacijskim sustavima koji se izvodi preko

naredbenog retka. Osnovna funkcionalnost dozvoljava prikupljanje poddomena, adresa

elektroničke pošte, TCP skeniranje vrata, skeniranje domena i više. Autor je James Greig.

Alat Maltego Teeth

Ovo je pridodana funkcionalnost programu Maltego koja istraživačima omogućuje

utvrđivanje veza u stvarnome svijetu između: ljudi, grupa ljudi, organizacija i kompanija,

web stranica, domena, IP adresa i omogućuje prikaz tih veza. Autor aplikacije je Paterva.

Alat Miranda

Miranda je program dizajniran za otkrivanje, ispitivanje i interakciju usmjeritelja.

Omogućuje otkrivanje usmjeritelja, kontrolu IP adresa i vrata, jednostavno prebrojavanje

usmjeritelja, sposobnost slanja naredba na usmjeritelje i slično. Program je napisan u

programskom jeziku Python i dostupan je za Linux operacijski sustav. Autor aplikacije je

Craig Heffner.

Alat P0f

P0f je alat koji koristi pasivne metode uzimanja otisaka kako bi identificirao aktere u

TCP/IP komunikacijama. Podržava vrlo brzu i skalabilnu identifikaciju operacijskog

sustava i programa na obje strane nove TCP konekcije. Alat je dostupan za Linux

operacijski sustav. Autor aplikacije je Michal Zalewski.

Page 41: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

37

Alat Netcat

Ovaj vrlo poznati alat osim za izradu konekcija i povezivanje može poslužiti i za

skeniranje vrata, što ga čini korisnim kod ispitivanja ranjivosti.

Ostali alati za sakupljanje informacija:

Amap, acccheck, ace-voip, Automater, bing-ip2hosts,braa, CaseFile, CDPSnarf, cisco-

torch, Cookie Cadger, copy-router-conig, dnmap, dnsenum, dnsmap, DNSRecon,

dnstracer, dnswalk, DotDotPwn, enum4linux, enumIAX, Fierce, Firewalk, fragroute,

fragroute, Ghost Phisher, GoLismero, goofile, hping3, InTrace, iSMTP, lbd, masscan,

Metagoofil, nbtscan-unixwiz, ntop, Parsero, Recon-ng, SET, smtp-user-enum, snmp-check,

sslcaudit, SSLsplit, sslstrip, SSLyze, THC-IPV6, theHarvester, TLSSLed, twofi, URLCrazy,

WOL-E, Xplico. [23]

6.2. Alati za analizu ranjivosti

Ovi alati služe za analizu sustava i pretragu za poznatim ranjivostima. Primjenjuju se u

drugom koraku procesa ispitivanja ranjivosti. Njihova je uloga dati što više informacija o

pronađenim ranjivostima i stvaranje izvješća koje je korisno menadžerskom dijelu firme

kako bi im pomoglo prilikom daljnjih odluka.

Alat Burp suite

Ovaj alat napisan u Javi koristi se kao platforma za sigurnosno ispitivanje web aplikacija.

Skup uključenih programa može se koristiti za ručno ili automatizirano ispitivanje. Vlasnik

je PortSwiger. Dostupne su plaćena i besplatna verzija.

Slika 6.3. Sučelje Burp Suite-a

Alat Nessus

Nessus je jedan od najpopularnijih skenera ranjivosti na tržištu. Namijenjen je za UNIX

sustave. Ima više od 70 000 priključaka koji mu proširuju funkcionalnost. Ključne

Page 42: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

38

mogućnosti su mu udaljene i lokalne provjere sigurnosti, podrška za pisanje skripti u

vlastitom jeziku.

Slika 6.4. Nessus sučelje

Alat OpenVAS

Open Vulnerability Assessment System je okvir koji se sastoji od više usluga i alata i nudi

opsežnu mogućnost skeniranja ranjivosti i njihovim upravljanjem. Sadrži oko 33,000

ranjivosti. Proizvod je besplatan za Linux i Windows operacijski sustav. Nastao je kao

kopija Nessusa 2005. godine kada je Nessus prestao biti besplatan.

Slika 6.5. OpenVAS sučelje

Alat SAINT

SAINT je komercijalni alat za analizu ranjivosti. Kao i Nessus, neko je vrijeme bio

besplatan no danas postoji samo komercijalna verzija. SAINT je napravljen za Linux i Mac

OS X operacijske sustave.

Page 43: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

39

Alat OWASP ZAP

Ovaj alat je besplatan alat za Linux, Windows i Mac OS X operacijske sustave koji služi

kao skener ranjivosti web aplikacija. Lakoća korištenja čini ga korisnim novim

ispitivačima kao i onim profesionalnim. Napisan je u Javi. Neke od mogućnosti su:

automatizirano skeniranje, pasivno skeniranje, podržava skriptne jezike i služenje kao

proxy poslužitelj.

Alat Retina

Retina je alat aktivan od 1998. Ovaj je program jedan od starijih i najsofisticiranijih alata

za analizu ranjivosti dostupnih na tržištu. Dostupna je kao samostalan program ili kao dio

Retina CS upraviteljske platforme. Omogućava efikasno identificiranje ranjivosti, zakrpa

koje nedostaju, slabosti u konfiguracijama i ostale. Ne postoji besplatna verzija i dostupan

je za Windows operacijski sustav.

Ostali alati za analizu ranjivosti:

BBQSQL, BED, cisco-auditing-tool, cisco-global-exploiter, cisco-ocs, cisco-torch, copy-

router-config, DBPwAudit, Doona, DotDotPwn, Greenbone Security Assistant, GSD,

HexorBase, Inguma, jSQL, Lynis, Nmap, ohrwurm, Oscanner, Powerfuzzer, sfuzz,

SidGuesser, SIPArmyKnige, sqlmap, Sqlninja, sqlsus, THC-IPV6, tnscmd10g, unix-

privesc-check, Yersinia, Acutnetix WVS, AppScan, App Scanner, AppSpider, Nexpose

6.3. Alati za bežične napade

Alati za bežične napade koriste se u trećem koraku procesa ispitivanja ranjivosti, odnosno

u koraku koji slijedi nakon pronalaska ranjivosti. Neki od popularnih alata za bežične

napade su:

Alat Aircrack-ng

Ovaj program je jedan od najpoznatijih programa koji se koristi u području bežičnih

napada. Služi za probijanje 802.11 WEP i WPA-PSK ključeva. Probija ključeve nakon što

uspješno dohvati određeni broj paketa s mreže. Implementira FMS, KoreK i PTW napade.

Dostupan je za Linux operacijski sustav. Autori alata su: Thomas d'Otreppe i Christophe

Devine.

Alat Reaver

Reaver je program za napad na bežične mreže koji implementira napad grubom silom na

bežičnu mrežu zaštićenu WPS zaštitom. U prosjeku, Reaveru je potrebno od 4 do 10 sati

kako bi probio WPA/WPA2 lozinke. Autor programa je Craig Heffner.

Page 44: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

40

Alat AirSnort

Ovo je još jedan popularan alat za napad na bežične mreže. Može napadati WEP ključeve

Wi-Fi 802.11b mreže. Ima isti način rada kao i Aircrack-ng, uspijeva pronaći ključ nakon

dovoljno prikupljenih mrežnih paketa. Ovaj je alat besplatan i dostupan je na Linux i

Windows operacijskim sustavima.

Alat Kismet

Još jedan alat za napad 802.11 bežičnih mreža. Može hvatati 802.11 a/b/g/n mrežni

promet, javljati zvukovnim alarmima ako dođe do određenog događaja na mreži i time

služiti kao sustav za detekciju upada, te davati GPS koordinate. Autor programa je Mike

Kershaw.

Alat Cain & Abel

Ovaj dobro poznati program služi za probijanje lozinki putem napada grubom silom. Osim

probijanja mrežnih lozinki, može koristiti za probijanje i ostalih. Popularno se koristi kao

program za probijanje Windows lozinki. Dostupan je za Windows operacijski sustav.

Slika 6.6. Cain&Abel grafičko sučelje

Ostali alati za bežične napade: Asleap, Bluelog, BlueMaho, Bluepot, BlueRanger,

Bluesnarger, Bully, coWPAtty, crackle, eapmd5pass, Fern Wifi Cracker, Ghost Phisher,

Gqrx, gr-scan, KillerBee, mdk3, mfcuk, mfoc, mfterm, redfang, Spooftooph, Wifi Honey,

wifiphisher, Wifitap, Wifite, Wifitap

Page 45: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

41

6.4. Alati za web aplikacije

Alat Arachni

Arachni je okvir koji pomaže ispitivanju ranjivosti web aplikacija napisan u jeziku Ruby.

On je pametan alat i uči trenirajući na HTTP odgovorima tijekom procesa revizije kako bi

mogao procijeniti vrijednost rezultata i identificirati lažne rezultate. Pogodan je za

korištenje kao jednostavan alat iz komandnog retka i u mreži skenera. Autor ovog alata je

Tasos Laskos.

Alat Grabber

Grabber je skener web aplikacija koji može identificirati ranjivosti na manjim stranicama.

Može ispitati aplikacije XSS napadima ili napadima SQL injekcijom. Program je

jednostavan i spor ali vrlo prilagodljiv. Pogodan je za skeniranje foruma. Autor programa

je Romain Gaucher.

Alat Vega

Vega je besplatan okvir za ispitivanje sigurnosti web aplikacija. Vega pomaže pri

pronalasku i ispitivanju SQL i XSS ranjivosti kao i identificiranja postoje li negdje

nezaštićene osjetljive informacije. Napisana je u Javi, a podržana je na Linux, OS X i

Windows operacijskim sustavima.

Slika 6.7. Vega sučelje

Page 46: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

42

OWASP ZAP

Ovaj je alat prethodno naveden i opisan u alatima za analizu ranjivosti. Detaljnija analiza

ovog alata uslijedit će u kasnijim poglavljima.

Alat W3af

Ovaj je alat namijenjen za napadanje web aplikacija. Pruža grafičko sučelje, a ako korisnik

želi, može instalirati i verziju w3af-console koja se pokreće iz naredbenog retka. Program

je pisan u jeziku Python i podržava više od 130 dodataka. Omogućava identifikaciju i

napade na SQL i XSS napade i ostale. Autor ovog programa je Andres Riancho

Slika 6.8. w3af grafičko sučelje

Alat SQL Map

Ovaj alat služi za automatiziranu identifikaciju i napad na SQL injekcijom. Ima snažan

mehanizam detekcije i može napadati MySQL, Oracle, PostgreSQL, Microsoft SQL, IBM

DB2, SQLite i ostale upravitelje za baze podataka. Implementira šest različitih tehnika

napada na SQL ranjivosti te automatsko prepoznavanje sažetaka lozinki. Autori ovog alata

su Miroslav Štampar i Bernardo Damele Assumpcao Guimaraes.

Alat Burp suite

Ovaj je alat već prethodno opisan ali je zbog svoje široke primjene svrstan i u ovu

kategoriju.

Page 47: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

43

Ostali alati za ispitivanje web aplikacija: apache-users, BBQSQL, BlindElephant,

CutyCapt, DAVTest, deblaze, DIRB, DirBuster, fimap, FunkLoad, Gobuster, jboss-

autopwn, joomscan, jSQL, Maltego Teeth, PadBuster, Paros, Parsero, Recon-ng, Skipfish,

WebSlayer, WebSploit, Webshag, Wfuzz, WPScan, XSSer

6.5. Alati za iskorištavanje ranjivosti

Iako su neki od ovih alata već navedeni u prethodnim kategorijama, dobri alati za

iskorištavanje ranjivosti pokazuju svoju široku primjenjivost u više područja. Osnovna

primjena ovih alata je iskorištavanje ili potpora iskorištavanju ranjivosti.

Alat Armitage

Armitage je alat za korištenje u Metasploit okviru koji omogućava vizualizaciju meta,

preporučuje načine kako iskoristiti ranjivosti te ima još nekih naprednih mogućnosti za

korištenje nakon procesa iskorištavanja ranjivosti.

Slika 6.9. Armitage sučelje

Alat Maltego Teeth

Ovaj je alat već opisan u ranijim dijelovima i neće se opisivati ponovno.

Alat SQL Map

Već opisani alat široke primjene i velikih mogućnosti.

Page 48: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

44

Alat Metasploit

Metasploit je jedan od najpoznatijih programa za razvoj i izvođenje programa za

iskorištavanje ranjivosti na udaljenom računalu. Sadrži alate za izbjegavanje otkrivanja i

forenzike. Postoje besplatna i plaćena verzija koja uz osnovnu funkcionalnost nudi i neke

naprednije opcije. Ovaj će alat detaljnije biti opisan u kasnijim poglavljima.

Slika 6.10. Izgled Metasploit sučelja

Ostali alati za iskorištavanje ranjivosti: Backdoor Factory, BeEF, cisco-auditing-tool,

cisco-ocs, cisco-torch, Commix, crackle, exploitdb, jboss-autopwn, SET, ShellNoob,

Yersinia

6.6. Alati za forenziku

Alati za forenziku potpomažu procesu ispitivanja ranjivosti u smislu da olakšavaju

najčešće ručnu analizu sustava. Neki se od ovih alata koriste za pretraživanje memorije i

omogućuju izvlačenje raznih informacija iz sustava ili slika memorije. Koriste i za

dobivanje raznih informacija iz statičke i dinamičke analize datoteka kao što su ponašanje

datoteka unutar reguliranog okruženja, utjecaj datoteka na sustav i interakciju datoteka s

ostalim knjižnicama operacijskog sustava.

Alat Volatility

Volatiliry okvir je potpuno besplatan skup alata napisanih u Pythonu koji služi za

ekstrakciju digitalnih artefakata iz slika promjenjive memorije (RAM). Iako se forenzika

vodi odvojeno od sustava kojeg se ispituje (na slikama memorije), ovaj alat omogućava

detaljan pregled stanja izvođenja sustava u vrijeme nastanka memorijske slike. Podržava

sve poznate operacijske sustave.

Page 49: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

45

Alat Binwalk

Ovaj alat služi za pretraživanje binarnih datoteka u potrazi za uključenim datotekama ili

izvršnog koda. Specifično, koristi se za traženje koda ili drugih datoteka unutar firmware

datoteka. Zahvaljujući tome što koristi libmagic knjižnicu, može prepoznati većinu tipova

datoteka. Autor ovog programa je Craig Heffner.

Alat Cuckoo

Cuckoo Sandbox je sustav za dinamičku analizu zloćudnih programa. Za svoj rad koristi

virtualno okruženje unutar kojeg izvodi sumnjivu datoteku i analizira rezultate izvođenja

kao što su promjene registra, stvaranje ili izmjena datoteka na sustavu, pozivanje drugih

programa i slično, također nudi i mogućnost stvaranja izvještaja.

Alat P0f

Ovaj je alat već opisan ranije no naveden je kao popularan predstavnik skupine alata za

računalnu forenziku TCP/IP komunikacije.

Ostali alati za forenziku su: bulk-extractor, Capstone, chntpw, dc3dd, ddrescue, DFF,

diStorm3, Dumpzilla, Foremost, Galleta, Guymager, pdf-parser, pdfid, peepdf, RegRipper,

Xplico

6.7. Alati za stres ispitivanje

Alati za stres ispitivanje nisu direktno vezani uz ranjivosti ali mogu pružiti povratnu

informaciju koliko je neki poslužitelj ili web stranica stabilna.

Alat FunkLoad

FunkLoad je alat koji služi za ispitivanje funkcionalnosti web stranica i njihove

podnošljivosti na promet. Program je napisan u jeziku Python. Ovaj program omogućuje:

funkcionalno ispitivanje web projekata, ispitivanje performansi tako da optereti web

aplikaciju i nadzire potrošnju resursa, visoko opterećenje web stranice kako bi se ispitale

mogućnosti oporavka i druge.

Ostali alati za stres ispitivanje: DHCPig, iaxflood, Inundator, inviteflood, opv6-toolkit,

mdk3, Reaver, rtpflood, SlowHTTPTest, t50, Termineter i o stali.

6.8. Alati za prisluškivanje i lažno predstavljanje

Alat Burp Suite

Ovaj prethodno navedeni i opisani multifunkcionalan alat je jedan od najboljih alata na

tržištu za primjenu u ovoj kategoriji i neće biti ponovno opisan.

Page 50: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

46

Alat Wireshark

Isto vrijedi i za Wireshark, ovaj smo alat već opisali i svoju primjenu također pronalazi i u

napadima prisluškivanja.

Alat Mitmproxy

Mitmproxy je alat koji se koristi za izvršavanje napada čovjekom u sredini. Koristi HTTP

protokol i nudi sučelje prema korisniku putem naredbenog retka. Ovaj alat može presresti i

izmjenjivati HTTP promet, spremati HTTP promet za kasnije napade ponavljanjem, vršiti

napade ponavljanjem i ostale. Autor programa je Aldo Cortesi.

Alat ApateDNS

Služi za kontroliranje DNS odgovora preko jednostavnog grafičkog sučelja. Predstavlja se

kao lažni DNS poslužitelj i preusmjerava DNS zahtjeve prema proizvoljno odabranoj IP

adresi. Prilikom svog rada on automatski podešava lokalni DNS poslužitelj na localhost,

odnosno adresu 127.0.0.1 pa se sav DNS promet preusmjerava na lokalno računalno.

Koristi se često u analizi zloćudnih programa kada je bitno analizirati potencijalne

pokušaje komunikacije s udaljenim poslužiteljima.

Slika 6.11. ApateDNS sučelje

Ostali alati za prisluškivanje i lažno predstavljanje su: DNSChef, fiked, hamster-sidejack,

HexInject, iaxflood, inviteflood, iSMTP, isr-evilgrade, mitmproxy, ohrwurm, protos-sip,

Page 51: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

47

rebind, responder, SSLsplit, Sniffjoke, SIPVicious, Wifi Honey, xspy, Yersinia, zaproxy i

ostali.

6.9. Alati za napadanje lozinki

Alati za napadanje lozinki mogu napadati lozinke koristeći više različitih tehnika kao što

su napad grubom silom, korištenje dugine tablice, napadi specifični za protokol i ranjivosti

i ostali. Neki od najpoznatijih alata za napadanje lozinki su:

Alat THC-Hydra

Ovo je jedan od najefikasnijih alata za probijanje lozinki pristupa. Koristi paralelni način

rada što ga čini boljim od ostalih alata. Nudi širok spektar podržanih protokola kao što su:

CVS, FTP, IMAP, HTTP(S), ICQ, POP3, SMTP i još mnogo drugih. Dostupan je za

Linux, Windows, Solaris i OS X operacijske sustave. Autori programa su Van Hauser i

Roland Kessler.

Slika 6.12. Hydra sučelje

Alat John the ripper

Ovaj dobro poznati alat, najčešće zvan samo John, je fleksibilan i višeplatformski alat za

probijanje lozinki. Najčešće se koristi za probijanje lozinki UNIX sustava. Ima sposobnost

prepoznavanja sažetaka lozinki i u svome radu koristi vlastite optimizirane funkcije i

Page 52: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

48

module specifične za arhitekturu na kojoj se pokreće. Dostupan je za Linux, Mac i

Windows. Postoje besplatna i plaćena verzija koja nudi još dodatnih mogućnosti.

Slika 6.13. John the Ripper sučelje

Alat RainbowCrack

RainbowCrack je implementacija Phillippe Oechslin-ovog algoritma za probijanje lozinki

koristeći dugine tablice. Za usporedbu: napad grubom silom mora generirati sve moguće

nizove znakova i njihove sažetke, zatim sažetke uspoređuje sa sažetkom lozinke koju

pokušavamo probiti i ako pronađe odgovarajući sažetak, tada znamo i lozinku. Napad

duginim tablicama koristi dodatnu obradu prije samog postupka uspoređivanja, a to je da

unaprijed izračuna listu svih mogućih znakova i sažetaka zauzimajući više prostora ali

smanjujući vrijeme potrebno za usporedbu jer je na ovaj način usporedba brža od

usporedbe koja se obavlja prilikom napada grubom silom. Ovaj je program besplatan.

Ostali alati za napadanje lozinki: acccheck, BurpSuite, CeWL, cisco-auditing-tool, Cain

and Abel, CmosPwd, creddump, crunch, findmyhash, Maltego Teeth, Ncrack, patator,

SQLdict, TrueCrack i ostali.

6.10. Alati za zadržavanje pristupa

Ovi alati se koriste nakon procesa iskorištavanja ranjivosti kako bi se napadaču omogućila

stalna dostupnost napadnutog računala. Ovo se postiže stvaranjem stražnjih vrata koja

omogućuju diskretno povezivanje napadača i ranjivog stroja kako bi napadač mogao

upravljati udaljenim strojem.

Page 53: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

49

Alat Weevely

Ovaj alat omogućuje skrivenu vezu putem PHP web ljuske koja simulira protokol telnet.

Osim za ispitivanje, može se koristiti i za administrativne radnje na udaljenim

poslužiteljima.

Alat PowerSploit

PowerSploit je niz Microsoft PowerShell skripti koje se mogu iskoristiti nakon

iskorištavanja ranjivosti sustava za stvaranje stražnjih vrata i slično. Autor je Matthew

Graeber.

Alat Nishang

Nishang je okvir i skup skripti namijenjenih za korištenje u postupcima nakon

iskorištavanja ranjivosti i koji sadrži zanimljive skripte kao što su zapisnici unosa

tipkovnice (engl. Keylogger), HTTP stražnja vrata i ostale.

Ostali alati za zadržavanje pristupa su: CryptCat, Cymothoa, dbd, dns2tcp, http-tunnel,

Intersect, polenum, pwnat, RidEnum, sbd, U3-Pwn i ostali.

6.11. Alati za reverzni inženjering

Alati za reverzni inženjering omogućuju i olakšavaju proces reverznog inženjerstva, a to je

da se iz nekog već prevedenog programa saznaju informacije o njegovom načinu rada,

kodu ili nekim drugim informacijama koje bi napadaču mogle biti zanimljive. Alati koji se

najčešće koriste u praksi su:

Alat OllyDbg

Osnovna namjena OllyDbg programa je analiza izvođenja programa. OllyDbg omogućuje

kontrolirano koračanje prilikom izvođenja programa najčešće s namjenom otklanjanja

grešaka, no nudi i mogućnost izmjene koda tijekom izvođenja kako bi se potencijalno

zaobišle sigurnosne mjere i time kompromitirao sustav. OllyDbg je besplatan i nudi

raznorazne dodatke koji proširuju njegovu funkcionalnost.

Page 54: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

50

Slika 6.14. OllyDbg sučelje

Alat IDA Pro

Ida je program koji omogućuje disasembliranje programa, odnosno omogućuje

strukturirani pregled njegovog asemblerskog koda. Ovaj je program koristan jer se ovim

procesom može doći do zanimljivih podataka koji su zapisani u programu kao konstante

kao što su lozinke, IP adrese raznih poslužitelja ili neke druge osjetljive informacije.

Postoje besplatna i plaćena verzija ovog programa.

Page 55: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

51

Slika 6.15. IDA Pro sučelje

Alat YARA

Iako se YARA ne koristi izravno u nekom od postupaka ispitivanja ranjivosti, YARA nam

omogućuje pisanje pravila kojima možemo detektirati datoteke određene tim pravilima.

Pravila se mogu sastojati od nizova znakova pa čak i dijelova koda u obliku

heksadecimalnog zapisa okteta, a stvorena se pravila mogu povezivati logičkim pravilima.

Alat Dex2jar

Ovaj se alat koristi kao međukorak u analizi Android aplikacija. Dex2jar nam služi kako bi

se datoteka formata Dex (engl. Dalvik Executable) mogla pretvoriti u jar format koji se

kasnije može lakše analizirati kroz neki drugi alat kao što je Jad ili JD-GUI.

Alat Jad

Jad, odnosno Java Decompiler je program koji omogućuje prikaz Java koda iz Java

izvršnih datoteka. Često se koristi u praksi i vrlo je točan.

Ostali alati za reverzno inženjerstvo su: apktool, diStorm3, edb-debugger, javasnoop, JD-

GUI, smali, Valgrind i ostali.

Page 56: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

52

7. Praktičan rad

U okviru praktičnog dijela ovog završnog rada odabrana su dva alata koja će biti detaljnije

opisana i ispitana na proizvoljno odabranim primjerima. Odabrani alati su Metasploit okvir

za ispitivanje ranjivosti i OWASP ZAP, program za ispitivanje ranjivosti web aplikacija.

7.1. Alat Metasploit

Povijest

Metasploit je 2003. godine napisao H.D.Moore kao prenosivi alat napisan u jeziku Perl. Do

2007. godine alat je potpuno prepisan u jeziku Ruby. 2009. godine je projekt kupila tvrtka

Rapid7 koja ga dalje nastavlja razvijati. Metasploit se koristi za ispitivanje ranjivosti

sustava ili za napadanje iskorištavanjem tih ranjivosti. Uz osnovnu i besplatnu verziju,

tvrtka Rapid7 dodaje i dvije vlastite verzije pod imenom Metasploit Express i Metasploit

Pro koje sadrže i dodatne naprednije mogućnosti. Metasploit je toliko popularan alat da se

uz objave ranjivosti, najčešće priloži i Metasploit modul kojim se prikazuje iskorištavanje

te ranjivosti, rizik i način njenog ispravljanja.

Terminologija

U daljnjem tekstu su navedeni često korišteni termini uz dodatno pojašnjenje. Ti će se

termini nakon ovog poglavlja koristiti bez dodatnih objašnjenja.

• Exploit: sredstvo kojim se koristi napadač ili ispitivač ranjivosti koje omogućuje

iskorištavanje određene ranjivosti sustava, aplikacije ili usluge. Koristi se kako bi

se napadom na sustav moglo sustav navesti na neočekivano i ponašanje za koje

sustav nije bio zamišljen ali od kojeg napadač ima koristi.

• Payload: kod koji napadač želi izvršiti na kompromitiranom sustavu i kojeg okvir

mora dostaviti. Tako je na primjer reverse shell tip payloada koji se jednom

pokrenut na žrtvinom stroju, pokušava spojiti nazad na računalo koje kontrolira

napadač.

• Shellcode: skup instrukcija koji se koristi kao payload u trenutku iskorištavanja

ranjivosti. Obično je napisan u asemblerskom jeziku. Naziv je dobio po rezultatu

izvođenja koji je najčešće prikaz ljuske (engl. Shell).

• Modul: u kontekstu Metasploit Frameworka, modul je program koji Metasploit

Framework može koristiti u svome radu. Primjer modula je exploit modul koji je

programska komponenta za provođenje napada. Moduli su razlog zbog kojeg je

Metasploit tako snažan alat.

• Listener: komponenta unutar Metasploita kojoj je svrha čekanje na konekciju od

strane napadnutog stroja.

Page 57: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

53

Instalacija

Instalacija – Windows

U ovome će se radu Metasploit alat pokretati na Linux operacijskom sustavu pa je

postupak instalacije naveden samo radi potpunosti. Instalacija besplatnog Metasploit

Framework okvira za operacijski sustav Windows jednostavna je:

1. Potrebno je otići na stranicu s preuzimanjima: https://github.com/rapid7/metasploit-

framework/wiki/Nightly-Installers i odabrati poveznicu odmah ispod „Windows

installation“ poglavlja.

2. Nakon preuzimanja datoteke za instalaciju, potrebno je dodati datoteku u listu

izuzetaka unutar antivirusnog programa ako on postoji. Ovaj je korak potreban jer

većina antivirusnih programa detektira Metasploit kao maliciozan program zbog

njegovih mogućnosti.

3. Otvorit će se klasični instalacijski prozor koji izgleda kao na slici 7.1.:

Slika 7.1. Početni instalacijski prozor

4. Nakon uspješne instalacije, program se pokreće naredbom msfconsole.bat.

Instalacija – Linux

1. Otvoriti terminal.

2. Upisati slijedeću naredbu koja će dodati repozitorij i instalirati Metasploit

Framework paket:

curl https://raw.githubusercontent.com/rapid7/metasploit-

omnibus/master/config/templates/metasploit-framework-

wrappers/msfupdate.erb > msfinstall && chmod 755 msfinstall &&

./msfinstall

3. Nakon instalacije, za pokretanje programa potrebno je upisati slijedeću naredbu:

Page 58: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

54

$ ./msfconsole

Knjižnice

Srž Metasploit Framework-a čini skup knjižnica koje sadrže niz razreda i alata za

upravljanje različitim dijelovima samog programa kao što su moduli, dodaci i sučelja.

Rex

Rex (engl. Ruby Extension Library) je temeljna komponenta samog Metasploit alata. Rex

knjižnica sastoji se od komponenata koje su potrebne za izvršavanje najosnovnijih zadaća.

Rex knjižnica nudi omotače oko socket podsustava, klijente za protokole i poslužitelje,

sustav vođenja evidencije i slično.

Core

Core knjižnica omogućuje exploit-ima, dodacima i sesijama interakciju sa različitim

sučeljima.

Base

Base knjižnica pruža rutine omotače i alatne klase za olakšavanje rada s Core knjižnicom.

Ove rutine i klase dostupne su korisniku.

Moduli

Moduli su ključne komponente Metasploita, oni omogućuju izvođenje specifičnih zadataka

kao što su iskorištavanje ranjivosti, skeniranje i ostali. Svaki zadatak koji se može izvesti

Metasploit alatom definiran je unutar nekog modula. Postoji par tipova modula koji ovise o

namjeni modula, a tipovi su sljedeći:

• Exploit: modul koji izvršava slijed naredbi kako bi napao specifičnu ranjivost

pronađenu na nekom sustavu ili aplikaciji.

• Pomoćni: ovi moduli ne pokreću payload i izvode razne zadaće koje ne moraju

nužno biti povezane s iskorištavanjem ranjivosti. Oni mogu biti skeneri, vršiti

napade uskraćivanjem usluge i slično.

• Post-Exploitation: koriste se nakon koraka iskorištavanja ranjivosti. Omogućavaju

daljnje iskorištavanje kompromitiranog računala. Mogu spremati sažetke lozinki i

enumerirati aplikacije ili usluge.

• Payloads: kod koji se pokreće kako bi se uspješno kompromitirao ciljani sustav.

Omogućava definiranje načina povezivanja s ljuskom i radnje koje treba provesti

jednom kada je sustav kompromitiran.

• NOP generator: stvara niz nasumičnih okteta koji se mogu iskoristiti za

zaobilaženje sustava za detekciju upada.

• Payload enkoder: omogućuje zaobilaženje sustava za detekciju upada i sustava koji

traže specifične potpise payload-a.

Page 59: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

55

Sučelja prema korisniku

Metasploit nudi više od jednog sučelja prema korisniku, a mogući je odabir između

konzolnog i grafičkog sučelja. Vrste sučelja koje nudi Metasploit i njihovi nazivi navedeni

su u daljnjem tekstu.

MSFconsole

Ovo je najpopularnije sučelje Metasploit Frameworka. Fleksibilno je i sadrži mnogo

dodataka. Ovo sučelje može iskoristiti sve funkcionalnosti Metasploita, uključujući

pokretanje exploit-a, dodavanje vanjskih modula, stvarati slušače-listener-e i ostale radnje.

Za pokretanje ovog sučelja potrebno je upisati naredbu msfconsole. Nakon pokretanja

otvara se konzola:

Slika 7.2. Metasploit MSFconsole sučelje

Armitage

Armitage komponenta Metasploit alata je potpuno interaktivno grafičko sučelje. Nudi

skoro sve mogućnosti kao i MSFconsole sučelje. Pokreće se naredbom armitage.

Slika 7.3. Armitage sučelje

Page 60: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

56

Iako nudi skoro identične mogućnosti kao i MSFconsole, preporučuje se koristiti

MSFconsole sučelje jer nudi više mogućnosti.

Uobičajeni koraci korištenja

Osnovni koraci pri korištenju Metasploita:

Prvi korak: odabir modula

U prvom koraku potrebno je utvrditi svrhu zadatka, a ona određuje tip modula koji je

potreban za uspješno ispitivanje sustava. Ako još analiziramo ciljani sustav bit će nam

potreban modul za skeniranje kako bi pobrojali sva otvorena vrata i usluge, ako smo već

utvrdili ranjivosti sustava potrebno je odabrati modul za biranja exploit-a itd. Najlakši

način za odabir modula je ako pogledamo listu svih mogućih modula koje imamo na

raspolaganju, to radimo naredbom show all. Ako korisnik zna koji tip modula želi

iskoristiti može suziti pretragu korištenjem naredbe show i jednog od argumenata:

• exploit

• auxiliary

• post

• nops

• payloads

Kada se odlučimo za konkretan modul, odabiremo ga naredbom use <modul>. Na primjer

odaberemo modul smb_login koji omogućava napad grubom silom:

Slika 7.4. Odabir modula

Konfiguracija modula

Sad kada smo odabrali modul, možemo napisati naredbu show options kako bi dobili

prikaz svih mogućnosti prilikom konfiguracije modula:

Slika 7.5. Pregled mogućnosti konfiguracije modula

Page 61: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

57

Ako u stupcu „Required“ piše „yes“, tada je tu opciju potrebno postaviti, inače se njeno

postavljanje može izostaviti. Korisne opcije koje možemo postavljati su: RHOSTS,

RPORT, LHOST, LPORT, THREADS, TIMEOUT, WORKSPACE i GWHOST.

Postavljanje mogućnosti

Postavljanje opcija modula vrši se korištenjem set i unset naredba. Ove naredbe rade u

trenutnom kontekstu modula, što znači da ako se nakon postavljanja opcija izađe iz

konteksta odabranog modula, postavljane opcije bit će izgubljene, slično kao i s

varijablama deklariranim u programskim blokovima. Primjer postavljanja brzine izvođenja

napada grubom silom nad prethodno odabranim modulom:

Slika 7.6. Postavljanje opcija

Odabir mete

Prije pokretanja exploit modula, moramo potvrditi ranjive mete koje je moguće napasti tim

exploit-om. Moramo potvrditi da se naša meta koju želimo ispitati nalazi na listi mogućih

ranjivih meta. To radimo naredbom show targets:

Slika 7.7. Odabir exploit-a i mete

Odabir payload-a

Želimo li pokrenuti exploit modul, moramo odabrati payload za taj napad. Listu mogućih

payload-a prikazujemo naredbom show payloads, a zatim payload odaberemo naredbom

set payload <payload>:

Slika 7.7. Odabir payload-a

Page 62: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

58

Pokretanje modula

Nakon svih podešenih mogućnosti i modula, možemo pokrenuti napad naredbom exploit.

Slika 7.8. Pokretanje modula

Prije izvođenja ovih osnovnih koraka potrebno je imati neke informacije o ciljanom

sustavu kao što su verzija operacijskog sustava ili instalirane mrežne usluge. Ove

informacije se mogu dohvatiti putem ostalih alata kao što su Nmap, Nexpose, Nessus ili

OpenVAS. Metasploit podržava izlazne podatke ovih alata pa ih može jednostavno

iskoristiti u svom radu bez dodatnog korisničkog prilagođavanja. Konkretni primjeri

korištenja bit će opisani u kasnijem poglavlju.

7.2. Alat OWASP ZAP

O alatu

OWASP Zed Attack Proxy ili skraćeno OWASP ZAP je alat za ispitivanje ranjivosti web

aplikacija. Nudi mogućnost automatskog i ručnog ispitivanja pomoću različitih alata.

Idealan je za programere web aplikacija kao i za profesionalce s iskustvom u području

ispitivanja ranjivosti računalnih sustava. Alat je dostupan od rujna 2010. godine. Prioritet

prilikom njegove izrade imala je jednostavnost uporabe i dobra dokumentacija. Ovaj je alat

besplatan i dostupan je za više platformi. Mogućnosti koje alat nudi su:

• Aplikacija za presretanje HTTP prometa (eng. Intercepting Proxy): služi kao

posrednik u komunikaciji između klijenta i poslužitelja i omogućava izmjenu i

pregled prometa koji kroz nju prolazi.

• Alati za aktivno i pasivno skeniranje ranjivosti.

• Pauk (engl. Web Spider): alat za automatsko pretraživanje interneta ili web

aplikacija. Automatski obrađuje HTML kod i poveznice u potrazi za određenim

resursom.

• Generiranje izvješća.

• Napad grubom silom.

• Fuzzing: postupak automatskog unošenja nasumičnih podataka u aplikaciju za

potrebu ispitivanja validacije ulaza.

Ostale mogućnosti alata su: skeniranje vrata, podrška za pametne kartice, pozivanje

vanjskih aplikacija i druge.

Page 63: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

59

Sučelje prema korisniku

OWASP ZAP nudi jednostavno sučelje prema korisniku kako je vidljivo na slici ispod.

Slika 7.9. OWASP ZAP sučelje

Pregled grafičkog sučelja po komponentama:

1. Osnovna alatna traka: omogućuje pristup raznim automatiziranim ili ručnim

alatima.

2. Alatna traka: omogućuje brzi pristup često korištenim mogućnostima.

3. Prozor stabla: prikazuje stablastu strukturu stranice i posjećenih poveznica.

4. Prozor radnog prostora: prikazuje zahtjeve i omogućava njihovu izmjenu.

5. Prozor informativnog sadržaja: prikazuje informacije o korištenim alatima.

6. Traka koja prikazuje sažetak upozorenja i stanja trenutno korištenih

automatskih alata.

Iznad prozora s prikazom zahtjeva nalaze se kartice:

Page 64: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

60

• Quick start: prozor za osnovno korištenje alata.

• Request: prikaz podataka koje naš preglednik šalje aplikaciji.

• Response: prikaz podataka koje aplikacija šalje našem pregledniku.

• Break (dodatan prozor): omogućuje izmjenu podataka.

U prozoru sa prikazom upozorenja i stanja alata također mogu postojati različite kartice:

• History: prikaz kronološki poredanih zahtjeva.

• Search: pretraga zahtjeva.

• Break Points: prikazuje skup breakpoint-ova.

• Alerts: prikaz upozorenja.

• Active Scan: prikaz aktivnih skeniranja.

• Spider: prikaz neposjećenih URL-ova.

• Params: prikaz parametara koje stranica koristi.

• Output: prikaz različitih informativnih poruka.

Instalacija

Za instaliranje OWASP ZAP alata potrebno je otići na službenu stranicu projekta:

https://github.com/zaproxy/zaproxy/wiki/Downloads i s nje skinuti verziju za određenu

platformu. Postupak instalacije je standardan za Linux i Windows i neće biti dalje

opisivan.

Uobičajeni koraci korištenja

Uobičajen način korištenja alata vrlo je jednostavan. Ovo je osnovni način prilikom kojeg

se pokreće automatizirano ispitivanje ranjivosti danog mrežnog odredišta. Ispitivanje se

provodi na sljedeći način:

1. Iznad prozora s prikazom zahtjeva potrebno je odabrati osnovni način rada Quick

Start

2. Upisati URL web aplikacije koju ispitujemo u za to predviđeno mjesto.

3. Klikom na „Attack“ pokreće se aktivno ispitivanje aplikacije.

4. Nakon završetka ispitivanja aplikacije moguće je vidjeti generirana upozorenja u

„Alert“ kartici u prozoru s informativnim sadržajem.

Ovaj će postupak biti detaljnije prikazan u kasnijem poglavlju.

BITNO: Aktivno ispitivanje aplikacije izvodi se tako da se provode svi poznati napadi na

tu stranicu. Nemojte provoditi aktivno ispitivanje nad stranicom nad kojom nemate ovlasti

da to radite od strane njenog vlasnika.

Page 65: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

61

7.3. Opis okruženja

Prije ispitivanja rada odabranih alata potrebno je konfigurirati okruženje unutar kojeg će se

ti alati izvoditi. Odabir okruženja nam omogućava odabir ranjivih virtualnih strojeva nad

kojima se provodi ispitivanje alata i omogućuje kontrolirano i izolirano izvršavanje napada

kod kojih ne postoji opasnost da će napad utjecati na stroj domaćin unutar kojeg je

konfigurirano virtualno okruženje. Program za stvaranje virtualnog okruženja koji se

koristi u ovom radu je Virtualbox jer ne zahtijeva nikakve posebne licence.

Okruženje za ispitivanje Metasploit alata

Okruženje koje se koristi za ispitivanje Metasploit alata uključuje:

• Virtualni stroj s instaliranim Kali Linux operativnim sustavom.

• Virtualni stroj s instaliranim Metasploitable operativnim sustavom.

Program Virtualbox se instalira na računalo domaćina koje koristi Windows operacijski

sustav, no to i nije toliko bitno jer se sva komunikacija vodi unutar virtualnog okruženja

unutar Virtualbox-a. Kali Linux je operacijski sustav namijenjen za ispitivanje sigurnosti

sustava temeljen na Linux Debian operacijskom sustavu. Bogat je alatima za ispitivanje

ranjivosti i svim ostalim skupinama ranije navedenih alata. Danas se smatra uobičajenim

odabirom za većinu ispitivanja u praksi. Metasploitable je Ubuntu Linux operacijski sustav

koji sadrži namjerno ranjive programe i usluge kako bi se nad njime mogla vršiti

ispitivanja i vježbanje korištenja alata Metasploit.

Instalacija Kali Linux virtualnog stroja unutar Virtualbox programa

Pretpostavljeno je da se korisnik već susreo s instalacijom virtualnih strojeva pa će stoga

ovaj postupak biti opisan ukratko:

1. Potrebno je preuzeti Virtualbox program sa stranice:

https://www.virtualbox.org/wiki/Downloads.

2. Sljedeći upute sa stranice: https://www.virtualbox.org/manual/ch02.html instalirati

Virtualbox program.

3. Preuzeti Kali Linux operacijski sustav sa stranice: https://www.kali.org/

4. Instalirati Kali Linux u Virtualbox okruženju sljedeći detaljne upute sa stranice:

https://www.blackmoreops.com/2014/04/08/detailed-guide-installing-kali-linux-on-

virtualbox/

5. Pokrenuti virtualni stroj i provjeriti je li sve u redu.

Page 66: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

62

Slika 8.1. Virtualbox program

Slika 8.2. Kali Linux operacijski sustav

Instaliranje Metasploitable virtualngo stroja unutar Virtualbox programa

Page 67: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

63

1. Pretpostavljamo da je program Virtualbox već instaliran sljedeći upute iz instalacije

Kali Linux virtualnog stroja navedenog iznad.

2. Preuzeti Metasploitable 2 virtualni stroj sa stranice:

https://sourceforge.net/projects/metasploitable/files/Metasploitable2/

3. Sljedeći upute sa stranice https://community.rapid7.com/thread/2007 instalirati i

podesiti Metasploitable 2 virtualni stroj.

4. Pokrenuti virtualni stroj i provjeriti je li sve u redu.

Slika 8.3. Metasploitable 2 operacijski sustav

Okruženje prilikom ispitivanja OWASP ZAP alata

Kako će se za ispitivanje OWASP ZAP alata koristiti isti ranjivi virtualni stroj

Metasplitable 2 čija je instalacija opisana u prethodnom poglavlju, potrebno je samo

instalirati OWASP ZAP alat na vlastiti virtualni stroj, a ako se koristi Kali Linux virtualni

stroj to nije potrebno jer je OWASP ZAP alat na njemu već instaliran.

7.4. Ispitivanje funkcionalnosti alata

Primjeri primjene alata Metasploit za ispitivanje sigurnosti

računalnih sustava

Prije samog pokretanja Metasploit alata, zbog mrežnih pravila Kali operacijskog sustava da

se prilikom pokretanja ne smiju izvršavati nikakve mrežne usluge uključujući i usluge baza

podataka, prije samog ispitivanja potrebno je pokrenuti neke usluge:

Page 68: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

64

1. Metasploit koristi PostgreSQL bazu podataka za spremanje raznih konfiguracija pa

ju je stoga potrebno pokrenuti naredbom: service postgresql start. Naredbom ss -

ant možemo provjeriti jesmo li uspjeli pokrenuti tu uslugu, ako postoji slušać (engl.

Listener) na vratima 5432 to znači da je usluga uspješno pokrenuta.

2. Ako se radi o prvom pokretanju Metasploit alata, potrebno je inicijalizirati bazu

podataka naredbom msfdb init.

Nakon što smo izvršili ove naredbe, moći ćemo pokrenuti Metasploit alat naredom

msfconsole.

Primjer 1: stražnja vrata

Na Metasploitable operacijskom sustavu, na vratima 6667 pokrenut je UnrealRCD IRC

demon koji sadrži stražnja vrata koja su se pokretala ako bi se poslao znakovni niz „AB“.

Metasploit sadrži modul koji omogućuje dobivanje interaktivne ljuske.

Neovisno o tome znamo li da se na 6667 vratima nalazi ranjiva usluga, pokrenuti ćemo

Nmap alat kako bi utvrdili koja su sve vrata otvorena, to radimo naredbom: nmap -v -sV

<ip_adresa>. IP adresu možemo saznati naredbom ifconfig na Metasploitable virtualnom

stroju ili na drugi način, prvo saznati IP adresu Kali stroja naredbom ifconfig, pa zatim

Nmap alatom naredbom nmap -sn <Kali_IP_adresa>/24 izlistati sve spojene uređaje.

Pronađena IP adresa Metasploit stroja je: 192.168.56.101.

Slika 9.1. Rezultat naredbe: nmap -v -sV 192.168.56.101

Na slici 9.1. može se vidjeti detektirana usluga UnrealIRCd na vratima 6667. Sljedeći

korak koji moramo napraviti je postavljanje exploit-a kojeg želimo koristiti za određenu

ranjivost. Znamo da je usluga na tim vratima ranjiva, pa pronađemo exploit koji je

iskorištava i postavimo ga naredbom: use /exploit/unix/irc/unreal_ircd_3271_backdoor.

Sada je potrebno još postaviti i odredišnu IP adresu računala nad kojim želimo provesti

napad odabranim exploit-om, a to radimo naredbom: set RHOST 192.168.56.101. Sada

kada smo sve uspješno postavili, naredbom exploit pokrećemo napad i ako je napad

uspješno izveden, trebali bi dobiti prikaz ljuske u kojoj možemo pisati naredbe koje će se

Page 69: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

65

izvršiti na udaljenom računalu, naredbom id možemo dokazati da je napad uspio i da

imamo pristup udaljenom računalu kao administrator odnosno Root.

Slika 9.2. Uspješno iskorištena ranjivost usluge UnrealRCD

Primjer 2: Ranjivi poslužitelj dRuby

dRuby RMI poslužitelj koji je pokrenut na sustavu ima par ranjivosti koje omogućuju

udaljeno izvršavanje koda. Cilj je pronaći modul koji nam omogućuje iskorištavanje te

ranjivosti i uspješno provesti napad.

Znamo naziv ranjivog programa pa naredbom search dRUby možemo potražiti sve exploit-

e koji su vezani za taj program.

Slika 9.3. Rezultat naredbe: search dRuby

U rezultatima vidimo da postoji modul koji možemo iskoristiti za izvršavanje napada na tu

ranjivost. Prije izvršavanja potrebno je pogledati postoje li određene postavke koje je

potrebno postaviti, to se radi naredbom show options.

Page 70: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

66

Slika 9.4. Prikaz postavki za odabrani exploit

Vidi se da je postavka URI obavezna i nije postavljena, u opisu vidimo kako bi ona trebala

izgledati, pa vodeći se time, postavljamo je naredbom: set URI

druby://192.168.56.101:8787. Nakon toga, potrebno je postaviti i payload, odnosno kod

koji će se izvršiti jednom kada iskoristimo ranjivost na sustavu. Postavljanje payload-a

radimo naredbom set payload, a naš će payload biti kod koji će se spojiti nazad k nama i

time stvoriti vezu između našeg stroja i Metasploitable stroja pa će prema tome naredba

izgledati ovako: set payload cmd/unix/reverse_ruby. Potrebno je i vidjeti mogućnosti

payload-a i vidjeti jesu li sve obavezne postavke odabrane.

Slika 9.5. Prikaz postavki za odabrani payload

Na slici 9.5. vidimo da će se izvršavajući kod pokušati spojiti na adresu 127.0.0.1 i vrata

4444. IP adresu odredišta na koje će se kod spojiti trebali bi izmijeniti na onu koja

odgovara IP adresi našeg stroja s kojeg izvršavamo napad, izmjenu radimo naredbom: set

LHOST <IP_adresa_Kali_stroja>. Nakon uspješnog postavljanja sve je spremno za

izvršavanje napada kojeg pokrećemo naredbom run.

Primjer 3: Ranjivi Apache httpd poslužitelj

U ovom primjeru, napad se izvodi nad ranjivim Apache httpd poslužiteljem koji sadrži

ranjivu verziju jezika PHP. Ova se ranjivost identificira kao CVE-2012-1823.

Ovoga puta demonstrirati ćemo da exploit-e možemo tražiti i referenciranjem na njihov

CVE identifikator. Naredbom search CVE-2012-1823 obavljamo pretragu za svim exploit-

ima koji iskorištavaju tu ranjivost.

Page 71: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

67

Slika 9.6. Pretraga exploit-a prema CVE identifikatoru

Jednom kada smo pronašli željeni exploit, slijedimo standardne korake za provođenje

napada.

Slika 9.7. Rezultat napada na httpd poslužitelj

Za razliku od prethodnih primjera, u ovom se primjeru nakon uspješno provedenog napada

otvara napredna ljuska Metasploita zvana meterpreter, za razliku od ostalih ljuska koje se

tipično otvaraju kao što su /bin/sh, meterpreter se koristi jer ima sposobnost boljeg

skrivanja zato što se za razliku od ostalih ljuska koje stvaraju nove procese pri pokretanju,

meterpreter pokreće direktno iz memorije napadnutog procesa koristeći naprednu tehniku

daljinskog ubrizgavanja knjižnica koja u ovome radu neće biti opisana. Neke osnovne

naredbe unutar meterpreter-a su:

• help: naredba za dobivanje pomoći

• background: stavlja trenutnu meterpreter sesiju u pozadinu

• cat: prikazuje sadržaj datoteke predan kao argument

• download: preuzimanje datoteke predane kao argument sa napadnutog stroja

• execute: izvršava naredbu predanu kao argument na napadnutom stroju

• …

Primjer 4: Ručna pretraga ranjivosti

U ovome ćemo primjeru vidjeti primjer ručnog pronalaženja ranjivosti koristeći Internet

izvore. Za razliku od prijašnjih primjera, u ovome primjeru pretpostavljamo da ne znamo

ništa o nikakvoj ranjivoj usluzi na Metasploitable virtualnom stroju. Sljedeći korake

ispitivanja ranjivosti, najprije obavljamo postupak prikupljanja podataka o sustavu kojeg

želimo ispitati. Pokrećemo Nmap alat kako bi istražili otvorena vrata i usluge pokrenute na

Metasploitable stroju naredbom nmap -v -sV 192.168.56.101.

Page 72: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

68

Slika 9.8. Prikaz otvorenih vrata i usluga na ciljanom stroju

Možemo vidjeti da je na Metasploitable stroju pokrenuto više usluga. Odaberimo jednu od

njih, na primjer uslugu Samba. Samba je implementacija Server Message Block protokola

aplikacijskog sloja. Server Message Block protokol pruža dijeljeni pristup datotekama,

pisačima i komunikaciju između ostalih različitih krajnjih točaka mreže. Iz rezultata

izvršavanja naredbe možemo vidjeti da je verzija Samba usluge neka između verzije 3 i 4.

što nije dovoljno detaljno.

Potražimo na internetu postoje li neke već poznate, već otkrivene ranjivosti Samba usluge.

Dobar izvor informacija nam može biti i jednostavna Google pretraga.

Slika 9.10. Pretraga ranjivosti Samba usluge

Google pretraga nas je uputila na stranicu sa bazom svih Samba ranjivosti koje su

detektirane po različitim Samba verzijama. Kako bi znali koje bi ranjivosti potencijalno

mogli iskoristiti, potrebne su nam detaljnije informacije o Samba verziji koja je instalirana

Page 73: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

69

na Metasploitable sustavu. Za bolju detekciju verzije od one koje nam je dao alat Nmap,

možemo iskoristiti neki od Metasploit modula za skeniranje ako takav modul postoji.

Slika 9.11. Pretraga Samba modula za skeniranje

Brzom pretragom možemo vidjeti da postoji modul smb_version za analiziranje verzije

Samba usluge na sustavu. Željeni modul koristimo naredbom: use

auxiliary/scanner/smb/smb_version.

Slika 9.12. Postavljanje modula za analiziranje Samba verzije

Naredbom options vidimo da atribut RHOSTS nije postavljen pa ga stoga moramo

postaviti. Postavljanje atributa postavljamo naredom: set RHOSTS 192.168.56.101. Nakon

postavljanja IP adrese ciljanog računala, započinjemo ispitivanje naredbom exploit.

Slika 9.13. Rezultat analize Samba verzije

Vidimo da je analiza bila uspješna i da je prava verzija Samba usluge 3.0.20. Sljedeći

korak je pretraga ranjivosti za ovu verziju Sambe. Pretragom baze Samba ranjivosti

tražimo ranjivosti koje imaju visoku ocjenu, odgovaraju našoj verziji Sambe, te su

dovoljno općenite da njihovo iskorištavanje ne uvjetuju posebne Samba postavke. Jedna od

takvih ranjivosti je ranjivost CVE-2007-2447 u verzijama od 3.0.0 do 3.0.25rc3. Detaljima

ranjivosti se ne moramo zamarati jer nam modularnost Metasploit alata to dozvoljava.

Page 74: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

70

Jedan od mogućih koraka bio bi samostalno pisanje exploit-a za odabranu ranjivost, no to

je napredna tema kojom se ovaj rad neće baviti. Metasploit već sadrži exploit za odabranu

ranjivost ali cilj ovog primjera je demonstriranje samostalnog uključivanja vanjskog

modula za iskorištavanje ranjivosti. Stranica https://www.exploit-db.com sadrži bazu

exploit-a za raznorazne objavljene ranjivosti različitih sustava. Pretraga exploit-a za

traženu ranjivost pokazuje da u bazi postoje exploit-i koje možemo iskoristiti u Metasploit

modulu.

Slika 9.14. Rezultat pretrage za odabranu Samba ranjivost

Vidimo da postoje tri različita exploit-a za traženu ranjivost. Nama je potreban prvi jer taj

odgovara našoj Linux platformi. Odabirom prvog rezultata pretrage i klikom na gumb

„Download“ preuzimamo željeni Metasploit exploit kojeg ćemo u slijedećem koraku

uključiti u sam Metasploit alat.

Kako bi mogli dodati vlastite exploit module, moramo prvo napraviti zrcalnu presliku

metasploit direktorija naredbom mkdir -p $HOME/.msf4/modules/exploits. Unutar exploits

direktorija možemo stvoriti proizvoljan broj vlastitih direktorija za kategorizaciju exploit-a

ako to želimo, u ovome primjeru koristimo samo jedan pa ćemo stoga stvoriti samo jedan

poddirektorij pod nazivom Moj_exploit.

Kako bi ispitali vlastiti exploit modul, pokrenemo Metasploit naredbom msfconsole i zatim

odaberemo vlastiti modul naredbom: use /exploit/moj_exploit/moj_modul.

Slika 9.15. Učitavanje vlastitog modula i prikaz opcija

Page 75: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

71

Slika 9.15. prikazuje uspješan odabir vlastitog exploit modula i prikaz opcija koje je

potrebno predati za uspješan rad modula. Da naš exploit radi, potrebno je postaviti opciju

RHOST na IP adresu Metasploitable stroja naredbom: set RHOST 192.168.56.101. Sada

nam samo preostaje da pokrenemo exploit.

Slika 9.16. Uspješno pokretanje vlastitog modula

Na slici 9.16. možemo vidjeti kako smo uspjeli dobiti pristup udaljenom stroju kao

administrator čime je naš napad gotov.

U ovih par primjera prikazali smo osnovne mogućnosti Metasploit alata i način na koji se

on koristi. Metasploit alat nudi i druge puno naprednije mogućnosti koje su izvan dosega

ovog rada kao što je pisanje vlastitih exploit-a, automatiziranje radnji, alati za socijalno

inženjerstvo i razne druge.

Primjer primjene alata OWASP ZAP za ispitivanje sigurnosti

računalnih sustava

Primjer: Osnovno aktivno ispitivanje mete

Prilikom ispitivanja, naša će meta biti Metasploitable 2 virtualni stroj kojeg moramo

pokrenuti prvog. Nakon pokretanja i ulaska u stroj sa korisničkim podacima i lozinkom

„msfadmin“, pokrećemo naredbu ifconfig kako bi saznali IP adresu dodijeljenu

Metasploitable stroju.

Page 76: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

72

Slika 9.17. IP adresa stroja Metasploitable 2

Nakon što smo saznali adresu ranjivog stroja, pokrećemo Kali Linux virtualni stroj i

otvaramo program OWASP ZAP. Nakon što se program otvori, trebali bi dobiti njegovo

sučelje. Sada kada znamo IP adresu ranjivog stroja, odaberemo Quick Start karticu i u

radnom prozoru upišemo IP adresu. Pritiskom na gumb „Attack“ pokrećemo aktivno

ispitivanje.

Slika 9.18. Prvedba aktivnog ispitivanja

(Slika 9.18.) prikazuje završetak ispitivanja stranice, klikom na „Alerts“ karticu možemo

vidjeti izvješće o pronađenim ranjivostima web aplikacije.

Page 77: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

73

Slika 9.19. Pregled pronađenih ranjivosti

Iz slike iznad možemo vidjeti da se ispitivanjem web aplikacije ustanovilo postojanje

kritične ranjivosti, prikazane crvenom zastavicom i nazivom „Path Traversal“ što

označava tu ranjivost. „Path Traversal“ ranjivost je ranjivost do koje dolazi kada web

aplikacija ne vodi računa o putanjama koje joj se predaju preko kao URL parametri i koje

koristi za pristup resursima. U opisu ranjivosti vidimo da se do nje došlo koristeći URL:

http://192.168.56.101/mutillidae/index.php?page=%2Fetc%2Fpasswd. Opasnost u ovoj

poveznici leži u tome što se pristupa datoteci /etc/passwd koja na UNIX platformama

sadrži popis korisnika i sažetaka njihovih lozinki. Ovaj direktorij ne bi trebao moći biti

dostupan običnim korisnicima web aplikacije ali se zbog neispravnog provjeravanja

putanje, proizvoljnim poslanim zahtjevom njemu moglo pristupiti. Nakon što se izvrši

dekodiranje zahtjeva, %2Fetc%2Fpasswd prelazi u /etc/passwd i prikazuje se korisniku.

Za prikaz pronađene ranjivosti, u ovom slučaju možemo otići u naš internet preglednik i

upisati taj URL.

Page 78: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

74

Slika 9.20. Prikaz sadržaja datoteke Passwd

Nakon odlaska na navedenu poveznicu, korisniku se prikazuje sadržaj datoteke Passwd sa

različitim korisničkim podacima koji inače ne bi trebao biti dostupan.

Za naprednije korištenje ovog alata čitatelj se usmjerava na njegovu službenu stranicu na

kojoj je moguće pronaći više informacija o alatu i upute za korištenje njegovih ostalih

mogućnosti: https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project.

Page 79: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

75

8. Zaključak

Zbog sve šire primjene programskih rješenja u različitim djelatnostima, složenosti njihove

izrade i njihovog uklapanja u složene sustave teško je voditi računa o svim sigurnosnim

zahtjevima koje bi ti programi morali pokrivati pa je stvaranje ranjivosti gotovo

neizbježno. Zbog količine resursa koja je potrebna da bi se provela detaljna ispitivanja

složenijih sustava ona su nepraktična i skupa pa se iz tog razloga provodi analiza rizika čiji

je rezultat popis svih poznatih rizika prisutnih na tom sustavu. Uvijek se teži potpunom

otklanjanju tih rizika no kada to postane nepraktično ili nemoguće zbog načina rada

sustava, tada je potrebno odrediti koji su rizici prihvatljivi i koji nisu kako bi se raspodjela

resursa za njihovo rješavanje mogla djelotvorno rasporediti za njihovo otklanjanje ili

smanjivanje.

Rizici se u računalnim sustavima pojavljuju u obliku propusta i neispravnih

implementacija koji se, ako se pronađe način da se iskorištavanjem njihovog postojanja

nanese šteta sustavu pretvaraju u ranjivosti tog sustava. Ako se te ranjivosti ustanove

dovoljno rano mogu se zakrpati i time spriječiti njihovo iskorištavanje od strane zloćudnih

korisnika. Velika složenost sustava omogućuje veću površinu unutar koje se mogu pronaći

ranjivosti pa se nerijetko događa da ranjivosti pronađu upravo zloćudni korisnici koji ih

kasnije mogu iskorištavati za svoju dobit ili ih prodavati na crnom tržištu po visokim

cijenama. Ovo su razlozi zbog kojih je sigurnosno ispitivanje računalnih sustava potrebno

provoditi redovito i to svakih par godina u ovisnosti o veličini sustava kojeg se ispituje.

Sigurnosna ispitivanja provode ovlašteni stručnjaci računalne sigurnosti koristeći za to

namijenjene alate. Sve detalje ispitivanja potrebno je prethodno dogovoriti s izvršnim

dijelom organizacije kako bi se osigurao njen normalan rad tijekom samog ispitivanja.

Osim samog ispitivanja potrebno je koristiti dogovorene načine izvještavanja o

pronađenim rizicima i njihovog dijeljenja s javnošću kako bi i druge organizacije mogle

provesti ispitivanje svojih sustava za pronađenim rizicima.

Područje ispitivanja ranjivosti računalnih sustava sve je popularnije, a time i skup

korištenih alata postaje sve veći. Ponuda alata dovoljno je velika da se za svako područje

ispitivanja mogu pronaći alati koji odgovaraju potrebama korisnika, od onih jednostavnijih

koji se koriste specifično u određenom koraku ispitivanja i koji su većinom besplatni, do

većih i skupih komercijalnih alata i radnih okvira koji služe kao potpora u više koraka ili

cijelom ispitivanju sustava.

U praktičnom dijelu prikazani su osnovni postupci sigurnosnih ispitivanja web aplikacija i

umreženih računalnih sustava koristeći odabrane alate. Skup besplatnih dostupnih alata sve

je veći te se svi programeri mogu uključiti u zajednicu odgovornu za njihov aktivan razvoj.

Ne postoji univerzalni alat koji bi pokrio sve korake sigurnosnog ispitivanja pa smo stoga

prisiljeni koristiti više različitih alata kako bi uspješno i temeljito proveli ispitivanje

sustava. Korišteni alati osim prikazanih osnovnih, nude i neke dodatne mogućnosti koje

mogu ubrzati proces ispitivanja objedinjavanjem koraka na način da implementiraju više

pod-alata koji pružaju potporu u njihovom provođenju ili povezivanju. Ovakvi pod-alati

mogu ubrzati proces ispitivanja ali često mogu biti ograničeni ili nepouzdani pa se, ukoliko

je potrebno, za izvođenje određenog koraka ipak preporučaju posebni alati specijalizirani

za taj korak.

Page 80: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

76

Moguća buduća proširenja ovog rada uključuju razvijanje vlastitih modula za alate opisane

u ovome radu. Znanja i vještine potrebne za njihovo proširenje su napredna znanja u

područjima: računalnih mreža i protokola, asemblerskog jezika, operacijskih sustava i

razvoja web aplikacija.

Page 81: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

77

9. Literatura

[1] Budin, L. et al. Operacijski sustavi. 2.izdanje. Zagreb: ELEMENT, 2011.

[2] Michael Holloway, Stuxnet Worm Attack on Iranian Nuclear Facilities, 16. Srpnja

2015., http://large.stanford.edu/courses/2015/ph241/holloway1/, 24. Veljače 2017.

[3] New cyber resilience report: energy sector prime target for cyber-attacks,

https://www.worldenergy.org/news-and-media/press-releases/new-cyber-report-

energy-sector-prime-target-for-cyber-attacks/, 24. Veljače 2017.

[4] Candid Wueest, SECURITY RESPONSE: Targeted Attacks Against the Energy

Sector, 13. Siječanj 2014.,

http://www.symantec.com/content/en/us/enterprise/media/security_response/whitepa

pers/targeted_attacks_against_the_energy_sector.pdf, 24. Veljače 2017.

[5] 2016 Financial Industry Cybersecurity Report,

https://cdn2.hubspot.net/hubfs/533449/SecurityScorecard_2016_Financial_Report.pd

f, 24.Veljače 2017.

[6] Lyons, Marty. Homeland Security. Threat Assessment of Cyber Warfare, 2005.

[7] James Bayne, SANS Institute InfoSec Reading Room: An Overview of Threat and

Risk Assessment, https://www.sans.org/reading-room/whitepapers/auditing/overview-

threat-risk-assessment-76, 25. Veljače 2017.

[8] Brian Cashell, William D. Jackson, Mark Jickling, Baird Webel The Economic

Impact of Cyber-Attacks, 1. Travnja 2004., https://fas.org/sgp/crs/misc/RL32331.pdf,

25. Veljače 2017.

[9] Stjepan Mesić, Zakon o informacijskog sigurnosti, 13. srpanj 2007., http://narodne-

novine.nn.hr/clanci/sluzbeni/2007_07_79_2484.html, 27. Veljače 2017.

[10] Jagor Čakmak, Računalna sigurnost na Internetu u RH,

http://www.cis.hr/files/Cakmak-Rac_sigurnost_na_internetu.pdf, 27. Veljače 2017.

[11] Nacionalna strategija kibernetičke sigurnosti,

http://www.uvns.hr/UserDocsImages/dokumenti/Nacionalna%20strategija%20kibern

eticke%20sigurnosti%20(2015.).pdf, 27.Veljače 2017.

[12] Akcijski plan za provedbu nacionalne strategije kibernetičke sigurnosti,

http://www.uvns.hr/UserDocsImages/dokumenti/Nacionalna%20strategija%20kibern

eticke%20sigurnosti%20(2015.).pdf, 27. Veljače 2017.

[13] Nacionalna strategija kibernetičke sigurnosti i Akcijski plan za provedbu Strategije:

Sažetak, 7. listopada 2015.,

Page 82: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

78

http://www.uvns.hr/UserDocsImages/dokumenti/SazetakNSKSiAP_hrv%20(2015).p

df, 27. Veljače 2017.

[14] Stephen Northcutt et.al., Penetration Testing: Assessing Your Overall Security

Before Attackers Do, Svibanj 2006, https://www.sans.org/reading-

room/whitepapers/analyst/penetration-testing-assessing-security-attackers-34635, 1.

Ožujka 2017.

[15] Chan Tuck Wai, Conducting a Penetration Test on an Organization, 2002.,

https://www.sans.org/reading-room/whitepapers/auditing/conducting-penetration-

test-organization-67, 1. Ožujka 2017.

[16] Microsoft, Definition of a Security Vulnerability, https://msdn.microsoft.com/en-

us/library/cc751383.aspx, 3. Ožujka 2017.

[17] ISO/IEC, Information technology: Security techniques-Information security risk

management, http://www.pqm-online.com/assets/files/lib/std/iso_iec_27005-

2008.pdf, 3. Ožujka 2017.

[18] Internet Engineering Task Force, RFC 2828: Internet Security Glossary,

https://tools.ietf.org/html/rfc2828, 3. Ožujka 2017.

[19] Ponemon Institute, The Impact of Cybercrime on Business, Svibanj 2012.,

https://www.ponemon.org/local/upload/file/Impact_of_Cybercrime_on_Business_FI

NAL.pdf, 3. Ožujka 2017.

[20] Andrew Cencini, Kevin Yu, Tony Chan, Software Vulnerabilities: Full-,

Responsible-, and Non-Disclosure, 7. Prosinac 2005.,

https://courses.cs.washington.edu/courses/csep590/05au/whitepaper_turnin/software

_vulnerabilities_by_cencini_yu_chan.pdf, 3. Ožujka 2017.

[21] Homeland Security, Common Cybersecurity Vulnerabilities in Industrial Control

Systems, Svibanj 2011., https://ics-cert.us-

cert.gov/sites/default/files/recommended_practices/DHS_Common_Cybersecurity_V

ulnerabilities_ICS_2010.pdf, 4. Ožujka 2017.

[22] Nacionalni CERT, Najčešće web ranjivosti,

http://www.cert.hr/sites/default/files/NCERT-PUBDOC-2011-03-325.pdf, 4. Ožujka

2017.

[23] Kali Linux Tools Listing, http://tools.kali.org/tools-listing , 6. Ožujka 2017.

[24] Metasploit Framework User Guide Version 3.1.,

http://cs.uccs.edu/~cs591/metasploit/users_guide3_1.pdf, 13. Ožujka 2017.

Page 83: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

79

[25] Metasploit community User Guide Release 4.9,

https://community.rapid7.com/docs/DOC-1563, 13. Ožujka 2017.

[26] David Kennedy et al., Metasploit: The Penetration Tester's Guide, No starch press.

[27] OWASP ZAP 2.6 Getting Started Guide,

https://github.com/zaproxy/zaproxy/releases/download/2.6.0/ZAPGettingStartedGuid

e-2.6.pdf, 8. Travnja 2017.

Page 84: ALATI ZA ISPITIVANJE RANJIVOSTIsigurnost.zemris.fer.hr/ns/2017_viskovic/data/zavrsni_online.pdf · Sigurnost proizvoda bi uvijek trebala biti prioritet kako bi se napadačima (zlonamjernim

Sažetak

Alati za ispitivanje ranjivosti računalnih sustava

U ovome su radu opisani osnovni pojmovi računalne sigurnosti potrebni za bolje

razumijevanje rada. Opisan je postupak procjene rizika te pravni dokumenti sigurnosne

infrastrukture u Republici Hrvatskoj. Opisan je postupak provođenja ispitivanja ranjivosti

računalnih sustava i razlozi za njegovo provođenje. Opisane su najčešće ranjivosti

računalnih sustava i uzroci njihovog nastanka. Opisana je podjela alata za ispitivanje s

obzirom na područje njihove primjene. U praktičnom djelu ovoga rada uspostavljeno je

radno okruženje za potrebe ispitivanja ranjivosti nezaštićenog virtualnog stroja, detaljnije

su opisani alati Metasploit i OWASP ZAP, te su provedena različita ispitivanja uporabom

tih alata.

Ključne riječi: sigurnost, rizik, ranjivosti, alati, ispitivanje.

Abstract

Computer System Penetration Testing Tools

This paper describes the basic concepts of computer security required for a better

understanding. The risk asessment procedure and the legal documents of the security

infrastructure in the Republic of Croatia are described. The procedure of conducting

vulnerability testing of computer systems is described as well as the reasons for its

implementation. The most common computer systems vulnerabilities are described and the

causes of their ocurrence. The distribution of testing tools is described with respect to the

scope of their application. In the practical part of this paper, a working environment is

established for vulnerability testing of an unprotected virtual machine. Vulnerability

testing tools Metasploit and OWASP ZAP are described in more detail and various tests

have been carried out using these tools.

Keywords: security, risk, vulnerabilities, tools, testing.