OWASP Top 10 sigurnosnih rizika | Pregled

Sadržaj

OWASP Top 10 Pregled

Šta 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 su korisni za poboljšanje sigurnosti web aplikacija. Ovo uključuje dokumente, alate, video zapise i forume.

OWASP Top 10 je lista koja ističe najveće sigurnosne probleme za web aplikacije danas. Oni preporučuju da sve kompanije uključe ovaj izvještaj u svoje procese kako bi smanjile sigurnosne rizike. Ispod je lista sigurnosnih rizika uključenih u izvještaj OWASP Top 10 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, to će rezultirati izvršenjem SQL upita. Ovo je upućen na kao SQL injekciju.

Kako biste zaštitili web aplikacije od ubacivanja koda, pobrinite se da vaši programeri koriste provjeru valjanosti unosa na podacima koje je podnio korisnik. Validacija se ovdje odnosi na odbijanje nevažećih unosa. Upravitelj baze podataka također može postaviti kontrole za smanjenje količine informacija to može biti otkriveni u napadu injekcije.

Da spriječi SQL injekciju, OWASP preporučuje čuvanje podataka odvojeno od naredbi i upita. Poželjna opcija je korištenje sigurnog API spriječiti korištenje tumača ili preći na alate za relaciono mapiranje objekata (ORM).

Pokvarena autentifikacija

Ranjivosti autentifikacije mogu omogućiti napadaču da pristupi korisničkim nalozima i kompromituje sistem koristeći administratorski nalog. Sajber kriminalac može koristiti skriptu da isproba hiljade kombinacija lozinki na sistemu da vidi koja radi. Kada je cyber kriminalac unutra, može lažirati identitet korisnika, dajući mu pristup povjerljivim informacijama.

Ranjivost pokvarene autentifikacije postoji u web aplikacijama koje omogućavaju automatsku prijavu. Popularan način da se ispravi ranjivost autentifikacije je upotreba višefaktorske autentifikacije. Također, ograničenje stope prijave bi moglo biti uključeni u web aplikaciji kako biste spriječili napade grube sile.

Izlaganje osjetljivim podacima

Ako web aplikacije ne štite osjetljive napadače mogu im pristupiti i koristiti ih za svoju dobit. Napad na putu je popularna metoda za krađu osjetljivih informacija. Rizik od izlaganja je minimalan kada su svi osjetljivi podaci šifrirani. Web programeri treba da osiguraju da nikakvi osetljivi podaci ne budu izloženi na pretraživaču ili nepotrebno pohranjeni.

XML eksterni entiteti (XEE)

Sajber kriminalac može biti u mogućnosti da otpremi ili uključi zlonamerni XML sadržaj, komande ili kod unutar XML dokumenta. Ovo im omogućava da pregledaju datoteke na sistemu datoteka servera aplikacija. Kada imaju pristup, mogu komunicirati sa serverom kako bi izvršili napade krivotvorenja zahtjeva na strani servera (SSRF).

XML napadi eksternih entiteta mogu biti spriječen od strane omogućavajući web aplikacijama da prihvate manje složene tipove podataka kao što je JSON. Onemogućavanje obrade XML eksternog 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 sistem kontrole pristupa pokvaren, napadači mogu zaobići autentifikaciju. To im daje pristup osjetljivim informacijama kao da imaju ovlaštenje. Kontrola pristupa se može osigurati implementacijom autorizacijskih tokena na prijavu korisnika. Na svaki zahtjev koji korisnik uputi dok je autentificiran, autorizacijski token kod korisnika se provjerava, signalizirajući da je korisnik ovlašten da uputi taj zahtjev.

Pogrešna konfiguracija sigurnosti

Sigurnosna pogrešna konfiguracija je čest problem koji sajberbezbednosti stručnjaci promatraju u web aplikacijama. Ovo se događa kao rezultat pogrešno konfiguriranih HTTP zaglavlja, pokvarenih kontrola pristupa i prikaza grešaka koje otkrivaju informacije u web aplikaciji. Sigurnosnu pogrešnu konfiguraciju možete ispraviti uklanjanjem nekorištenih funkcija. Također biste trebali zakrpiti ili nadograditi svoje softverske pakete.

Skriptiranje na više stranica (XSS)

XSS ranjivost se javlja kada napadač manipuliše DOM API-jem pouzdane web stranice kako bi izvršio zlonamjerni kod u pregledniku korisnika. Izvršavanje ovog zlonamjernog koda se često događa kada korisnik klikne na vezu za koju se čini da je s pouzdane web stranice. Ako web stranica nije zaštićena od XSS ranjivosti, može biti kompromitovan. Zlonamjerni kod koji se izvršava daje napadaču pristup sesiji za prijavu korisnika, detaljima kreditne kartice i drugim osjetljivim podacima.

Da biste spriječili skriptiranje na više lokacija (XSS), osigurajte da je vaš HTML dobro pročišćen. Ovo može biti postignuto odabir pouzdanih okvira u zavisnosti od jezika izbora. Možete koristiti jezike kao što su .Net, Ruby on Rails i React JS jer bi vam pomogli da raščlanite i očistite vaš HTML kod. Tretiranje svih podataka provjerenih ili neautoriziranih korisnika kao nepouzdanih može smanjiti rizik od XSS napada.

Nesigurna deserializacija

Deserializacija je transformacija serijaliziranih podataka sa servera u objekt. Deserijalizacija podataka je uobičajena pojava u razvoju softvera. Nije bezbedno kada su podaci je deserijalizovan iz nepouzdanog izvora. Ovo može potencijalno izložite svoju aplikaciju napadima. Nesigurna deserializacija se događa kada deserializirani podaci iz nepouzdanog izvora dovedu do DDOS napada, napada na daljinsko izvršavanje koda ili zaobilaženja autentifikacije.

Kako biste izbjegli nesigurnu deserializaciju, pravilo je da nikada ne vjerujete korisničkim podacima. Svaki korisnički unos podataka treba biti liječen as potencijalno zlonamjeran. Izbjegavajte deserializaciju podataka iz nepouzdanih izvora. Uvjerite se da je funkcija deserializacije na biti korišteno u vašoj web aplikaciji je sigurno.

Korištenje komponenti s poznatim ranjivostima

Biblioteke i okviri su učinili mnogo bržim razvoj web aplikacija bez potrebe za ponovnim izmišljanjem kotača. Ovo smanjuje redundantnost u evaluaciji koda. Oni utiru put programerima da se fokusiraju na važnije aspekte aplikacija. Ako napadači otkriju eksploatacije u ovim okvirima, svaka baza koda koja koristi okvir bi biti kompromitovan.

Programeri komponenti često nude sigurnosne zakrpe i ažuriranja za biblioteke komponenti. Da biste izbjegli ranjivost komponenti, trebali biste naučiti da svoje aplikacije ažurirate s najnovijim sigurnosnim zakrpama i nadogradnjama. Neiskorištene komponente treba biti uklonjen iz aplikacije za smanjenje vektora napada.

Nedovoljno evidentiranje i praćenje

Evidentiranje i praćenje su važni za prikazivanje aktivnosti u vašoj web aplikaciji. Evidentiranje olakšava praćenje grešaka, Monitor korisničke prijave i aktivnosti.

Nedovoljno evidentiranje i nadgledanje se dešava kada se događaji od ključne važnosti za sigurnost ne evidentiraju ispravno. Napadači koriste ovo kako bi izvršili napade na vašu aplikaciju prije nego što dođe do primjetnog odgovora.

Evidentiranje može pomoći vašoj kompaniji da uštedi novac i vrijeme jer to mogu vaši programeri lako pronađi bube. To im omogućava da se više fokusiraju na rješavanje grešaka nego na njihovo traženje. U stvari, evidentiranje može pomoći da vaše web stranice i serveri budu i dalje rade svaki put, a da oni ne dožive zastoj.

zaključak

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