Een webshop verschilt op één wezenlijk punt van een gewone bedrijfswebsite: hij bewaart gegevens van andere mensen. Namen, adressen, telefoonnummers, e-mailadressen, wat iemand wanneer heeft gekocht. Bij een kleine winkel met een paar honderd bestellingen per jaar loopt dat na een paar jaar op tot een aardig bestand. Dat maakt de site interessanter voor criminelen en de eigenaar verantwoordelijker onder de AVG.

Toch draait het gesprek over webshop beveiliging vaak alleen om het SSL-slotje en de betaalprovider. Die zijn belangrijk, maar het zijn zelden de plekken waar het misgaat. In dit artikel kijken wij naar wat u werkelijk in huis heeft, waar de risico’s zitten en welke maatregelen een kleine webwinkel redelijkerwijs kan nemen.

Welke gegevens u eigenlijk bewaart

Doe dit eens: open WooCommerce, ga naar Bestellingen en kijk hoeveel er staan. Elke bestelling bevat een naam, een factuur- en bezorgadres, een e-mailadres, meestal een telefoonnummer, en het IP-adres van de klant. Wie een account aanmaakte, heeft daarnaast een wachtwoord (versleuteld opgeslagen, maar toch). Wie een formulier invulde, staat vaak ook nog in de database van de formulierplugin.

Wat u meestal níet bewaart, zijn betaalgegevens. Bij iDEAL, Mollie, Klarna of een creditcardbetaling via een betaalprovider verlaat de klant uw site of vult hij zijn gegevens in op een veld dat door de provider wordt geserveerd. Dat is bewust en dat moet u zo laten. Zodra u kaartgegevens zelf zou opslaan, valt u onder veel strengere regels en dat wilt u als kleine winkel niet.

Het risico zit dus niet in geld, maar in identiteit. Een gelekte klantenlijst met naam, adres en bestelgeschiedenis is bruikbaar voor gerichte phishing: “Uw bestelling van de blauwe tuinstoel is vertraagd, klik hier voor de nieuwe leverdatum.” Dat komt geloofwaardig over, want de details kloppen.

Waar het bij webshops daadwerkelijk misgaat

In onze ervaring komen lekken bij kleine webshops vrijwel altijd via een van deze routes:

  • Een verouderde plugin met een bekend lek. WooCommerce-winkels draaien gemiddeld veel meer plugins dan een gewone site: betaalkoppeling, verzendkoppeling, filters, reviews, kortingen. Elke plugin is een deur. Een plugin die drie maanden niet is bijgewerkt terwijl er een lek bekend is, is een open deur.
  • Te ruime rechten. De persoon die de bestellingen inpakt, heeft een beheerdersaccount “omdat dat makkelijker was”. Beheerders kunnen alles exporteren. Een winkelmanager-rol volstaat voor het werk.
  • Exports die rondslingeren. Een CSV met alle bestellingen voor de boekhouder, gemaild als bijlage, opgeslagen op een laptop, gedeeld via een link zonder wachtwoord. De site was veilig, de export niet.
  • Zwakke wachtwoorden zonder tweede factor. Nog steeds de meest voorkomende oorzaak van een overgenomen beheerdersaccount.
  • Kaartskimmers in de checkout. Kwaadaardige code die stiekem alles meeleest wat de klant intypt. Zeldzamer bij shops die de betaling volledig uitbesteden, maar niet onmogelijk als de site zelf al besmet is.

Maatregelen die passen bij een kleine webshop

U hoeft geen beveiligingsafdeling op te tuigen. Wel dit:

Toegang en accounts

  1. Geef iedereen een eigen account met alleen de rol die hij nodig heeft. Gedeelde inloggegevens zijn een gewoonte om af te leren.
  2. Zet tweestapsverificatie aan voor alle accounts met toegang tot bestellingen.
  3. Verwijder accounts van vertrokken medewerkers, stagiairs en oude bureaus direct.
  4. Beperk het aantal inlogpogingen en zet XML-RPC uit als geen enkele koppeling het gebruikt.

Software en server

  1. Werk WooCommerce en alle plugins wekelijks bij, met een test op een staging-omgeving voor de betaal- en verzendkoppelingen.
  2. Verwijder plugins die u niet gebruikt. Uitgeschakeld is niet weg; de code staat er nog.
  3. Gebruik een firewall die verdachte verzoeken tegenhoudt en laat dagelijks scannen op malware en gewijzigde bestanden.
  4. Zorg dat de HTTPS-instelling volledig is, inclusief de beveiligingsheaders die voorkomen dat uw checkout in een frame op een andere site wordt geladen.

Gegevens zelf

  1. Bewaar niet langer dan nodig. WooCommerce heeft onder Instellingen, Accounts en privacy opties om oude bestellingen automatisch te anonimiseren. Voor de belastingdienst bewaart u de factuurgegevens zeven jaar, maar dat hoeft niet in de live webshop te zijn.
  2. Maak een afspraak over exports: nooit per e-mail, alleen via een beveiligde deelmap, en verwijderen na gebruik.
  3. Zorg voor dagelijkse, versleutelde back-ups buiten de server. Bij een lek wilt u snel kunnen vaststellen wat er wanneer is veranderd.

Wat de wet van u vraagt

De AVG verplicht u “passende technische en organisatorische maatregelen”. Wat passend is, hangt af van de omvang en de gevoeligheid. Voor een webshop met gewone consumentenbestellingen zijn bovenstaande maatregelen wat een toezichthouder redelijkerwijs verwacht. Daarnaast heeft u een verwerkersovereenkomst nodig met elke partij die namens u gegevens verwerkt: de hostingpartij, de betaalprovider, de verzenddienst, de nieuwsbriefdienst en het bureau dat uw website onderhoudt. Wie dat laatste vergeet, vergeet vaak ook dat die partij toegang heeft tot alles.

Gaat het toch mis, dan moet u een lek dat risico oplevert voor klanten binnen 72 uur melden bij de Autoriteit Persoonsgegevens, en bij ernstig risico ook aan de klanten zelf. In ons artikel over een datalek melden staat wanneer dat precies geldt. Het helpt enorm als u op dat moment logboeken en back-ups heeft waaruit blijkt wat er is gebeurd.

Een herkenbaar voorbeeld

Een webwinkel in kinderkleding uit Nijmegen, één eigenaar en een parttime medewerker, kreeg van een klant de vraag waarom ze een sms kreeg over “haar pakket” met een link naar een valse betaalpagina. De sms noemde het juiste artikel. Onderzoek wees uit dat een verlaten reviewplugin al maanden een lek had waarmee bestellingen konden worden uitgelezen. Er was geen malware, geen gewijzigd bestand, niets wat opviel. De plugin werd verwijderd, alle wachtwoorden en sleutels vernieuwd, de klanten geïnformeerd en het lek gemeld. Het kostte de eigenaar een week aan tijd en een hoop slaap. De les die zij zelf trok: “Ik keek elke dag naar de bestellingen, maar nooit naar de plugins.”

Precies daarom is het verstandig om het bijwerken, scannen en controleren uit handen te geven als u daar zelf de tijd niet voor heeft. Een partij die beveiliging van uw website als vast onderdeel van het onderhoud uitvoert, kijkt wél elke dag naar de plugins. WebMaintor werkt bij webshops bijvoorbeeld met dagelijkse back-ups en een staging-test voordat betaalkoppelingen worden bijgewerkt.

Begin met de inventarisatie

De eerste stap kost een half uur en is puur kijken: hoeveel bestellingen bewaart u, wie heeft welke rol, welke plugins draaien er en wanneer zijn ze voor het laatst bijgewerkt. Daarna weet u waar de echte risico’s zitten. Wilt u weten hoe uw shop er in bredere zin voor staat, dan is de checklist voor WooCommerce-beveiliging een goed vervolg.