Silvana Tomić Rotim, Ivan Jakab, Nataša Kučeković
SILVANA TOMIĆ ROTIM, Zavod za informatičku djelatnost Hrvatske d.o.o., Zagreb IVAN JAKAB, Hrvatska Lutrija d.o.o., Zagreb NATAŠA KUČEKOVIĆ, Zavod za informatičku djelatnost Hrvatske d.o.o. stomic@zih.hr, ivan.jakab@lutrija.hr, nkucekovic@zih.hr
UPRAVLJANJE SIGURNOSNIM RIZICIMA U WEB APLIKACIJAMA Stručni rad / Professional paper Sažetak U radu se daje pregled metoda upravljanja rizicima, način njihove primjene, kao i način provedbe kompletnog procesa upravljanja sigurnosnim rizicima, od identifikacije rizika, analize, evaluacije, obrade i prihvaćanja. Također, prepoznaju se i opisuju ključni sigurnosni rizici u web aplikacijama, kao i način njihovog umanjenja. Sve je potkrijepljeno primjenom metodologije upravljanja rizicima na konkretnu FUPOL web aplikaciju. Dan je opis funkcioniranja aplikacije, rizici koji mogu ugroziti sigurnost aplikacije i informacija te način njihove obrade. Takvim pristupom u razvojnim fazama projekta osigurava se jasna specifikacija sigurnosnih zahtjeva, što u konačnici dovodi do pouzdane aplikacije i kolanja informacija. Time se i krajnjim korisnicima daje poruka da je korištenje aplikacije i u web okruženju sigurno i da su njihove informacije u svakom trenutku zaštićene. Ključne riječi: upravljanje rizicima, web aplikacije, FUPOL, sigurnost informacija 1. UVOD U obavljanju svakodnevnih poslovnih aktivnosti u današnjim organizacijama sve veću ulogu imaju web aplikacije. Pri tome se vrlo često dovodi u pitanje sigurnost informacija koje se pohranjuju ili razmjenjuju putem tih aplikacija. Pokazuje se da oprez korisnika nije u cijelosti neopravdan, jer u praksi vrlo često dolazi do incidenata koji u značajnoj mjeri ugrožavaju informacijski kapital. S druge strane, adekvatnim upravljanjem rizicima u razvoju i implementaciji takvih aplikacija, mogu se prepoznati određeni sigurnosni problemi, a samim tim adekvatnim sigurnosnim mjerama i svesti na prihvatljivu razinu. 2. UPRAVLJANJE SIGURNOSNIM RIZICIMA U WEB APLIKACIJAMA 2.1 Izvori sigurnosnih zahtjeva Glavni izvori sigurnosnih zahtjeva prilikom razvoja web aplikacija jesu: • pravni, zakonski, regulatorni i ugovorni zahtjevi koje interesne grupe moraju zadovoljiti te njihovo društveno-kulturno okruženje, • zahtjevi standarda primjenjivih u skladu s ciljevima i poslovnim okruženjem za obradu informacija za koje se web aplikacija razvija, • preporuke dobre prakse te • procjena rizika, uzimajući u obzir sveukupnu primjenu i ciljeve same aplikacije. 13. HRVATSKA KONFERENCIJA O KVALITETI I 4. ZNANSTVENI SKUP HRVATSKOG DRUŠTVA ZA KVALITETU, Brijuni 9. – 11. svibnja 2013. g. - 398 -
Silvana Tomić Rotim, Ivan Jakab, Nataša Kučeković
2.2 Upravljanje sigurnosnim rizicima Postoje mnoge metodologije za procjenu rizika koje se mogu koristiti u procesu identifikacije rizika i definiranja sigurnosnih zahtjeva. Većina navedenih metoda podržava sve faze procjene rizika, od identifikacije rizika do evaluacije rizika. Dodatno, neke od njih dolaze s podrškom specifičnog alata koji može olakšati upravljanje rizicima. CRAMM je metoda za analizu rizika razvijena od strane britanske vladine organizacije CCTA (Central Communication and Telecommunication Agency), sada preimenovana u OGC (Office of Government Commerce). Ova metoda dolazi s podrškom istoimenog alata bez kojeg je njegova uporaba vrlo teška. Danas je CRAMM preporučena metoda za analizu rizika u vladi Ujedinjenog kraljevstva, no koristi se i u mnogim drugim zemljama. Posebno je pogodna za uporabu u velikim organizacijama. EBIOS je opširan skup smjernica i open source softverskog alata posvećenih upravljanju rizicima informacijskih sustava. Razvijen od strane francuske vlade, danas je podržan od strane foruma stručnjaka iz raznih djelatnosti, aktivnih na području upravljanja rizicima te održavanju EBIOS smjernica. EBIOS se primjenjuje kako u javnom, tako i u privatnom sektoru. Ova metoda pruža konzistentan i sveobuhvatan pristup riziku, koristan u procesu donošenja odluka u globalnim projektima (plan kontinuiteta poslovanja, glavni sigurnosni plan, politika sigurnosti). MEHARI je metodologija koja pruža model upravljanja rizicima, modularne komponente i procese, uključuje klasifikaciju imovine, omogućuje otkrivanje ranjivosti putem revizija, omogućuje analizu rizičnih situacija i određuje nivo rizičnosti za svaki od njih. Postupak analize zasnovan je na prethodno definiranim formulama i parametrima te omogućuje optimalan izbor korektivnih aktivnosti. Navedena metoda usklađena je s ISO 27002. OCTAVE (Operationally Critical Threat, Asset, and Vulnerability Evaluation) definira stratešku tehniku za procjenu i planiranje sigurnosti zasnovanu na rizicima. OCTAVE-S je varijacija pristupa namijenjena ograničenim sredstvima i specifičnim ograničenjima koji se najčešće nalaze u manjim organizacijama. OCTAVE-S unutar organizacije vodi manji interdisciplinarni tim (3-5 zaposlenika) koji prikupljaju i analiziraju informacije te stvaraju strategiju zaštite i planove migracije zasnovane na specifičnim operativnim sigurnosnim rizicima. Za uspješno provođenje OCTAVE-S metodologije, članovi navedenog tima moraju imati široka znanja na području poslovanja i sigurnosnih procesa organizacije, kako bi samostalno mogli izvoditi sve potrebne aktivnosti koje ova tehnika zahtijeva. ISAMM (Security Assessment & Monitoring Method) je metoda koja je namijenjena podršci sustava za upravljanje informacijskom sigurnošću te dolazi s podrškom specifičnih alata. Dizajnirana je i kontinuirano unapređivana na osnovu više od 20-godišnjeg iskustva kompanije Telindus u više od 1000 projekata vezanih uz informacijsku sigurnost i upravljanje rizicima te desetinama drugih metoda i alata za upravljanje rizicima. Radi se o kvantitativnoj metodi u kojoj se svi procjenjivani rizici izražavaju u novčanim jedinicama kroz predviđeni godišnji gubitak ili trošak (ALE – Annual Loss Expectancy). Ova metoda povezana je s kontrolama iz ISO 27002, minimizirajući tako broj potrebnih koraka u procjeni rizika. Posljednja inačica ISAMM metodologije uvodi pristup zasnovan na imovini, što omogućuju provođenje procjene rizika nad pojedinačnom ili imovinom grupiranom u skupine prema istovrsnim karakteristikama.
13. HRVATSKA KONFERENCIJA O KVALITETI I 4. ZNANSTVENI SKUP HRVATSKOG DRUŠTVA ZA KVALITETU, Brijuni 9. – 11. svibnja 2013. g. - 399 -
Silvana Tomić Rotim, Ivan Jakab, Nataša Kučeković
IT-Grundschutz je metoda koja omogućuje uspostavu sustava upravljanja informacijskom sigurnošću unutar organizacije. Sastoji se od općenitih preporuka za uspostavu prikladnog procesa ostvarivanja informacijsko-telekomunikacijske sigurnosti te detaljnih tehničkih preporuka za ostvarivanje određenih nivoa sigurnosti na svakom specifičnom području. Ključna značajka pristupa IT-Grundschutz metode je osiguravanje okvira za upravljanje informacijsko-telekomunikacijskom sigurnošću kroz pružanje informacija za najčešće korištene informacijsko-telekomunikacijske komponente (module). Svaki IT-Grundschutz modul sadrži listu relevantnih prijetnji i potrebnih protumjera. Sve elemente moguće je proširiti, dopuniti i prilagoditi prema specifičnim potrebama organizacije. Standard ISO 27005 pruža smjernice za upravljanje rizicima informacijske sigurnosti u organizaciji, posebno podržavajući zahtjeve sustava upravljanja informacijskom sigurnošću prema standardu ISO 27001. Ovaj standard pruža dodatne pristupe procjenjivanju rizika informacijske sigurnosti, od procjene informacijskog rizika visokog nivoa do raznih metoda detaljne procjene rizika informacijske sigurnosti kao npr.: • matrica predefiniranih vrijednosti, • rangiranje prijetnji prema procjeni rizika i • procjena vjerojatnosti ostvarenja i mogućih posljedica. Od navedenih metoda posebno ćemo obraditi metodu predefiniranih vrijednosti, koja je korištena i u procjeni rizika web aplikacije na FUPOL projektu. Matrica predefiniranih vrijednosti je kvalitativna metode procjene rizika, koja kao vrijednost svojih parametara u procjeni rizika ne koristi apsolutne vrijednosti, već njihov procijenjeni utjecaj na rizik. Ovakav pristup zahtjeva iskustvo, stručnost i sposobnost osobe koja pristupa procjeni rizika. Iako se sama procjena provodi kvalitativno, zbog lakšeg rukovanja podacima, oni se kvantificiraju. Za razliku od kvantitativnog pristupa tako dobivene numeričke vrijednosti nisu apsolutne, već relativne. Osim subjektivnosti prilikom procjenjivanja utjecaja pojedinih parametara, dodatni faktor koji može utjecati na pouzdanost rezultata je izbor načina kvantifikacije tih subjektivno procijenjenih parametara. Slika 1 – Primjer matrice prethodno definiranih vrijednosti
13. HRVATSKA KONFERENCIJA O KVALITETI I 4. ZNANSTVENI SKUP HRVATSKOG DRUŠTVA ZA KVALITETU, Brijuni 9. – 11. svibnja 2013. g. - 400 -
Silvana Tomić Rotim, Ivan Jakab, Nataša Kučeković
U ovoj metodi uzimaju se u obzir relevantne ranjivosti i prijetnje za svaku pojedinu informacijsku imovinu. Također, definira se matrica vrijednosti rizika za različite kombinacije vrijednosti informacijske imovine, razine njene ranjivosti te vjerojatnosti pojavljivanja prijetnje. Ova matrica može varirati s obzirom na broj mogućih nivoa za prijetnju i ranjivost ili broju klasa za vrijednost imovine te se može ugoditi prema zahtjevima organizacije. Vrijednost ove metode je u rangiranju rizika koje je potrebno obraditi. Npr., prema tablici na slici 1, ako je vrijednost imovine procijenjena s 3, prijetnja rangirana kao visoka, a ranjivost kao niska, rizik će biti ocijenjen s 5. 2.3 Provedba procesa upravljanja sigurnosnim rizicima U svim gore spomenutim metodama, proces upravljanja sigurnosnim rizicima uglavnom se sastoji od sljedećih faza: • identifikacija rizika i prijetnji, • analiza rizika – procjena ranjivosti na specifične prijetnje, • evaluacija rizika – utvrđivanje očekivane vjerojatnosti pojave i posljedice ostvarivanja određene prijetnje, • obrada rizika – određivanje načina postupanja s rizicima (smanjenje, prihvaćanje, prijenos, izbjegavanje) i • smanjivanje rizika – implementacija kontrola za umanjivanje vjerojatnosti realizacije određene prijetnje i iskorištavanja ranjivosti aplikacije. Tijekom faze identifikacije rizika provodi se prepoznavanje izvora rizika, područja utjecaja, događaja (uključujući i promjene u okolnostima) i njihovog utjecaja te potencijalne posljedice. Cilj ove faze je stvaranje opsežne liste svih onih događaja koji bi mogli utjecati na ostvarivanje određenih poslovnih ciljeva. Važno je izvršiti opsežnu identifikaciju svih rizika, jer rizici koji se ne prepoznaju u ovoj fazi neće biti uključeni ni u narednim koracima upravljanja rizicima. Analiza rizika uključuje razvijanje razumijevanja samih rizika. Ova faza pruža ulazne podatke za fazu procjene rizika i donošenje odluka te primjeni odgovarajućih strategija i metoda obrade rizika. Analiza rizika također može pružiti ulazne podatke za donošenje poslovnih odluka na višem nivou. U fazi evaluacije rizika donose se odluke o izboru rizika koji zahtijevaju obradu te prioritetima implementacije kontrola. Odluke se donose na osnovu rezultata analize rizika. Evaluacija rizika uključuje uspoređivanje nivoa određenog rizika ustanovljenog tijekom faze analize s kriterijima ustanovljenim tijekom utvrđivanja konteksta u kojem se pojava rizika promatra. Kriteriji prema kojima se rizik procjenjuje, u najmanju ruku moraju sadržavati njegovu povjerljivost, integritet i raspoloživost. U ovisnosti o specifičnim zahtjevima aplikacije, moguće je dodati i druge kriterije kao što su odgovornost, pouzdanost i sl. Obrada rizika uključuje izbor i implementaciju jedne ili više mogućnosti utjecanja na rizik. Smanjenje rizika identificiranih u procesu procjene rizika moguće je postići na slijedeće načine: • smanjenje rizika – pristup koji podrazumijeva implementaciju odgovarajućih sigurnosnih kontrola koje umanjuju identificirani rizik, • prenošenje rizika – rizik i troškovi se prenose na treću stranu, • prihvaćanje rizika – postupak kojim se identificirani rizik prihvaća bez implementacije ikakvih sigurnosnih kontrola. Ovaj pristup se primjenjuje ukoliko analize pokažu da je 13. HRVATSKA KONFERENCIJA O KVALITETI I 4. ZNANSTVENI SKUP HRVATSKOG DRUŠTVA ZA KVALITETU, Brijuni 9. – 11. svibnja 2013. g. - 401 -
Silvana Tomić Rotim, Ivan Jakab, Nataša Kučeković
veći trošak ulagati u zaštitu resursa, nego što predstavlja njegov gubitak. Odluka o prihvaćanju rizika predstavlja veliku odgovornost i zahtijeva pismeno izvješće o tome tko je odgovoran i zašto nisu implementirane nikakve sigurnosne kontrole. • odbacivanje rizika – postupak koji podrazumijeva zanemarivanje sigurnosnog rizika. Svjesno ignoriranje rizika u nadi da on nikad neće biti realiziran potpuno je neprihvatljivo i ne smije se provoditi ni u kojem slučaju. Slika 2 – Proces upravljanja rizicima informacijske sigurnosti
Nakon implementacije sigurnosnih kontrola ostaje rizik kojeg nazivamo rezidualnim rizikom. Rezidualni rizik podrazumijeva sve one prijetnje i ranjivosti za koje se smatra da ne zahtijevaju dodatni tretman u pogledu smanjenja postojećeg rizika. Rezidualni rizik nastaje kao posljedica „cost benefit“ analize kojom je ustanovljeno da su troškovi implementacije sigurnosnih kontrola veliki. Smanjivanje rizika obuhvaća slijedeće aktivnosti: • određivanje prioriteta akcija, • evaluacija preporučenih sigurnosnih kontrola, • provedba analize isplativosti (dobiveno/uloženo), • odabir sigurnosnih kontrola, • dodjeljivanje odgovornosti, • razrada plana za implementaciju sigurnosnih kontrola, • implementacija odabranih kontrola. 2.4 Sigurnosni rizici u web aplikacijama 13. HRVATSKA KONFERENCIJA O KVALITETI I 4. ZNANSTVENI SKUP HRVATSKOG DRUŠTVA ZA KVALITETU, Brijuni 9. – 11. svibnja 2013. g. - 402 -
Silvana Tomić Rotim, Ivan Jakab, Nataša Kučeković
OWASP (Open Web Applications Security Project) je projekt koji okuplja industrijske lidere u domeni sigurnosnih metodologija, tehnologija i alata, temeljenih na webu, najjača visoka učilišta i pojedince iz cijelog svijeta. OWASP prikuplja podatke iz uspješnih napada na web aplikacije te ih koristi za izradu tzv. top 10 najvećih rizika. To se provodi kako bi se pomoglo organizacijama da bolje razumiju sigurnost web aplikacija i da se bolje zaštite. Ključni rizici u web aplikacijama su: • ubacivanje (Injection) • Cross Site Scripting/XSS propusti • krivo izvedena autorizacija i upravljanje sesijama (Broken Authentication / Session Management) • nesigurne reference prema direktnim objektima (Insecure Direct Object References) • Cross Site Request Forgery /CSRF propusti • kriva konfiguracija (Security Missconfiguration) • nesigurno korištenje kriptografskih spremišta (Insecure Cryptographic Storage) • neuspjelo ograničavanje pristupa pojedinim poveznicama (Failure to Restrict URL Access) • nedovoljna zaštita na transportnom sloju (Insufficient Transport Layer Protection) • neprovjerena preusmjeravanja (Unvalidated Redirects and Forwards) Umanjenje navedenih rizika moguće je ostvariti sljedećim mjerama: • primjenom otvorenih normi za razvoj softvera – „Development Guide“ dokumenta koji sadrži metode za siguran razvoj aplikacija, • korištenjem raznih zakrpi ili aplikacijskih filtera na razini interpretatora ili web poslužitelja, kao što je tzv. mod-security ili Suhoshin koji prilagođavaju pojedine naredbe koje su česti uzrok sigurnosnih propusta. Također, aplikacijski filteri uklanjaju upite ili znakove koje napadači mogu koristiti da ostvare neautorizirani pristup. • ručnom, poluautomatskom i automatskom revizijom izvornog koda aplikacije, kako bi se otkrila primjena određenih uzoraka u programiranju aplikacije, kao što su neparametrizirani upiti u bazu podataka, nefiltriranje posebnih znakova, krivo postavljeni zaštitni mehanizmi ili nevalidacija unesenih vrijednosti. • automatskim skeniranjem aplikacije u produkciji pomoću gotovih alata i programskih okvira za otkrivanje mogućih propusta i ranjivosti, kao što je W3AF koji objedinjuje pretraživanje i omogućava automatsku verifikaciju ranjivosti. • analizom logova web poslužitelja u svrhu otkrivanja anomalija koje mogu ukazivati na moguće napade ili zlonamjerne radnje. • primjenom sustava za detekciju i prevenciju upada, kao što je suricata ili snort, kojima je moguće identificirati uzorke automatiziranih alata za napad. 2.5 Primjer primjene metodologije upravljanja rizicima – FUPOL projekt Projekt FUPOL je zasnovan na prikupljanju informacija s Interneta na osnovu početnog definiranja teme i ciljanog traženja sudjelovanja građana, kompanija i nevladinih organizacija u diskusijama na istu. Stoga je nužno osigurati pridržavanje svih pravila pristupa privatnim informacijama koje pojedinci dijele na Internetu putem raznih socijalnih mreža (Facebook, 13. HRVATSKA KONFERENCIJA O KVALITETI I 4. ZNANSTVENI SKUP HRVATSKOG DRUŠTVA ZA KVALITETU, Brijuni 9. – 11. svibnja 2013. g. - 403 -
Silvana Tomić Rotim, Ivan Jakab, Nataša Kučeković
Twitter, LinkedIn i sl.), kako bi se zaštitila njihova privatnost. Kako bi se implementirale sve potrebne sigurnosne kontrole, potrebno je provesti procjenu rizika svih FUPOL procesa i svu uključenu informacijsku imovinu. Slika 3 prikazuje strukturu FUPOL modela sa svim uključenim stranama i informacijskom imovinom koju je potrebno zaštititi. Slika 3 – FUPOL model sa uključenim stranama i informacijskom imovinom
Kao glavne kategorije imovine prepoznati su: • podaci građana i drugih uključenih strana zaprimljenih putem Interneta, • strukturirane baze podataka (višejezična ontologija tema, pretraživanje podataka prema temi, podaci o odgovorima, podaci o anketama, baza znanja, repozitorij modela politika, GIS podaci), • softver (FUPOL aplikacija, operacijski sustav, razvojni alat), • hardver i druga fizička oprema, • korisnici i • servisi (konekcija prema Internetu, napajanje i sl.). Za potrebe FUPOL-a izabrali smo metodologiju koja povezuje imovinu, prijetnje i ranjivosti. Pomoću ova tri parametra prepoznali smo najvažnije rizike i pripremili plan za njihovu obradu. Korištena metodologija za procjenu rizika opisana je u poglavlju Matrica predefiniranih vrijednosti. U nastavku je dan primjer obrade ključnih rizika na FUPOL aplikaciji.
13. HRVATSKA KONFERENCIJA O KVALITETI I 4. ZNANSTVENI SKUP HRVATSKOG DRUŠTVA ZA KVALITETU, Brijuni 9. – 11. svibnja 2013. g. - 404 -
Silvana Tomić Rotim, Ivan Jakab, Nataša Kučeković
Ubacivanje (Injection) nepovjerljivih podataka označava kod iz nepoznatog izvora koji može biti štetan sustavu. Napadi ubacivanjem, kao što su SQL injekcije, događaju se kada su nepovjerljivi podaci poslani prema prevoditelju kao dio naredbe ili upita. Ti podaci mogu prevariti prevoditelja tako da izvrši neželjenu naredbu ili pristupi neovlaštenim podacima. Preferirana opcija ublažavanja je uporaba sigurnog aplikacijskog programskog rješenja (API), koji izbjegava korištenje prevoditelja u cijelosti ili pruža parametrizirano sučelje. Također, kod aplikacijskog programskog rješenja treba biti oprezan – pohranjene procedure mogu biti parametrizirane, ali i dalje postoji mogućnost napada ubacivanjem. Ako parametrizirani API nije dostupan, potrebno je izbjeći uporabu specijalnih znakova koristeći specifičnu sintaksu za tog prevoditelja. Pozitivna ulazna validacija s odgovarajućom kanonizacijom je preporučljiva, ali treba biti svjestan da niti to nije potpuna obrana od napada jer postoji mnogo aplikacija koje zahtjevaju spacijalne znakove u svom ulazu. „Curenje“ i „pukotine“ u upravljanju autorizacijom i sesijom očituje se u nemogućnosti utvrđivanja da li je netko točno taj za koga se deklarirao te nepostojanja ili nefunkcioniranja procesa praćenja korisničkih aktivnosti prilikom njegove sesije. Aplikacijske funkcije koje se odnose na upravljanje autorizacijom i sesijom, često, nisu implementirane na pravi način, te tako dopuštaju napadačima da kompromitiraju lozinke, ključeve, sesije ili da iskorištavaju pukotine kako bi preuzeli identitete od ostalih korisnika. Ublažavanje ovog rizika moguća je putem jakog skupa kontrola za upravljanje autorizacijom i sesijom koji treba težiti prema zadovoljavanju svih zahtjeva za upravljanje autorizacijom i sesijom i jednostavnom korisničkom sučelju za programere. Ublažavanje je također moguće izbjegavanjem XSS (Cross-Site Scripting) pukotina koje dovode do krađe ID-a sesije. Nesigurna izravna veza prema objektima je ranjivost koja se javlja kada neki dio referenciranja ostane izložen, odnosno javno dostupan te se preko njega može pristupiti nekim internim objektima, kao što su direktoriji, ključevi baze podataka, dokumenti i sl. Bez provjere kontrole pristupa ili drugih zaštita, napadači mogu manipulirati tim referencama kako bi pristupili neovlaštenim podacima. Sprječavanje nesigurne izravne veze prema objektima zahtjeva odabir zaštite svakog mogućeg korisničkog pristupa objektu (npr. ime datoteke, broj). Zaštita po korisniku ili po sesiji koristiti indirektnu vezu prema objektu. Ona sprječava napadača da direktno cilja prema neovlaštenom resursu. Na primjer, umjesto korištenja ključa resursa, koristiti padajuću listu 6 resursa odobrenih za trenutnog korisnika, koji koriste brojeve od 1 do 6 kako bi ukazali koju vrijednost je korisnik odabrao. Aplikacija treba povezati neizravnu vezu pojedinog korisnika sa stvarnim ključem u bazi podataka na serveru. Moguća je i zaštita putem provjere pristupa. Kako bi se ovaj rizik ublažio, svako korištenje izravne veze prema objektima od strane nepouzdanog izvora, mora sadržavati provjeru pristupa kako bi se osiguralo da je korisnik autoriziran pristupiti traženom objektu. Cross-Site Scripting (XSS) pukotine se događaju svaki puta kada aplikacija prihvati nepouzdane podatke i pošalje ih web pregledniku bez valjane validacije. XSS dopušta napadaču da izvrši skriptu u žrtvinom pregledniku, što može dovesti do preuzimanja korisničke sesije, oskvrnjivanja web stranice ili do preusmjeravanja korisnika prema malicioznim stranicama. Postoje razni načini na koje napadač može namamiti žrtvu na pokretanje XSS zahtjeva. Napadač žrtvi može poslati e-mail s poveznicom koja sadrži maliciozni JavaScript. Ako žrtva klikne na poveznicu, HTTP zahtjev se pokreće sa žrtvinog web preglednika i šalje prema
13. HRVATSKA KONFERENCIJA O KVALITETI I 4. ZNANSTVENI SKUP HRVATSKOG DRUŠTVA ZA KVALITETU, Brijuni 9. – 11. svibnja 2013. g. - 405 -
Silvana Tomić Rotim, Ivan Jakab, Nataša Kučeković
ranjivoj web aplikaciji. Tada se maliciozni JavaScript reflektira natrag na žrtvin preglednik, gdje je izvršen u kontekstu žrtvine korisničke sesije. Sprječavanje XSS-a zahtijeva zadržavanje nepouzdanih podataka dalje od aktivnog sadržaja preglednika. Preferirana opcija je valjano izbjegavanje svih nepouzdanih podataka baziranih na HTML kontekstu (JavaScript, URL) u kojima će podaci biti postavljeni. Pozitivna ulazna validacija je također preporučljiva jer pomaže u zaštiti protiv XSS napada. No, ne štiti u potpunosti, jer mnoge aplikacije moraju prihvatiti specijalne znakove. Takva validacija treba dekodirati bilo koji kodirani ulaz i onda validirati duljinu, znakove i format nad tim podacima, prije prihvaćanja ulaza. Cross-Site Request Forgery (CSRF) napad tjera logirani preglednik od žrtve na slanje krivotvorenih HTTP zahtjeva, uključujući žrtvin sesijski „kolačić“ (session cookie) i bilo koju automatski uključenu informaciju, prema ranjivoj web aplikaciju. To omogućava napadaču da natjera žrtvin preglednik na generiranje zahtjeva za koje ranjiva aplikacija smatra da su valjani zahtjevi od strane žrtve. Sprječavanje CSRF napada zahtijeva uključivanje nasumičnog tokena kao skrivenog polja u sadržaju URL-a svakog HTTP zahtjeva. Takvi tokeni trebaju biti jedinstveni po korisnikovoj sesiji, a također mogu biti jedinstveni po zahtjevu. Preferirana opcija je uključivanje nasumičnog tokena kao skrivenog polja. To omogućava da vrijednost bude poslana u tijelu HTTP zahtjeva, izbjegavajući time uključivanje u URL, koji je predmet izlaganja. Nasumični token može biti uključen u sam URL, ali to donosi rizik da će taj URL biti izložen napadaču, što dovodi do kompromitiranja tajnog tokena. Kako bi se izbjegao i smanjio rizik krive konfiguracije, dobra sigurnost zahtjeva definiranje i isporuku konfigurirane aplikacije, okvira, aplikacijskog servera, web servera, servera baze podataka i platforme. Sve navedene postavke bi trebale biti definirane, implementirane i održavane, jer ih većina ne dolazi s predefiniranim sigurnosnim postavkama. To uključuje održavanje svih softvera ažurnim, uključujući sve biblioteke koje koristi aplikacija Osnovna preporuka je uspostava definiranog procesa koji omogućava brzu i laganu isporuku na drugu okolinu. Razvojna, testna i produkcijska okolina bi trebale biti jednako konfigurirane. Proces bi trebao biti automatiziran. Potrebno je uspostaviti i proces za aktualiziranje i isporuku novih verzija i zakrpa programskog proizvoda u realnom vremenu na svakoj okolini, uz uključivanje svih biblioteka. Implementacija snažne programske arhitekture omogućiti će kvalitetno razdvajanje i sigurnost komponenti. Također, potrebno je periodično provođenje pretraga i revizija radi otkrivanja budućih propusta ili potrebnih zakrpa. Kako bi provele ograničavanje pristupa URL-u, mnoge web aplikacije provjeravaju prava pristupa URL-u prije prikazivanja zaštićenih poveznica i gumba. Aplikacije trebaju provesti slične kontrolne provjere svaki puta kada se pristupa stranicama, inače će napadači moći falsificirati URL-ove za pristup skrivenim stranicama. Sprječavanje neovlaštenih pristupa URL-u zahtijeva izbor pristupa koji zahtijeva adekvatnu provjeru i adekvatno odobrenje za svaku pojedinu stranicu. Često, jedna ili više vanjskih komponenti aplikacijskog koda pruža ovakvu zaštitu. Pravila provjere i odobrenja se baziraju na ulogama, kako bi se smanjio napor potreban za održavanje tih pravila. Pravila trebaju biti vrlo podesiva, kako bi se smanjili čvrsto kodirani aspekti pravila. Mehanizmi provedbe zajedno trebaju odbijati svaki pristup, zahtijevajući izričita odobrenja od pojedinih korisnika i uloga za pristup svakoj pojedinoj stranici. Ako je stranica uključena u tijek rada, provjeriti jesu li svi uvjeti zadovoljeni, kako bi se omogućio pristup. Pri nedovoljnoj zaštiti transportnog sloja, često se događa da aplikacije nisu u mogućnosti potvrditi, kriptirati i zaštititi povjerljivost i integritet osjetljivog mrežnog prometa. Kada se to 13. HRVATSKA KONFERENCIJA O KVALITETI I 4. ZNANSTVENI SKUP HRVATSKOG DRUŠTVA ZA KVALITETU, Brijuni 9. – 11. svibnja 2013. g. - 406 -
Silvana Tomić Rotim, Ivan Jakab, Nataša Kučeković
dogodi, aplikacije koriste ili slabe algoritme ili nevažeće algoritme ili ih ne koriste na pravi način. Transport Layer Security (TLS) i Secure Sockets Layer (SSL) su kriptografski protokoli koji omogućavaju sigurnu komunikaciju preko Interneta. Pružanje odgovarajuće zaštite transportnog sloja može utjecati na dizajn stranice. Najlakše je zatražiti SSL za cijelu stranicu. Zbog performasni, neke web stranice koriste SSL samo na privatnim stranicama. Druge koriste SSL samo na kritičnim stranicama, ali to može dovesti do otkrivanja ID-a sesije i ostalih osjetljivih podataka. Smjernice su sljedeće: • zatražiti SSL za sve osjetljive stranice, • postaviti sigurnosnu zastavicu na sve osjetljive „kolačiće”, • konfigurirati SSL pružatelj da podržava samo jake algoritme, • osigurati valjanost certifikata i povezanost sa svim domenama koje stranica koristi i • pozadinske i ostale konekcije trebaju također koristiti SSL. Pri obradi rizika nesigurnog kriptografskog spremišta, kao mogućeg napadača na podatke potrebno je razmotriti sve koji imaju pristup osjetljivim podacima: • bilo koji korisnik koji ima pristup podacima, • administrator i • napadač koji je već ostvario potreban nivo pristupa. Napadač koji je ostvario pristup osjetljivim podacima biti će u mogućnosti i iskoristiti ih. Ako su podaci enkriptirani napadaču će biti teže, a ponekad i nemoguće iskoristiti ih. Nekriptirani podaci omogućuju napadaču da ih promijeni i iskoristi. Za sve osjetljive podatke koji zahtijevaju enkripciju potrebno je učiniti sljedeće: • s obzirom na prepoznate prijetnje, potrebno je zaštititi podatke od napada te osigurati enkripciju tih podataka na način koji će ih adekvatno zaštititi, • osigurati da su sve sigurnosne kopije, koje se nalaze izvan glavne lokacije, šifrirane sa zaštićenim ključevima, • osigurati da se koriste jaki standardni algoritmi i ključevi, • osigurati zaštitu lozinki hash-iranjem s jakim i standardiziranim algoritmom i • osigurati da su svi ključevi i lozinke zaštićeni od neovlaštenog pristupa. 3. ZAKLJUČAK U obavljanju svakodnevnih poslovnih aktivnosti sve veću ulogu imaju web aplikacije. Pri tome se vrlo često dovodi u pitanje sigurnost informacija koje se pohranjuju ili razmjenjuju putem tih aplikacija. U praksi vrlo često dolazi do incidenata koji u značajnoj mjeri ugrožavaju informacijski kapital. S druge strane, adekvatnim upravljanjem rizicima u razvoju i implementaciji takvih aplikacija, mogu se prepoznati određeni sigurnosni problemi, a samim tim i adekvatnim sigurnosnim mjerama, svesti na prihvatljivu razinu. LITERATURA [1] S. Tomić Rotim, Upravljanje sigurnosnim rizicima u web aplikacijama, PowerPoint prezentacija, ZIH, 2013. [2] M. Zorčec, Upravljanje sigurnosnim rizicima, diplomski rad, Sveučilište u Zagrebu, Fakultet elektrotehnike i računarstva, 2006. [3] The Open Web Application Security Project – OWASP Top 10 – 2010 – The Ten Most Critical Web Application Security Risks, 2010. 13. HRVATSKA KONFERENCIJA O KVALITETI I 4. ZNANSTVENI SKUP HRVATSKOG DRUŠTVA ZA KVALITETU, Brijuni 9. – 11. svibnja 2013. g. - 407 -
Silvana Tomić Rotim, Ivan Jakab, Nataša Kučeković
SECURITY RISK MANAGEMENT IN WEB APPLICATIONS Summary This paper presents an overview of risk management methods and their application, as well as an overview of a complete risk management process, from risk identification through risk analysis and evaluation to risk treatment and acceptance. Moreover, key security risks in web applications are identified and described, as well as ways of mitigating them. All this is illustrated through the use of a risk management methodology on a web application created during a FUPOL project. A description of the application’s functionality is given, risks that could endanger the security of the application and the information are identified, and treatments of those risks are described. Use of this approach during the development phases of a project ensures a distinct specification of security requirements, which leads, in the end, to a reliable application and reliable information circulation. In such a way, a clear message is sent to the end user that using such an application in a web environment is safe and that their information is protected. Keywords: risk management, web applications, FUPOL, information security
13. HRVATSKA KONFERENCIJA O KVALITETI I 4. ZNANSTVENI SKUP HRVATSKOG DRUŠTVA ZA KVALITETU, Brijuni 9. – 11. svibnja 2013. g. - 408 -