Datalek: gebrekkige kennis beveiliging leidt tot lek – Bits of Freedom
Bits of Freedom heeft alweer haar Zwartboek datalekken bijgewerkt. Door onvoldoende beveiliging van de website was het mogelijk om de database achter websites van Karakter Uitgevers, Karakter Interactive, Loes den Holland en Visual Steps uit te lezen. De gegevens van duizenden klanten waren tot vorige maand toegankelijk voor iedereen met enige verstand van de beveiliging van websites.
Sommige van datalekken die we in ons zwartboek opnemen zijn domweg slordigheden: niet opletten bij het versturen van een e-mail of het verlies van opnameapparatuur. Andere datalekken ontstaan door het onvoldoende aandacht voor de beveiliging van websites. Soms is er helemaal niet over nagedacht over het beschermen van informatie en zijn de gegevens van andere klanten in te zien door het aanpassen van een nummer in het adres van de pagina. En soms is de website gebouwd door iemand zonder kennis van de meest basale beveiligingstechnieken.
Zo'n website kan kwetsbaar zijn voor aanvallen waar bij gebruik wordt gemaakt van een "SQL-injectie". Door het aanpassen van het adres van de pagina is veel meer informatie uit de database te halen, dan bedoeld. Of zelfs te verwijderen. Hoe gaat dat in zijn werk?
Op veel websites wordt de informatie op een dynamische manier opgebouwd. Afhankelijk van het precieze adres dat de gebruiker intikt, wordt een bepaalde pagina getoond. De informatie uit het adres is bepalend voor wat er aan informatie uit de database opgehaald wordt en uiteindelijk op de pagina wordt getoond. Om de gegevens uit een database te kunnen halen, zijn bepaalde commando's nodig. Die commando's moeten, om begrijpelijk te zijn voor het systeem, een bepaalde vorm hebben. Zo moet letterlijke tekst bijvoorbeeld altijd tussen haakjes staan en heeft een punt-komma ook een speciale betekenis.
Op websites die onvoldoende zijn beveiligd tegen "SQL-injecties" kan de gebruiker in de adresregel van de browser zelf code toevoegen die door de webserver als een commando aan de database server wordt gegeven. Door op die manier de opdracht aan de database server te manipuleren, kan de gebruiker soms meer informatie uit de database halen.
De melder van het lek bij Karakter Uitgevers zegt op die manier inzage te hebben gehad in de hele tabel met afleveradressen. Op deze manier kreeg hij inzage in de naam en adresgegevens van bijna 4.000 mensen die een boek bij de uitgever besteld had. Soms waren ook het geslacht, een apart afleveradres, een faxnummer en het vaste en mobiele nummer van de besteller vastgelegd. In een andere tabel stonden, waarschijnlijk voor een mailinglist, 25.000 e-mailadressen genoemd. Ook blijkt de database gebruikt te worden voor een forum, waarbij op deze manier ook de prive berichten tussen de gebruikers onderling zichtbaar werden. Een onschuldig voorbeeld:
Ik heb veel datalekken op deze site gezien, maar vind een SQL injectie, wel het allerergste. Enorm veel mensen met een beetje verstand hiervan, kunnen dit al uitvoeren, en bv. PHP heeft al een simpele functie om je hiertegen te beveiligen.
Mensen vertrouwen te vaak, de input in de adresbalk of in formulieren. Serverside beveiliging wordt nog te vaak vergeten, en dit is een goed voorbeeld hiervan.