- -
12 min. lezen

Effectieve tips voor een veilige WordPress website – Deel 2

In deel 1 van dit artikel hebben we gekeken hoe de keuze voor een webhosting provider en je met de instellingen WordPress je website veilig(er) kan maken. In deel 2 gaan we kijken naar de specifieke beveiliging van de admin omgeving, updates en wat je kan doen als het toch mis gaat…

1.       De webhosting provider

  • Welk type hosting account
  • Wat zijn ‘goede’ backups
  • HTTPS & SSL certificaten
  • Automatische patches
  • DNS firewalls

2.       WordPress instellingen

  • Schakel over op HTTPS
  • Schakel niet gebruikte onderdelen uit
  • Gebruik een beveiligingsplugin
  • Beperk de rechten van gebruikers
  • Gebruik geen ‘nulled’ plugins en thema’s

3.       Beveilig je WordPress Admin omgeving

  • Gebruik sterke wachtwoorden
  • Gebruik 2-factor authenticatie
  • Gebruik niet ‘admin’ als gebruikersnaam
  • Gebruik een database prefix
  • Ververs de security keys
  • Voorkom brute force aanvallen
  • Houdt bots buiten de deur
  • Login URL wijzigen
  • IP whitelisting

4.       Update regelmatig WordPress, de thema’s en de plugins

5.       En als het toch mis gaat…

  • Hoe merk je dat je site gehackt is?
  • Opschonen of backup terugzetten?

Beveilig je WordPress Admin omgeving

Beveilig je WordPress Admin omgeving

De admin omgeving van je WordPress site verdient speciale aandacht. Als het een hacker lukt hierop in te breken dan kan deze behoorlijke schade aan je site aanrichten.

Gebruik sterke wachtwoorden

Om met de deur in huis te vallen: de door WordPress zelf gegenereerde wachtwoorden zijn sterk. Heel sterk. Maar gebruikers hebben vaak de mogelijkheid om hun wachtwoord aan te passen, en met een beetje pech kiezen ze dan een veel zwakker wachtwoord.

Maar wat maakt een wachtwoord nou eigenlijk sterk of zwak? De sterkte van een wachtwoord wordt bepaald door de hoeveelheid moeite die een hacker moet doen om het wachtwoord te kraken. En om het wachtwoord te kraken heeft deze hacker een aantal methodes tot zijn beschikking:

Brute force: hierbij probeert de hacker 1 voor 1 alle mogelijke cijfer/letter/teken combinaties totdat het juiste wachtwoord gevonden is. Daarom geldt: 

  • Korte wachtwoorden zijn relatief eenvoudig te kraken.

Omdat het aantal mogelijkheden bijna eindeloos is kan dit ongelofelijk lang duren als je echt ieder mogelijke combinatie gaat proberen. Daarom zal een hacker allereerst gebruik maken van (enorme) lijsten met de meest gebruikte wachtwoorden. Daarom geldt: 

  • Gebruik geen standaard wachtwoord zoals “Welkom” of zelfs “Welkom2022”.

Gericht op basis van openbare informatie (OSINT): Om gericht te testen zal een hacker misschien ook wat onderzoek doen. Misschien staat op je Facebook profiel waar je woont, hoe je kind of huisdier heet, waar je op school zat enzovoorts. Daar zal een hacker die echt z’n zinnen heeft gezet op jouw site zeker gebruik van proberen te maken. Daarom geldt:

  • Vermijdt openbare informatie en voor de hand liggende zaken zoals de naam van de website, jaartallen en postcodes bij het kiezen van een wachtwoord.
  • Voor de hand liggende alternatieven zoals het vervangen van een a door een @ en een i door een 1 of het afsluiten met een ! heeft ook weinig toegevoegde waarde meer.

Gelekte wachtwoorden: vrijwel iedereen is de laatste jaren onderdeel geweest van een datalek waarbij gebruikersnamen en/of wachtwoorden gelekt zijn bij diverse grote bedrijven. Ben je benieuwd? Bezoek dan eens https://haveibeenpwned.com/ en vul je e-mailadres in. Deze zoekmachine doorzoekt een enorme database van de afgelopen jaren om te zien of jouw e-mailadres betrokken is geweest bij een dergelijk lek.

In de meeste gevallen zijn de gelekte wachtwoorden eenzijdig onomkeerbaar versleuteld. Dit houdt in dat niet je echte wachtwoord is uitgelekt maar een wiskundig afgeleide hiervan. Niks aan de hand dus, zou je denken. Helaas: slimme programmeurs hebben gigantische databases aangelegd waarbij miljoenen (wacht)woorden op een zelfde manier versleuteld zijn maar dan met het oorspronkelijke wachtwoord erbij opgeslagen. Op deze manier kunnen ze ‘omgekeerd zoeken’ en in sommige gevallen het wachtwoord behorende bij een afgeleid wachtwoord toch achterhalen. Daarom:

  • Gebruik niet hetzelfde wachtwoord op meerdere websites.

Ok, er zijn dus een aantal zaken die je moet vermijden bij het kiezen van een sterk wachtwoord. Maar wat moet je nu wel doen?

  • Kies een lang wachtwoord, van bijvoorbeeld minimaal 16 karakters.
  • Kies een wachtwoord waarin hoofdletters, kleine letters, cijfers en tekens gebruikt worden.
  • Gebruik voor iedere website een ander wachtwoord.

Dergelijke wachtwoorden zijn natuurlijk lastig te onthouden. Daarom zijn wachtwoord-managers zoals bijvoorbeeld LastPass, DashLane en 1Password bedacht. Deze onthouden je wachtwoorden, slaan ze veilig op en vullen ze automatisch in als een website herkend wordt waarvoor een wachtwoord is opgeslagen. Daarnaast genereren ze ook nog sterke willekeurige wachtwoorden en checken ze of jouw wachtwoord al eerder is gebruikt of onderdeel van een datalek is geweest. Super handig!

Gebruik 2-factor authenticatie

Bij 2-factor authenticatie (vaak ook afgekort tot 2FA) gebruik je naast je gebruikersnaam en wachtwoord nog een 2e controle (de 2e factor) om in te loggen. Meestal wordt hiervoor een authenticator app op je smartphone gebruikt. Je scant eenmalig een QR code en daarna wordt iedere 30 seconden een nieuwe 6-cijferige code gegenereerd die je moet invullen bij het inloggen. Ook al ligt je gebruikersnaam en wachtwoord op straat, dan nog kan de hacker niet inloggen omdat hij geen beschikking heeft over jouw mobiele telefoon.

Helaas is 2FA nog geen standaard functionaliteit van WordPress, maar gelukkig is het wel onderdeel van vrijwel alle beveiligings plugins. Aangeraden wordt om 2FA zeker altijd in te schakelen voor beheerders accounts.

Mocht je het onhandig vinden om iedere keer ook nog een code te moeten invoeren dan is hulp: sommige wachtwoord-managers zoals LastPass kunnen naast je gebruikersnaam en wachtwoord ook je 2FA code automatisch voor je invullen. Ook hebben sommige beveiligings plugins de optie om 2FA alleen te vragen voor logins vanuit IP adressen die niet eerder gecontroleerd zijn. In de praktijk valt de overlast daarom heel erg mee en je vergroot de beveiliging van je account er enorm mee.

Gebruik niet ‘admin’ als gebruikersnaam

Daar is dan de open deur der open deuren: iedere WordPress installatie wordt standaard opgeleverd met een account met als gebruikersnaam ‘admin’. Dat weet ik, dat weet jij, en dat weet ook iedere hacker.

Omdat een hacker op z’n minst 2 zaken goed moet ‘raden’ namelijk de gebruikersnaam en het wachtwoord, zal hij altijd eerst beginnen met de gebruikersnaam ‘admin’. Dat is de naam waarvan de kans het grootst is dat deze bestaat en waarvan de gebruiker waarschijnlijk de meeste rechten heeft.

Als je de naam al veranderd naar ‘administrator’ of ‘beheerder’ heb je al winst gehaald. Het helemaal omzeilen van dat soort eenvoudig te raden gebruikersnamen is natuurlijk nog beter.

Tip: sommige beveiligings plugins kunnen zo worden ingesteld dat een poging om in te loggen met de gebruikersnaam ‘admin’ direct bij de 1e keer al leidt tot een plaatsing van dit IP adres op de zwarte lijst . Hiermee kan je in veel gevallen hackers al na 1 poging stoppen.

Gebruik een database prefix

Wat is een database prefix? Iedere tabel in de database van een WordPress installatie begint standaard met “wp_”, bijvoorbeeld “wp_option” of “wp_post”. Het stukje “wp_” noemen we daarbij de prefix omdat het voor de tabelnaam geplaatst wordt. 

Bij hackpogingen waarbij gebruik wordt gemaakt van SQL injectie is het correct invoeren van juiste tabelnamen essentieel. Daarom bieden veel beveiligings plugins de mogelijkheid om de prefix aan te passen naar een aantal willekeurige karakters, bijvoorbeeld “ss8yw_”. 

Het is een klein stapje, maar ook dit vergroot weer de veiligheid van je website.

Ververs de security keys

Bij het installeren van je WordPress omgeving heeft het installatiescript een aantal beveiligings sleutels (security keys) aangemaakt in de wp-config.php bestand. Deze keys worden gebruikt om op diverse plaatsen in je website zaken te versleutelen of beveiligen en mogen daarom nooit openbaar worden.

Niet alleen na een succesvolle hack moet je je keys verversen. Ook als je gebruik maakt van een ontwikkel-omgeving of staging-omgeving kan het slim zijn om voor deze omgevingen nieuwe keys te gebruiken.

Om ze handmatig te verversen zul je wel echt in de code moeten duiken, maar het is gelukkig redelijk eenvoudig. Ga naar de website https://api.wordpress.org/secret-key/1.1/salt/ om nieuwe keys te genereren. Open het wp-config.php van je website bestand en vervang hierin de bestaande keys door de nieuwe. Let op: zodra je de keys vervangen en opgeslagen hebt zal iedereen die ingelogd is direct worden uitgelogd en opnieuw moeten inloggen.

Voorkom brute force aanvallen

In het onderdeel over sterke wachtwoorden hebben we al beschreven hoe een zogenaamde brute force aanval in z’n werk gaat. Door sterke wachtwoorden te gebruiken kan je het de hacker al heel lastig maken. Maar het is natuurlijk nog beter om dit soort pogingen helemaal te voorkomen. Ook daarvoor bieden de meeste beveiligings plugins uitstekende mogelijkheden:

Je kan instellen hoeveel foutieve login-pogingen van een IP adres ervoor zorgen dat dit IP adres op de zwarte lijst (blacklist) komt te staan. Je kan ook instellen hoe lang deze op de lijst blijft staan voordat er weer opnieuw een poging gedaan kan worden. Zinnige instellingen zijn bijvoorbeeld maximaal 5 foutieve pogingen en een plaatsing op de zwarte lijst voor minimaal een uur.

Ook hier kan je weer je eigen IP adres toevoegen op de zogenaamde witte lijst (whitelist) zodat je zelf nooit geblokkeerd wordt. Ook niet als je meer per ongeluk dan 5 keer met foutieve gegeven probeert in te loggen.

Hackers gebruiken vaak anonieme IP adressen die niet terug te leiden zijn, bijvoorbeeld via een VPN provider of via het nog ver geanonimiseerde TOR netwerk. In sommige beveiligings plugins zijn dit soort verbindingen ook op voorhand al te blokkeren.

Houdt bots buiten de deur

Een hacker gaat natuurlijk niet achter zijn laptop met de hand 1 voor 1 wachtwoorden proberen. Daar gebruikt hij software voor. Een zogenaamde bot (afkorting voor robot) is een stukje software dat zelfstandig webpagina’s bezoekt. Sommige bots zoals de GoogleBot zijn goedaardig en gedragen zich heel netjes. Maar de bots die hackers gebruiken zijn dat natuurlijk niet.

Eigenlijk wil je helemaal niet dat een bot het login-formulier kan invullen, zelfs de aardige GoogleBot niet. Dat is voorbehouden aan ‘echte’ mensen. En daarvoor is de CAPTCHA test bedacht. Een test om computers en mensen uit elkaar te houden. Een bekende CAPTCHA test, die je gelukkig steeds minder ziet, bestond uit het overtypen van een willekeurige en moeilijk leesbare code of het aanvinken op welke foto’s een boot stond. Of een fiets. Of een verkeerslicht. Aaaah! Gelukkig zijn deze tests tegenwoordig grotendeel vervangen door een onzichtbare check die op de achtergrond plaatsvindt.

De meest bekende aanbieder van deze checks is Google met haar ReCaptcha dienst. In de meeste beveiligings plugins kan deze dienst op de login-pagina geactiveerd worden door de bijbehorende sleutels in te voeren. Het activeren van een CAPTCHA test kan het aantal geautomatiseerde foutieve logins enorm verkleinen.

Login URL wijzigen

Net als bij de standaard gebruikersnaam ‘admin’ en is ook de ‘wp-admin’ URL waarop de login-pagina voor jouw website te vinden is voor een hacker heel voor de hand liggend. Weer iets wat hij niet hoeft te raden of achterhalen.

Het wijzigen van de login URL naar een andere URL zoals ‘beheer’ of ‘inloggen’ is wederom een kleine maar zeer doeltreffende stap om je site net weer iets veiliger te maken.

En ook hier geld weer: veel beveiligings plugins kunnen dit voor je verzorgen.

IP whitelisting

Dit is misschien wel de meest krachtige methode om je admin omgeving te beschermen: maak hem niet openbaar.

Door middel van een IP whitelist kan je bepalen dat alleen via een select aantal IP adressen de admin omgeving überhaupt te bezoeken is. Dit houdt alle andere pogingen vanuit het grote bozen internet al bij de poort tegen genadeloos tegen.

IP whitelisting is helaas alleen echt goed te gebruiken als je een vast IP adres hebt en niet alle internetaansluitingen in Nederland hebben zo’n vast IP adres. Maar ook als je een zelden wisselend IP adres hebt zoals bijvoorbeeld bij Ziggo vaak het geval is kan je toch nog gebruik maken van een IP whitelist. Je zult hem alleen na een sporadische wisseling alleen even moeten aanpassen.

Update regelmatig WordPress, de thema’s en de plugins

Voor zowel de WordPress basis module als de meeste thema’s en plugins komen regelmatig updates beschikbaar. Soms om mooie nieuwe functionaliteit toe te voegen of hinderlijke fouten te herstellen, maar vaak ook om potentiële beveiligingslekken te dichten.

Deze updates worden na publicatie ook door hackers geanalyseerd en daaruit proberen ze op te maken wat het oorspronkelijk beveiligingslek was dat door deze update gedicht wordt. Met deze kennis kan de hacker proberen een zogenaamde exploit te schrijven en op zoek gaan naar nog niet ge-update sites en proberen dit lek te misbruiken. In sommige gevallen zijn er zelfs ernstige beveiligingslekken die al publiekelijk bekend zijn en die al actief misbruikt worden voordat de benodigde updates uitgebracht zijn.

Door met regelmaat alle beschikbare updates te installeren kan je grote problemen op je website voorkomen. Daarnaast moet je eigenlijk ook nog dagelijks in de gaten houden of er kwetsbare lekken gepubliceerd worden waarvan de update zelfs geen paar dagen kan wachten.

En als het toch mis gaat…

O jee, je site is gehackt. Paniek! En nu?

Hoe merk je dat je site gehackt is?

Er zijn tal van redenen waarom een hacker probeert om toegang tot jouw website te krijgen. 

Versturen van spam: niet specifiek jouw website maar de server waar deze op draait kan vaak flinke hoeveelheden email versturen. Door het toegang te krijgen tot jouw website kan de hacker software op de server installeren die spam gaat versturen.

Hoe merk je dit? Meestal merk je dit niet direct. Misschien kan je in het control panel van je hosting provider zien dat er ineens erg veel e-mailberichten zijn verstuurd. Of je krijgt de melding dat de webserver op een spam blacklist is geplaatst.

Hosten van phishing pagina’s of malware: hackers die phising berichten sturen moeten bijvoorbeeld de nep-login pagina van de bank of creditcardmaatschappij ergens hosten. En het is enorm lastig om volledig anoniem een website te hosten. Daarom breken ze graag in op jouw hostingaccount en plaatsen hier in een foldertje achteraf hun eigen websites of malware.

Hoe merk je dit? Slachtoffers kunnen dit soort phishing pagina’s melden of ze kunnen automatisch opgepikt worden door de scanners van bijvoorbeeld Google. In dat geval wordt de hele website als ‘onveilig’ aangemerkt en ziet een bezoeker een groot rood scherm met waarschuwingen in plaats van jouw website. En als je aangesloten bent bij het webmaster programma van Google krijg je automatisch bericht als je website is aangemerkt als onveilig.

Defacen: dit is de digitale variant van graffiti. Je website wordt voorzien van afbeeldingen om leuzen. Soms politiek gemotiveerd, soms gewoon kinderachtige baldadigheid.

Hoe merk je dit? Geloof me, dit merk je normaal gesproken direct als je jouw website bezoekt.

Data diefstal: als je bijvoorbeeld een webshop draait dan zijn de accountgegevens of vooral betaalgegevens van jouw klanten super interessant. Niet omdat de hacker er zelf enorm in geïnteresseerd is, maar om te verhandelen op de dark web. Sla daarom nooit betaalgegevens op en probeer bijzondere persoonlijke gegevens zo kort mogelijk op je website op te slaan.

Hoe merk je dit? Zodra je het merkt is het helaas al te laat. Vaak zal de hacker je proberen je te chanteren: betaal bedrag X of we publiceren/verkopen jouw klant data. Maak altijd melding van een datalek bij de politie en bij de Autoriteit Persoonsgegeven.

Andere redenen voor hacken zijn wraak, voor SEO spam, advertentie spam, vanuit een ethisch oogpunt of gewoon voor de lol of om te oefenen. En in vrijwel alle gevallen heb jij er nadeel van.

Opschonen of een backup terugzetten?

Als je site gehackt is heb je 2 opties: de site opschonen of een backup terugzetten. Het is lastig op voorhand te bepalen wat de beste keuze is.

Wat belangrijk is om in je overweging mee te nemen is het volgende:

Als je een backup terugzet, zorg er dan voor dat je een backup terugzet van voordat je site gehackt is. Vaak zit er een periode tussen het verkrijgen van toegang en het doorvoeren van de kwaadaardige acties. Daar kan dagen of zelfs weken tussen zitten. Als je in dat geval de backup van pak ‘m beet gisteren terugzet dan heeft de hacker in kwestie in een mum van tijd weer toegang tot je site en begint het verhaal van voren af aan.

Let op: als je een backup van langer geleden terugzet gaan ook alle wijzigingen en gegevens van na dat moment verloren. Denk goed na of je deze gegevens niet nodig hebt.

Opschonen kan deels geautomatiseerd worden. Malware code en achterdeurtjes code ziet er vaak heel herkenbaar uit. Doordat de hackers proberen de code onleesbaar te maken krijgt ze juist een kenmerk dat heel opvallend en typisch is. Daardoor kunnen malware scanners dit soort stukken code eenvoudig vinden. Maar je weet nooit of je alle code gevonden hebt. Als je toch nog een stukje gemist hebt kan het voor de hacker kinderlijk eenvoudig zijn om weer opnieuw toegang te krijgen en begint het verhaaltje wederom van voren af aan.

Ook hier helpen sommige beveiligings plugins enorm. Ze leggen een database aan van alle kenmerken van alle bestanden van de website en controleren of deze bestanden gewijzigd zijn. Zo kan je in 1 oogopslag zien welke bestanden na een datum gewijzigd zijn. 

Auteur Mikan Huppertz
Liever volledig ontzorgd?

Kies een onderhoudspakket op maat.