Real-time adaptieve feature-extractie voor ML-gebaseerde netwerkintrusiedetectie
De beveiliging van netwerken en computers is een voortdurende wedloop met hackers die voortdurend afkomen met nieuwe manieren om een aanval uit te voeren. Een firewall alleen is niet voldoende om grote universitaire of bedrijfsnetwerken te beveiligen, aangezien deze netwerken vaak zeer waardevolle en vertrouwelijke gegevens bevatten. Een Intrusion Detection System (IDS) biedt een extra beveiligingslaag binnen het netwerk. Traditioneel werkt een IDS op basis van signatuurmatching, maar recente ontwikkelingen in machinaal leren bieden nieuwe mogelijkheden. In plaats van enkel signaturen te matchen met netwerkdata, kunnen machine learning-modellen worden ingezet om te beoordelen of netwerkverkeer normaal is of duidt op een aanval.
Het is echter niet effectief om netwerkdata zomaar in een model te stoppen en direct een goed resultaat te verwachten. Een veelgebruikte methode in onderzoek is het berekenen van statistische kenmerken (features) op deze data. Hiervoor moet de data worden opgedeeld in zogenaamde flows tussen verzender en ontvanger. In plaats van alle ruwe data van de uitgewisselde pakketten te gebruiken, worden er specifieke kenmerken afgeleid uit deze pakketten. Deze afgeleide kenmerken worden vervolgens aan het model gevoerd voor voorspellingen. Hoewel er tools voor dit proces bestaan, zijn deze vaak verouderd, bevatten ze fouten of zijn ze simpelweg te traag voor gebruik buiten de academische wereld.
Er was dus een duidelijke behoefte aan een nieuwe, snelle en efficiënte tool die zowel in onderzoek als in de praktijk kan worden ingezet. Tijdens deze thesis werd RustiFlow ontwikkeld, een tool met een modulaire architectuur die eenvoudige uitbreidbaarheid mogelijk maakt en gebouwd is op een zeer snelle technologiestack. Daarnaast lost RustiFlow veelvoorkomende fouten in eerdere tools op. Door gebruik te maken van de relatief nieuwe programmeertaal Rust en eBPF-technologie, wordt niet alleen een prestatieverbetering van minstens 800% bereikt, maar zorgt dit ook voor stabielere resultaten en slaat het een brug tussen onderzoek en beveiligingstoepassingen.
eBPF is een technologie geïntroduceerd in de Linux-kernel die het mogelijk maakt om custom programma's in kernel space uit te voeren met bijna native snelheid. Een aanzienlijke prestatieverbetering wordt al behaald doordat slechts de benodigde data uit een pakket naar userspace wordt gekopieerd, in plaats van het volledige pakket. Vervolgens wordt deze data in Rust verder verwerkt tot bruikbare features, waarbij de snelheid en memory safety van Rust een grote rol spelen. Dit maakt RustiFlow tot een aanzienlijke verbetering en laat zien wat er mogelijk is met low-level technologieeuml;n. Het biedt een grote vooruitgang voor IDS-systemen die machine learning gebruiken om aanvallen in grote netwerken zo snel mogelijk te detecteren.