Serverkasten met netwerkkabels in een datacenter

Het PHP-lek van 21 oktober: wat wij deden en waarom

Op woensdag 21 oktober werden twee ernstige kwetsbaarheden bekend in PHP, de software waarop onder meer WordPress- en Joomla-websites draaien. Wij hebben PHP op onze servers daarom van 13.30 tot 16.00 uur uitgeschakeld. Om 16.00 uur draaiden de bijgewerkte PHP-versies en waren de websites weer bereikbaar. Er zijn geen tekenen van een inbraak. Voor de overlast bieden we onze excuses aan.

Wat er aan de hand was

Woensdagochtend maakte het PHP-project twee kritieke kwetsbaarheden bekend, al snel “PHP2Shell” genoemd, allebei met een score van 9,2 op 10. Via die lekken kon iemand van buitenaf eigen code uitvoeren op een server waar PHP draait, zonder in te loggen. Daarmee kom je bij accounts, wachtwoorden en afgeschermde delen van een website, en in het ergste geval bij de server zelf.

Wat het extra spannend maakte: de informatie over de lekken was een dag eerder al uitgelekt en ging rond op sociale media. De oplossing stond gepland voor later in de week en werd vervroegd naar woensdag 16.00 uur. Tot dat moment was elke server met PHP die vanaf internet bereikbaar is waarschijnlijk kwetsbaar, en dat wisten kwaadwillenden ook.

Veel grote organisaties maakten daarom dezelfde keuze als wij en haalden hun websites uit voorzorg offline, waaronder de Tweede Kamer, het NCSC, DigiD en MijnOverheid. Het liveblog van NU.nl geeft een goed beeld van die middag.

Wat wij hebben gedaan

We hebben niet gewacht tot er iets mis zou gaan. Zo verliep de dag op onze servers:

  • 13.30 uurPHP uitgeschakeld op al onze servers. Websites die op PHP draaien, toonden bezoekers een korte uitleg.
  • TussendoorE-mail op uw domein werd gewoon verzonden en ontvangen. Uw website en gegevens bleven intact: er is niets verwijderd of gewijzigd.
  • 16.00 uurDe bijgewerkte PHP-versies draaiden en de websites waren weer bereikbaar.
  • DaarnaDe servers nagelopen op sporen van misbruik. In onze logboeken zijn geen tekenen van een inbraak gevonden.

Dat we de bijgewerkte versies om 16.00 uur al hadden draaien, komt doordat we de update vanaf de middag continu in de gaten hielden en hem direct hebben geïnstalleerd toen hij verscheen.

Excuses voor de overlast

Tweeënhalf uur een website die niet bereikbaar is, is vervelend, zeker als uw klanten u juist die middag zochten. Een aantal van u zag de website al offline voordat ons bericht binnenkwam. Vanwege de ernst van het lek kozen we ervoor om eerst de servers veilig te maken en pas daarna te mailen. Onze excuses voor de overlast.

Tegelijk past deze stap bij hoe wij uw hosting beheren: we houden de servers zelf actief in de gaten, en als het nodig is grijpen we snel in. Liever een middag een uitlegpagina dan een site die later blijkt te zijn overgenomen.

Waarom dit vaker gaat gebeuren

De kwetsbare code zat al ruim tien jaar in PHP en werd nu gevonden met behulp van AI. Dat gereedschap is ook voor kwaadwillenden beschikbaar. We verwachten daarom dat lekken elkaar in steeds sneller tempo opvolgen. Websites met een CMS zoals WordPress of Joomla vragen extra aandacht: ze leunen op PHP én op plug-ins en extensies van tientallen verschillende makers, en elk van die onderdelen kan het volgende lek bevatten.

Daarom zetten we steeds vaker bestaande websites om naar statische websites, zonder PHP, WordPress of Joomla. Daarmee vervallen veel mogelijke kwetsbaarheden, en bij een volgend PHP-lek blijft zo'n site gewoon online. Alleen een contactformulier gebruikt dan nog een klein PHP-script, tenzij er een andere oplossing voor handen is. Hoe dat werkt, leest u bij website zonder PHP laten maken.

Wilt u weten of dit voor uw website een geschikte oplossing is, of heeft u vragen over woensdag? Mail naar info@innodigi.nl of neem contact op.

Meer lezen

Website zonder PHP laten maken Websites bouwen zonder CMS: onze werkwijze Website die niet te hacken is