Ons hackclubje kreeg laatst een leuk verzoek van een eigenaar van een website: of we de veiligheid van zijn site wilden testen. Ik kan niet zeggen welke site, want wat we aantroffen was niet best. En voor zover ik kan zien, zijn nog niet alle problemen opgelost.
Op de site moet je een account aanmaken om gebruik te kunnen maken van een dienst. Enkele honderden mensen hebben dat al gedaan en deelden hun gevoelige gegevens, waaronder hun wachtwoord.
Een van de eerste dingen die we deden, was zelf maar eens een account aanmaken. En toen zagen we meteen een gapend gat in de beveiliging. Bij het inloggen op de site zagen we een unieke code in de URL staan, iets in de trant van:
‘lekkesite.nl/accounts?user=000000000023BE’
Blijkbaar hadden wij een gebruikersnummer toegewezen gekregen, namelijk 23BE (met flink wat ambitieuze nullen ervoor).
Zou er dan ook een gebruiker zijn die nummer 23BD heeft gekregen. Of 22BE? Dat is simpel te testen: gewoon de bovenstaande URL aanpassen, dus:
‘lekkesite.nl/accounts?user=000000000023BD’
En ja hoor, we zaten zonder een wachtwoord te gebruiken in andermans account.
Na een paar minuten proberen vonden we ook het account van de websitebeheerder. Toen konden we met een paar simpele stappen de hele database van gebruikers downloaden. Daarin stonden namen, e-mailadressen en onversleutelde wachtwoorden. Omdat de meeste mensen een beperkt aantal wachtwoorden gebruiken, hadden we met deze informatie nog veel meer accounts van de gebruikers kunnen overnemen. Bijvoorbeeld van Facebook, LinkedIn, Gmail, Hotmail en Twitter.
Hoe kaap je een account?
Deze vorm van hacken, waarbij je iemands account kaapt door andere informatie te stelen dan wachtwoorden, komt erg veel voor. In de invloedrijke top tien van OWASP, een lijst met meest voorkomende hacks in webapplicaties, staat hij op nummer twee (net onder SQL-injection).
Rob van Barneveld, onze striptekenaar, legt uit welk onderliggend probleem in onze internettechnologie deze vorm van hacken zo makkelijk maakt.






























Maar wat kun je hiertegen doen?
We hebben een aantal adviezen gegeven aan de beheerder van de door ons geteste website. Het lange advies luidde: zorg er in ieder geval voor dat...
- ... de user id’s niet voorspelbaar zijn. Als ze willekeurig zijn, bijvoorbeeld ‘1oQXcc5BEA7d370RUtNi9EKe9o’, zijn ze niet te raden.
- ... er gecontroleerd wordt of een sessie daadwerkelijk door de gemachtigde gebruiker wordt gevoerd. Het kan niet zo zijn dat ik als ingelogde gebruiker zomaar in iemand anders’ account kan komen.
Het korte advies was: haal de site offline en begin opnieuw.
Als gebruiker is het een stuk lastiger om je hiertegen te wapenen, want het is toch vooral een probleem van de website-eigenaar. Toch kan ik een paar praktische tips geven:
- Als je in het websiteadres (de URL) al zo’n heel voorspelbare user id ziet, ga dan niet verder. Mail de beheerder.
- Gebruik een goede browser, zoals Chrome. Die kijkt zelf naar mogelijke kwetsbaarheden en waarschuwt je als die er eentje vindt.
- Surf als je op een openbaar netwerk zit op met een VPN, een Virtual Private Network. Dat voorkomt dat anderen je netwerkverkeer en dus je cookies en andere privacygevoelige informatie kunnen zien.
Met dank aan Frank de Korte voor zijn presentatie van Cross Site Scripting.
Dit was de laatste aflevering van de serie over hacken. De belangrijkste vormen heb ik behandeld. Er is nog veel meer te leren en te ontdekken, maar ik merk dat de onderwerpen nu wel erg ingewikkeld worden en dat ze moeilijk uit te leggen zijn. Mijn dank gaat uit naar de cursisten die iedere donderdagavond op de redactie kwamen hacken, de sprekers die daarbij geduldig uitleg gaven en de meelezers achter de schermen die alle artikelen voor- en achteraf van nuttig commentaar voorzagen.
Ook in deze serie:





En lees ook een aantal hackverhalen van collega Maurits Martijn:



…dit verhaal heb je gratis gelezen. Maar het maken van dit verhaal kost tijd, geld en energie. Steun ons en maak meer verhalen mogelijk voorbij de waan van de dag.
Al vanaf het begin worden we gefinancierd door onze leden en zijn we volledig advertentievrij en onafhankelijk. We maken diepgravende, verbindende en optimistische verhalen die inzicht geven in hoe de wereld werkt. Zodat je niet alleen begrijpt wat er gebeurt, maar ook waarom het gebeurt.
Juist nu in tijden van toenemende onzekerheid en wantrouwen is er grote behoefte aan verhalen die voorbij de waan van de dag gaan. Verhalen die verdieping, verbinding en optimisme brengen. Verhalen niet gericht op het sensationele, maar op het fundamentele. Dankzij onze leden kunnen wij verhalen blijven maken voor zoveel mogelijk mensen. Steun ons en doe mee!