Injecția SQL: este încă o amenințare? Cum îl poți evita?
Publicat: 2020-03-07Încălcările de date sunt atât de frecvente încât nici măcar nu mai sunt surprinzătoare. Actorii rău intenționați urmăresc să colecteze cât mai multe date posibil. Acestea sunt după acreditările de conectare, informații despre cardul de credit sau secrete comerciale. Odată ce pun mâna pe astfel de date, le vând pe dark web.
Dacă nu puteți înțelege câte date au furat până acum și câte au aruncat pe dark web, iată un număr îngrijorător. Anul trecut, criminalii au furat și vândut 620 de milioane de conturi doar de pe șaisprezece site-uri web piratate. Da, piratarea a șaisprezece site-uri web poate duce la atât de multe daune. Dar știi ce e mai rău? Mii de site-uri noi sunt sparte în fiecare zi!
Infractorii cibernetici vin cu noi metode de hacking zilnic. Dar asta nu înseamnă că uită de tehnici mai vechi, cum ar fi injecțiile SQL. Ei sunt încă unul dintre cei mai comuni vectori de atac care sunt simplu de executat și oferă rezultate fructuoase.
- Ce este injecția SQL și de ce este periculoasă?
- Cum funcționează injecția SQL?
- Injecție SQL în bandă
- Blind SQL Injection
- Injecție SQL în afara benzii
- Este această amenințare încă relevantă?
- Sfaturi de securitate pentru prevenire
- Cuvinte finale
Ce este injecția SQL și de ce este periculoasă?

Injecția SQL, cunoscută și sub numele de SQLi, este o formă de atac prin injecție, care permite hackerului să execute o instrucțiune SQL. Atacurile prin injecție reprezintă o categorie largă de vectori de atac diferiți. Dar toate permit actorilor rău intenționați să efectueze intrări periculoase. Acţionează ca o comandă de sistem, care este apoi executată.
Instrucțiunile SQL sunt cel mai frecvent utilizate pentru a adăuga sau a prelua date din diferite baze de date. O mulțime de sisteme de management celebre, cum ar fi Microsoft SQL Server, Access și Oracle, folosesc aceste declarații.
Deoarece multe sisteme de gestionare a bazelor de date utilizate pe scară largă folosesc instrucțiuni SQL, hackerii pot exploata aceste sisteme prin injecții SQL. Înseamnă că infractorii pot accesa și fura date sensibile stocate în baza de date. Poate include următoarele:
- proprietate intelectuală.
- informații despre cardul de credit.
- informatii despre client.
- adrese.
- secretele companiei.
Recomandat pentru dvs.: Chrome vs Firefox: comparația performanței, securității și confidențialității!
Cum funcționează injecția SQL?

Pentru a executa un atac de injecție SQL, hackerul trebuie să găsească intrările vulnerabile ale utilizatorilor în site-ul web sau în aplicațiile interne ale companiei.
De exemplu, victima folosește WordPress pentru site-ul său web. Codul poate avea o vulnerabilitate SQL care trimite intrarea utilizatorului direct la baza de date fără nicio igienizare. Dacă un hacker localizează această vulnerabilitate, poate trimite comenzi către baza de date în cauză. Apoi, rezultatul bazei de date se întoarce la browser și îi permite hackerului să execute diferite comenzi. În acest fel, ei pot descărca întreaga bază de date, pot configura comenzi noi, pot modifica conturile de utilizator sau pot crea conturi noi.
Există trei forme principale de atacuri cu injecție SQL:
- Injecție SQL în bandă:
- Injectare SQL bazată pe erori.
- Injecție SQL bazată pe uniune.
- Injecție SQL oarbă:
- boolean.
- Bazat pe timp.
- Injecție SQL în afara benzii.
Injecție SQL în bandă
Injecția SQL în bandă este unul dintre cele mai comune tipuri, deoarece este simplă și eficientă. Aici, atacatorul folosește același canal de comunicare pentru a executa atacul și pentru a colecta rezultate. Are două subvariații – injecție SQL bazată pe erori și bazată pe Uniune:
- Injecția SQL bazată pe erori permite hackerului să determine baza de date să producă mesaje de eroare. Apoi, ei pot folosi aceste mesaje de eroare pentru a aduna informații despre baza de date în sine.
- Injecția SQL bazată pe uniuni permite vinovatului să profite de operatorul UNION SQL. Combină diferite instrucțiuni furnizate de baza de date pentru a obține un răspuns HTTP. Un astfel de răspuns conține adesea date pe care hackerii le pot exploata.
Blind SQL Injection
Injecțiile SQL oarbe se bazează pe modelele de comportament ale serverului. Ele sunt mult mai lente de executat. Hackerul emite încărcături de date și inspectează răspunsul serverului pentru a-i analiza structura. Ei numesc acest lucru „orb”, deoarece datele nu ajung direct la hackeri. Astfel, ei nu pot vedea nicio informație despre exploit în bandă. Vine în două variante, și anume Boolean și Time-based:
- Variația booleană permite hackerului să trimită o interogare SQL, care solicită bazei de date să returneze informații. Informațiile din răspunsul HTTP se modifică în funcție de rezultatul anterior.
- Variația bazată pe timp permite actorului rău intenționat să trimită o interogare SQL direct la baza de date, ceea ce forțează baza de date să aștepte înainte de a putea reacționa. Atacatorul observă timpul necesar pentru ca baza de date să răspundă și decide dacă interogarea este adevărată sau falsă. Pe baza rezultatului, răspunsul HTTP este instantaneu sau întârziat.
Injecție SQL în afara benzii
Injecția SQL în afara bandă permite hackerului să atace baza de date numai dacă anumite caracteristici sunt activate pe serverul bazei de date. Este cea mai puțin populară metodă de injectare SQL. Mulți hackeri îl folosesc ca înlocuitor pentru injecțiile SQL bazate pe erori și Blind.

Acest atac special este o opțiune atunci când hackerul nu poate folosi același mediu pentru a executa atacul și a colecta informații. Sau, pot folosi această injecție atunci când un server este instabil și lent pentru a efectua celelalte două tipuri de injecție. Această tehnică creează cereri DNS și HTTP pentru a redirecționa datele furate.
S-ar putea să vă placă: Sfaturi pentru evaluarea și managementul riscurilor de securitate cibernetică pentru întreprinderile mici.
Este această amenințare încă relevantă?

Injecțiile SQL sunt una dintre cele mai vechi forme de atacuri cibernetice agresive. Cu toate acestea, este încă foarte relevant. Proiectul Open Web Application Security a enumerat injecțiile SQL drept amenințarea numărul unu în urmă cu doi ani. Furnizorul de servicii cloud Akamai a creat un raport privind starea internetului, care a constatat că injecțiile SQL au fost responsabile pentru 65% din toate atacurile bazate pe web din 2017 până în 2019. Deci, puteți spune că injecția SQL apare încă în două treimi din atacurile web. în ultimii ani.
În primul trimestru al anului 2017, acești vectori au fost responsabili pentru 44% din atacurile la nivelul aplicației. Pentru a înrăutăți lucrurile, nicio altă formă de vector de atac al aplicației nu crește la fel de repede ca injecțiile SQL. În noiembrie 2018, a existat un alt vârf semnificativ. S-a arătat că au existat peste 35 de milioane de încercări de atac cu injecție SQL. Experții cred că principala cauză a acestei creșteri a fost sezonul sărbătorilor. Este ceva despre care ar trebui să fie conștienți de toți proprietarii de site-uri web – mai ales dacă sunt în industria de retail. Dar chiar și după ce sezonul sărbătorilor s-a încheiat, injecția SQL rămâne o amenințare de care trebuie să fii conștient.
Statele Unite sunt ținta principală pentru atacurile la nivel de aplicație. S-a confruntat cu aproximativ 3 miliarde de atacuri în doar 17 luni. Alte victime populare includ Regatul Unit, Germania, Brazilia, India, Japonia, Canada, Australia, Italia și Țările de Jos. Deci, este sigur să presupunem că este încă o amenințare uriașă și că toate companiile ar trebui să ia măsuri de precauție extinse.
Sfaturi de securitate pentru prevenire

Cel mai bun curs de acțiune pentru dezvoltatori este să introducă măsuri de precauție pentru a preveni apariția vreodată atacurilor. Acestea sunt cele mai eficiente măsuri de prevenire:
- Validare de intrare: Validarea de intrare verifică dacă este permisă sau nu orice intrare de utilizator anume. Aceasta înseamnă că formatul, lungimea și tipul trebuie să fie acceptate colectiv. Este util pentru combaterea comenzilor care plantează hackerul din șirul de intrare.
- Interogări parametrizate: Interogările parametrizate sunt o modalitate de a precompila diferite instrucțiuni SQL. Apoi stochează parametrii astfel încât instrucțiunea să poată fi executată. Permite bazei de date să recunoască codul și să-l diferențieze de datele de intrare obișnuite.
- Proceduri stocate: au nevoie de dezvoltatori să grupeze una sau mai multe instrucțiuni SQL într-o unitate logică. Este o formă de cod pe care se poate stoca, după cum sugerează și numele, și se poate salva pentru mai târziu.
- Escape: Dezvoltatorii ar trebui să folosească caracteristici de escape de caractere pentru a se asigura că DBMS nu confundă intrarea utilizatorului cu o instrucțiune SQL.
- Web Application Firewall: Este una dintre cele mai sigure metode de a preveni atacurile prin injectare SQL. Firewall-ul monitorizează traficul care circulă către și dinspre server. Identifică ce cereri sunt potențial dăunătoare și care nu. Această soluție este suficientă pentru multe alte exploatări, așa că este întotdeauna decentă.
- Evitarea privilegiilor administrative: dezvoltatorii nu ar trebui să-și conecteze niciodată aplicațiile la baza de date prin conturi cu acces root. În caz contrar, hackerii ar putea avea acces la întregul sistem și ar putea provoca daune ireparabile. Mai mult, dezvoltatorii ar trebui să se asigure că fiecare bază de date are propriul set de acreditări cu date limitate.
S-ar putea să vă placă și: Top 10 cele mai vândute programe de securitate pe internet (antivirus și securitate).
Cuvinte finale

Oricine este preocupat de injectarea SQL nu ar trebui să uite nici alte posibile atacuri. Se aplică practicile obișnuite de securitate cibernetică: utilizați parole robuste, învățați să recunoașteți amenințările, activați un VPN de fiecare dată când vă conectați la site-uri web sau baze de date și așa mai departe. Ce este un VPN și ce face? Acesta criptează traficul dvs. online oricând intrați online. Deci, dacă trimiteți o solicitare SQL în baza de date, numai DB o poate decripta. Dacă cineva interceptează pachetele de date în cauză, nu le va înțelege. Cu cât dumneavoastră sau compania dumneavoastră sunteți mai pregătiți pentru tot felul de amenințări, cu atât mai bine.
Doar introducerea unor măsuri preventive cuprinzătoare asigură că injecția sau atacurile SQL nu au succes niciodată. Fiți gata să investiți mult timp, efort și bani pentru a vă asigura că aveți instrumentele adecvate pentru a lupta împotriva diferitelor exploatări.
