3 min Security

Nieuwe Linux-malware Pumakit weet zich slinks te verbergen

Nieuwe Linux-malware Pumakit weet zich slinks te verbergen

Onlangs is een nieuwe Linux-malwarerootkit, Pumakit, opgedoken die zich op slinkse wijze weet te verbergen op getroffen systemen. Deze rootkit, die uit meerdere componenten bestaat, treft vooralsnog alleen Linux-versies ouder dan 5.7.

De afgelopen maanden lijkt een nieuwe golf van Linux-malware de kop op te steken. Zo werd recent de eerste UEFI-bootkit voor het open-source besturingssysteem, BootKitty, ontdekt. Nu is het de beurt aan Pumakit, die een nieuwe bedreiging vormt voor Linux-systemen.

Pumakit werd in september door Elastic geïdentificeerd na een verdachte upload naar VirusTotal. Deze upload, een gemodificeerde binary van cron, bevatte de rootkit. Het blijft echter onbekend wie er achter de malware zit en welke specifieke doelwitten zijn gekozen.

Het doel van Pumakit is duidelijk: met geavanceerde verbergingsmethoden en privilege-escalatie zijn aanwezigheid op systemen verhullen. Dergelijke technieken worden vaak ingezet door aanvallers die gericht zijn op kritieke infrastructuren of zakelijke netwerken. Ze streven naar spionage, het stelen van financiële gegevens of het verstoren van processen.

Pumakit bestaat uit meerdere componenten, waaronder een dropper, geheugenresistente uitvoerbare bestanden, een kernelmodule-rootkit en een shared object (SO) ‘userland rootkit’.

Aanvalspad

De infectie verloopt via een meerstapsproces, te beginnen met een dropper genaamd cron. Deze draait ingebouwde kwaadaardige payloads, zoals ‘/memfd: tgt’ en ‘/memfd: wpn’, volledig vanuit het geheugen.

In de tweede fase draait een payload in een zogenoemd child-proces dat systeemcontroles uitvoert en kernelimages manipuleert. Uiteindelijk laadt deze fase een LKM-rootkitmodule genaamd puma.ko in de systeemkernel.

De kernelmodule bevat een Kitsune SO-component, een ‘userland’ rootkit die zichzelf injecteert in processen die LD_PRELOAD gebruiken. Hierdoor kan de rootkit systeemaanroepen op gebruikersniveau onderscheppen.

Diagram dat de Pumak-infectieketen weergeeft met de stappen: ELF-creatie, voorwaardelijke controle die leidt tot scriptuitvoering en rootkit-laadpaden.

Verborgen privilege-escalatie

In een later stadium voert Pumakit een verborgen privilege-escalatie uit. Dit gebeurt via een conditionele activatie, waarbij de rootkit controleert op specifieke kernelfuncties, de status van secure boot en andere vereisten voordat het zichzelf volledig activeert.

De userland rootkit Kitsune SO breidt de verberg- en controlemechanismen verder uit naar gebruikersniveaus. Het onderschept systeemaanroepen, verbergt bestanden, processen en netwerkverbindingen die bij de rootkit horen, en kan dynamisch andere bestanden verbergen op basis van vooraf ingestelde criteria. Hierdoor worden kwaadaardige bestanden volledig onzichtbaar voor eindgebruikers en systeembeheerders.

Daarnaast handelt Kitsune SO de communicatie met de C2-server af. Het ontvangt commando’s, stuurt deze door naar de LKM-rootkit en verstuurt systeeminformatie en configuraties terug naar de aanvallers.

Alleen voor oudere Linux-versies

Pumakit maakt gebruik van de functie kallsyms_lookup_name(), waarmee het systeemgedrag kan worden gemanipuleerd. Dit duidt erop dat de rootkit zich specifiek richt op Linux-versies ouder dan 5.7. Nieuwere Linux-versies hebben deze functie verwijderd, waardoor kernelmodules deze niet meer kunnen gebruiken.

Voor Pumakit is op dit moment nog geen oplossing beschikbaar. Wel heeft Elastic Security Labs een YARA-regel uitgebracht waarmee systeembeheerders de rootkit kunnen detecteren.

Lees ook: Eerste UEFI-bootkit ooit voor Linux gebouwd