i

Osta verkkotunnus ja ylläpidä yrityksesi sivuja verkossa ilmaiseksi 3 kuukauden ajan. **

Tartu tarjoukseen
.com
$ 9.99 $ 26.99 /1. vuosi
.one
$ 3.99 $ 16.99 /1. vuosi

Kirjaudu sisään

Ohjauspaneeli Webmail Website Builder Verkkokauppa File Manager WordPress

Mitä on SQL injektio (SQL injection)?

Lue esimerkkejä SQL injektiosta ymmärtääksesi, miten SQL hyökkäys toimii

Structured Query Language tunnetaan myös lyhenteellä SQL. SQL injektio on nettiturvahaavoittuvuus, joka mahdollistaa hyökkäykset. SQL injektio hyökkäyksen avulla hakkeri voi nähdä tietoja, joihin he eivät muuten pääse käsiksi. Tiedot ovat arkaluonteisia, koska ne voivat olla käyttäjien henkilökohtaisia tietoja.

Mitä hakkeri sitten tekee tiedoilla? Yleensä hakkeri poistaa tiedot sovelluksesta tai muuttaa niitä aiheuttaakseen ongelmia. SQL injektio hyökkäys voidaan tehdä myös verkkosovelluksen palvelimelle sen toiminnan vaarantamiseksi.

Mihin SQL injektio hyökkäys vaikuttaa?

SQL injektio hyökkäys vahingoittaa monia yrityksiä, jopa suuria yrityksiä.. Jos yrityksesi joutuu SQL injektio hyökkäyksen uhriksi, on sanomattakin selvää, että se vaikuttaa negatiivisesti yritykseesi. Yrityksesi menettää muun muassa käyttäjien yksityisiä tietoja, mikä on todella huono asia yrityksesi maineelle. Tämän tyyppisten tietojen menettäminen tietosuojalain vuoksi on myös laitonta. Siksi on välttämätöntä ryhtyä ennaltaehkäiseviin toimenpiteisiin hyökkäyksen välttämiseksi.

SQL injektio esimerkki (SQL injection example)

Esimerkki hyökkäyksestä voi olla esimerkiksi seuraavanlainen. Oletetaan, että sinulla on nettikauppasivusto. Sinulla on kategoria, joka on omistettu lenkkareiden myynnille. Käyttäjä on kiinnostunut lenkkarien ostamisesta, joten hän vierailee kyseisessä kategoriassa nettisivullasi. Kun käyttäjä napsauttaa kategoriaa, selain pyytää seuraavaa:

https://feikkisivu.fi/tuotteet?kategoria=lenkkarit

Verkkosovelluksesi tekee SQL -kyselyn saadakseen tietoja kyseisen kategorian olennaisista tiedoista tietokannasta.

SQL kysely näyttää todennäköisesti seuraavalta:

Valitse * MISTÄ tuotteet MISSÄ kategoria = ‘Lenkkarit’ JA vapauta= 1

Tässä tapauksessa SQL kysely pyytää tietokantaa palauttamaan tiedot tuotteiden kategoriasta, eli lenkkareiden kategoriasta.

Vapautettu = 1 on rajoitus. Se piilottaa tuotteet, joita ei ole vielä julkaistu, jos sinulla on esimerkiksi muita lenkkareita, jotka haluat julkaista myöhemmin tulevaisuudessa. Numero 1 varmistaa, että ne eivät ole nähtävillä julkisesti.

Verkkosovelluksellasi ei ehkä ole mitään keinoa suojautua SQL -injektio hyökkäykseltä. Joten hyökkääjä voi valitettavasti hyökätä tällä tavalla:

https://feikkisivu.fi/tuotteet?kategoria=lenkkarit’–

Tällöin SQL kysely näyttää tältä:

Valitse * MISTÄ tuotteet MISSÄ kategoria = ‘Lenkkarit’– JA vapauta= 1

Kaksoisviiva on kommentti-ilmaisin, joka osoittaa, että kysely on kommentti. Ja jos järjestelmä uskoo kyselyn olevan kommentti, se ei voi tietää, että kyseessä on hyökkäys. Myöhemmin kaksoisviiva poistaa loput kyselystä (JA vapauta= 1), mikä puolestaan julkaisee tiedot kaikista kategoriasi tuotteista. Jopa niistä, joita ei ole vielä julkistettu.

Lisäksi hyökkääjä voi lähettää SQL -hyökkäyksen nähdäkseen kaiken muun, mitä myyt nettisivullasi. 

Hakkeri hyökkää tällä tavalla:

https://feikkisivu.fi/tuotteet?kategoria=lenkkarit’+TAI+1=1–

Tämä johtaa SQL kyselyyn, joka näyttää tältä: 

Valitse * MISTÄ tuotteet MISSÄ kategoria = ‘Lenkkarit’ TAI 1=1–’JA vapauta = 1

Tämä kysely palauttaa tiedot kaikista nettisivullasi myytävänä olevista tuotteista.

On myös olemassa muita tapoja, joilla hakkeri voi toteuttaa SQL injektion. 

  • Boolean

Hyökkääjä lähettää SQL kyselyn palauttaakseen tuloksen tietokannasta nopeasti. Käyttämällä tätä Boolean menetelmää hyökkääjä voi määrittää, oliko palautettu tulos tosi vai epätosi.

  • Aikaviive

Hyökkääjä lähettää kyselyn saadakseen tietokannan odottamaan: se aiheuttaa aikaviiveen. Tätä menetelmää käyttämällä hyökkääjä tietää, onko lähettämäsi kysely tosi vai epätosi sen perusteella, kuinka kauan tietokannalla kestää vastata.

  • Kaistan ulkopuolinen verkko

Hyökkääjä voi tehdä kaistan ulkopuolisen hyökkäyksen, jos tietokannan käyttämässä palvelimessa on tiettyjä tarvittavia ominaisuuksia. Hyökkääjä saa tietoja kaistan ulkopuolisen kanavan kautta ja sijoittaa ne muualle. Tämäntyyppinen hyökkäys luottaa palvelimeen luodakseen DNS- tai HTTP -pyynnön siirtääkseen yksityiset tiedot hyökkääjälle.

SQL injektio hyökkäys

Yleisimmät SQL -injektio hyökkäykset ovat valintakyselyn missä -lausekkeessa. Se voi kuitenkin tapahtua myös eri kyselytyypeissä.

Miten estää SQL injektio hyökkäys?

Suurin osa SQL injektio heikkouksista on helppo löytää.

  • Skanneri

Käytä burp suites verkon haavoittuvuusskanneria. Voit käyttää tätä skanneria määrittämällä testejä sovelluksen jokaiselle sisäänpääsypisteelle.

Voit etsiä virheitä, järjestelmällisiä eroja ja saamiasi sovellusvastauksia.

  • Syötteen validointi ja WAF

Kirjoita koodi, joka tunnistaa epäluotettavat käyttäjät. Tämä ei kuitenkaan ole vedenpitävä menetelmä yksinään käytettynä. Se voi luoda paljon vääriä positiivisia tuloksia. Tämän menetelmän käyttöönotto samalla, kun käytetään myös verkkosovellusten palomuuria, voi olla tehokasta. WAF suodattaa pois SQLI:n ja muut nettiuhat.

Kun WAF saa vihjeen laittomasta käyttäjästä, se tarkistaa IP-tiedot ennen pyynnön estämistä. Jos siis IP -tiedoilla on huono maine, se estetään.

Pysykää turvassa!