WordPress & rechten bij updaten themes, plugins en WordPress-core

Vorige week beschreef ik mijn eerste stappen in de dubbele rol van WordPress-beheerder en systeembeheerder. En vooral over de beveiligingsuitdagingen die daarbij komen kijken. Specifiek ging ik in op de concessies die ik moest maken om afbeeldingen en andere attachments toe te kunnen voegen aan mijn posts. In dit artikel ga ik dieper in op manieren waarop WordPress, plugins en themes veilig geüpdatet kunnen worden.

Om het veilig implementeren van updates goed te begrijpen, is het belangrijk iets van de rechtenstructuur te kennen. Zo heb ik ervoor gekozen om de webserver geen algemene schrijfrechten toe te kennen op mijn applicatiecode. Dat houdt in dat een PHP-script zichzelf niet mag overschrijven. Dus is WordPress beter bestand tegen fouten: de eigen code is minder kwetsbaar om na een beveiligingslek overschreven te zijn.

Waarom kan WordPress zichzelf niet updaten?

Een van de handige features van WordPress is dat het zichzelf kan updaten naar de meest recente versie. Zo kan elke willekeurige bezoeker bijdragen aan het up-to-date houden van plugins, themes en de WordPress-core. Ook is het installeren van themes en plugins enorm makkelijk. Klikken op “install” start de installatie.

Vanuit de systeembeheer-rol word ik hier echter minder blij van. WordPress heeft hiervoor voldoende rechten nodig om bestanden te overschrijven en naar hartelust aan te passen. Hier is geen tussenkomst van de beheerder of kennishouder vereist. Ongeteste code, nieuwe functionaliteiten en mogelijke beveiligingsfouten worden zonder extra toelichting geïnstalleerd.

Daarom werk ik als systeembeheerder het automatisch updatebeleid tegen: ik ken WordPress niet de rechten toe zichzelf aan te passen. Dit zorgt er voor dat er enkel nieuwe code op de server wordt geschreven als ik hier expliciet toestemming voor geef. En dus dat elke wijziging onder toezicht wordt uitgevoerd.

Maar Mike, dat is fantastisch!

WordPress zal bij het installeren van een plugin, theme of het updaten van zichzelf een aantal checks uitvoeren. Op het moment dat WordPress zichzelf niet kan updaten zal het aanbieden dit via FTP, FTP via SSL of SSH2 te doen. Waarvan SSH2 de veiligste optie is.
Screen Shot 2015-02-16 at 09.50.08

Als de server nog niet voorzien is van libssh2-php wordt de SSH2-optie nog niet getoond. Voor veel servers is dit de meest veilige manier van updaten. Daarom is het aan te raden deze te installeren (beheersrechten vereist):

$ sudo apt-get install libssh2-php

Waarom is dit fijn?

Bij het installeren van een plugin, theme of updaten van de WordPress-core wordt er vanuit deze interface een SSH2-verbinding opgezet naar de server. Hierbij zijn 2 zaken van belang.

1. Kies de gebruiker

Bij het maken van de verbinding moet een gebruiker worden opgegeven. Hier kies ik bewust voor de systeemgebruiker arne. Dit zorgt ervoor dat alle bestanden die geplaatst worden de rechten van deze gebruiker zullen aanhouden. Het behoudt de situatie dat WordPress zonder expliciete toestemming de eigen code niet kan overschrijven.

2. Het wachtwoord moet worden ingevuld

Het SSH-wachtwoord wordt niet binnen WordPress opgeslagen. Dat houdt in dat als er op enig moment toch ongewenste toegang tot het systeem wordt verkregen, niet direct de shell-toegang tot de server is gecompromitteerd.

Conclusie

Waar in het vorige artikel een workaround voor schrijfrechten van WordPress binnen zichzelf oogluikend wordt toegelaten voor uploads, laat ik met dit artikel zien dat hetzelfde niet nodig is voor het veilig updaten van WordPress zelf. Ook plugins en themes laten zich prima installeren.

De uitzondering bestaat altijd dat een plugin of theme schrijfrechten vereist in een andere map dan /uploads. Hier kan de afweging gemaakt worden om schrijfrechten uit te delen of de beschrijfbare map te verplaatsen naar /wp-content/uploads.

Arne Coomans, Service Manager bij True
Deel dit artikel via sociale media:

Technology - 10.02.2015

Sinds november beheer ik niet alleen de website arnecoomans.nl, maar ook de server waar de website op draait. Dat houdt in dat ik naast WordPress-gebruiker nu ook beheerder ben van het onderliggende systeem. En dus ook voor de beveiliging van het geheel. Al snel werd ik geconfronteerd met keuzes in het systeem die onherroepelijk gevolgen […]

Technology - 13.06.2017

Afgelopen week bracht WordPress haar nieuwste versie, WordPress 4.8, uit. Traditiegetrouw draagt ook deze editie de bijnaam van een jazzmuzikant, dit keer Bill Evans. Hoewel 4.8 minder spannende features dan 4.7 bevat, is dit hét moment om te updaten mocht je dat nog niet gedaan hebben. In dit artikel de belangrijkste nieuwe features op een […]

Technology - 06.12.2016

Vandaag is het nieuwe WordPress CMS beschikbaar. Wat is er nieuw? Waar moet je op letten? In dit artikel zoeken we de belangrijkste WordPress 4.7 veranderingen voor je uit. WordPress 4.7 veranderingen  Nieuw thema: Twenty Seventeen  WordPress 4.7 zal de laatste grote WordPress-release van 2016 zijn, wat traditiegetrouw betekent dat er een nieuw thema aankomt. Twenty […]

Blijf op de hoogte en schrijf u in voor onze nieuwsbrief
Schrijf u in voor de nieuwsbrief

Vraag offerte aan

Vul onderstaand formulier in. True neemt zo snel mogelijk contact met u op.