FixVibe
Covered by FixVibecritical

SQL innspýting: Koma í veg fyrir óviðkomandi aðgang að gagnagrunni

SQL innspýting (SQLi) er mikilvægur varnarleysi þar sem árásarmenn trufla gagnagrunnsfyrirspurnir forrits. Með því að sprauta inn illgjarn SQL setningafræði geta árásarmenn farið framhjá auðkenningu, skoðað viðkvæm gögn eins og lykilorð og kreditkortaupplýsingar, eða jafnvel komið í veg fyrir undirliggjandi netþjón.

CWE-89

Áhrif SQL innspýtingar

SQL innspýting (SQLi) gerir árásarmanni kleift að trufla fyrirspurnir sem forrit gerir í gagnagrunn sinn [S1]. Aðaláhrifin fela í sér óheimilan aðgang að viðkvæmum gögnum eins og lykilorði notenda, kreditkortaupplýsingum og persónuupplýsingum [S1].

Fyrir utan gagnaþjófnað geta árásarmenn oft breytt eða eytt gagnagrunnsskrám, sem leiðir til viðvarandi breytinga á hegðun forrita eða gagnataps [S1]. Í alvarlegum tilfellum er hægt að auka SQLi til að skerða bakendainnviðina, gera þjónustuneitunarárásir kleift eða veita viðvarandi bakdyr í kerfi fyrirtækisins [S1][S2].

Grunnorsök: Óörugg meðhöndlun inntaks

Grunnorsök SQL innspýtingar er óviðeigandi hlutleysing sérstakra þátta sem notuð eru í SQL skipun [S2]. Þetta gerist þegar forrit smíðar SQL fyrirspurnir með því að tengja inntak undir áhrifum utanaðkomandi beint inn í fyrirspurnarstrenginn [S1][S2].

Vegna þess að inntakið er ekki rétt einangrað frá fyrirspurnarskipaninni getur gagnagrunnstúlkurinn framkvæmt hluta af inntakinu sem notandinn er SQL kóða frekar en að meðhöndla það sem bókstafleg gögn [S2]. Þessi varnarleysi getur komið fram í ýmsum hlutum fyrirspurnar, þar á meðal SELECT staðhæfingar, INSERT gildi eða UPDATE staðhæfingar [S1].

Steinsteypa lagfæringar og mótvægisaðgerðir

Notaðu breytilegar fyrirspurnir

Áhrifaríkasta leiðin til að koma í veg fyrir SQL-innspýtingu er notkun breytugreindra fyrirspurna, einnig þekktar sem tilbúnar staðhæfingar [S1]. Í stað þess að sameina strengi ættu verktaki að nota skipulögð kerfi sem knýja fram aðskilnað gagna og kóða [S2].

Meginreglan um minnstu forréttindi

Forrit ættu að tengjast gagnagrunninum með því að nota lægstu réttindi sem krafist er fyrir verkefni sín [S2]. Vefforritsreikningur ætti ekki að hafa stjórnunarréttindi og ætti að vera takmarkaður við sérstakar töflur eða aðgerðir sem nauðsynlegar eru fyrir virkni hans [S2].

Inntaksvottun og kóðun

Þó að það komi ekki í staðinn fyrir breytustillingu, veitir inntaksfullgilding ítarlega vörn [S2]. Forrit ættu að nota samþykkta-þekkt-góða stefnu, sem staðfestir að inntak passi við væntanlegar tegundir, lengdir og snið [S2].

Hvernig FixVibe prófar það

FixVibe nær nú þegar yfir SQL innspýtingu í gegnum hlið active.sqli skannaeiningarinnar. Virkar skannanir keyra aðeins eftir staðfestingu og staðfestingu á eignarhaldi léns. Athugunin skríður GET endapunkta af sama uppruna með fyrirspurnarfæribreytum, kemur á grunnsvörun, leitar að SQL-sértækum boolean frávikum og tilkynnir aðeins um niðurstöðu eftir staðfestingu tímasetningar yfir margar tafir. Geymsluskannanir hjálpa einnig til við að ná rótinni fyrr í gegnum code.web-app-risk-checklist-backfill, sem flaggar hrá SQL símtöl sem eru byggð með sniðmátsskilum.