Feature Engineering Is the Bottleneck: An Explainability Study of ML-Based Security-Relevant Method Detection
Dit artikel demonstreert via de WEAVE-tool en SHAP-gebaseerde verklaarbaarheid dat machine learning-modellen voor het detecteren van beveiligingsrelevante methoden falen op onbekende code, niet door een slechte modelselectie, maar omdat ze vertrouwen op instabiele oppervlakkige kenmerken zoals identifiers en signaturen, waarmee feature engineering wordt geïdentificeerd als de werkelijke flessenhals bij het bereiken van robuuste detectie.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
In het uitgestrekte, complexe landschap van moderne software fungeren beveiligingsanalisten als bewakers, die constant de code scannen op verborgen zwakheden die aanvallers de mogelijkheid zouden kunnen geven om gegevens te stelen of de controle over te nemen. Om dit te doen, vertrouwen zij op geautomatiseerde hulpmiddelen die traceren hoe onbetrouwbare informatie, zoals de invoer van een gebruiker, door een programma stroomt. Deze hulpmiddelen hebben een nauwkeurige kaart van het terrein nodig: een lijst van specifieke functies die dienen als startpunten voor data, gevaarlijke eindpunten waar die data schade kan aanrichten, en reinigingsstations die de data neutraliseren. Deze cruciale functies staan bekend als beveiligingsrelevante methoden. Jarenlang hebben onderzoekers geprobeerd computers deze methoden automatisch te leren vinden met behulp van machine learning, in de hoop trage, foutgevoelige handmatige lijsten te vervangen door slimme, zelf-updatende systemen. Hoewel deze computerprogramma's indrukwekkende resultaten hebben laten zien in de gecontroleerde omgeving van hun training, struikelen ze vaak wanneer ze worden geconfronteerd met echte code, waarbij ze de zeer gevaren niet herkennen die ze gebouwd zijn om te opsporen.
Een team van onderzoekers zette zich in om te begrijpen waarom deze kloof bestaat. Ze bouwden een nieuw hulpmiddel genaamd WEAVE, dat fungeert als een rigoureuze testomgeving voor deze beveiligingsdetecterende algoritmen. In plaats van alleen te controleren of een model het juiste antwoord krijgt, gebruikt WEAVE een techniek genaamd uitlegbare kunstmatige intelligentie om in het besluitvormingsproces van het model te kijken. Het vraagt het model om zijn werk te laten zien, waardoor precies duidelijk wordt naar welke delen van de code het kijkt wanneer het besluit dat een functie gevaarlijk is. De onderzoekers testten drie van de meest geavanceerde methoden die momenteel beschikbaar zijn, waarbij ze een enorme, nieuw samengestelde collectie van meer dan tienduizend Java-functies aan de modellen voerden om van te leren. Ze vroegen de modellen vervolgens om nieuwe, ongeziene code te classificeren en keken nauwlettend of hun redenering consistent bleef.
Het onderzoek onthulde een verrassende en verontrustende waarheid. De modellen hadden niet de diepe, structurele logica van de code geleerd, zoals wat een functie daadwerkelijk doet of hoe deze gegevens manipuleert. In plaats daarvan hadden ze geleerd om bijna volledig te vertrouwen op oppervlakkige aanwijzingen, specifiek de namen van de functies en de namen van de variabelen die ze gebruiken. Wanneer de modellen werden getraind, vonden ze patronen in deze namen die correleerden met beveiligingsrisico's. Echter, wanneer de onderzoekers hen nieuwe code presenteerden waarbij de namen anders waren of de context was verschoven, stortte de redenering van de modellen in. De kenmerken die de modellen vertrouwden als aanwijzing voor gevaar, begonnen plotseling juist weg te wijzen van gevaar, of hun belang verschoof drastisch. In bijna elk geval veranderden de modellen van mening over wat belangrijk was, niet omdat ze iets nieuws hadden geleerd, maar omdat de specifieke sluiproutes waarop ze vertrouwden, in de nieuwe omgeving niet langer bestonden.
De studie testte ook of het simpelweg kiezen van een krachtiger computeralgoritme het probleem zou oplossen. De onderzoekers gebruikten een geautomatiseerd systeem om door duizenden verschillende modelconfiguraties te zoeken om de beste mogelijke te vinden. Hoewel deze nieuwe modellen iets beter presteerden op standaardtests, leden ze aan exact hetzelfde gebrek. Ze negeerden nog steeds de werkelijke gedragingen van de code en bleven leunen op de fragiele, op namen gebaseerde sluiproutes. Dit onderzoek sloot de mogelijkheid uit dat de mislukking te wijten was aan een slechte modelselectie; het probleem lag niet in het brein van het systeem, maar in de ogen waarmee het de code zag. De onderzoekers concludeerden dat de bottleneck niet ligt in de intelligentie van de machine learning, maar in de engineering van de kenmerken die worden gebruikt om de code te beschrijven. Zolang deze systemen worden gevoed met beschrijvingen die zich richten op namen en oppervlakkige details, zullen ze broos blijven, niet in staat om te generaliseren naar de rommelige, diverse realiteit van softwareontwikkeling.
De implicaties van deze ontdekking reiken verder dan alleen betere algoritmen. Het suggereert dat voor deze hulpmiddelen echt betrouwbaar te zijn, ze moeten worden aangeleerd om naar de substantie van de code te kijken in plaats van naar de labels. De onderzoekers ontdekten dat de onderdelen van de code die het werkelijke gedrag beschrijven, zoals de sequentie van operaties binnen een functie, nauwelijks werden gebruikt door de modellen. Dit is een kritiek blinde vlek, omdat een kwaadaardige functie gemakkelijk zijn naam kan veranderen om een detector te ontwijken die alleen labels leest, terwijl het gevaarlijke gedrag ongewijzigd blijft. De studie benadrukt dat de huidige aanpak om computers over beveiliging te leren fundamenteel niet in lijn is met de aard van de taak. Om hulpmiddelen te bouwen die software werkelijk kunnen beschermen, moet de focus verschuiven van het vinden van betere manieren om namen te classificeren naar het ontwikkelen van manieren om de eigenlijke logica en de flow van de programma's zelf te begrijpen. Zonder deze verschuiving zullen zelfs de meest geavanceerde machine learning-modellen kwetsbaar blijven voor de eenvoudige truc van het hernoemen van een variabele.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.