Eerste hulp bij hacken. Zo steel je wachtwoorden en creditcardgegevens

Dimitri Tokmetzis
Correspondent Surveillance & Technologie
Illustratie: Rob van Barneveld (voor De Correspondent)

Een van de meestgebruikte manieren om gevoelige informatie te stelen, is het injecteren van kwaadaardige code in websites. Hoe werkt dit?

Als de hacker in zijn opzet was geslaagd, waren de Zweedse landelijke verkiezingen van 2010 desastreus verlopen.

In Zweden kunnen kiesgerechtigden stemmen door een naam van een partij of kandidaat op een blanco biljet te schrijven. Die handgeschreven biljetten worden vervolgens door een computer ingelezen, waarna de keuze wordt geregistreerd in een database. Een slimme hacker probeerde daar in 2010 misbruik van te maken door een aan zijn stem:

pwn DROP TABLE VALJ

Dit is geen Zweeds, maar een computertaal die gebruikt wordt voor het beheer van databases. Met dit zinnetje probeerde de hacker een commando te geven aan de database: verwijder de tabel waarin mijn stem wordt geladen. Als de computer braaf het commando had uitgevoerd, waren mogelijk heel veel stemmen

Een voorbeeld van een vaak voorkomende hack: SQL injection.

De grootste dreiging op het web

Vrijwel alle websites slaan informatie op in databases. Plaatjes, tekst, pagina’s, producten en prijzen. Maar ook gebruikersgegevens, wachtwoorden en betaalinformatie. Verreweg de meeste websites maken hiervoor gebruik van een

Het injecteren van kwaadaardige SQL-code in zo’n database, prijkt al jaren op nummer één van de veiligheidsproblemen

Een paar voorbeelden:

  • In juli van dit jaar dat ze databases en personeelsinformatie van hadden gestolen door middel van SQL injection.
  • Een hacker van het collectief Anonymous brak in mei van dit jaar in bij de Wereldhandelsorganisatie en met gebruikersnamen, adresgegevens en informatie over sollicitatieprocedures.
  • Afgelopen jaar werd aangetoond dat en drie grote platforms waarop honderdduizenden websites worden gebouwd, kwetsbaar waren voor SQL injections. Hoewel de platforms vaak beveiligingsupdates verzorgen, zijn de websitebeheerders zelf verantwoordelijk voor het implementeren ervan. Veel sites blijven daarom kwetsbaar.
  • En tot slot een aantal organisaties dat de afgelopen jaren met SQL injections te kampen heeft gehad: Tesla, de FBI, NASA, een aantal grote Amerikaanse zorgverzekeraars, Adobe, The Wall Street Journal, Sony, Nokia, Visa, eHarmony, en nog veel meer.

SQL injections komen zo vaak voor omdat ze makkelijk uit te Je kunt met een simpele websites vinden die kwetsbaar zijn. Ook zijn er tools beschikbaar die je zoektocht naar kwetsbare sites

Als je eenmaal een kwetsbare website hebt gevonden, kun je met SQL injection verrassend veel informatie stelen. Ook wordt SQL injection gebruikt om informatie op websites te veranderen (zoals prijzen in een webshop), of zelfs te vernietigen (zoals met het DROP TABLE-commando in de Zweedse verkiezingen).

Maar hoe werkt een SQL injection?

Met onze lezershackersclub hebben we ook een aantal aanvallen op SQL-databases uitgevoerd. We hebben hiervoor geen echte websites gebruikt, maar een de Sommige lezers slaagden erin om er fictieve wachtwoorden en creditcardgegevens uit te halen.

In de video hieronder laat ik zien hoe je de oefensite zover krijgt om alle wachtwoorden in de database Aan het einde zal ik ook nog laten zien hoe je de verkregen wachtwoorden (die versleuteld zijn) kunt kraken. Tot slot is het nog aardig om te vermelden dat je het invoeren van commando’s ook kunt automatiseren, bijvoorbeeld door een programma als te gebruiken.

Ik wil nog even benadrukken dat het uitvoeren van SQL injections strafbaar is. Als je wilt oefenen, gebruik dan een oefensite zoals de Damn Vulnerable Web App of van beveiligingsonderzoeker en blogger Troy Hunt.

Vimeo plaatst cookies bij het bekijken van deze video Vimeo

En als je zelf niet gehackt wilt worden? Dan kun je een aantal dingen doen. Als beheerder van de website moet je ervoor zorgen dat niet zomaar allerlei commando’s Daarnaast zul je er goed op moeten letten dat de webapplicatie niet zomaar alles aan de database kan vragen. Dit vereist wel enige kennis van webapplicaties en databases. Voor de gemiddelde website-eigenaar is dit veel gevraagd. Je kunt hopelijk de ergste lekken voorkomen door regelmatig je software te updaten. Als je echt de diepte in wilt gaan, dan kun je terecht op de waar best practices beschreven staan. Maar de kans dat SQL injections voorlopig nog op de nummer één van bedreigingen zullen staan, is behoorlijk groot.

Strip door

Eerder in deze serie: