Čitatelia ako vy pomáhajú podporovať MUO. Keď uskutočníte nákup pomocou odkazov na našej stránke, môžeme získať pridruženú províziu. Čítaj viac.

Ak existuje niečo, čo kyberzločinci milujú, sú to dáta. Ukradnuté údaje sú na nezákonných trhoch veľmi cenné a prístup k súkromným databázam môže byť pre zlomyslných aktérov skvelým spôsobom, ako zarobiť na svojich podnikoch. Jedným zo spôsobov prístupu k súkromným údajom je injekcia SQL. Čo to však SQL injekcia vlastne je, ako funguje a dá sa takémuto útoku zabrániť?

Čo je injekcia SQL?

Softvérové ​​programy sa spoliehajú na fungovanie kódu. Kód je tiež jazyk, ktorý stroje používajú na vykonávanie operácií a môže mať mnoho foriem (Python, JavaScript, C++ atď.). Kyberzločinci môžu zaútočiť na obete často prostredníctvom kódu a injekcie SQL (alebo SQLis) nie sú iné. Tie umožňujú škodlivým aktérom „vložiť“ škodlivý kód do príkazu SQL.

Najprv si prejdime, čo znamená SQL.

SQL je skratka pre Structured Query Language. Toto je ďalší druh programovacieho jazyka

instagram viewer
špeciálne používané pri práci s databázami. SQL, vyvinutý v 70. rokoch minulého storočia spoločnosťou IBM, dokáže manipulovať, ukladať a získavať databázové informácie. Mnoho databázových komunikačných systémov na celom svete používa SQL, takže nie je prekvapením, že aktéri hrozieb vymysleli spôsoby, ako ho zneužiť, aby sa zamerali na databázy.

Príkazy SQL tvoria kľúčovú časť databázovej komunikácie. Príkaz SQL je príkaz ktorý prichádza v mnohých rôznych formách. Niektoré menia údaje, niektoré ich získavajú alebo vymazávajú a niektoré môžu zmeniť štruktúru samotnej databázy. Keď dôjde k injekcii SQL, škodlivý kód sa vloží do príkazu SQL.

Samozrejme, webová stránka alebo aplikácia musí používať programovací jazyk SQL, aby bolo možné vstrekovanie SQL. Ako však tento vektor útoku funguje?

Povedzme, že máte bežný riadok kódu, ktorý používa aplikácia. Keď kyberzločinec vloží škodlivú injekciu SQL, pridá sa riadok kódu, ktorý môže zasahovať do dopytov, ktoré samotná aplikácia odosiela do svojej databázy. Takto možno databázu zneužiť spôsobom, ktorý umožní aktérovi hrozby zobraziť údaje, ku ktorým by inak nemal prístup.

Odtiaľto by kyberzločinec mohol ukradnúť dáta, aby ich priamo zneužil resp predávať na dark webe alebo inde. Môžu tiež meniť, pridávať alebo odstraňovať údaje z cieľovej databázy. V závislosti od stupňa útoku SQL injection môže dôjsť k veľkému poškodeniu. Ak sa získajú platobné údaje, čísla sociálneho zabezpečenia alebo iné druhy súkromných údajov, mnohým ľuďom môže hroziť zneužitie.

Na druhej strane, ak sa útočníkovi podarí výrazne zmeniť databázu, môže dôjsť k trvalej strate veľkého množstva údajov. Celkovo vzaté, SQL injekcie môžu zničiť celé databázy jediným útokom. Hoci existujú už od roku 1998, sú stále aktuálne a nebezpečné aj v dnešnej dobe.

Ako zistil Open Web Application Security Project (OWASP)Pri testovaní aplikácií na prítomnosť takéhoto útoku v roku 2021 bolo identifikovaných 274 000 prípadov injekcií SQL.

Typy SQL injekcie

Existuje niekoľko rôznych druhov injekcií SQL, pričom hlavné tri sú slepé, vnútropásmové a mimopásmové injekcie.

Slepá (alebo inferenčná) injekcia SQL nastane, keď je aplikácia alebo stránka napadnutá injekcie, ale poskytnuté odpovede HTTP (Hypertext Transfer Protocol) neobsahujú výsledok SQL dotaz. Inými slovami, kyberzločinci sa neposkytnú žiadne údaje z napadnutej databázy. Takže, aký to má zmysel?

Pomocou slepej injekcie SQL útočník odošle údaje na cieľový server a potom môže zistiť určité veci o databáze prostredníctvom povahy samotnej odpovede HTTP. Okrem toho môžu faktory spojené s odpoveďou HTTP pomôcť útočníkovi vytvoriť ďalšiu, efektívnejšiu injekciu SQL na prístup k databáze.

Existujú dva kľúčové typy slepej injekcie SQL, známe ako time-based a boolean. Tieto dva varianty sú si svojou povahou dosť podobné. Booleovská aj časová injekcia SQL odošle rad otázok s odpoveďou áno alebo nie, hoci tá bude vyžadovať, aby databáza chvíľu počkala, kým na otázky odpovie.

Ďalej sú to injekcie SQL v pásme. In-band SQL injekcie umožňujú operátorovi vykonať útok a získať požadovaný výsledok pomocou rovnakého kanála. In-band SQL injekcie sú najbežnejšie používané, jednoducho preto, že sú najjednoduchšie na vykonanie, pretože vyžadujú iba jeden kanál.

Nakoniec máte mimopásmovú injekciu SQL. Toto je v podstate alternatívna verzia in-band SQL injekcie, kde útočník nemôže vykonať útok celkom pomocou jedného kanála. Alternatívne môže byť potrebné, aby sa útok uchýlil k mimopásmovej injekcii SQL, ak cieľový server jednoducho nie je dostatočne rýchly na poskytovanie výsledkov.

Tieto faktory tento proces trochu sťažujú, čo znamená, že na dosiahnutie úspechu sa musí spoliehať na určité funkcie, aby boli aktívne v cieľovej databáze. Napríklad platforma, na ktorú sa útočí, musí mať nedostatočnú vstupnú dezinfekciu. Z tohto dôvodu sú injekcie SQL v pásme oveľa bežnejšie ako injekcie SQL mimo pásma. Ale stále sa stávajú.

Dá sa vyhnúť SQL injekciám?

Injekcie SQL znepokojujú skôr podniky a organizácie ako bežných jednotlivcov. Existujú však veci, ktoré môžu tieto potenciálne ciele urobiť, aby znížili pravdepodobnosť, že ich takýto útok zasiahne.

Dezinfekcia vstupu je kľúčovou bežnou praxou, ako sa vyhnúť injekciám SQL. Toto je proces filtrovania, ktorý skenuje a čistí vstup od nebezpečných znakov. Ak sa kód SQL spracuje pred dezinfekciou, šanca na injekciu SQL sa prirodzene zvýši.

Okrem toho vám parametrizované dotazy môžu pomôcť vyhnúť sa injekciám SQL. Ide o dopyty, ktoré vyžadujú na vykonanie aspoň jeden parameter. Použitie parametrov sťažuje kyberzločincom úspešne vykonať útok SQL injection.

Neexistuje však žiadny spoľahlivý spôsob, ako zabrániť injekcii SQL. Ako je to v prípade mnohých kybernetických útokov, je takmer nemožné udržať vaše zariadenia a systémy úplne vzduchotesné. Pokiaľ ide o injekcie SQL, najlepšie, čo môžete urobiť, je dezinfikovať všetky vstupy a vytvoriť parametrizované dotazy.

SQL injekcie sú staré, ale stále predstavujú hrozbu

Zatiaľ čo injekcie SQL existujú už viac ako 20 rokov, stále predstavujú riziko pre mnohé webové stránky a aplikácie. Preto je dobré mať na pamäti túto formu útoku a podniknúť potrebné kroky, aby ste sa mu pokúsili zabrániť, pretože by mohol v budúcnosti predstavovať hrozbu pre vaše databázy.