OWASP 10 najvećih sigurnosnih rizika | Pregled

Pregled sadržaja

OWASP Top 10 Pregled

Što je OWASP?

OWASP je neprofitna organizacija posvećena obrazovanju o sigurnosti web-aplikacija. 

OWASP materijali za učenje dostupni su na njihovoj web stranici. Njihovi alati korisni su za poboljšanje sigurnosti web aplikacija. To uključuje dokumente, alate, videozapise i forume.

OWASP Top 10 je popis koji ističe glavne sigurnosne brige za web aplikacije danas. Preporučuju da sve tvrtke uključe ovo izvješće u svoje procese kako bi smanjile sigurnosne rizike. U nastavku je popis sigurnosnih rizika uključenih u izvješće OWASP Top 10 za 2017.

SQL Injection

SQL injekcija se događa kada napadač pošalje neprikladne podatke web-aplikaciji kako bi poremetio program u aplikaciji.

Primjer SQL injekcije:

Napadač bi mogao unijeti SQL upit u obrazac za unos koji zahtijeva otvoreni tekst korisničkog imena. Ako obrazac za unos nije osiguran, rezultirat će izvršenjem SQL upita. Ovaj je upućen kao SQL injekcija.

Kako biste zaštitili web-aplikacije od ubacivanja koda, pobrinite se da vaši programeri koriste provjeru valjanosti unosa podataka koje su poslali korisnici. Validacija se ovdje odnosi na odbijanje nevažećih unosa. Upravitelj baze podataka također može postaviti kontrole za smanjenje količine informacije koji se mogu biti razotkriven u napadu injekcijom.

Kako biste spriječili SQL ubacivanje, OWASP preporučuje da podatke držite odvojeno od naredbi i upita. Poželjna opcija je korištenje sigurnog API za sprječavanje upotrebe tumača ili za migriranje na alate za relacijsko mapiranje objekata (ORM).

Neispravna autentifikacija

Ranjivosti autentifikacije mogu omogućiti napadaču pristup korisničkim računima i kompromitiranje sustava pomoću administratorskog računa. Cyberkriminalac može koristiti skriptu da isproba tisuće kombinacija lozinki u sustavu da vidi koja radi. Kad cyber kriminalac uđe, može lažirati identitet korisnika, dajući mu pristup povjerljivim informacijama.

Ranjivost neispravne provjere autentičnosti postoji u web aplikacijama koje dopuštaju automatizirane prijave. Popularan način ispravljanja ranjivosti autentifikacije je korištenje multifaktorske autentifikacije. Također, ograničenje stope prijave bi moglo biti uključen u web-aplikaciji za sprječavanje napada grubom silom.

Izlaganje osjetljivih podataka

Ako web aplikacije ne štite osjetljive, napadači im mogu pristupiti i koristiti ih za svoju dobit. Napad na putu popularna je metoda za krađu osjetljivih informacija. Rizik od izlaganja je minimalan kada su svi osjetljivi podaci šifrirani. Web programeri trebali bi osigurati da se nikakvi osjetljivi podaci ne izlažu u pregledniku ili nepotrebno pohranjuju.

XML vanjski entiteti (XEE)

Cyber-kriminalac može prenijeti ili uključiti zlonamjerni XML sadržaj, naredbe ili kod unutar XML dokumenta. To im omogućuje pregled datoteka na datotečnom sustavu aplikacijskog poslužitelja. Nakon što imaju pristup, mogu komunicirati s poslužiteljem kako bi izvršili napade krivotvorenja zahtjeva na strani poslužitelja (SSRF).

Napadi XML vanjskih entiteta mogu biti spriječen od strane dopuštajući web aplikacijama prihvaćanje manje složenih tipova podataka kao što je JSON. Onemogućavanje obrade vanjskih XML entiteta također smanjuje šanse za XEE napad.

Pokvarena kontrola pristupa

Kontrola pristupa je sistemski protokol koji ograničava neovlaštene korisnike na osjetljive informacije. Ako je sustav kontrole pristupa pokvaren, napadači mogu zaobići autentifikaciju. To im daje pristup osjetljivim informacijama kao da imaju ovlaštenje. Kontrola pristupa može se osigurati implementacijom autorizacijskih tokena prilikom prijave korisnika. Na svaki zahtjev koji korisnik uputi dok je autentificiran, autorizacijski token kod korisnika se provjerava, signalizirajući da je korisnik ovlašten za podnošenje tog zahtjeva.

Pogrešna konfiguracija sigurnosti

Sigurnosna pogrešna konfiguracija čest je problem koji Cybersecurity stručnjaci promatraju u web aplikacijama. To se događa kao rezultat pogrešno konfiguriranih HTTP zaglavlja, neispravnih kontrola pristupa i prikaza pogrešaka koje otkrivaju informacije u web-aplikaciji. Sigurnosnu pogrešnu konfiguraciju možete ispraviti uklanjanjem značajki koje se ne koriste. Također biste trebali zakrpati ili nadograditi svoje softverske pakete.

Skripta na više stranica (XSS)

XSS ranjivost javlja se kada napadač manipulira DOM API-jem pouzdane web stranice kako bi izvršio zlonamjerni kod u pregledniku korisnika. Izvršenje ovog zlonamjernog koda često se događa kada korisnik klikne vezu koja izgleda kao da je s pouzdane web stranice. Ako web mjesto nije zaštićeno od XSS ranjivosti, može biti ugrožena. Zlonamjerni kod koji se izvršava napadaču daje pristup korisničkoj sesiji prijave, podacima o kreditnoj kartici i drugim osjetljivim podacima.

Kako biste spriječili Cross-site Scripting (XSS), provjerite je li vaš HTML dobro očišćen. Ovo može postići pomoću odabir pouzdanih okvira ovisno o odabranom jeziku. Možete koristiti jezike kao što su .Net, Ruby on Rails i React JS jer bi oni pomogli u raščlanjivanju i čišćenju vašeg HTML koda. Tretiranje svih podataka autentificiranih ili neautentificiranih korisnika kao nepouzdanih može smanjiti rizik od XSS napada.

Nesigurna deserijalizacija

Deserijalizacija je transformacija serijaliziranih podataka s poslužitelja u objekt. Deserijalizacija podataka je česta pojava u razvoju softvera. Nije sigurno kada podaci je deserijaliziran iz nepouzdanog izvora. Ovo može potencijalno izložite svoju aplikaciju napadima. Nesigurna deserijalizacija događa se kada deserijalizirani podaci iz nepouzdanog izvora dovedu do DDOS napada, napada na daljinsko izvršavanje koda ili zaobilaženja autentifikacije.

Kako biste izbjegli nesigurnu deserijalizaciju, pravilo je da se nikada ne vjeruje korisničkim podacima. Svaki korisnik treba unijeti podatke liječiti se as potencijalno zlonamjeran. Izbjegavajte deserijalizaciju podataka iz nepouzdanih izvora. Osigurajte da funkcija deserijalizacije biti korišten u vašoj web aplikaciji je siguran.

Korištenje komponenti s poznatim ranjivostima

Knjižnice i okviri znatno su ubrzali razvoj web aplikacija bez potrebe za izmišljanjem kotača. Ovo smanjuje redundanciju u procjeni koda. Oni otvaraju put programerima da se usredotoče na važnije aspekte aplikacija. Ako napadači otkriju iskorištavanje u tim okvirima, svaka baza koda koja koristi okvir bi biti ugrožena.

Programeri komponenti često nude sigurnosne zakrpe i ažuriranja za biblioteke komponenti. Kako biste izbjegli ranjivosti komponenti, trebali biste naučiti ažurirati svoje aplikacije s najnovijim sigurnosnim zakrpama i nadogradnjama. Neiskorištene komponente bi trebale biti uklonjen iz aplikacije za rezanje vektora napada.

Nedovoljno bilježenje i praćenje

Zapisivanje i praćenje važni su za prikaz aktivnosti u vašoj web aplikaciji. Zapisivanje olakšava praćenje pogrešaka, monitor prijave korisnika i aktivnosti.

Nedovoljno bilježenje i nadgledanje događa se kada se sigurnosno kritični događaji ne bilježe propisno. Napadači to iskoriste za izvođenje napada na vašu aplikaciju prije nego što dođe do bilo kakvog zamjetnog odgovora.

Zapisivanje može pomoći vašoj tvrtki uštedjeti novac i vrijeme jer to mogu vaši programeri lako pronaći greške. To im omogućuje da se više usredotoče na rješavanje grešaka nego na njihovu potragu. Zapravo, zapisivanje može pomoći da vaša web-mjesta i poslužitelji budu aktivni svaki put bez prekida.

Zaključak

Dobar kod nije samo što se tiče funkcionalnosti, radi se o zaštiti vaših korisnika i aplikacija. OWASP Top 10 popis je najkritičnijih sigurnosnih rizika za aplikacije izvrstan besplatni resurs za programere za pisanje sigurnih web i mobilnih aplikacija. Obuka programera u vašem timu za procjenu i evidentiranje rizika može vašem timu dugoročno uštedjeti vrijeme i novac. Ako želite saznajte više o tome kako trenirati svoj tim na OWASP Top 10 kliknite ovdje.