×

Help Tweakers weer winnen!

Tweakers is dit jaar weer genomineerd voor beste nieuwssite, beste prijsvergelijker en beste community! Laten we ervoor zorgen dat heel Nederland weet dat Tweakers de beste website is. Stem op Tweakers en maak kans op mooie prijzen!

Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Nederlandse ontwikkelaar schrijft 'rootkit' in de vorm van php-module

Door , 48 reacties, submitter: theos

De Nederlandse ontwikkelaar Luke Paris heeft een rootkit geschreven in de vorm van een php-module waarmee het mogelijk is om function calls te onderscheppen. Dit zou een aantal voordelen hebben ten opzichte van traditionele rootkits.

Zo schrijft Paris, ook wel bekend als Paradoxis, dat zijn hoofdreden voor het schrijven van de software was dat php een van de meest populaire programmeertalen ter wereld is. Bovendien zou het eenvoudiger zijn om de Zend-engine onder de knie te krijgen dan het leren schrijven van kernelmodules. Omdat traditionele rootkits veelal in kernel space in plaats van in user space draaien, zouden zij er ook vaker voor zorgen dat systemen crashen.

In php is dit probleem er niet en kan slecht geschreven code volgens Paris in het ergste geval een segfault teweegbrengen. Een ander voordeel is dat het moeilijker is om een kwaadaardige php-module te ontdekken. Ten slotte zou de rootkit op verschillende platformen te gebruiken zijn, omdat php-code in de meeste gevallen gecompileerd kan worden om op een ander besturingssysteem te draaien. De rootkit kan bijvoorbeeld ingezet worden op een kwetsbare server om verborgen toegang tot het systeem te behouden.

De ontwikkelaar meldt dat zijn project alleen is bedoeld om lezers te waarschuwen en dat hij niet achter het gebruik van rootkits of andere malware staat. Hij heeft zijn code wel op GitHub gezet, maar daar de implementatie voor de hooks verwijderd en de instructies voor compilatie samen met de binaries achterwege gelaten. Dat moet ervoor zorgen dat kwaadaardige partijen niet met de code aan de haal gaan.

Paris noemt ook op welke manier er bescherming tegen een dergelijke aanval mogelijk is. Zijn methode is vrij simpel en vereist dat er na de php-installatie een lijst met hashes van aanwezige modules wordt opgesteld. Door middel van een automatische cron-taak is het vervolgens mogelijk om de hashes periodiek te controleren.

Door Sander van Voorst

Nieuwsredacteur

16-06-2017 • 20:40

48 Linkedin Google+

Submitter: theos

Reacties (48)

Wijzig sortering
Sensatiezoekerij, dit heeft niets met een rootkit van doen. Gewoon een voorbeeldje van ouderwetse userland malware zoals we die al tientallen jaren kennen, alleen nu een keer ingeplugd in PHP in plaats van de MS antivirus software of andere interessante plekken. Hij had iedere andere DLL of SO kunnen pakken.

Het hele punt van een rootkit is juist, nomen est omen, dat het als root hidden voor de rest van het systeem, inclusief root zelf, draait.
Het interessante idee hierachter is alleen dat je hash functies kunt onderscheppen, en dus ook wachtwoorden. Aangezien veel websites PHP draaien is het behoorlijk oppassen met onvertrouwde modules toevoegen.

EDIT: En zoals hij zelf ook eigenlijk al zegt: "So why would anyone write a rootkit for PHP, of all languages? Well, there are quite a few reasons, the most important being:
PHP is one of the most popular programming languages used on the web."

[Reactie gewijzigd door Cheap Apps op 16 juni 2017 21:16]

Dat is allemaal wel interessant, maar verklaart niet waarom je het een rootkit zou noemen. Ik ben het helemaal met curry684 eens, de term rootkit wordt gewoon gebruikt als sensatiezoekerij. Dit is gewoon een ouderwetse exploit.
Dit is gewoon een ouderwetse exploit.
Als we het dan toch over definities van termen gaan hebben: dit is ook geen exploit. Een exploit is het van buitenaf misbruiken van fouten (bugs), of onbedoelde "features", om iets te doen wat niet mogelijk had moeten zijn, zoals toegang tot het systeem krijgen of sommige vormen van dos (bv app laten crashen). Hij had wel een exploit in kunnen bouwen als manier om deze malware op systemen te installeren buiten medeweten en medewerking van de eigenaar om (waarmee het eigenlijk een virus wordt). Je kunt uiteraard ook een andere exploit gebruiken om toegang te krijgen tot het systeem om daarna deze te installeren (maar waarom dat als je al in het systeem zit?), of het ombouwen tot trojan horse en de installatie aan de gebruiker zelf over te laten door 'm te laten denken dat het een nuttige module is.

De meest correcte term die ik zelf hiervoor kan bedenken is eigenlijk gewoon het generieke 'malware'. In z'n huidige vorm is het geen exploit, virus, worm, trojan en al helemaal geen rootkit. Iemand een betere?
Ik denk dat je het nu meer als showcase moet zien.
Het lijkt me inzetbaar als een trojan-horse; noem het en verpak het bijvoorbeeld als Google pagespeed 2.0, en er zijn vast wel newbies die het installeren. (niet wetend dat de bron niet Google is, los van het feit dat het natuurlijk geen apache is maar even als voorbeeld)

[Reactie gewijzigd door twicejr op 17 juni 2017 09:18]

Ik denk dat 'backdoor' nog de beste benaming is. Het heeft inderdaad helemaal niets met een rootkit te maken.
Merkwaardig,dat dit als rootkit doorgaat, eigenschappen waar ik aan denk zijn:
- moeilijk te verwijderen, en als deze verwijderd wordt weet je het toch niet zeker herinstalleren is meestal de enige optie
- onzichtbaar, een php module is niet onzichtbaar en hij geeft zelf al aan dat hashes van files controleren genoeg is om dit te detecteren
- Een set van tools, het gaat dus vaak niet om 1 functionaliteit die een rootkit bied, 'kit' suggereerd dit ook
- een rootkit moet alles kunnen doen op het systeem wat het wil
Offtopic: "nomen est omen" kon ik nog niet, Latijn voor: De naam is een voorteken.
Het gaat er om denk ik dat veel embedded devices met php draaien als front end. Alhoewel de php code in userland draait draaien sommige php modules dat niet altijd volgens mij (ik ben geen it-er maar weet dat er bij embedded devices nog wel eens op beveiliging wordt bespaard in Linux)

Dan zou je dus via php in Userland root toegankelijkheid kunnen verkrijgen (de definitie van een rootkit is dat het een tool is om root toegang te krijgen en dat hoeft niet malafide te zijn dus mallware hoeft het niet te zijn! ;) al is dat vaak wel het geval )

Tools zoals Rkhunter en Chrootkithunter onder Linux en bepaalde IDE systemen (Intrusion detection Enviroment) kijken met name naar activiteit in kernel space en simuleren ook bepaalde kernel code in sommige gevallen in een beveiligde sandbox achtige omgeving om te kijken wat die code precies doet. Stel je laat een code vanuit php dan zou die theoretisch gezien over het hoofd gezien kunnen worden. (het gaat hier dus met name om linux embedded devices en evt. slecht beveiligde servers met een php front end om de boel te beheren en niet om MS computers of Desktop computers denk ik. Je zou dan mer moeten denken aan Calls van de front end in userspace naar de kernel(module) die onderschept of vervormd worden.
Dit is wel het meest duidelijke voorbeeld van het buzzfeed&clickbait niveau waar tweakers.net zich toe verlaagd heeft. Dit is wat er in dit artikel verteld wordt:

"Als je php bestanden besmet met malware door bijv malafide plugins, heb je grote kans op malware!"

Opgeleukt met wat buzzwords als rootkit, wat hier totaal niets mee te maken heeft - ook al zouden ze er 20 aanhalingstekens omheen hebben gezet.

Kansloos Tweakers.net!
Nu is het wel zo dat we alle nieuws met grote scepsis moeten lezen tegenwoordig. Dus ook alhier, want Tweakers is niet roomser dan een paus.

Maar zoals reeds gezegd, ik lees vrijwel alles. Uit reacties van de kenners maak ik dan vervolgens wel op of het wereldnieuws is of komkommerroddel.
Hoe is dit een rootkit? Volgens mij is dit gewoon server-side malware die in user space draait (mits PHP draait onder een account met beperkte rechten, zoals het hoort).
Volgens de definitie kan een rootkit perfect in user-space draaien.
Volgens de definitie kan een rootkit perfect in user-space draaien.
Alleen is het wel zo dat het voor een rootkit in kernel-space veel en veel makkelijker is om langere tijd ongedetecteerd te blijven, o.a. omdat het tegen de volledige rest v/h systeem kan 'liegen' over z'n eigen bestaan.

'Rootkits' in user-space kunnen wel rootkit-achtige karakteristieken vertonen, maar genieten niet zo'n mate van onzichtbaarheid.

[Reactie gewijzigd door R4gnax op 17 juni 2017 23:02]

De code wordt gecompileerd. Er is helemaal geen PHP meer nodig om de code te laten draaien.... Dus nee, het heeft weinig te maken met hoe PHP draait.

En ja, net als voor alle malware zul je eerst het draaiend moeten zien te krijgen met de juiste rechten.
PHP blijft nodig, gezien het een PHP extensie betreft.

De term rootkit heeft hier inderdaad absoluut niets bij te zien.
Klopt, maar het heeft je wel op het artikel doen klikken, en daarmee weer zn clickbait behaald.....
Oh dus spelletjes zijn alleen voor kinderen? Je bedoelt te zeggen, 'behalve spelletjes, want daar liggen mijn interesses niet'.
Meeste<!> malware draait gewoon op userland. (wp-content/plugins...)
Hoe is dit een artikel waard?

Het is gewoon een plugin waarmee je remote een arbitraire call kan hook'en in PHP. Het is echt niet de eerste keer dat zoiets wordt gemaakt...
En niemand gaat compleet onbekende modules zomaar toevoegen, de meeste die je nodig hebt worden meegeleverd.
Lijkt er op dat de 'ontwikkelaar' gewoon een amateur is die denkt dat die het nieuws kan halen door iets rootkit te noemen, wat hem nota bene ook nog gelukt is

blijkbaar vind deze ontwikkelaar het normaal dat je malware modules zomaar even gaat compilen en toevoegen aan je systeem, waarna je malware op het systeem hebt }>

Echt erg nieuw, daarnaast als je kijkt op zijn github, lijken het gewoon wat hooks te zijn, nou echt speciaal..

[Reactie gewijzigd door mmjjb op 17 juni 2017 02:59]

Uberhaubt als je het hele artikel leest is het een bij elkaar gezocht zooitje van keywords die hits moeten opleveren. Op het ene moment hebben we het over een rootkit, het andere moment over setje hooks, om vervolgens in de disclaimer opeens te praten over onveilige hashing algoritmes. Die combinatie doet het erg amateuristisch overkomen.

Inderdaad, zo uniek is de truuk niet. Hier is al gewoon middleware voor als je even 3 minuten googled:
https://github.com/krakjoe/uopz
user space
Misschien is de definitie van de term rootkit inmiddels veranderd, maar in mijn beleving geeft een rootkit je root. Dit is gewoon malware in de user space.
Rootkit is voor het behouden van toegang, zelfs nadat de initiŽle manier van binnenkomen gepatched is.
Nee, dat is een APT.
Bedoel je een Advanced Persistant Threat (APT), want dat zijn nation state enemies.
Niet volgens Wikipedia
https://en.m.wikipedia.org/wiki/Advanced_persistent_threat

Het kan, wordt als voorbeeld aangehaald, maar is niet de definitie van APT.

[Reactie gewijzigd door jozuf op 17 juni 2017 09:03]

Root heeft op zich niets te maken met user space of kernel space.
Het heeft/had voornamelijk te maken met x86's ring security architectuur en OS privilege niveaus.
Dat zijn twee verschillende dingen. Root is een privilege niveau in userspace, gedefinieerd in Unix en Linux als zijnde "user 0", ring 1/2/3 en ook 0/-1 in x86 zijn nog iets anders.
Nee, dat is het niet.

Een RootKit is een stuk malware dat op een hoger niveau draait dan het OS. Dat het woord root er in zit heeft niks met de root user te maken (uid 0 / gid 0). Het is ook niet Unix, Linux, BSD of Posix-specifiek, rootkits zijn ook gewoon rootkits als ze op QNX draaien, of Windows, of VxWorks.

Daarnaast is de term ook niet 'bedacht' of 'uitgebracht', het is organisch gegroeid door hackers en onderzoekers die informatie uitwisselen. Het is dus ook niet eens zo dat het een waterdichte definitie van is. Zo is een rootkit die opstart voor of 'met' de bootloader soms een bootkit. Of een AMT hack die malware op de ARC CPU installeert, die draait niet eens op de CPU waar het OS op draait, en ook dat noemen we een rootkit (maar dan wel een Ring -3 rootkit om dat het boven ring 0, SMM en de firmware zit).
Je hebt gelijk.
En Luke Paris heeft geen gelijk, wij weten wat een rootkit is, maar hij blijkbaar niet. Iets in PHP kan per definitie geen rootkit zijn. Maar dat wisten we al ;)
Ik begrijp even niet hoe de module dan multiplatform is. Ten eerste moet je voor alle platformen dan apart compilen immers. Windows kent de .so extentie niet voor php modules en linux / mac de .dll extentie niet. Plus je moet dan dus weten welk os iemand heeft, al met al lijken dit de nodige obstakels te zijn om deze rootkit aan de gang te krijgen.
Opzich als je al zover bent om die PHP-extensie (geen module zoals het artikel het constant noemt) op die server te draaien weet je neem ik aan ook al wat voor besturingssysteem er is gebruikt aangezien de meeste webservers dat ook actief communiceren bij webrequests, maar dat is dan ook echt de minste van je problemen :X Op het moment dat iemand in staat is om dat te doen moet je je we echt even achter je oren krabben waar je dan in hemels naam mee bezig bent qua beveiliging en beheer...

Misschien als deze ontwikkelaar ook wist dat zoiets geen module wordt genoemd maar een extensie had hij ook wat meer resultaat gehad bij zn zoekopdracht:
https://www.google.nl/search?q=malicious+php+extension

En als je iets verder gaat:
https://www.exploit-db.com/exploits/29712/

Daarnaast zie ik ook geen vermelding van de PHP Versie of Zend Engine versie.

[Reactie gewijzigd door mrdemc op 16 juni 2017 22:18]

Euh, het artikel schrijft dat je middels een bepaalde injectie de module kan inladen. Hiervoor dien je dus van te voren te weten met welk OS je te maken hebt. De Windows extenties voor PHP zijn namelijk dynamic link libraries, oftewel .dll files. Voor Linux en OSX systemen zijn dat .so files. Vooraleer je dus je extensie kan laden, moet je dus wel de juiste injecten. ;) Dat is meer mijn punt, of je moet natuuurlijk op basis van trial & error proberen.
Ten eerste moet je voor alle platformen dan apart compilen immers. Windows kent de .so extentie niet voor php modules en linux / mac de .dll extentie niet. Plus je moet dan dus weten welk os iemand heeft
Dat is bij een kernelmodule natuurlijk niet anders.
Attentie Attentie: De komkommertijd is officieel begonnen!

Kom op nou, een snelle blik op deze code laat zien dat dit gewoon een om simpele hook overwrite gaat zoals je die in zoveel talen en framework heb. Dit soort "aanvallen" zijn al langer bekend, als je grootste angst dit soort technieken is dan ben je wel behoorlijk naÔef. Als je lukraak software gaat installeren (of compiler) zonder even goed na te denken over de risico's dan heb je wel een groter probleem.
Rootkit? eerder php met malware besmet, Tweakers waar zijn jullie mee bezig?
Dit is echt de grootste BS! Werkt er bij Tweakers uberhaupt iemand met enige programeerervaring? Misschien eerst even dit artikel laten reviewen alvorens het online te zetten? Ik zeg, haal dit artikel maar offline want het raakt kant nog wal. Voor beargumentering; zie overige comments

Op dit item kan niet meer gereageerd worden.


Apple iPhone X Google Pixel 2 XL LG W7 Samsung Galaxy S8 Google Pixel 2 Sony Bravia A1 OLED Microsoft Xbox One X Apple iPhone 8

© 1998 - 2017 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Hardware.Info de Persgroep Online Services B.V. Hosting door True

*