SQL Injection

SQL Injection

SQL Injection predstavlja napad na bezbjednost podataka sadržanih u nekoj bazi. Napad podrazumjeva unošenje stranog koda u ranjivu aplikaciju od strane napadača, sa ciljem izmjene stanja baze podataka ili zaobilazenja nekih sigurnosnih mehanizama. Uz XSS najčešći je napad na web aplikacije. U zavisnosti od nivoa ranjivosti aplikacije na ovu vrstu napada, napadač će biti u mogućnosti da izvršava neke od, ili sve operacije nad podacima baze (pregled, modifikacija, brisanje i dodavanje).

Polazna tačka za ovakvu vrstu napada je nekakav korisnički tekst koji ima interakciju sa bazom podataka, obično je to polje za unos informacija za pretragu, polje za prijavu korisnika, i slično. Kada otkrije ranjivost na aplikaciji, napadač će se usmjeriti prema otkrivanju informacija o bazi koju napada kako bi mogao izvesti precizne modifikacije.U nekim slučajevima cilj napadača nije da modifikuje sadržaj baze podataka, već samo da zaobiđe neke mehanizme autentikacije, kao što je provjera korisničkog imena i lozinke prilikom prijave. 

Primjer ovakve ranjivosti možemo vidjeti na jednoj demo aplikaciji – http://www.altoromutual.com/bank/login.aspx. Ukoliko za korisničko ime unesemo samo karakter " a za lozinku bilo kakav tekst, dobićemo povratnu informaciju od servera o pogrešno formiranom upitu prema bazi podataka, ovo upućuje na ranjivost prema SQL napadu. Ukoliko je napadaču cilj samo da zaobiđe autentikaciju njegovih korisničkih podataka, on će formirati sopstveni SQL upit i prosljediti ga kroz ranjivo polje. Na primjeru već navedene demo aplikacije ukoliko u username polje unesemo komandu " or 1=1– a password polje popunimo proizvoljnim tekstom, uspješno ćemo zaobici autentikaciju korisnika i dobiti pristup radu sa aplikacijom, u ovom slučaju pregled nekih transakcija.

Uspješnost ovakvih napada zavisi od znanja, strpljenja i maštovitosti napadača. Mjere odbrane od ovakve vrste napada su prepuštene osobama koje rade na razvoju aplikacija i administriranju baze podataka koju onu koristi. Unutar aplikacije potrebno je zaštititi kritične djelove koda detekcijom potencijalno zlonamjernog koda koji korisnik može da prosljedi. Na strani baze podataka potrebno je osigurati da je nivo dozvola koji aplikacija posjeduje pri radu sa bazom minimalan za njene potrebe.

Izvor:OWASP

Leave a Reply