Een website die niet meer helemaal functioneert. Een contactformulier dat wordt misbruikt om tientallen of zelfs honderden spamberichten te versturen. Of een website die ongemerkt vol staat met teksten over online casino's, Bitcoin, Viagra en allerlei andere dubieuze zaken.
Ik hoor het regelmatig.
Soms zie je de problemen direct. Maar regelmatig zit de rommel verstopt in reacties onder artikelen of in complete blogberichten waarvan de eigenaar niet eens weet dat ze bestaan.
Ik heb ooit iemand geholpen die inmiddels ruim 35.000 spamberichten op zijn website had staan.
Van wondermiddelen voor een groter geslachtsdeel tot dubieuze medicijnen en Bitcoin-transacties. Je kunt het zo gek niet bedenken.
Niet bepaald de uitstraling die je als ondernemer voor ogen hebt.
Want je website is je digitale visitekaartje. Het is vaak de eerste kennismaking met je bedrijf. Een plek waar potentiële klanten informatie zoeken, vertrouwen opbouwen en uiteindelijk besluiten contact met je op te nemen.
En die eerste indruk kun je maar één keer maken.
Van een beetje spam naar een gehackte website
Een paar ongewenste reacties onder een blogbericht lijken misschien onschuldig. Maar soms is er veel meer aan de hand.
Wanneer kwaadwillenden misbruik maken van een kwetsbaarheid, bijvoorbeeld in een verouderde WordPress-plugin, kunnen ze in sommige gevallen bestanden uploaden en code uitvoeren op je hostingomgeving.
Denk bijvoorbeeld aan een PHP-webshell.
Een webshell is een script waarmee iemand op afstand opdrachten kan uitvoeren op de server. Afhankelijk van de rechten kan een aanvaller bestanden bekijken, aanpassen, verwijderen of nieuwe bestanden uploaden.
Bij het onderzoeken van dergelijke besmettingen kom je soms tientallen verdachte PHP-bestanden tegen. Bestanden met versluierde code, Base64-constructies en andere technieken om de werkelijke functie te verbergen.
En dan hebben we het niet meer over een paar vervelende spamberichten.
Een aanvaller kan mogelijk toegang krijgen tot klantgegevens, bestellingen, contactformulieren of andere vertrouwelijke informatie.
De gevolgen kunnen aanzienlijk zijn.
De reputatieschade van een gehackte website
Wat veel ondernemers onderschatten, is dat de schade niet stopt zodra de verdachte bestanden zijn verwijderd.
Een gehackte website kan ook de reputatie van je domeinnaam beschadigen.
Je e-mails komen niet meer aan
Wanneer een contactformulier wordt misbruikt om grote hoeveelheden spam te versturen, kan dat gevolgen hebben voor de reputatie van het verzendende domein of de mailserver.
Je website kan bijvoorbeeld honderden berichten versturen naar willekeurige e-mailadressen.
Afhankelijk van de gebruikte mailconfiguratie kunnen ontvangende mailservers dat verkeer als ongewenst classificeren.
Met als mogelijk gevolg dat ook je legitieme e-mails vaker in de spamfolder belanden of zelfs worden geweigerd.
Denk aan offertes, contactaanvragen of bevestigingen van bestellingen.
Je bent dan misschien van de spam op je website af, maar ondertussen bereik je je eigen klanten niet meer.
Google indexeert de verkeerde pagina's
Dan is er nog een ander probleem: de vindbaarheid van je website.
Stel dat iemand honderden of duizenden spamartikelen op je website heeft geplaatst.
Die pagina's kunnen door Google worden ontdekt en geïndexeerd.
Ineens verschijnen er zoekresultaten over online casino's, dubieuze medicijnen of cryptovaluta onder jouw domeinnaam.
En dat terwijl je gewoon een hovenier, loodgieter, webshop of lokaal bedrijf bent.
In Google Search Console kun je vervolgens geconfronteerd worden met honderden onbekende URL's, vreemde zoekopdrachten en indexeringsproblemen.
In ernstige gevallen kan Google je website bovendien als onveilig markeren, met waarschuwingen voor bezoekers of gevolgen voor de zichtbaarheid in zoekresultaten.
Opruimen betekent niet automatisch herstellen
Stel dat je de website hebt opgeschoond, alle verdachte bestanden hebt verwijderd en de kwetsbaarheid hebt verholpen.
Dan ben je technisch misschien weer veilig.
Maar Google moet de vervuilde pagina's nog opnieuw verwerken of uit de zoekresultaten verwijderen.
Ook de reputatie van je mailserver of domein is niet noodzakelijk direct hersteld.
Een besmetting kan soms binnen een dag zijn opgeruimd, terwijl het herstellen van je online reputatie veel langer kan duren.
En ondertussen kunnen potentiële klanten nog steeds ongewenste zoekresultaten tegenkomen.
En dan komt ook de AVG om de hoek kijken
We hebben allemaal een mening wanneer een grote organisatie zoals Odido met een beveiligingsincident in het nieuws komt.
Maar hoeveel kleinere website-eigenaren onderzoeken eigenlijk serieus wat er is gebeurd wanneer hun eigen website wordt gehackt?
Een beveiligingsincident betekent niet automatisch dat er sprake is van een meldplichtig datalek.
Maar wanneer persoonsgegevens zijn geraakt, moet je onderzoeken wat er is gebeurd, welke gegevens mogelijk zijn ingezien of buitgemaakt en of een melding noodzakelijk is.
Bij een meldplichtig datalek moet de melding aan de Autoriteit Persoonsgegevens in beginsel binnen 72 uur na ontdekking plaatsvinden.
Ook een kleine website kan persoonsgegevens bevatten.
Denk aan contactformulieren, klantgegevens, bestellingen, opgeslagen e-mailadressen of gegevens van gebruikersaccounts.
En ook dan heb je verantwoordelijkheden.
Een website heeft onderhoud nodig. Net als je auto.
Wanneer je een nieuwe auto koopt, zijn de banden nieuw, is de olie vers en functioneert alles zoals het hoort.
Maar na verloop van tijd slijten de banden, raakt de olie vervuild en wordt onderhoud noodzakelijk.
Laat je dat onderhoud achterwege, dan neemt de kans op problemen toe.
Met websites werkt het eigenlijk niet anders.
Een WordPress- of Joomla-website die vijf jaar geleden perfect functioneerde, is niet vanzelfsprekend vandaag nog veilig of goed onderhouden.
De drie belangrijkste onderdelen van WordPress
Bij WordPress heb je drie belangrijke onderdelen die regelmatig updates nodig hebben:
- De WordPress-core: het systeem zelf, waarvoor nieuwe versies en beveiligingsupdates worden uitgebracht.
- Het thema: verantwoordelijk voor de vormgeving en soms ook aanvullende functionaliteit.
- De plugins: uitbreidingen voor contactformulieren, webshops, zoekmachineoptimalisatie en allerlei andere functies.
Daarnaast draait je website op een onderliggende omgeving met onder andere PHP, een database en een webserver.
Ook die software moet onderhouden worden.
Sommige updates kunnen automatisch worden uitgevoerd, andere vereisen handmatige controle.
Bovendien zijn commerciële thema's en plugins vaak afhankelijk van een actieve licentie.
Verloopt die licentie, dan kan ook de toegang tot nieuwe updates vervallen.
Dat betekent niet dat je website direct onveilig is. Maar je moet wel blijven controleren of de software nog wordt ondersteund.
Websitebeveiliging is meer dan updates installeren
Een volledig bijgewerkte website is niet automatisch goed beveiligd.
Het is ook belangrijk om kritisch te kijken naar de functionaliteit die je daadwerkelijk nodig hebt.
XML-RPC bij WordPress
Een bekend voorbeeld is XML-RPC.
Dit is een interface waarmee externe applicaties met WordPress kunnen communiceren.
XML-RPC is op zichzelf geen beveiligingslek, maar kan wel worden misbruikt voor onder andere geautomatiseerde inlogpogingen.
Gebruik je deze functionaliteit niet? Dan kun je overwegen de toegang te beperken of uit te schakelen.
Sommige integraties hebben XML-RPC echter nodig. Controleer dus eerst welke functionaliteit je gebruikt.
Inloggen en gebruikersrechten
Is je WordPress-inlogpagina beschermd tegen geautomatiseerde aanvallen?
Gebruik je tweefactorauthenticatie?
Hebben gebruikers alleen de rechten die ze daadwerkelijk nodig hebben?
En bestaan er misschien nog accounts van oude medewerkers of webdevelopers die allang niet meer betrokken zijn bij je website?
Het zijn eenvoudige vragen, maar ze worden regelmatig vergeten.
Contactformulieren en uploads
Een contactformulier moet natuurlijk berichten kunnen versturen.
Maar dat betekent niet dat iedereen het onbeperkt mag gebruiken om honderden berichten te versturen.
Denk aan spambeveiliging, snelheidsbeperkingen en het correct configureren van de mailverzending.
Ook mogelijkheden om bestanden te uploaden verdienen extra aandacht.
Niet iedere bezoeker zou zomaar bestanden op je server moeten kunnen plaatsen, laat staan uitvoerbare code.
Beperk onnodige functionaliteit
Waarom zou een website tien plugins actief hebben als er maar zes daadwerkelijk nodig zijn?
Verwijder ongebruikte plugins en thema's, beperk onnodig toegankelijke interfaces en gebruik waar passend een Web Application Firewall (WAF).
Iedere functie die je niet nodig hebt maar wel beschikbaar stelt, kan een extra risico vormen.
Het gaat er niet om zoveel mogelijk beveiligingsplugins te installeren.
Het gaat erom dat je weet welke software draait, welke functies noodzakelijk zijn en welke risico's daarbij horen.
Back-ups zijn belangrijk, maar kun je ze ook terugzetten?
Een ander onderdeel dat regelmatig wordt onderschat, zijn back-ups.
Veel website-eigenaren gaan ervan uit dat hun hostingprovider automatisch een back-up maakt.
En soms is dat ook zo.
Maar hoe vaak gebeurt dat? Hoe lang worden de back-ups bewaard? En wat gebeurt er wanneer de complete hostingomgeving verloren gaat?
Een back-up die op dezelfde omgeving staat als de oorspronkelijke website, kan bij een ernstig incident eveneens verloren gaan of worden beschadigd.
Daarom is het verstandig om onafhankelijke back-ups te bewaren.
Maar zelfs dan ben je er nog niet.
Een back-up maken is één ding. Zeker weten dat je die daadwerkelijk kunt terugzetten, is iets heel anders.
Test daarom periodiek of je website volledig kan worden hersteld, inclusief de database, afbeeldingen en configuratie.
"Maar mijn website staat toch bij een hostingprovider?"
Dat is misschien wel het grootste misverstand.
Stel dat je een parkeerplaats huurt voor je auto.
De eigenaar van die parkeerplaats zorgt ervoor dat je ergens kunt parkeren. Misschien is het terrein zelfs uitstekend beveiligd.
Maar hij gaat niet automatisch je banden vervangen, je olie verversen of je auto technisch onderhouden.
Daarvoor ga je naar een garage.
Bij websites is de taakverdeling vergelijkbaar.
Wat doet je hostingprovider?
Een hostingprovider zorgt doorgaans voor de onderliggende infrastructuur.
Denk aan de server, het netwerk, de hostingsoftware en de beschikbaarheid van de afgenomen diensten.
Maar dat betekent niet automatisch dat de provider ook alle WordPress-plugins, thema's en instellingen van jouw website onderhoudt.
Sommige providers bieden managed WordPress of volledig websiteonderhoud aan. Andere beperken zich tot het beheren van de hostingomgeving.
Wat doet je webdeveloper?
Een webdeveloper bouwt de website en zorgt dat de gewenste functionaliteit werkt.
Maar betekent dat automatisch dat diezelfde developer ook over drie jaar nog alle plugins controleert, beveiligingsupdates uitvoert en hersteltests doet?
Niet noodzakelijk.
Ook dat hangt af van de afspraken die je hebt gemaakt.
En daar gaat het regelmatig mis.
De hostingprovider denkt dat de websitebeheerder de updates verzorgt.
De webdeveloper heeft de website ooit opgeleverd en is niet meer betrokken.
En de ondernemer gaat ervan uit dat alles automatisch wordt onderhouden.
Ondertussen draait de website gewoon door.
Totdat het misgaat.
Wat moet je regelmatig controleren aan je WordPress-website?
Een goed onderhouden website vraagt meer dan af en toe op de updateknop drukken.
Gebruik daarom deze checklist:
- WordPress-core, thema's en plugins: zijn alle beveiligingsupdates geïnstalleerd en worden de gebruikte onderdelen nog ondersteund?
- PHP en hostingomgeving: worden er nog beveiligingsupdates uitgebracht voor de gebruikte softwareversies?
- Gebruikersaccounts: zijn oude accounts verwijderd en zijn de toegangsrechten correct ingesteld?
- Tweefactorauthenticatie: zijn belangrijke beheerdersaccounts extra beveiligd?
- XML-RPC en andere interfaces: welke externe toegang is daadwerkelijk noodzakelijk?
- Contactformulieren: zijn ze beschermd tegen geautomatiseerd misbruik en ongewenste mailverzending?
- Bestandsrechten en uploads: kan een bezoeker of gebruiker niet meer wijzigen dan noodzakelijk?
- Back-ups: worden ze regelmatig gemaakt, veilig bewaard en daadwerkelijk getest?
- Google Search Console: verschijnen er onbekende URL's, vreemde zoekopdrachten of beveiligingsmeldingen?
- Logging en monitoring: worden verdachte activiteiten en belangrijke wijzigingen tijdig opgemerkt?
Een deel van deze controles kun je automatiseren. Andere vragen om periodieke beoordeling door iemand met technische kennis.
Wie is uiteindelijk verantwoordelijk voor jouw website?
Als ondernemer hoef je niet zelf te weten hoe je een PHP-webshell onderzoekt, een server beveiligt of een WordPress-installatie onderhoudt.
Daar zijn specialisten voor.
Maar je moet er wel voor zorgen dat iemand die verantwoordelijkheid heeft gekregen.
Want uiteindelijk gaat het om jouw website, jouw domeinnaam en jouw bedrijfsreputatie.
En afhankelijk van de gegevens die je verwerkt, heb je ook wettelijke verplichtingen.
Mijn advies is daarom eenvoudig.
Controleer wanneer je website voor het laatst technisch is onderhouden.
Niet wanneer iemand voor het laatst een foto heeft vervangen of een tekst heeft aangepast.
Maar wanneer er daadwerkelijk is gekeken naar updates, beveiliging, back-ups en de technische staat van je website.
En controleer vooral wie daar verantwoordelijk voor is.
Want een website online houden is iets anders dan een website goed onderhouden.
Hoe is dat bij jou geregeld? Weet jij wie verantwoordelijk is voor het technische onderhoud en de beveiliging van jouw website?
Dit artikel lezen in het Engels?
Read in English →