eBPF inzetten voor effectieve high-interaction honeypots
Mensen en bedrijven maken tegenwoordig volop gebruik van verbonden informatiesystemen (het internet). Dat is niet zonder risico: een groot deel van de mensen en organisaties krijgt elk jaar te maken met cyberaanvallen. Hoe goed je een informatiesysteem beveiligt, hangt sterk af van hoe goed je bestaande en nieuwe dreigingen begrijpt. Daarvoor moet je informatie verzamelen over kwaadaardige activiteiten. Honeypots zijn tools die die informatie verzamelen: ze laten zich bewust door aanvallers compromitteren en loggen wat die doen. Zo krijg je inzicht in het gedrag en de motieven van aanvallers. De kracht van honeypots is dat ze niet alleen informatie verzamelen over bekende aanvallen, maar ook over nog onbekende zero-day-aanvallen.
High-interaction honeypots en eBPF
Er zijn verschillende soorten honeypots: sommige laten maar weinig interactie met aanvallers toe, andere juist veel. Dit onderzoek richtte zich op high-interaction honeypots. Eén manier om die te bouwen is een volledig systeem als honeypot gebruiken en via de kernel van dat systeem volgen wat de aanvaller doet nadat hij binnen is. Vroeger gebruikte men daar meestal kernelmodules voor. Sinds kort wordt een nieuwe technologie, eBPF (extended Berkeley Packet Filter), gebruikt om de mogelijkheden van de Linux-kernel uit te breiden.
Effectieve high-interaction honeypots bouwen
Met eBPF draaien programma’s in een sandbox binnen de geprivilegieerde context van de kernel. Ze breiden de functionaliteit van de kernel uit zonder direct aan de kernelversie vast te zitten. Daardoor is het risico op een corrupte kernel kleiner dan bij klassieke kernelmodules. Dit onderzoek richtte zich op het bouwen van effectieve high-interaction honeypots met eBPF. Met een analyse van grijze literatuur zijn de mogelijkheden van eBPF onderzocht voor observability van het systeem, het verbergen van de honeypot en het veilig ophalen van logs. Daarbij zijn ook opensource-eBPF-projecten bekeken, zoals projecten voor intrusion detection en malware-analyse, omdat die technieken bevatten die ook voor honeypots bruikbaar zijn.
Proof-of-concept en detectietests
Daarnaast is een eBPF-honeypot als proof-of-concept gebouwd om te laten zien dat de technieken uit de literatuuranalyse in de praktijk toepasbaar zijn. Alle mogelijke technieken testen bleek praktisch niet haalbaar. De proof-of-concept gebruikt daarom één methode voor systeemobservatie, één techniek om de honeypot te verbergen en één aanpak om logs op te halen.
Voor de laatste deelvraag zijn detectiemethoden die werken tegen honeypots op basis van kernelmodules, specifiek Sebek, getest op de proof-of-concept. Zo is nagegaan of eBPF deze detectietechnieken uit zichzelf tegenhoudt.