PHP-rootkit: ultiem wapen voor sluipschutters?

PHP-rootkit: ultiem wapen voor sluipschutters?

DearBytesBlogPHP-rootkit: ultiem wapen voor sluipschutters?

Webserver gehackt? Beheerders duiken niet snel in de Apache-modules om de oorzaak te achterhalen. Toch zijn deze modules de ultieme plek voor het verstoppen van malware. Hier lees je wat een PHP Rootkit kan betekenen. 

Het is zeer eenvoudig om een rootkit te verbergen in PHP-modules. De ‘demo-rootkit’ hoeft niet zoals gebruikelijk te communiceren met de OS-kernel, maar via ‘hooks’ rechtstreeks met de PHP-interpreter. Het biedt de auteurs van een rootkit volledig de controle om parameters uit te lezen, returnwaardes aan te passen, de function call over te slaan en eigenlijk alles te doen wat hun hartje begeert.

PHP rootkit, slim idee

Ik ben hiermee overigens niet de eerste die wijst op de bijna onbegrensde mogelijkheden van Apache-modules voor bad guys. Ontwikkelaar Christian Papathanasiou plaatste in 2015 een soortgelijke PHP-rootkit op GitHub. Vanuit het oogpunt van een hacker is het verstoppen van rootkits in PHP-modules eigenlijk ook best een goed idee. Om meerdere redenen:

1) PHP is een populaire programmeertaal

PHP is erg populair en wordt voor allerlei webapplicaties gebruikt. Denk aan bulletinboards, fora, contentmanagementsystemen, blogs en wiki's. Een PHP-rootkit is dus breed inzetbaar.

2) Een PHP-rootkit is eenvoudig te schrijven

Het schrijven van traditionele rootkits vraagt nogal wat vaardigheden en kennis van talen als C en C++. Ik had slechts een dag en 80 regels code nodig voor een PHP-rootkit, inclusief hooks met de PHP-serverfuncties ‘hash’ en ‘sha1’.

3) PHP-rootkits zijn stabiel

Is een traditionele rootkit slecht geschreven, dan is de kans groot dat het complete systeem crasht en data verloren gaan. PHP-rootkits hebben dit probleem niet. Infecties blijven daardoor veel langer onopgemerkt.

4) PHP-rootkits zijn cross-platform

PHP is in de meeste gevallen platformonafhankelijk. Een PHP-rootkit geschreven voor Linux is eenvoudig te compilen voor Windows.

5) PHP-rootkits blijven lang onopgemerkt

Het controleren van de file-integriteit van PHP-modules is geen alledaagse bezigheid. Een aanvaller die zijn PHP-module ‘curl.so’ noemt, valt daarom ook niet snel door de mand. Daar komt bij dat het hier om custom code gaat die door geen enkel antiviruspakket of netwerkgebaseerd IDS-systeem wordt opgemerkt.

Aanvallen mitigeren

Door de lastige traceerbaarheid is een PHP rootkit misschien wel het ideale gereedschap voor aanvallers. Het biedt de juiste condities om met een aanval heel lang onopgemerkt te blijven. Serverbeheerders moeten daarmee rekening houden. De beste manier om kwaadaardige Apache-modules te detecteren? Houd na installatie van PHP een lijst bij met daarin de hashes van alle modules. Is de lijst helemaal compleet, dan kun je via een cronjob alle files in de extensie-directory hashen. Die hashes vergelijk je vervolgens met de vastgelegde hashes. Om je hierbij op weg te helpen, heb ik alvast een Python-script gepubliceerd die de integriteit van PHP-modules controleert. Dat script is te vinden op GitHub.

Heb je vragen over de PHP rootkit? Neem dan contact met ons op.