Wat is een SQL-injectie?
IT-begrippen kort en helder uitgelegd. Wat is een SQL-injectie?
Een SQL-injectie (of SQLi) is een methode om een op SQL-gebaseerde database via internet te kraken. De hacker test in zo'n geval vooraf of de database van de website vatbaar is voor een SQL-injectie door verschillende queries via zijn browser op de database los te laten. Als de hacker beet heeft (en de database dus kwetsbaar is), kan de hacker uiteindelijk de backend database in zijn geheel overnemen.
Volgens beveiliger Imperva zijn SQL-injecties inmiddels verantwoordelijk voor 83 procent van de succesvolle aanvallen waarbij hackers data van bedrijven weten te stelen. Dit jaar werden Sony, Nokia en ook de website van artieste Lady Gaga slachtoffer van SQL-injecties. Deze week werd zelfs SQL-leverancier MySQL slachtoffer van zo'n hack. De methode is eerder dit jaar vooral veel toegepast door de notoire hacktivisten van LulzSec, die SQLi's veelvuldig toepasten.
Hoe werkt zo'n hack?
Bij een SQL-injectie wordt een webapplicatie gekraakt om een achterliggende database bloot te leggen. Door bepaalde vragende queries toe te passen, kan een hacker ervoor zorgen dat een database onbedoeld gevoelige data begint op te hoesten. Die gevoeligheid ontstaat doordat de database ontworpen is om via een webapplicatie (legitieme) commando's te verwerken die (ontschuldige) gegevens toont.
Een SQL-injectie heeft tot gevolgen dat hackers bedrijfsdata kunnen ontvreemden zoals intellectueel eigendom of klantgegevens. Ook kan het wachtwoord van de beheerder achterhaald worden, waardoor de hacker de backend database in zijn geheel kan overnemen en er bijvoorbeeld een malware-applicatie in kan plaatsen. Tot slot is ook het platleggen of omvormen (defacing) van de website mogelijk.
Hoe vaak vindt zo'n aanval plaats?
Sinds eind 2010 heeft Imperva een dertigtal webapplicaties gemonitord om te zien hoe vaak deze aangevallen werden. Zoals je hieronder in de grafiek kunt zien, werden deze apps honderden tot duizenden malen per dag bestookt met frauduleuze SQL-queries, vooral uit de Verenigde Staten, maar ook vanuit landen als China, Vietnam, het Verenigd Koninkrijk en Zweden. Volgers de beveiliger maken hackers daarbij vooral gebruik van tools als Sqlmap en Havij die ook bij developers populair zijn als testsoftware.

Hoe beveilig je een SQL-database?
Allereerst kun je een SQL-injectie voorkomen door variabelen in de SQL-query niet te isoleren of te quoten. GET en POST variabelen (dynamisch SQL) dienen niet in queries voor te komen. Werk liever met reguliere expressies en kijk naar het gebruik van de Escape-string. Dat laatste kun je automatiseren door prepared statements te gebruiken. Kijk voor meer algemene informatie over het voorkomen van SQL-injecties hier, hier en hier. Wil je specifiekere informatie, ga dan zelf via een zoekmachine als Google op zoek. Er zijn namelijk talloze pagina's beschikbaar die ingaan op de beveiliging tegen SQL-injecties bij databases van specifieke SQL-leveranciers.
Nu op
- ADV:2e webcast Nationaal Privacy Debat
- Facebook zit in de kleinste haarvaten...
- Kliksafe en Solcon vechten netneutral...
- NPD: bedrijven en je data (video)
- Hoge Raad overweegt downloadverbod pl...
- Service pack Avira crasht Windows-pc's
- EC houdt Microsoft in de gaten in nie...
- .nl krijgt DNSSEC breder doorgevoerd
- Apple krijgt patent op virtuele shift...
- Nieuwe functies Chrome 19 liggen acht...
- 10 tips om Android nóg beter te make...
- 'Google komt met 5 verschillende Nexu...
Nu op
- ADV:2e webcast Nationaal Privacy Debat
- Een goed cv opstellen: zo moet het
- Leidinggevenden meeste bezig met soci...
- Nederlandse bedrijven bezorgd over cl...
- E-mail minder, leef langer
- Windows 8 minder populair dan 7 destijds
- 'Goedaardige virussen nodig voor secu...
- Cloud: riskant maar toch gebruiken
- Kleine organisaties vaker doelwit ger...
- 'Huur ontwikkelaars in die deelnemen ...
- Wakker worden, uw bedrijf werkt al in...
- Zijn BYOD-werknemers productiever?



