Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kako omejevanje dovoljenj za bazo podatkov pomaga pri preprečevanju napadov vbrizgavanja SQL


Kako omejevanje dovoljenj za bazo podatkov pomaga pri preprečevanju napadov vbrizgavanja SQL


Omejevanje dovoljenj za bazo podatkov pomaga preprečiti napade vbrizgavanja SQL (SQLI) predvsem z zmanjšanjem potencialne škode, ki jo napadalec lahko povzroči, če jim uspe izkoristiti ranljivost. Ta pristop temelji na načelu najmanj privilegij, kar pomeni, da uporabnikom ali aplikacijski računi podelijo samo minimalna dovoljenja, potrebna za opravljanje svojih nalog, in ne več.

Tu je podrobna razlaga, kako pomagajo omejevalnimi dovoljenji:

** 1. Omejuje obseg dejanj, ki jih lahko izvaja napadalec
Če ima aplikacija ali uporabniški račun, povezan z bazo podatkov, samo za branje samo do določenih tabel, napadalec, ki izkorišča vbrizgavanje SQL prek tega računa, ne more spremeniti, izbrisati ali vstaviti podatkov. Ta zadrževanje omejuje "polmer eksplozije" napada in preprečuje korupcijo podatkov ali nepooblaščene spremembe [3] [9]. Na primer, če mora račun samo zagnati poizvedbe, ne bi smel imeti vstavljanja, posodabljanja, brisanja ali upravnih privilegijev.

** 2. Preprečuje nepooblaščen dostop do podatkov po nujnosti
Z omejitvijo dovoljenj za bazo podatkov na samo potrebne tabele in operacije napadalci ne morejo dostopati do občutljivih podatkov zunaj obsega legitimnih potreb aplikacije. To pomeni, da tudi če je vbrizgavanje SQL uspešno, je napadalec napadalca za pridobivanje ali manipuliranje podatkov omejena na tisto, do česar lahko dostopa do ogroženega računa [1] [2] [7].

** 3. Omeji izkoriščanje nevarnih funkcij baze podatkov
Nekatere funkcionalnosti baze podatkov, na primer izvajanje ukazov operacijskega sistema ali izvajanje neomejenih shranjenih postopkov, je mogoče izkoristiti, če so dovoljenja preširoka. Omejevanje dovoljenj onemogoči ali omejuje dostop do takšnih značilnosti, zmanjša napadalno površino za vbrizgavanje SQL in z njimi povezane podvige [2] [9].

** 4. Zmanjšuje tveganje za stopnjevanje privilegiranja
Če uporabnik baze podatkov deluje z visokimi privilegiji (npr. Admin ali DBA vloga), lahko uspešna vbrizgavanje SQL privede do popolnega nadzora nad bazo podatkov, vključno z ustvarjanjem ali spuščanjem tabel ali celo izvajanje ukazov na strežniku. Omejevanje dovoljenj preprečuje, da bi napadalci prerasli svoj dostop, ki presega tisto, kar aplikacija upravičeno zahteva [1] [6] [9].

** 5. Podpira obrambo poglobljeno
Medtem ko samo omejevanje dovoljenj ne preprečuje vbrizgavanja SQL, je kritična plast obrambe, ki deluje skupaj z validacijo vhoda, parametriziranimi poizvedbami, shranjenimi postopki in požarnimi zidovi spletnih aplikacij. Ta večplastni pristop zagotavlja, da tudi če en nadzor ne uspe, drugi pomagajo vsebovati napad [3] [7].

Če povzamemo, omejevanje dovoljenj za bazo podatkov zmanjšuje potencialni vpliv vbrizgavanja SQL z zagotavljanjem, da ogroženi računi ne morejo izvajati škodljivih dejanj, ki presegajo predvideno področje uporabe. Ta zadrževanje pomaga preprečiti izgubo podatkov, nepooblaščeno spremembo podatkov in stopnjevanje privilegijev, zaradi česar so napadi vbrizgavanja SQL manj škodljivi in ​​lažje upravljali [1] [2] [3] [6] [9].

Navedbe:
[1] https://cheatSheetSeries.owasp.org/cheatsheets/sql_iniction_prevention_cheat_sheet.html
[2] https://www.esecurityplanet.com/thereats/how-to-prevent-sql-iniction-attacks/
[3] https://www.legitsecurity.com/aspm-knowledge-base/how-to-prevent-sql-injekcije
[4] https://users.soe.ucsc.edu/~eaugusti/archive/365-spring16/365-files/lectures/365-lec14-security.pdf
[5] https://www.reddit.com/r/sql/comments/1c5m63s/sql_iniction_prevention_help/
[6] https://security.stackexchange.com/questions/90247/sql-iniction-attack-hy-not-just-adjust-permissions
[7] https://www.cloudflare.com/learning/security/threats/how-to-prevent-sql-iniction/
[8] https://stackoverflow.com/questions/1263218/if-my-database-user-is-read-only-why-do-do-need-to-worry-about-sql-injekcijo
[9] https://www.enterprisedb.com/blog/protecting-against-sql-injekcija