Je wordpress website beveiligen, hoe doe je dat?

de basis van een WordPress beveiliging kan door middel van enkele ingrepen, die door elke WordPress gebruiker gaan kunnen worden. Enkele van de hieronder beschreven zaken zijn echter vrij technisch en worden beter overgelaten aan personen die hiervoor opgeleid zijn. Configuraties aan je htaccess, de server of wp config kan leiden tot het onbruikbaar maken van je website als je niet weet waarmee je bezig bent, laat dit over aan een specialist!

WordPress is ’s werelds populairste contentmanagementplatform en wordt op 45% van de websites gebruikt. Dit maakt het ook een aantrekkelijk doelwit voor kwaadwillende aanvallers! In 2021 werden meer dan 1,5 miljoen WordPress-websites gecompromitteerd. In dit artikel bespreken we vele manieren waarop uw WordPress-instantie kan worden aangevallen en hoe u zich hiertegen kunt verdedigen.

De kwetsbaarheden van een WordPress website

In deze sectie behandelen we de meest voorkomende kwetsbaarheden in WordPress-installaties, waaronder:

  • Zwakke wachtwoorden
  • Gedeelde hosting
  • Verouderde software (WordPress Core, plug-ins, thema’s, PHP, webserver)
  • Gebrek aan serververharding (wijziging van beveiligingssleutels, voorkomen van PHP-uitvoering, uitschakelen van schrijftoegang tot bestanden, verharding van onderliggende infrastructuur, enz.)
  • Onjuiste bestandsrechten

Zwakke wachtwoorden

De meest gebruikelijke manier om een WordPress-website te compromitteren, is door zwakke wachtwoorden te misbruiken. Aanvallers kunnen zwakke inloggegevens bruteforceren om ongeautoriseerde toegang tot het beheerdersdashboard te krijgen.

Shared Hosting  

Shared hosting is een populaire keuze voor webhosting omdat het goedkoper is. In shared hosting-omgevingen worden meerdere websites op één server gehost. De beveiligingsvalkuil treedt op wanneer een aanvaller die toegang heeft tot het gedeelde systeem misbruik maakt van een kwetsbaarheid voor escalatie van bevoegdheden binnen de server, waardoor hij de onderliggende controle over uw website krijgt.

Verouderde Software

Plugins en thema’s

Plug-ins en thema’s kunnen in een WordPress-installatie worden geïnstalleerd om de functionaliteit uit te breiden. Deze plug-ins kunnen door iedereen worden ontwikkeld en hebben niet noodzakelijk dezelfde beveiligingshouding als WordPress Core. Plug-ins en thema’s kunnen kwetsbaarheden introduceren zoals Cross Site Scripting (XSS), Remote Code Execution (RCE), Open Redirects, SQL Injection (SQLI) enz. Deze kwetsbaarheden worden meestal opgelost in recentere versies, dus regelmatig bijwerken is essentieel.

Wist je dat heel wat aangekochte thema’s gebruiken maken van bijkomende plugins? Die worden geïnstalleerd met de meest recente versie, maar de bijkomende updates & ondersteuning zijn betalend. De kostprijs van die bijkomende (jaarlijkse) licenties kan aardig oplopen tot enkele honderden euro’s per jaar… wat veel website eigenaren niet wensen te doen of gewoon vergeten. Hierdoor worden third-party plugins niet meer geupdate en ontstaan (vaak na enkele maanden al) de eerste kwetsbaarheden in je website.

Server-Side Software

Om WordPress te kunnen gebruiken, moet u minimaal PHP, MySQL en een webserver zoals Apache installeren. Het is belangrijk om deze componenten up-to-date te houden, omdat een kwetsbaarheid in een van deze kan leiden tot volledige inbraak van de website.

Lack of Server Hardening

Server Hardening elimineert de potentiële toegangspunten voor aanvallers door de toegang tot specifieke bestanden, accounts, poorten, services en applicaties uit te schakelen of te verwijderen. Het kan ook inhouden dat de server zodanig wordt geconfigureerd dat deze minder informatie over zichzelf onthult of over het algemeen beter bestand is tegen aanvallen. Er zijn verschillende functies in WordPress, zoals bestandseditor, hotlinks, PHP-uitvoering en bladeren door mappen die meerdere kwetsbaarheden zouden introduceren, zoals Remote Code Execution (RCE), openbaarmaking van gevoelige informatie, Cross Site Scripting (XSS) en Denial of Service (DOS). ).

Foutieve rechten op folders en bestanden

Bestandspermissies worden gebruikt om de toegang tot bestanden op de webserver te regelen. De mappen wp-content en wp-admin worden in WordPress gebruikt om de toegang tot bronnen te regelen. Standaard zouden we 755 permissies moeten gebruiken voor beide mappen omdat het mensen beperkt van het maken van schrijfwijzigingen binnen deze mappen.

Verkeerd geconfigureerde bestandstoestemmingen kunnen aanvallers in staat stellen om backdoors te implanteren, instellingen te wijzigen en ongeoorloofde toegang te krijgen tot gevoelige informatie.

Wat is de beste aanpak voor veiligheid van je WordPress website?

In deze sectie zullen we het hebben over enkele van de beste praktijken die moeten worden gebruikt bij het implementeren van een WordPress website.

Implement a Password Policy

Het implementeren van een sterk wachtwoordbeleid is een beveiligingspraktijk die zou moeten worden geïmplementeerd in alle WordPress-instanties. De iThemes beveiligingsplugin stelt WordPress gebruikers in staat om een sterk wachtwoordbeleid af te dwingen en controleert ook of uw wachtwoord is gecompromitteerd met behulp van de HaveIBeenPwned API.

Een sterk wachtwoord bestaat uit ten minste 10 tekens, bestaande uit cijfers, symbolen, hoofdletters en kleine letters. Wachtwoorden mogen niet worden hergebruikt op een andere dienst, en geen enkel deel van het wachtwoord mag een woordenboekwoord, naam of patroon zijn dat identificeerbaar is (bv. uw geboortedatum of de naam van uw huisdier).

Changing Default Admin Username

In veel WordPress instanties is de gebruikersnaam van de beheerder “admin”. Het veranderen van de “admin” gebruikersnaam maakt het moeilijker voor aanvallers om te brute-force omdat ze zowel de gebruikersnaam als het wachtwoord moeten vinden, in plaats van alleen het wachtwoord.

Disable Pingbacks 

Pingbacks zijn een functie die mensen laat weten wanneer er in een andere blog naar hun inhoud wordt verwezen. Een aanvaller kan de pingback-functionaliteit gebruiken om een DDOS-aanval (Distributed Denial of Service) uit te voeren. Hoewel dit uw server niet direct in gevaar brengt, kunnen aanvallers uw server wel gebruiken om hun eigen aanvallen te versterken, wat de prestaties van uw site kan beïnvloeden.

Om pingback uit te schakelen kunnen we twee methodes gebruiken:

  • Met behulp van WordPress dashboard
  • Met behulp van htaccess

Disabling Pingbacks Using WordPress Dashboard

Navigate To:

Settings → Discussion → Disable allows link notifications from other blogs (pingbacks & trackbacks) 

Disabling Pingbacks Using htaccess

We kunnen pingbacks volledig uitschakelen door de code in het ‘.htaccess’ bestand aan te passen dat door onze webserver wordt gebruikt. Om dit te doen, moeten we de volgende code toevoegen in de website root directory:

Enable Auto-Updates 

Auto-Updates is een functie waarmee WordPress automatisch plugins en thema’s kan updaten wanneer deze beschikbaar komen, zodat er minder tijd is om misbruik te maken van een verouderd onderdeel. We kunnen auto-updates inschakelen vanaf het WordPress dashboard door te navigeren naar:

Dashboard → Updates → Auto-Updates inschakelen

Disable PHP Editor

PHP editor is een functie waarmee u code kunt invoegen in WordPress thema’s en plugins. Als een aanvaller toegang heeft tot de editor, kan hij willekeurige PHP-code invoegen, wat kan leiden tot volledige aantasting van uw onderliggende webserver, uw volledige WordPress-instance en uw database. Verminder de kans op dit soort aanvallen door de PHP editor uit te schakelen.

How to Modify wp-config.php To Restrict File Editing

Voeg de volgende code toe aan het ‘wp-config.php’ bestand om de uitgave van bestanden binnen het WordPress administratief gebied te beperken:

Disable External URL Requests

De mappenstructuur in WordPress wordt in kaart gebracht met behulp van een indexpagina op de website. Aanvallers die de inhoud van de map kunnen bekijken, kunnen de algemene mapstructuur begrijpen. Als ze toegang krijgen tot het systeem kunnen ze deze informatie gebruiken om door gevoelige eindpunten te navigeren, wat leidt tot het lekken van gevoelige informatie. Gebruik de volgende code in het ‘.htaccess’ bestand van de hoofdmap van de website om het bladeren in mappen voor WordPress te beperken:

Bovendien kunnen ontwikkelaars bij WordPress de JSON REST API gebruiken om te communiceren en plugins en thema’s te maken voor het publiceren van inhoud. Met de REST API kan een aanvaller gevoelige informatie van de WordPress website ophalen. Ze zouden bijvoorbeeld informatie kunnen ophalen door een GET verzoek te sturen naar bepaalde eindpunten, zoals /wp-json, /wp-json/wp/v2/users/, /wp-json/th/v1/user_generation, /wp-admin/install.php, /wp-admin/readme.html etc.

De Disable Rest API plugin staat de ontwikkelaars toe om de toegang tot eindpunten publiek te beperken en te controleren voor zowel geauthenticeerde als niet-geauthenticeerde gebruikers.

Disable Hotlinking

Hotlinks worden gebruikt om te verwijzen naar statische bronnen zoals afbeeldingen, video’s en audio op de website van iemand anders door gebruik te maken van een directe link. Dit verbruikt veel bandbreedte en zorgt voor vertraging voor gebruikers bij het bekijken van de website. Bijvoorbeeld, Gebruiker A heeft een website met veel afbeeldingen en video’s. Als gebruiker B een van de afbeeldingen op de website van gebruiker A leuk vindt, kan hij een directe link naar de bron op zijn website plaatsen. Het verbruik van hulpbronnen op de server van gebruiker A zal toenemen door de toename van verkeer van gebruiker B, omdat de hulpbronnen opnieuw moeten worden geladen. Om deze problemen met het bronverbruik te vermijden, kunnen we het volgende gebruiken om de hotlinking functie uit te schakelen:

All in one WordPress beveiliging en firewall plugin
Apache

All in One WordPress Security and Firewall Plugin

De All in One WP Security & Firewall Plugin staat ontwikkelaars toe om de hotlinking functie uit te schakelen. De plugin staat ook de ontwikkelaars toe om verschillende veiligheidsparameters zoals firewall, gebruikersbeheer, database & bestandsbeveiliging, enz. aan te passen.

Apache

Within an Apache server, you can append the following code in the ‘.htaccess’ file within the root directory:

Update WordPress Security Keys

WordPress beveiligingssleutels zijn een reeks variabelen die worden gebruikt voor de encryptie van cookies die extra veiligheid bieden voor uw gebruikersnaam en wachtwoorden, ook bekend als WordPress zouten. Deze variabelen hebben hun corresponderende zouten gedefinieerd in het ‘wp-config.php’ bestand en zij staan WordPress toe om uw gevoelige informatie binnen de browser te coderen voor extra veiligheid.

Om WordPress beveiligingssleutels in te schakelen, voegt u de volgende code toe aan het bestand ‘wp-config.php’:

Salt Shaker WordPress Security Keys Plugin

Als alternatief kunt u een WordPress plugin genaamd Salt Shaker gebruiken om beveiligingssleutels te genereren en aan te passen op basis van uw vereisten.

Navigeer naar: Extra → Salt Shaker → WP sleutels en zouten wijzigen

Other WordPress Security Plugins

Het gebruik van verschillende beveiligingsplugins in WordPress stelt het ontwikkelingsteam in staat om meer nauwkeurige controle te hebben over de beveiligingsparameters van een WordPress applicatie. Beveiligingsplugins hebben verschillende functies zoals:

Wachtwoord beleid
Multi-Factor Authenticatie (MFA)
DDOS bescherming
Voorkomen van hot links & tracebacks
Firewall & malware scanning
Implementatie van een sterk wachtwoordbeleid
Auto-updates & back-ups
IP whitelisting & malware scanning
De meest gebruikte beveiligingsplugins in WordPress zijn Sucuri, iThemes Security, en SecuPress.

De Sucuri plugin heeft bijvoorbeeld vele rijke functies die u helpen om firewall bescherming in te schakelen, zichtbare WordPress versies te verwijderen en PHP bestanden te blokkeren in de upload directory, naast vele andere. Deze plugin maakt het mogelijk om verschillende security hardening functies in de WordPress website te implementeren en vermindert de kans op potentiële beveiligingslekken.

Implementing Multi-Factor Authentication

Een cruciale plugin die u kunt installeren is WP-2FA die uw WordPress site de extra beveiligingslaag van Multi-Factor Authenticatie geeft die cruciaal is als we het hebben over de algehele veiligheid van onze websites. Het maakt gebruik van Time-based One Time Password (TOTP), ervoor te zorgen dat gebruikers zich moeten authenticeren om de tweede beveiligingslaag. Hieronder is een voorbeeld van deze plugin wordt ingesteld en uitgevoerd:

Je beveiliging van WordPress websites overlaten aan professionals?

Nu we een aantal veel voorkomende WordPress kwetsbaarheden hebben besproken en een aantal best practices om deze te bestrijden, kunt u met een gerust hart en veilig elke WordPress applicatie implementeren.

Zoals je kan zien zijn er heel wat manieren om WordPress website te beveiligen. Heel wat van die taken en de monitoring kan je laten uitvoeren door professionals zoals wij. Je koopt er naast de veiligheid van je website ook gemoedsrust mee want je website is in goede handen. Bovendien is het een soort verzekering want je bent zeker dat je niet tegen grote kosten aanloopt om je website te recoveren mocht hij toch gehackt worden?

Ben je geïntresseerd om de veiligheid van je website over te laten in onze ervaren handen?