Er komt een mail binnen van een klant: iemand heeft haar bestelgeschiedenis bekeken en het afleveradres gewijzigd. Uw eerste gedachte is dat uw webshop gehackt is. Meestal klopt dat niet. Wat er gebeurd is, is dat gelekte wachtwoorden van klanten uit een heel ander datalek zijn uitgeprobeerd op uw inlogscherm, en dat er één paste.
Deze vorm van aanval heet in het Engels credential stuffing en is de afgelopen jaren de meest voorkomende manier waarop klantaccounts worden overgenomen. Het vervelende is dat uw site niets fout hoeft te hebben gedaan. Het minder vervelende is dat u er wel degelijk iets tegen kunt doen. Dit artikel legt uit hoe het werkt en welke maatregelen in de praktijk verschil maken.
Hoe de aanval in de praktijk verloopt
Bij datalekken van grote diensten komen combinaties van e-mailadres en wachtwoord op straat te liggen. Die lijsten worden verhandeld en samengevoegd tot bestanden met honderden miljoenen regels. Ze zijn goedkoop en makkelijk te vinden.
Een aanvaller neemt zo’n lijst en laat er geautomatiseerd een script op los dat op uw inlogpagina probeert in te loggen. Niet duizend keer met hetzelfde account, want dat valt op, maar één poging per account, verspreid over duizenden accounts en vaak vanaf honderden verschillende IP-adressen. Voor uw server ziet dat er verrassend normaal uit.
Het slagingspercentage ligt laag, maar niet laag genoeg. Omdat veel mensen hetzelfde wachtwoord bij meerdere diensten gebruiken, past er in de praktijk een klein deel. Bij een lijst van tienduizend accounts levert dat al snel tientallen werkende inlogs op.
Wat er daarna gebeurt, hangt af van uw site. Bij een webshop worden opgeslagen adressen gewijzigd, cadeaubonsaldo verzilverd of bestellingen op naam van uw klant geplaatst. Bij een ledenportaal wordt vooral data gekopieerd. En bij een site met te ruime rechten wordt gekeken of het account misschien meer mag dan alleen zijn eigen profiel.
Waaraan u het herkent
Deze aanvallen vallen alleen op als u weet waar u kijkt. Signalen die er in de praktijk uitspringen:
- Een plotselinge piek in mislukte inlogpogingen die verspreid is over veel verschillende gebruikersnamen in plaats van één.
- Veel wachtwoord-vergeten-mails die niemand heeft aangevraagd. Klanten melden dat eerder dan uw logboek.
- Serverbelasting zonder dat het bezoekcijfer stijgt. Inlogpogingen kosten rekenkracht en verschijnen niet in uw statistiekenpakket.
- Adreswijzigingen kort na een inlog, vaak naar een afhaalpunt in een andere stad.
- Meldingen van klanten over bestellingen die zij niet hebben geplaatst.
Wilt u dit zien in plaats van erover horen, dan heeft u een logboek nodig van inlogpogingen. Vrijwel elke beveiligingsplugin biedt dat, maar het staat lang niet altijd aan.
Maatregelen die echt helpen
De maatregelen hieronder staan op volgorde van opbrengst per uur werk.
- Beperk het aantal inlogpogingen per IP-adres en per account. De limiet per account is belangrijker dan die per IP, omdat de aanval juist over veel adressen is verspreid. Meer daarover in het artikel over het beperken van inlogpogingen.
- Bied tweestapsverificatie aan uw klanten aan, ook als u het niet verplicht stelt. Voor accounts met opgeslagen betaalgegevens is verplichten wel te verdedigen.
- Controleer nieuwe wachtwoorden tegen bekende lekken. Er zijn plugins die een wachtwoord bij het instellen toetsen aan een openbare lijst van gelekte wachtwoorden, zonder dat wachtwoord te versturen. Kiest de klant iets wat al op straat ligt, dan krijgt hij een waarschuwing.
- Stuur een melding bij inloggen vanaf een onbekend apparaat. Dit is de maatregel waar klanten het meest aan hebben, omdat zij zelf sneller aan de bel trekken dan welk systeem ook.
- Vraag opnieuw om het wachtwoord bij gevoelige handelingen, zoals het wijzigen van een e-mailadres of een afleveradres.
- Zet een captcha op het inlogscherm, maar pas na een aantal mislukte pogingen. Meteen een captcha voor iedereen kost u echte klanten.
Wat niet helpt: klanten dwingen elke negentig dagen een nieuw wachtwoord te kiezen. Dat leidt tot voorspelbare varianten met een cijfer erachter en verergert het probleem eerder dan dat het helpt.
Wat u doet als er accounts zijn overgenomen
Constateert u dat het al is gebeurd, dan is de volgorde als volgt. Zet eerst de aanval stil door de limiet op inlogpogingen te verlagen en zo nodig tijdelijk het inloggen voor klanten uit te schakelen. Maak daarna een lijst van accounts waar een succesvolle inlog vanaf een verdacht adres heeft plaatsgevonden.
Reset van die accounts het wachtwoord en verbreek de actieve sessies, anders blijft iemand met een geldige sessie gewoon binnen. Informeer de betrokken klanten in gewone taal: wat er is gebeurd, dat hun wachtwoord elders is gelekt, en wat zij nu moeten doen. Draai onterechte bestellingen terug en waarschuw uw betaalprovider bij vermoedens van fraude.
Bewaar de loggegevens. Gaat het om persoonsgegevens die daadwerkelijk zijn ingezien, dan kan er een meldplicht spelen. Wat daarbij komt kijken leest u bij de uitleg over melden bij de toezichthouder. Wij zijn geen juristen; laat u bij twijfel adviseren, want de beoordeling hangt af van wat er precies zichtbaar was.
De grens van uw verantwoordelijkheid
U bent niet verantwoordelijk voor het feit dat een klant hetzelfde wachtwoord gebruikte bij een forum dat in 2019 is gelekt. U bent wel verantwoordelijk voor de vraag of uw inlogscherm het aantrekkelijk maakt om dat uit te proberen. Een site die duizend pogingen per minuut toestaat zonder daar iets van te vinden, is voor een aanvaller een gratis testomgeving.
Dat onderscheid helpt ook in het gesprek met klanten. U hoeft geen schuld te bekennen die er niet is, maar u kunt wel laten zien dat u de deur op slot heeft. Dat is uiteindelijk waar mensen naar vragen.
Bij webshops en ledensites nemen wij de instellingen rond inloggen standaard mee in de beveiliging en het hackherstel dat wij verzorgen, juist omdat dit onderdeel zelden bij oplevering goed staat en daarna nooit meer wordt aangeraakt.
Concrete volgende stap: zoek in uw beheerscherm het aantal mislukte inlogpogingen van de afgelopen week op. Ziet u honderden pogingen op tientallen verschillende accounts, dan loopt de aanval nu en heeft u vanmiddag iets te doen.



