Sigurnosna procjena (security audit) - što je i kako teče
Sigurnosni audit (security audit): što obuhvaća, kako teče kroz pet faza i po čemu se razlikuje od penetracijskog testa.
Pročitaj

OWASP Top 10 je standardna referentna lista deset najkritičnijih sigurnosnih rizika za web aplikacije, koju održava neprofitna organizacija OWASP (Open Worldwide Application Security Project). Lista služi razvojnim timovima i sigurnosnim stručnjacima kao polazna točka za prepoznavanje i otklanjanje najčešćih ranjivosti prije nego ih napadači iskoriste. Aktualna verzija objavljena je 2021. godine i grupira rizike u deset širokih kategorija.
Penetracijsko testiranje - otkrivamo ranjivosti prije hakera. Ne morate sami; mi to rješavamo za vašu firmu. Zatražite besplatnu procjenu.
U ovom članku objašnjavamo svaku od deset kategorija jednostavnim jezikom, s konkretnim primjerom i praktičnim koracima zaštite. Tekst je namijenjen vlasnicima firmi, IT timovima i razvojnim programerima u Mostaru, BiH i široj regiji koji žele razumjeti gdje su njihove web aplikacije najranjivije.
OWASP je globalna zajednica koja besplatno objavljuje alate, dokumentaciju i smjernice za sigurnost softvera. Njihova najpoznatija publikacija upravo je OWASP Top 10 lista, koja se periodično obnavlja na temelju podataka prikupljenih od stotina organizacija i sigurnosnih timova diljem svijeta.
Važno je razumjeti da OWASP Top 10 nije iscrpan sigurnosni standard niti checklista koja jamči potpunu zaštitu. To je lista kategorija rizika koje se najčešće pojavljuju i koje uzrokuju najveću štetu. Ako vaša aplikacija nema niti jednu od ovih deset slabosti, to je odličan temelj, ali ne i jamstvo savršene sigurnosti. Zbog toga ozbiljan penetracijski test ide i dalje od same liste.
Sljedeća tablica daje pregled svih deset kategorija po službenim oznakama. Ispod tablice slijedi detaljnije objašnjenje svake.
| Oznaka | Kategorija | Ukratko |
|---|---|---|
| A01 | Broken Access Control | Korisnik može pristupiti podacima ili akcijama izvan svojih ovlasti |
| A02 | Cryptographic Failures | Slaba ili nepostojeća zaštita osjetljivih podataka |
| A03 | Injection | Nepouzdani podaci se izvršavaju kao naredba (npr. SQL injection) |
| A04 | Insecure Design | Sigurnosni propusti ugrađeni već u dizajn aplikacije |
| A05 | Security Misconfiguration | Pogrešne postavke servera, baze ili aplikacije |
| A06 | Vulnerable and Outdated Components | Zastarjele biblioteke i komponente s poznatim ranjivostima |
| A07 | Identification and Authentication Failures | Slabosti u prijavi i upravljanju sesijama |
| A08 | Software and Data Integrity Failures | Nepouzdane nadogradnje, paketi i serijalizirani podaci |
| A09 | Security Logging and Monitoring Failures | Nedovoljno bilježenje i nadzor onemogućuju otkrivanje napada |
| A10 | Server-Side Request Forgery (SSRF) | Server se navede da šalje zahtjeve na neželjena odredišta |
Ovo je trenutno najčešća kategorija ranjivosti. Riječ je o situacijama u kojima aplikacija ne provjerava ispravno ima li korisnik pravo na određenu akciju ili podatak. Tipičan primjer: korisnik promijeni broj u URL-u s /racun/123 na /racun/124 i vidi tuđi račun. Zaštita se postiže provjerom ovlasti na strani servera za svaki zahtjev, primjenom načela najmanjih privilegija i odbijanjem pristupa po zadanoj postavci.
Ranije poznata kao Sensitive Data Exposure. Odnosi se na osjetljive podatke (lozinke, brojevi kartica, osobni podaci) koji nisu adekvatno šifrirani u prijenosu ili pohrani. Primjeri uključuju slanje podataka bez HTTPS-a, pohranu lozinki u čistom tekstu ili korištenje zastarjelih algoritama. Zaštita: TLS na svim vezama, šifriranje osjetljivih podataka u bazi i hashiranje lozinki modernim algoritmom poput bcrypta ili Argon2.
Nastaje kada aplikacija nepouzdani korisnički unos proslijedi interpreteru kao dio naredbe. Najpoznatiji oblik je SQL injection, gdje napadač kroz polje za unos ubaci dio SQL upita i tako pročita ili izmijeni bazu. U ovu kategoriju spada i Cross-Site Scripting (XSS). Zaštita se postiže parametriziranim upitima (prepared statements), validacijom unosa i ispravnim kodiranjem izlaza.
Ova kategorija naglašava da neke ranjivosti nisu greška u kodu, nego u samom dizajnu sustava. Primjer je proces oporavka lozinke koji se oslanja na sigurnosna pitanja s lako pogodljivim odgovorima. Takve propuste ne možete zakrpati naknadno bez izmjene logike. Rješenje je razmišljanje o prijetnjama (threat modeling) već u fazi planiranja aplikacije.
Obuhvaća sve, od otvorenih administratorskih sučelja i zadanih lozinki do detaljnih poruka o greškama koje otkrivaju strukturu sustava. Vrlo čest problem kod firmi u regiji su serveri pušteni u rad sa zadanim postavkama. Zaštita: ukloniti nepotrebne servise, promijeniti zadane vjerodajnice, isključiti detaljne greške u produkciji i redovito provjeravati konfiguraciju.
Moderne aplikacije sastoje se od desetaka vanjskih biblioteka i okvira. Ako bilo koja od njih ima poznatu ranjivost, a nije ažurirana, cijela aplikacija je izložena. Ovo je posebno opasno jer napadi često koriste javno objavljene ranjivosti za koje već postoje gotovi alati. Zaštita: vodite popis svih komponenti, pratite sigurnosna upozorenja i redovito nadograđujte.
Odnosi se na slabosti u procesu prijave: dopuštanje slabih lozinki, izostanak zaštite od pogađanja lozinki (brute force) i loše upravljanje sesijama. Zaštita uključuje višefaktorsku autentikaciju (MFA), ograničavanje broja pokušaja prijave i sigurno upravljanje tokenima sesije.
Nastaje kada aplikacija vjeruje softveru, nadogradnjama ili podacima iz nepouzdanih izvora bez provjere integriteta. Primjer je automatsko preuzimanje nadogradnje bez provjere digitalnog potpisa, što napadaču omogućuje podmetanje zlonamjernog koda. Zaštita: digitalni potpisi, provjereni repozitoriji i kontrola lanca opskrbe softvera.
Bez kvalitetnih zapisa (logova) i nadzora, napad može trajati danima ili mjesecima neopaženo. Mnoge firme otkriju proboj tek kada ih netko izvana obavijesti. Zaštita: bilježite sve sigurnosno relevantne događaje, čuvajte zapise na sigurnom mjestu i postavite upozorenja na sumnjive obrasce. Upravo u ovom području dolazi do izražaja kontinuirani nadzor kakav pruža Guardian 360 SOC usluga.
Najnoviji član liste. Nastaje kada napadač navede server da pošalje zahtjev na odredište po njegovom izboru, primjerice na interne sustave koji inače nisu dostupni izvana. Tako se može doći do internih metapodataka ili nezaštićenih servisa. Zaštita: validacija i filtriranje svih URL-ova koje server koristi te segmentacija mreže.
U praksi napadači rijetko iskoriste samo jednu ranjivost. Mnogo češće ih ulanče jednu za drugom kako bi došli do cilja. Razumijevanje tih kombinacija pomaže shvatiti zašto se na sigurnost mora gledati cjelovito, a ne kategoriju po kategoriju.
Zamislimo tipičan scenarij na web shopu jedne trgovine iz regije. Napadač najprije pronađe formu za pretraživanje proizvoda koja nije zaštićena od ubacivanja koda (A03: Injection) i kroz nju pročita korisničku tablicu iz baze. Lozinke su, nažalost, pohranjene bez modernog hashiranja (A02: Cryptographic Failures), pa ih lako otkrije. Kako stranica nema zaštitu od ponovljenih pokušaja prijave ni višefaktorsku autentikaciju (A07), napadač se prijavljuje kao običan korisnik. Zatim primijeti da promjenom identifikatora u adresi pristupa tuđim narudžbama (A01: Broken Access Control). Na kraju, budući da firma ne prati zapise ni promet (A09), cijeli proces ostaje neopažen tjednima.
Ovaj primjer pokazuje ključnu poruku: pojedinačno svaka slabost možda djeluje umjereno, ali u kombinaciji vodi do potpunog kompromitiranja sustava i curenja podataka kupaca. Upravo zato kvalitetna procjena gleda kako se ranjivosti nadovezuju.
Razumijevanje liste je prvi korak, ali stvarna vrijednost dolazi iz primjene. Evo praktičnih koraka kojima firma može započeti:
Za mnoge firme u BiH najveći izazov nije nedostatak svijesti, nego nedostatak vremena i specijaliziranog kadra. Tu pomaže suradnja sa specijaliziranim timom. Ako želite saznati gdje stojite, možete ispuniti naš upitnik za penetracijski test i dobiti procjenu opsega.
Kada ste prepoznali ranjivosti, sljedeći je izazov odlučiti čime se baviti prvo. Nemaju sve jednaku težinu. Korisno je svaku ocijeniti kroz dva pitanja: koliko je lako iskoristiti slabost i kolika je šteta ako se to dogodi. Slabost koju je lako iskoristiti i koja vodi do curenja osobnih podataka ima najviši prioritet, dok teoretska ranjivost s malim utjecajem može pričekati.
U praksi savjetujemo da firme krenu od kategorija A01, A02 i A03, jer su najčešće i imaju izravan utjecaj na podatke korisnika. Tek nakon toga rješavaju se konfiguracijski i procesni propusti. Ovakav pristup s prioritetima sprječava rasipanje resursa na manje važne stavke dok kritične ostaju otvorene.
Profesionalni penetracijski test redovito koristi ovu listu kao polazni okvir, ali ga nadograđuje stvarnim scenarijima napada prilagođenima vašoj aplikaciji. Test pokazuje ne samo koje ranjivosti postoje, nego i kakav stvarni utjecaj mogu imati ako ih napadač iskoristi u kombinaciji. Rezultat je izvještaj s prioritetima i konkretnim preporukama za otklanjanje, što vašem timu daje jasan plan rada.
Za organizacije koje se pripremaju za certifikaciju poput ISO 27001, redovito testiranje web aplikacija često je i formalni zahtjev. Ako trebate procjenu sigurnosti svojih sustava, slobodno nas kontaktirajte i dogovorit ćemo razgovor o opsegu i ciljevima.
OWASP Top 10 je lista deset najčešćih i najkritičnijih sigurnosnih rizika za web aplikacije koju održava organizacija OWASP. Služi razvojnim timovima i sigurnosnim stručnjacima kao referentni okvir za prepoznavanje i otklanjanje ranjivosti. Aktualna verzija objavljena je 2021. godine.
Lista se ne ažurira po fiksnom rasporedu, nego periodično, otprilike svakih nekoliko godina, kada se prikupi dovoljno novih podataka o stvarnim ranjivostima. Prethodne velike verzije objavljene su 2013., 2017. i 2021. godine. Kategorije se s vremenom spajaju, preimenuju ili dodaju kako se mijenjaju obrasci napada.
Ne. OWASP Top 10 pokriva najčešće rizike, ali nije iscrpan sigurnosni standard. Aplikacija može biti otporna na svih deset kategorija, a i dalje imati specifične logičke propuste ili ranjivosti izvan liste. Lista je odličan minimum, ali potpunu sliku daje tek temeljit penetracijski test.
Da. Svaka firma koja ima web stranicu, web shop ili korisnički portal izložena je ovim rizicima, bez obzira na djelatnost. Vlasnicima i menadžmentu nije nužno poznavati tehničke detalje, ali korisno je razumjeti da postoje standardni rizici i da ih treba redovito provjeravati, posebno ako aplikacija obrađuje osobne podatke korisnika.
Povezani vodiči: Cyber sigurnost u BiH - kompletan vodič · Black box, white box i grey box testiranje - razlike · Penetration testing vs skeniranje ranjivosti - što odabrati
Pen TestingSigurnosni audit (security audit): što obuhvaća, kako teče kroz pet faza i po čemu se razlikuje od penetracijskog testa.
Pročitaj
Pen TestingRed team, blue team i purple team: objašnjavamo razlike, uloge i kako odabrati pravi pristup za sigurnost vaše firme u B
Pročitaj
Pen TestingPenetration testing web aplikacija otkriva i dokazuje iskoristive ranjivosti vaše aplikacije te daje izvještaj s preporu
Pročitaj