Wat is een SQL-injectie aanval?
Je weet misschien niet wat een SQL-injectie (SQLI) aanval is of hoe deze werkt, maar je kent zeker de slachtoffers. Target, Yahoo, Zappos, Equifax, Epic Games, TalkTalk, LinkedIn en Sony Pictures—deze bedrijven zijn allemaal gehackt door cybercriminelen die SQL-injecties gebruikten.
Een SQLI is een type aanval waarbij cybercriminelen zwakheden in webapplicaties benutten om gegevens te stelen, te verwijderen of te wijzigen, of om administratieve controle te verkrijgen over de systemen die de getroffen applicaties draaien.
Cybersecurity onderzoekers beschouwen SQLI als een van de minst geavanceerde en makkelijk te verdedigen cyberbedreigingen. Malwarebytes Labs plaatst SQLI op de derde plaats in de De Top 5 Domste Cyberbedreigingen die toch Werken, met als reden dat SQLI een bekende, voorspelbare aanval is met gemakkelijk te implementeren tegenmaatregelen.
SQLI-aanvallen zijn zo eenvoudig dat aanvallers kwetsbare websites kunnen vinden met geavanceerde Google-zoekopdrachten, genaamd Google Dorking. Zodra ze een geschikt doelwit hebben gevonden, kunnen SQLI-aanvallers geautomatiseerde programma's gebruiken om de aanval effectief uit te voeren. Het enige wat ze hoeven te doen is de URL van de doelwebsite invoeren en zien hoe de gestolen gegevens binnenkomen.
Toch zijn SQLI-aanvallen alledaags en komen dagelijks voor. In feite, als je een website of online bedrijf hebt, hebben cybercriminelen waarschijnlijk al geprobeerd de SQLI te gebruiken om in je website in te breken. Een studie door het Ponemon Instituut over De SQL Injectie Dreiging & Recente Retail Inbraken vond dat 65% van de ondervraagde bedrijven slachtoffer was van een op SQLI gebaseerde aanval.
Vaak doelgerichte webapplicaties zijn: sociale media sites, online retailers en universiteiten. Kleine tot middelgrote bedrijven zijn bijzonder kwetsbaar omdat ze vaak niet bekend zijn met de technieken die cybercriminelen gebruiken in een SQLI-aanval en daarom niet weten hoe ze zich tegen zo'n aanval moeten verdedigen.
Laten we daarom de eerste stap zetten in de verdediging tegen een SQL-injectie door meer over het onderwerp te leren. Hier is je kennismaking met SQL-injecties.
Hoe werkt een SQL-injectie?
Ontwikkeld in de vroege jaren '70, is SQL (kort voor structured query language) een van de oudste programmeertalen die vandaag de dag nog steeds gebruikt wordt voor het beheren van online databases. Deze databases bevatten zaken zoals prijzen en voorraadniveaus voor online winkelsites. Wanneer een gebruiker database-informatie nodig heeft, wordt SQL gebruikt om die gegevens op te halen en aan de gebruiker te tonen. Maar deze databases kunnen ook gevoeligere en waardevollere gegevens bevatten, zoals gebruikersnamen en wachtwoorden, creditcardinformatie en sofinummers. Hier komen SQL-injecties om de hoek kijken.
Kort gezegd, een SQL-injectie vindt plaats wanneer hackers schadelijke opdrachten invoeren in webformulieren, zoals het zoekveld, inlogveld of de URL, van een onveilige website om ongeautoriseerde toegang te krijgen tot gevoelige en waardevolle gegevens.
Hier is een voorbeeld. Stel je voor dat je naar je favoriete online kledingwinkel gaat. Je bent op zoek naar sokken en je kijkt naar een Technicolor wereld van kleurrijke sokken, allemaal beschikbaar met een klik van je muis. De wonderen van technologie! Elke sok die je ziet, bevindt zich in een database ergens op een server. Wanneer je een sok vindt die je leuk vindt en erop klikt, stuur je een verzoek naar de sokdatabase, en de winkelsite reageert met de informatie over de sok waarop je hebt geklikt. Stel je nu voor dat je favoriete online winkelwebsite op een haastige manier is opgebouwd, vol met uitbuitbare SQL-kwetsbaarheden.
Een cybercrimineel kan databasevragen zo manipuleren dat een verzoek om informatie over een paar sokken het creditcardnummer van een ongelukkige klant oplevert. Door dit proces keer op keer te herhalen, kan een cybercrimineel de diepten van de database verkennen en gevoelige informatie stelen van alle klanten die ooit op je favoriete online kledingwinkel hebben gewinkeld, inclusief jijzelf. Als je het gedachte-experiment nog verder neemt, stel je voor dat jij de eigenaar van deze kledingwinkel bent. Je hebt een enorm datalek in handen.
Eén SQLI-aanval kan cybercriminelen persoonlijke informatie, e-mails, inloggegevens, creditcardnummers en sofinummers van miljoenen consumenten opleveren. Cybercriminelen kunnen deze persoonlijke info vervolgens verkopen op de grauwste hoeken van het dark web, om voor allerlei illegale doeleinden te worden gebruikt.
Gestolen e-mails kunnen worden gebruikt voor phishing en malspam-aanvallen. Malspam-aanvallen kunnen op hun beurt worden gebruikt om slachtoffers te infecteren met allerlei soorten destructieve malware zoals ransomware, adware, cryptojackers en Trojans (bijv. Emotet), om er maar een paar te noemen. Gestolen telefoonnummers voor Android en iOS mobiele apparaten kunnen worden gericht met robocalls en tekstberichtenspam.
Gestolen inloggegevens van sociale netwerksites kunnen zelfs worden gebruikt om spamberichten te verzenden en nog meer inloggegevens voor andere sites te stelen. Malwarebytes Labs meldde eerder over gehackte LinkedIn-accounts die werden gebruikt om andere gebruikers te spammen met InMail-berichten die slechte URL's bevatten die gespoofd of vervalst waren om eruit te zien als een Google Docs-inlogpagina waarin cybercriminelen Google-gebruikersnamen en -wachtwoorden konden oogsten.
Wat is de geschiedenis van SQL-injecties?
De SQL-injectie exploit werd voor het eerst gedocumenteerd in 1998 door cybersecurity onderzoeker en hacker Jeff Forristal. Zijn bevindingen werden gepubliceerd in het langlopende hacker tijdschrift Phrack. Schrijvend onder de naam Rain Forest Puppy, legde Forristal uit hoe iemand met basisvaardigheden in codering ongeautoriseerde SQL-opdrachten kan meeliften op legitieme SQL-opdrachten en gevoelige informatie uit de database van een onveilige website kan halen.
Toen Forristal Microsoft op de hoogte bracht van hoe de kwetsbaarheid hun populaire SQL Server product beïnvloedde, zagen ze het niet als een probleem. Zoals Forristal het verwoordde: "Volgens hen [Microsoft] is wat je gaat lezen geen probleem, dus maak je geen zorgen over het stoppen ervan."
Wat Microsoft's lakse reactie zo schokkend maakt, is dat veel industrieën en instellingen serieus afhankelijk waren (toen en nu) van de databasebeheertechnologie van het bedrijf om hun operaties draaiende te houden, waaronder retail, onderwijs, gezondheidszorg, bankwezen en personeelszaken. Dit leidt ons naar het volgende evenement in de SQLI-geschiedenistijdlijn—de eerste grote SQLI-aanval.
In 2007 viel de grootste gemakswinkelketen in de Verenigde Staten, 7-Eleven, ten prooi aan een SQLI-aanval. De Russische hackers gebruikten SQL-injecties om in de 7-Eleven website in te breken en dat te gebruiken als een opstapje naar de klantendebetkaartdatabase van de gemakswinkel. Dit stelde de hackers in staat om vervolgens geld op te nemen in Rusland. Al met al maakten de daders twee miljoen dollar buit, zoals Wired magazine meldde.
Niet alle SQLI-aanvallen zijn gemotiveerd door hebzucht. In een ander opmerkelijk voorbeeld uit 2007, gebruikten cybercriminelen SQLI om administratieve controle te krijgen over twee aan het Amerikaanse leger gerelateerde websites en bezoekers om te leiden naar websites met anti-Amerikaanse en anti-Israëlische propaganda.
De MySpace-datalek van 2008 behoort tot een van de grootste aanvallen op een consumentenwebsite. Cybercriminelen stalen e-mails, namen en gedeeltelijke wachtwoorden van bijna 360 miljoen accounts. En dit is waarom we geen wachtwoorden van de ene site naar de andere hergebruiken.
De titel voor het meest opzichtige gebrek aan beveiliging gaat naar Equifax. De datalek van Equifax in 2017 leverde extreem persoonlijke informatie op (d.w.z. namen, sofinummers, geboortedata en adressen) voor 143 miljoen consumenten. Voor een organisatie die fungeert als de poortwachters van informatie voor elke Amerikaan, behalve degenen die buiten de grid leven, zou je denken dat ze voorzorgsmaatregelen zouden nemen tegen een basis SQLI-aanval. Voordat het datalek plaatsvond, waarschuwde een cybersecurity onderzoeksfirma zelfs Equifax dat ze vatbaar waren voor een SQLI-aanval, maar het kredietbureau nam pas actie toen het te laat was.
Wat als de griezeligste hack in de geschiedenis kan worden aangemerkt, is een SQLI-aanval op de speelgoedfabrikant Vtech in 2015, die leidde tot een datalek van bijna vijf miljoen ouders en 200.000 kinderen. In gesprek met Motherboard, de online multimedia publicatie, beweerde de verantwoordelijke hacker dat ze geen plannen hadden voor de gegevens en de gegevens nergens online publiceerden. Aan de andere kant legde de hacker ook uit dat de gegevens heel gemakkelijk te stelen waren en dat iemand anders er eerder bij had kunnen zijn. Koude troost inderdaad.
En nu, de SQLI-aanval is nog steeds actueel. Elke drie jaar rangschikt het Open Web Application Security Project (OWASP) de Top 10 Meest Kritieke Webapplicatie Beveiligings Risico's. In de meest recente 2017 editie, stond de SQLI-aanval op nummer één.
Wat interessant is, afgezien van de levensduur van de SQLI-aanval, is dat SQLI-aanvallen op geen enkele manier veranderd of geëvolueerd zijn. SQLI-aanvallen werken en zullen blijven werken totdat mensen hun houding over cybersecurity veranderen. Wees die verandering.
Nieuws over SQL-injecties
- Wat is een honeypot? Hoe ze worden gebruikt in cyberbeveiliging
- Interview met een bug bounty hunter: Youssef Sammouda
- Een zero-day gids voor 2020: Recente aanvallen en geavanceerde preventieve technieken
- Kwetsbaarheden in financiële mobiele apps brengen consumenten en bedrijven in gevaar
- Hoe je je content management systeem beveiligt
- Uitleg: SQL-injectie
- OWASP top tien – Saaie beveiliging die loont
- De top 5 domste cyberdreigingen die toch werken
Hoe beïnvloeden SQL-injecties mijn bedrijf?
Zoals gerapporteerd in ons Cybercrime Tactics and Techniques report, stegen cyberaanvallen (van alle soorten) op bedrijven met 55% in de tweede helft van 2018, terwijl aanvallen op individuele consumenten slechts met 4% stegen. De statistieken zijn niet verrassend. Bedrijven met slechte beveiliging bieden criminelen een makkelijk doelwit, met een schat aan waardevolle gegevens ter waarde van miljoenen.
Omgekeerd kan een bedrijf dat het middelpunt is van een datalek verwachten miljoenen te betalen. Een IBM-studie vond de gemiddelde kosten van een datalek, inclusief herstel en boetes, $3,86 miljoen. Het eerder genoemde LinkedIn-datalek kostte de zakelijke netwerksite uiteindelijk $1,25 miljoen in een buitengerechtelijke schikking.
Na hun datalek moest Target het grootste bedrag ooit betalen—$18,5 miljoen—om onderzoeken door meerdere staten te regelen. Dit kwam bovenop de $10 miljoen die Target betaalde om een collectieve rechtszaak aangespannen door consumenten te schikken.
Toegegeven, dit zijn enorme datalekken die miljoenen consumenten treffen. Kleine tot middelgrote bedrijven kunnen echter nog steeds verwachten $148 te betalen voor elk gestolen consumentenrecord.
De moraal van het verhaal? Neem je beveiliging serieus en voorkom dat je een "Target" wordt voor cybercriminelen.
Hoe kan ik me beschermen tegen SQL-injecties?
Afgezien van alle zorgen, ben je hier omdat je weet dat SQL-injecties een serieuze bedreiging vormen. Laten we er nu iets aan doen. Hier zijn enkele tips om je bedrijf tegen SQL-injecties te beschermen.
Update je databasemanagementsoftware. Je software is gebrekkig zoals het van de fabrikant komt. Dit is een feit. Er bestaat niet zoiets als foutloze software. Cybercriminelen kunnen deze softwarekwetsbaarheden, of exploits, benutten met een SQLI. Je kunt jezelf beschermen door simpelweg je databasemanagementsoftware te patchen en te updaten.
Hanteer het principe van minste privilege (PoLP). PoLP betekent dat elk account alleen genoeg toegang heeft om zijn werk te doen en niet meer. Bijvoorbeeld, een webaccount dat alleen leesrechten heeft voor een bepaalde database zou niet de mogelijkheid moeten hebben om gegevens te schrijven, te bewerken of op enige manier te wijzigen.
Gebruik voorbereide statements of opgeslagen procedures. In tegenstelling tot dynamische SQL beperken voorbereide statements variabelen op binnenkomende SQL-opdrachten. Op deze manier kunnen cybercriminelen geen kwaadaardige SQL-injecties op legitieme SQL-statements meesurfen. Opgeslagen procedures beperken op vergelijkbare wijze wat cybercriminelen kunnen doen door SQL-statements op de database op te slaan, die vanuit de webapplicatie door de gebruiker worden uitgevoerd.
Huur bekwame, ervaren ontwikkelaars in. SQLI-aanvallen worden vaak veroorzaakt door slordige code. Laat je softwareontwikkelaars van tevoren weten wat je verwacht qua beveiliging.
Wat als mijn persoonlijke informatie werd gestolen bij een datalek? Je moet eens kijken naar onze datalek-checklist. Daar leer je alles over opruimen en veilig blijven nadat een SQLI-aanval je heeft getroffen.
Bezoek OWASP. Het Open Web Application Security Project, kortweg OWASP, is de leidende autoriteit op het gebied van webapplicaties en biedt veel extra leesmateriaal over hoe SQL-injecties te voorkomen.
En als je geen genoeg kunt krijgen van SQL-injecties, bezoek dan de Malwarebytes Labs blog voor al het laatste nieuws in de wereld van cyberbedreigingen en cybersecurity.