WordPress 5 december 2017

WordPress in 9 stappen veiliger en de beste security plugin

Van alle websites met een CMS wordt daarvoor in ruim 30% van de gevallen WordPress gebruikt. WordPress is daarmee het populairste open source CMS van dit moment. Juist vanwege deze populariteit en het feit dat WordPress open source is, is WordPress een geliefd doelwit bij hackers. WordPress is, dankzij een groot aantal programmeurs en een grote community, van zichzelf relatief veilig te noemen. Het zijn echter niet alleen de WordPress core-bestanden waarop hackers een aanval uitvoeren. Vaak zijn slecht geprogrammeerde plugins de oorzaak van een hack maar nog veel vaker een simpel gekozen wachtwoord. Niet gek dat de overheid 24 november heeft uitgeroepen tot ‘Nationale Check Je Wachtwoorden Dag‘.

Waarom zou jouw WordPress site gehackt worden?

‘Ik heb toch niets interessants op mijn site, waarom zouden ze die hacken?’ is een vaak gehoorde misvatting. Elke website is namelijk interessant voor hackers, denk bijvoorbeeld aan:

  • Het versturen van e-mails/spam vanaf jouw site. Jouw website staat nog niet op blacklists en kan dus prima gebruikt worden.
  • Het hosten van een pagina die lijkt op de inlogpagina van een bank. Je kent de spammailtjes wel, van de ING of Rabobank dat je je inloggegevens moet veranderen. Linkjes die in de mail staan gaan vaak naar gehackte sites. Die staat niet op de naam van de hacker en die gaat dus vrijuit.
  • Het plaatsen/tonen van schimmige advertenties om geld mee te verdienen.
  • Het plaatsen/serveren van malware. Elke bezoeker die jouw site bezoekt raakt besmet kan op zijn beurt weer misbruikt worden.
  • Plaatsing van linkjes naar andere sites zodat die beter gepositioneerd worden in Google.
  • Het gebruik van (server)resources om andere websites mee aan te vallen (Ddos aanval).
  • En ongetwijfeld nog veel meer redenen.

Je ziet het, er zijn redenen genoeg om ook jouw website te hacken, zelfs als die over je goudvis gaat.

 Hieronder leg ik de belangrijkste veiligheidslekken bloot. Deze kun je dichten met behulp van een security plugin. Hiervoor heb ik een uitgebreid vergelijk gemaakt tussen de best gewaardeerde security plugins voor WordPress, je vindt hier het resultaat.

De belangrijkste veiligheidslekken van WordPress

WordPress beveiliging
Wees hackers te slim af

Zoals gezegd is WordPress open source. Hackers weten dus precies hoe de inhoud van de database en PHP-code er uitziet en maken daar dankbaar gebruik van. Zo heeft vrijwel elke WordPress installatie dezelfde structuur en wordt er bijna altijd ingelogd met gebruikersnaam admin op http://www.domeinnaam.nl/wp-admin. Met deze wetenschap staan de hackers al 1-0 voor en buiten zij dit uit door geautomatiseerde ‘hackscripts’ te gebruiken. Je kunt de hackers echter te slim af zijn!

1. Gebruik geen ‘admin’ account

Simpel doch doeltreffend, maak een nieuw account aan en verwijder het ‘admin’ account. Hiermee voorkom je dat een hacker met een ‘brute-force-attack’ in kan loggen met het account ‘admin’.

2. Gebruik geen huis/tuin & keuken wachtwoord

Wordpress login
Bedenk een lang en moeilijk te raden wachtwoord

Ik zie nog zo vaak dat mensen bijvoorbeeld de naam van hun huisdier, een verjaardag of een hobby gebruiken als wachtwoord. Niet doen! Ter illustratie, gebruik je de naam ‘diesel’ van je trouwe viervoeter als wachtwoord? Dan is deze binnen 1 seconde te hacken. Denk je met de verjaardag van je man Dirk (‘Dirk2412’) een goed wachtwoord te gebruiken? Toch niet, want ook dit wachtwoord is binnen een kwartier door hackers te ontfutselen. Nee, voor een goed wachtwoord geldt dat deze eigenlijk niet logisch moet zijn, nummers of rare tekens bevat en bovendien lang is. Maar ja, dat is weer moeilijk te onthouden…

Je kunt het ook makkelijk voor jezelf maken en tegelijkertijd moeilijker voor hackers door bijvoorbeeld namen/data te combineren en de shifttoets te gebruiken. Heet je goudvis bijvoorbeeld Spike, ben je getrouwd op 22 juni en speel je graag tennis? Dan kun je bijvoorbeeld het wachtwoord SPIKE@@_)^tennis maken, hierbij heb ik de shifttoets ingehouden bij het typen van Spike en 22-06. Het resultaat is een ogenschijnlijk moeilijk wachtwoord waar hackers 69583126531932 jaar voor nodig hebben om te hacken, maar toch gemakkelijk te onthouden is.

De overheid adviseert het volgende over veilige wachtwoorden:

  • Gebruik een wachtwoord van minimaal acht tekens.
  • Stel nooit één enkel woord in als je wachtwoord op verschillende websites/diensten.
  • Gebruik minimaal één woord en een cijfercombinatie die alleen jij kent.
  • Gebruik geen geboortedata, adressen of iets anders dat makkelijk te raden is.

3. Update WordPress, je plugins en thema’s

Wordpress bijwerken
Klik op die link ‘Nu Bijwerken’! Zoveel moeite is dat toch ook weer niet?

Het lijkt een schot voor open doel, maar ik kom veel WordPress installaties tegen die zwaar verouderd zijn en daarmee kwetsbaarder zijn om gehackt te worden. Alle code van WordPress, plugins en thema’s wordt geschreven door mensen en mensen maken nu eenmaal fouten. Het is dus een kwestie van tijd voordat er een lek wordt ontdekt. Deze wordt dan weer gedicht met de volgende update, maar als je die niet installeert dan is het vragen om problemen. Daarnaast raad ik je aan om de plugins die je toch niet gebruikt te verwijderen. Want ook de plugins die niet actief zijn, kunnen de deur openen naar je website!

 Ok, so far so good. Bovenstaande aanpassingen zijn gemakkelijk door te voeren en verbeteren de veiligheid van je WordPress installatie aanzienlijk. Het kan echter nog veel beter, met onderstaande verbeteringen wordt het veiligheidsrisico nog kleiner.

4. Limiteer het aantal login pogingen

Je maakt het hackers een stuk moeilijker als zij niet ongelimiteerd kunnen proberen in te loggen. Eigenlijk zou dit een standaard WordPress feature moeten zijn, dit is het helaas (nog) niet. Gelukkig kun je met 1 van onderstaande security plugins dit wel gemakkelijk instellen.

5. Verander de wp-admin URL

Wanneer hackers überhaupt niet (automatisch) in kunnen loggen op www.domein.nl/wp-admin maak je het ze helemaal lastig. Ook dit kan ingesteld worden met de security plugins die dit ondersteunen. Zie het overzicht hieronder.

6. Controleer de rechten op je mappen en bestanden

Zorg dat er geen mappen en bestanden met ‘777 rechten’ (= iedereen mag er alles mee doen) bestaan op je server. Je kunt dit aanpassen met een FTP programma zoals bijvoorbeeld FileZilla of dit bewerkstelligen met 1 van de onderstaande security plugins die dit ondersteunen. Idealiter zouden mappen 750 rechten moeten hebben en bestanden 640. Kan dit niet, zoals bijvoorbeeld bij een upload map, verander de rechten dan naar respectievelijk 775 voor een map of 644 voor een bestand. ‘777 Rechten’ is ‘not done’ en een serieus beveiligingslek.

7. Zet bestandsbewerking uit

Mocht om wat voor reden dan ook iemand onbedoeld toegang krijgen tot je WordPress omgeving, dan heb je liever niet dat die persoon ook je bestanden kan bewerken. Dit kun je eenvoudig uitzetten door de volgende regels toe te voegen aan wp-config.php:

define('DISALLOW_FILE_EDIT',true); //edits
define('DISALLOW_FILE_MODS',true); //updates

8. Maak regelmatig een backup

Voor al onze klanten maken wij een backup, zowel van alle bestanden als van de database, want ondanks alle maatregelen kan het nog steeds mis gaan. Denk hierbij aan je hostingpartij die slordig is met de beveiliging, of de illegaal geïnstalleerde Photoshop op je PC die ‘spontaan’ de wachtwoorden uit je FTP-programma haalt. Het kost je 5 – 10 minuten om in te stellen en er zijn voldoende plugins voor beschikbaar. Ook een aantal security plugins biedt een automatische backup mogelijkheid en een beetje goede hostingpartij doet dat ook voor je. Na een hack ben je echt blij dat je je site weer in ere kunt herstellen.

9. Gebruik een SSL certificaat

Zonder SSL certificaat worden gegevens van je site niet versleuteld verstuurd. Dit maakt het voor hackers gemakkelijk om gegevens, zoals inloggegevens, af te kunnen tappen. Tegenwoordig biedt vrijwel iedere hostingpartij de optie aan om een SSL certificaat met 1 druk op de knop te installeren. Kost je een paar tientjes per jaar en soms is het zelfs gratis.

10. Installeer een security plugin

Een groot aantal van bovenstaande veiligheidsverbeteringen kun je bewerkstelligen met het installeren van een security plugin. Daarnaast bieden de meeste security plugins nog meer voordelen zoals bescherming tegen SQL injecties en XSS aanvallen. Er zijn er tientallen beschikbaar, maar welke is de beste? Ik heb de meest gebruikte/hoogst gewaardeerde plugins met elkaar vergeleken en hierbij alle belangrijke features onder elkaar gezet.

[table id=1 /]

De beste security plugin voor WordPress

1. iThemes Security

Met 1 druk op de knop aanbevolen beveiliging inschakelen
Met 1 druk op de knop aanbevolen beveiliging inschakelen

Alhoewel WordFence de meest gebruikte security plugin biedt iThemes WP Security de beste features als het gaat om WordPress preventief te beveiligen. Je kunt met 1 druk op de knop basisbeveiliging aanzetten en daarmee je WordPress installatie een stuk veiliger maken. Standaard kun je je site beveiligen tegen bruteforce attacks, een firewall instellen en de loginurl hernoemen (wp-admin). Daarmee verberg je als het ware de voordeur voor hackers, even simpel als doeltreffend. Verder biedt iThemes Security als enige van deze 4 plugins de mogelijkheid om de wp-content map te hernoemen en SSL (https) te forceren. Een andere handige unieke feature is de ‘Away mode’ waarmee je de admin (periodiek) helemaal uitschakelt. Deze plugin wordt bovendien ondersteund door een grote partij waarmee updates snel worden doorgevoerd en de continuïteit gewaarborgd is.

Kan het nog beter? Jazeker, de bestandsrechten tool van All In One WP Security & Firewall zou een mooie aanvulling zijn op de ze plugin. Tot slot is de indeling voor de instellingen onlangs veranderd, hetgeen de overzichtelijkheid naar mijn idee niet ten goede komt. Je bent altijd aan het zoeken waar die ene instelling nou zit.

 Let op, het hernoemen van de wp-content gaat in de regel goed. Slecht geprogrammeerde thema’s en plugins kunnen de pret echter bederven omdat zij keihard ‘wp-content’ in de code hebben staan. Controleer dus goed of alles nog werkt. Hetzelfde geldt voor links die je zelf hebt gemaakt in je berichten, deze dien je aan te passen.

2. All In One WP Security & Firewall

Security Strength Meter
Met de Security Strength Meter wordt je op een slimme manier uitgedaagd om je WordPress installatie zo veilig mogelijk te maken.

All In One WP Security & Firewall komt op de tweede plek terecht. De interface is zeer gebruiksvriendelijk en daagt deze je op een slimme manier uit om zoveel mogelijk stappen te ondernemen om je WordPress installatie veiliger te maken. Pluspunt is ook de uitgebreide Firewall die je met een paar simpele klikken kunt instellen. In plaats van alleen de wp-admin URL te herschrijven pakt All In One WP Security & Firewall dit anders aan. Je kunt een geheime code instellen die wordt gebruikt om een cookie te plaatsen. Zonder dit cookie krijg je een 404 error (pagina bestaat niet) terug als je www.domein.nl/wp-admin bezoekt. Dit werkt even simpel als effectief. Zet daarbij de captcha aan en het is haast onmogelijk om geautomatiseerd in te loggen.

Verder is de tool om je bestandsrechten mee te controleren en terug te zetten ideaal. Je krijgt in een overzicht te zien welke mappen en bestanden te hoge rechten hebben en kunt dit met 1 muisklik herstellen. Ook controleert deze plugin als enige actief je gebruikersaccounts.

Een gemis bij deze plugin is het herschrijven van de wp-content map. Daarnaast is de File Change Detection zo goed als waardeloos. Wanneer WordPress of een plugin is geüpdatet gaan alle toeters en bellen af dat er bestanden zijn gewijzigd… Waar je ook niet blij van wordt (met gebruik van de standaard instellingen) is de eindeloze stroom lockout notificaties per e-mail.

3. Wordfence security

In het verleden hebben we deze plugin altijd gebruikt voor het beveiligen van WordPress sites. Maar waarbij de nadruk bij de andere plugins meer ligt op het voorkomen van een hack, ligt bij deze plugin de nadruk mee op herstellen van een hack. Zo kun je nog steeds /wp-admin bezoeken en geautomatiseerd proberen in te loggen. Dat is tijdelijk te stoppen met een maximaal aantal pogingen maar na verloop van tijd (standaard 5 minuten) kan er dan weer opnieuw ingelogd worden. Ook moet je voor de beste features bijbetalen. De interface werkt dan wel weer prettig en het herstellen van WordPress bestanden werkt zeer goed. Met 1 druk op de knop kun je een gewijzigd WordPress bestand herstellen naar het origineel. Tot slot is de support zeer goed te noemen.

4. BulletProof Security

BulletProof Security lijkt te zijn gemaakt door nerds en volgens mij ook bedoeld voor nerds. De interface is ronduit belabberd en daarom eindigt deze plugin op de laatste plek. Met deze plugin hebben de makers zich volledig gefocust op de firewall wat dan wel weer zijn vruchten afwerpt. Hiermee ben je beschermd tegen allerlei soorten aanvallen, van ‘brute force attacks’ tot ‘SQL query strings’. Maar ja, dat doen iThemes Security en All In One WP Security & Firewall ook en die bieden nog een aantal andere goede features extra.

Beveiliging buiten WordPress om

Zelfs als je alle bovenstaande stappen hebt doorlopen en je WordPress site beveiligd hebt met een security plugin dan is het risico nog steeds niet gemeden. Je kunt nog zoveel sloten plaatsen op de voordeur van je huis, als je slaapkamerraam open staat dan heeft dat ook weinig zin. Houd ook rekening met het volgende:

1. Software op je computer

Je logt in op je website vanaf je computer, als daar verouderde of illegaal gedownloade software op staat loop je ook het risico om gehackt worden. Je computer is dan vatbaar en daar zou dan bijvoorbeeld ’toetsenbord-log-software’ op geïnstalleerd kunnen worden die alle toetsenbord aanslagen (inclusief gebruikersnaam en wachtwoord van je website) doorsluist naar hackers. Ook zouden bijvoorbeeld je FTP gegevens kunnen worden uitgelezen van je FTP programma. Nooit illegale software installeren dus en je computer netjes updaten. En als je dan toch bezig bent, installeer dan gelijk even een goede (betaalde) antivirusscanner.

2. Hetzelfde wachtwoord op verschillende diensten

Een wachtwoord onthouden is al lastig, laat staan dat je voor elke website/dienst een apart wachtwoord onthoudt. Hoe makkelijk is het dan om voor veel diensten (zoals je e-mail, je website, Facebook, bol.com, etc) 1 wachtwoord in te stellen. Ook al is deze moeilijk te raden, niet doen!

Ik heb het zelf een keer meegemaakt. Amazon bleek gehackt en ik had daar hetzelfde moeilijke wachtwoord als voor Facebook. Je raadt het al, mijn Facebook account was gehackt. En omdat ik ook wel eens adverteer op Facebook was mijn creditcard gekoppeld aan mijn account. Voordat ik het doorhad had ‘ik’ prachtige advertenties geplaatst voor een zonnebrillenwebsite in Nieuw Zeeland. Schade? Ruim 300 euro in nog geen 8 uur tijd.

Data (lees inloggegevens) van gehackte websites wordt vrijwel altijd doorverkocht aan andere hackers. Het is dus echt geen goed idee om hetzelfde wachtwoord te gebruiken voor meerdere diensten. Beter kun je bijvoorbeeld een tool als LastPass gebruiken die al je wachtwoorden opslaat en je zodoende voor elke site/dienst een bijzonder moeilijk wachtwoord kunt instellen. Stel voor het gebruik van LastPass dan wel echt een moeilijk wachtwoord in (die je ook nergens digitaal opslaat) en gebruik ’two-factor authentication’. Op die manier heb je nog een extra stap nodig om in te loggen (bijvoorbeeld met een code op je telefoon) en is je wachtwoordenkluis veilig.

3. Hosting

Wat me nogal eens verbaast zijn bedrijven/mensen die toch aardig wat geld uitgeven voor een website, vervolgens besparen op hosting. Alsof je een mooie BMW 5-serie hebt aangeschaft en vervolgens op frituurolie gaat rijden om op brandstofkosten te besparen. Ook hier weer geldt, niet doen. Bij goedkope hostingbedrijven schort het vaak aan goede beveiliging. Ik heb wel eens gezien dat ik met een FTP account bij andere websites terecht kon of dat een database gebruiker toegang had tot alle databases. Andersom gebeurt het vaker dat niet de juiste rechten zijn ingesteld waardoor je je site niet kunt updaten. Als gevolg daarvan wordt de site dan ook niet geüpdatet met alle gevolgen van dien. Ook de beheersoftware van die ‘hostingcowboys’ laat te wensen over en soms jaren niet bijgewerkt. En daar zit je dan met je goed beveiligde WordPress site…

Investeer gewoon in goede hosting van een gerenommeerde partij.

Conclusie

Het is een lang artikel geworden, maar WordPress beveiliging is iets om serieus te nemen. Het is goed mogelijk dat jouw WordPress installatie wordt aangevallen, of erger nog, al besmet is, zonder dat je dit door hebt. Installeer daarom altijd een goede security plugin zoals iThemes Security of All In One WP Security & Firewall en investeer in goede hosting. De plugin is gratis, kost je ongeveer 10 minuten tijd om in te stellen en bespaart je mogelijk een hoop ellende.

Heb jij ervaringen met een van de genoemde plugins of met plugins die er niet tussen staan? Ik ben benieuwd naar je reactie!

Volgende story