Odkrivanje in preprečevanje SQL Injection

SQL Injection je verjetno ena izmed najbolj znanih ranljivosti spletnih aplikacij. Je sinonim za varnost spletnih aplikacij. In to povsem upravičeno, saj gre dejansko za eno izmed resnejših ranljivosti. Če se ranljivost pojavi, ima napadalec veliko možnosti, da poseže po širokem naboru podatkov, ki pripadajo podjetju – lastniku spletnih aplikacij. SQL Injection ranljivost prav tako omogoča širok nabor drugih napadov, katerih cilj je dostop do pomembnih podatkov žrtve.

 

Ogroženi pa niso samo podatki, ki so neposredno povezani z ranljivo aplikacijo, ampak tudi marsikateri ostali. Preko SQL Injection ranljivosti so ogroženi tudi:

  • podatki iz drugih aplikacij v podjetju, če se ti nahajajo na istem baznem strežniku,
    • podatki o skrbnikih (gesla, uporabniška imena, dostopi), ki se marsikdaj shranjujejo v bazo,
    • podatki, ki so po novi GDPR uredbi še posebej občutljivi (na primer seznam e-mail naslovov uporabnikov, prijavljenih na e-novice, zbranih preko spletne strani).

 

Prav tako pridobivanje (pomembnih) podatkov ni edina posledica SQL Injection ranljivosti, ampak obstajajo številne druge grožnje, kot so:

  • nepooblaščeno spreminjanje, vpisovanje in brisanje podatkov v bazi,
    • vnašanje zlonamernih datotek v bazo, prek katerih lahko prevzamemo nadzor nad strežnikom,
    • ‘Denial of Service’ napadi na bazo in posledično na celoten informacijski sistem,
    • nepooblaščena prijava v različna prijavna okna, ki so povezana z uporabniki v bazi idr.

S katerimi orodji lahko najdemo in izrabimo ranljivost?

Na voljo so močna in učinkovita orodja za zaznavanje in izrabo ranljivosti. Ker je zelo »popularna« in pomembna, so se sčasoma razvila zelo močna orodja, s katerimi lahko napadalci učinkovito napadajo ranljive aplikacije, kljub pomanjkanju znanja o bazah in baznih jezikih. V praksi dve zelo uporabni orodji sta Burp Scanner in SQLMap, s katerima lahko enako učinkovito spoznamo in razumemo naravo SQL Injection ranljivosti in tako ustrezno ukrepamo.

 

Pri preprečevanju ranljivosti imamo na voljo dva pristopa, in sicer ustrezno programiranje skript spletne aplikacije, kot tudi nekatere druge mehanizme, s katerimi lahko omilimo posledice ali celo preprečimo pojav ranljivosti.

 

Kateri so ti mehanizmi in kako jih v praksi uporabimo, preberite v beli knjigi Odkrivanje in preprečevanje SQL injection.