eBPF inzetten voor malware-analyse
Cybercrime is wereldwijd een groot financieel probleem voor organisaties. In 2021 werd de schade door cybercrime geschat op bijna 6 biljoen dollar. Cybercriminelen gebruiken malware om gevoelige data te stelen, data te gijzelen en andere schade aan te richten. Veel malware is sterk toegespitst op specifieke doelwitten. Wie zich daartegen wil beschermen, moet de malware begrijpen.
Malware-analyse is het vaststellen van het doel en de werking van een stuk malware. Bij statische analyse onderzoek je het sample zonder het uit te voeren. Malware is alleen vaak geobfusceerd, waardoor statische analyse lastig is. Onderzoekers stappen dan over op dynamische malware-analyse: ze voeren het sample uit om doel en werking te bepalen. Dat gebeurt in een sandbox, zodat de malware geen echte schade aanricht. Cybercriminelen hebben hun malware daarop aangepast: die herkent analysepogingen en probeert ze te ontwijken.
Geavanceerde tracing en monitoring met eBPF
eBPF is een functie van de Linux-kernel waarmee je uitgebreid events in de kernel kunt tracen en monitoren. Het geldt als een betere manier om de kernel programmeerbaar te maken dan kernelmodules. Een kernelmodule kan de kernel laten crashen; eBPF-programma’s hebben betere waarborgen. Voordat ze mogen draaien, controleert een verifier of ze veilig zijn en het systeem niet beschadigen of te veel resources gebruiken. eBPF kan inhaken op vooraf gedefinieerde tracepoints in de kernel en in userspace, en op bepaalde system calls. Met het Express Data Path (XDP) kan eBPF bovendien programma’s voor packet processing installeren, wat geavanceerde netwerkmonitoring mogelijk maakt.
Onderzoeksaanpak en proof of concept
Dit onderzoek ging na hoe effectief de observability-functies van eBPF zijn voor het analyseren van malware die Linux-systemen aanvalt. Eerst is bestudeerd hoe Linux-malware zich doorgaans gedraagt. Daarna zijn programma’s ontwikkeld die elk één aspect van Linux-malware nabootsen. Tot slot is een proof-of-concept-suite van eBPF-programma’s gebouwd en getest op hoe goed die het gedrag van elk nabootsend programma classificeert.