Beveiligen met Plugins

Niveau: gemiddeld

Nu is het tijd voor de het verder beveiligen van de WordPress website met behulp van plugins. Plugins zijn een soort kleine stukjes software die extra functionaliteit toevoegen aan de website. Stap voor stap gaan we de belangrijkste plugins op het gebied van beveiliging bij af.

Plugins kunnen gevonden en geïnstalleerd worden via “Plugins -> Add new“. Voer volgens rechtsboven in de naam die wij noemen van de plugin om de plugin te vinden. We plaatsen overigens ook een link naar de juiste plugin bij elk onderdeel.

Companion Auto Update

De eerste plugin voor WordPress betreft “Companion Auto Update” (link). Een van de basiselementen van Cybersecurity betreft updates. Updates, en nog eens updates. Updates zijn belangrijk, en voor een groot deel gaat dit al automatisch bij WordPress. Maar met deze plugin kunt u updates voor alles regelen. Van Plugins tot en met Themes, van kleine updates tot en met grote. Zelf hebben wij alles op automatische updates gezet.

Zorg er wat ons betreft dus ook voor dat alle update varianten aangevinkt staan. Dat u een email krijgt wanneer de updates gedaan zijn. En dat u tweemaal per dag op updates controleert. Want het misbruiken van kwetsbaarheden gaat snel bij WordPress.

WordPress -> Tools -> Auto Updates (Plugin)

Disable Comments

De volgende plugin betreft “Disable Comments” (link). Dit is een plugin waarmee het invoeren van comments op uw website beperkt kan worden. Wilt u helemaal geen comments op uw WordPress website? Zorg er dan voor dat de instelling “Everywhere” is geselecteerd. Mocht u bijvoorbeeld wel comments op uw Posts (Berichten) willen ontvangen, dan kan dat fijnmaziger ingesteld worden.

WordPress -> Settings -> Disable Comments (Plugin)

De derde plugin betreft “WF Cookie Consent” (link). Voordat we aan de slag gaan met de meest uitgebreide plugin, willen we nog even stilstaan bij het fenomeen van Cookies. Een Cookie popup, banner of melding is al snel nodig. Ook voor WordPress websites. Het is echter niet in alle situaties verplicht. Maar mocht u een oplossing zoeken voor een Cookie melding, dan is deze plugin een aanrader. Het is geen Security aangelegenheid, maar net als de Privacy policy even het benoemen waard.

WordPress -> Settings -> WF Cookie Consent (Plugin)

HTTP Headers

De vierde plugin betreft “HTTP Headers” (link). Met deze veelzijdige plugins kunnen zogenoemde HTTP Headers ingesteld worden. Deze komen in heel veel verschillende opties, maar in deze post focussen we even op die van security headers. Wanneer de plugin geïnstalleerd en geactiveerd is kan deze ingesteld worden.

Klik hiervoor op Security in de instellingen pagina van HTTP Headers. En ga vervolgens onderstaande HTTP Headers instellen. Klik een optie aan (die hieronder genoemd staat), klik op On en kies de juiste waarde en klik op “Save Changes”.

  • X-Frame-Options:
    • SAMEORIGIN
  • X-XSS-Protection
    • 1; mode=block
  • X-Content-Type-Options
    • nosniff
  • Referrer-Policy
    • strict-origin-when-cross-origin
  • Content Security Policy
    • default-src –> *, https:
    • frame-ancestors –> ‘self’
    • upgrade-insecure-requests –> aan
  • Cookie security
    • Secure–> aan
    • HttpOnly–> aan
    • SameSite–> aan

De Content Security Policy kan veel strakker ingesteld worden, alleen dat is al een hele eigen blogpost waard. Waar nu in ieder geval voor gezorgd wordt is dat alles via https (versleuteling) wordt ingeladen. En daarbij wordt er ook voor gezorgd dat de Content Security Policy hetzelfde doet als X-Frame-Options. Namelijk het blokkeren van zogenoemde Clickjacking aanvallen. En dat zijn aanvallen waarbij een bezoeker door stiekem ingevoerde schermen ergens verkeerd op klikt.

WordPress -> Settings -> HTTP Headers (Plugin)

Wordfence

De laatste plugin betreft “Wordfence” (link). Wordfence is een ontzettende krachtige tool. In de kern komt het gratis en betaalde variant. We bespreken in deze post alleen de gratis variant. De gratis variant is overigens al ontzettend krachtig en nuttig om te gebruiken.

Enkele functionaliteiten zijn een Firewall (tegenhouden van hackers) en Rate Limiting (beperken van hoge dataverkeer op uw website). Maar ook twee-stap verificatie met de authenticator app, en technologieën zoals reCAPTCHA om uw login pagina beter te beschermen. Wij gaan stap voor stap de belangrijkste instellingen bij langs die afwijken van de standaard van Wordfence. En we benoemen alleen instellingen die afwijken van de standaard, of erg belangrijk zijn om te gebruiken.

WordPress -> Wordfence -> All options

  • Disable Code Execution for Uploads directory: Enabled
  • Web Application Firewall Status: Enabled and Protecting
    • Let op: de eerste week na installatie dient deze instelling op “Learning Mode” te staan.
  • Enable brute force protection: On
  • Prevent the use of passwords leaked in data breaches: Enabled, For all users with “publish post” capability
  • Enforce strong passwords: Enabled, Force admins and publishers to use strong passwords (recommended)
  • Prevent users registering ‘admin’ username if it doesn’t exist: Enabled
  • Prevent discovery of usernames through ‘/?author=N’ scans, the oEmbed API, and the WordPress REST API: Enabled
  • Block IPs who send POST requests with blank User-Agent and Referer: Enabled
  • Check password strength on profile update: Enabled
  • Participate in the Real-Time Wordfence Security Network: Enabled
  • Enable Rate Limiting and Advanced Blocking: On
    • If anyone’s requests exceed: 240 per minute then throttle it
    • If a crawler’s page views exceed: 240 per minute then throttle it
    • If a crawler’s pages not found (404s) exceed: 60 per minute then throttle it
    • If a human’s page views exceed: 240 per minute then throttle it
    • If a human’s pages not found (404s) exceed: 60 per minute then throttle it
  • Schedule Wordfence Scans: Enabled, and select all Scan options at “General Options” just below
  • Use low resource scanning (reduces server load by lengthening the scan duration): Enabled

WordPress -> Wordfence -> Login Security

  • Enable 2FA for these roles: Alle rollen, en tenminste “Administrator”
  • Require 2FA for all administrators: Enabled
    • Let op: stel eerst 2FA (twee-stap verificatie) in op uw eigen beheer-account. Hiervoor heeft u een app zoals de Google of Microsoft Authenticator nodig. En stel zo nodig de grace-periode in om anderen de kans te geven 2FA in te stellen, voordat het verplicht wordt.
  • Allow remembering device for 30 days: Enabled
  • Require 2FA for XML-RPC call authentication: Required
  • Disable XML-RPC authentication: Disabled
  • Enable reCAPTCHA on the login and user registration pages
    • Let op: Ons advies is om deze wel aan te zetten om bijvoorbeeld bots van hackers beter te herkennen. Echter is de procedure wel wat lastiger dan de andere instellingen. Voer dit dus alleen uit wanneer u weet wat u doet.
    • De stappen: Als eerste moet er een “Site Key” en “Secret” aangemaakt worden via de website Google reCAPTCHA v3 Service. Hiervoor is een Google-account nodig. Vervolgens moeten de aangemaakte gegevens in het configuratiescherm van Wordfence ingevoerd worden.
WordPress -> Wordfence (Plugin, gratis variant)

Deze Plugins NIET installeren

Er zijn ook enkele plugins die niet geïnstalleerd zouden moeten worden. Ook al lijken ze een bijdrage te leveren aan de veiligheid van uw website. Een voorbeeld daarvan betreffen plugins die “XMLRPC blokkeren“. Hoewel feitelijk gezien hier de website wat veiliger van zou kunnen worden, gaat hiermee ook functionaliteit verloren. Onder andere de WordPress app zal niet werken. Beter is om de XMLRPC te laten beveiligen door Wordfence door middel van “Rate Limiting”. Dat is echt goed genoeg.

Hetzelfde geldt ook voor plugins die de “REST-API blokkeren“. Ook hier hangt soms aardig wat functionaliteit aan vast. En dit kan van WordPress zelf zijn, maar ook andere plugins en thema’s die daarvan afhankelijk zijn. Niet blokkeren dus en ook daar Wordfence zijn “Rate Limiting” werk laten doen.

En als laatste is er een kwetsbaarheid onder de code CVE-2018-6389 waarin uitgelegd staat dat de website aangevallen (lees: offline gehaald) zou kunnen worden. Dit gebeurd door misbruik van een bestand van de WordPress website genaamd “scriptloader.php“. Verschillende hackers melden dit soms als een kwetsbaarheid voor uw website. Echter kunt u, naast hele technische handelingen, hier weinig tegen beginnen. Maar ook hier helpt Wordfence u door middel van “Rate Limiting”, waarmee de hoeveelheid verzoeken naar het bestand beperkt worden. En hierdoor kan de kwetsbaarheid niet misbruikt worden.

De gratis variant van Wordfence is al ontzettend krachtig, en het gebruik er van raden we ten zeerste aan! We krijgen geen beloning voor het benoemen van hun plugin, zelfs niet als u wel een betaalde variant afneemt. Daarbij nemen wij zelf op dit moment ook gewoon de gratis variant af.


Dit betreffen de tips op het gebied van plugins. Nu is het tijd voor de laatste stap, namelijk aanpassingen via de File Manager. Ga daarvoor gauw naar de volgende pagina.