Regelmatig wordt een ernstige kwetsbaarheid gevonden in wereldwijd bekende software, zoals Windows, Chrome of Microsoft Office. Maar soms komt het voor in software waar veel mensen nog nooit van hebben gehoord, terwijl ze er waarschijnlijk dagelijks gebruik van maken. Dat was onlangs het geval met PHP.
Op 20 oktober ontstond grote aandacht voor twee ernstige kwetsbaarheden in PHP. Een aanvaller kon onder bepaalde omstandigheden een kwetsbare server van buitenaf opdrachten laten uitvoeren zonder eerst in te hoeven loggen. De kwetsbaarheden kregen een CVSS-score van 9,2 uit 10 (kritiek). Maar wat is PHP eigenlijk? En waarom zorgde dit wereldwijd voor zoveel aandacht?
Wat is PHP?
PHP is een programmeertaal die vooral wordt gebruikt voor online diensten en heel breed wordt ingezet. Wanneer je een website bezoekt, inlogt op een portaal, een formulier invult of informatie opvraagt doet PHP op de achtergrond mogelijk het werk. Je ziet het dus meestal niet, maar het is vaak wel een belangrijk onderdeel van wat er achter het scherm gebeurt. PHP is ook de basis voor veel applicaties en beheeromgevingen. En juist dat laatste is belangrijk. Een organisatie hoeft zelf helemaal geen website in PHP te hebben gebouwd om het toch te gebruiken. De software kan namelijk verwerkt zijn in een product van een leverancier. Hierdoor is het dus mogelijk ergens aanwezig zonder dat jij je daarvan bewust bent.

Gevonden kwetsbaarheden
Er werden twee ernstige fouten ontdekt in de manier waarop PHP intern met informatie en geheugen omging. We besparen je de technische details. Het belangrijkste gevolg is veel interessanter: onder de juiste omstandigheden kon een aanvaller een kwetsbare PHP-server via het internet benaderen en deze eigen opdrachten laten uitvoeren zonder eerst in te loggen. Dat kan grote gevolgen hebben. Afhankelijk van de rechten van de getroffen toepassing kon een aanvaller bijvoorbeeld toegang krijgen tot gegevens, informatie aanpassen of verwijderen of zorgen dat een dienst niet meer beschikbaar was. Amazon Web Services (AWS) beschrijft onder meer het uitvoeren van eigen code, toegang tot gegevens en het veroorzaken van uitval. Daarom werden de twee kwetsbaarheden aangemerkt als kritiek.
Hoe reageerde de wereld?
Nog vóór de geplande bekendmaking verscheen op 20 oktober informatie op The Hacker News en sociale media over twee zeer ernstige PHP-kwetsbaarheden. In de eerste uren liepen bevestigde feiten, voorlopige informatie en worstcasescenario’s door elkaar. Er werd zelfs gesproken over een maximale ernstscore van 10 uit 10 en een zeer grote groep kwetsbare PHP-versies. Al snel verschenen snel stevige nieuwskoppen. Zo schreven buitenlandse media over ‘miljoenen websites in gevaar’. Dat klinkt behoorlijk alarmerend. En helemaal uit de lucht gegrepen was de aandacht niet. Beveiligingsbedrijven zagen een enorme potentiële groep internetbereikbare systemen. Unit 42 (Palo Alto Networks) rapporteerde bijvoorbeeld meer dan 22,6 miljoen blootgestelde en mogelijk kwetsbare PHP-installaties.
Het ligt genuanceerder
Sommige berichtgeving vergat te vermelden dat een kwetsbaar systeem niet automatisch meteen gehackt kon worden. Dat hangt onder andere af van de softwareversie, configuratie en aanwezige beveiligingsmaatregelen. Op 21 oktober meldde securitybedrijf watchTowr dat het via zijn honeypot-netwerk misbruik had waargenomen. Daarmee veranderde een bericht dat eerder nog een onbevestigd gerucht leek ineens in serieus securitynieuws. De officiële beoordeling werd uiteindelijk 9,2. Zoals vaker gebeurt bij grote kwetsbaarheden kreeg deze al snel een pakkende naam: PHP2Shell. Die naam werd vervolgens gebruikt door securitybedrijven, leveranciers en nieuwsmedia. Zelfs Cisco verwijst in zijn officiële security advisory naar de kwetsbaarheden onder die naam.

Officiële bevestiging
De gerepareerde PHP-versies kwamen op 21 oktober beschikbaar. Vanaf dat moment ging het snel. Beveiligingsonderzoekers onderzochten hoe de kwetsbaarheden konden worden misbruikt en er kwam voorbeeldcode beschikbaar om de zwakke plekken te testen. Daarmee werd het voor kwaadwillenden ook eenvoudiger op zoek te gaan naar kwetsbare systemen. Op 26 oktober werd een van de twee PHP-kwetsbaarheden door het Amerikaanse Cybersecurity and Infrastructure Security Agency (CISA) toegevoegd aan de lijst met kwetsbaarheden waarvan bekend is dat ze daadwerkelijk worden misbruikt. Ook grote leveranciers kwamen in beweging. AWS publiceerde een beveiligingsbulletin en adviseerde gebruikers van getroffen PHP-versies te controleren of zij actie moesten ondernemen. Het Nationaal Cyber Security Centrum (NCSC) in Nederland haalde uit voorzorg de eigen website tijdelijk offline vanwege de PHP-kwetsbaarheden. Het NCSC had op dat moment nog geen actief misbruik gesignaleerd, maar vond het risico groot genoeg om zelf deze maatregel te nemen.
Updaten en inzicht
De boodschap was duidelijk: updaten is de veiligste oplossing. Voor oudere PHP-versies was de situatie lastiger. Versie 8.1 en ouder worden niet meer onderhouden door PHP. Voor een aantal oudere versies werden vanwege de ernst toch minimale reparaties in de broncode beschikbaar gesteld. Organisaties moesten dus eerst duidelijk weten waar PHP werd gebruikt, welke versie daar draaide en of ze zelf konden updaten of afhankelijk waren van een leverancier. Een wijze les voor veel organisaties. hoewel je denkt een bepaalde software niet te gebruiken kan het onbewust toch onderdeel zijn van je IT-omgeving. bijvoorbeeld via een leverancier, beheerpagina, website of netwerk. Weten welke systemen je hebt is daarom niet altijd genoeg. Je moet ook weten wat er ín die systemen zit. Een goede én tijdige inventarisatie van systemen, software, versies en leveranciers is dus heel belangrijk.
Wat leren we hiervan?
De PHP-kwetsbaarheden laten duidelijk zien hoe verbonden onze digitale wereld inmiddels is. Een probleem in één stukje software kan ineens relevant zijn voor websites, cloudomgevingen, leveranciers en producten over de hele wereld. En bij een grote cyberkwetsbaarheid gaat het nieuws vaak sneller dan de feiten. De eerste berichten vertellen wat er mogelijk aan de hand is. Pas in de uren en dagen daarna ontstaat het echte beeld. En juist daarom is het bij securitynieuws verstandig om spectaculaire koppen niet te negeren, maar ook niet klakkeloos over te nemen.