A Comprehensive Evaluation of Code Language Models for Security Patch Detection
Diese Arbeit präsentiert eine rigorose Re-Evaluierung von Code-Sprachmodellen zur Erkennung von Vulnerability-Fixing-Commits unter Verwendung eines einheitlichen Frameworks aus 20 Datensätzen und 270 Modellen, wobei aufgezeigt wird, dass aktuelle Modelle unter Data Leakage und Label-Fehlern leiden und letztlich daran scheitern, Sicherheitsreparaturen unter strengen False-Positive-Beschränkungen zuverlässig zu identifizieren.
Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
Stellen Sie sich das Internet als eine riesige, geschäftige Stadt vor, die vollständig aus Code gebaut ist. Jeden Tag entstehen neue Gebäude, werden alte renoviert und manchmal erscheinen versteckte Risse im Fundament, durch die Einbrecher eindringen könnten. In dieser Stadt sind „Sicherheitspatches“ die Notfallreparaturen, die diese Risse flicken, bevor die Bösewichte sie finden. Lange Zeit haben Menschen versucht, einen superintelligenten Roboter-Detektiv zu bauen, der Millionen dieser täglichen Bau-Updates (genannt „Commits“) scannen und sofort rufen kann: „Hey, das hier ist eine Sicherheitsreparatur!“ Die Hoffnung war, dass dieser Roboter die Reparaturen schneller entdecken könnte, als die offiziellen Polizeimeldetafeln (Schwachstellen-Datenbanken) sie überhaupt erst aufschreiben können, um die Stadt in Echtzeit sicher zu halten. Aber um diesen Roboter zu trainieren, brauchten Wissenschaftler eine riesige Bibliothek mit Beispielen, die genau zeigen, welche Updates Reparaturen waren und welche nur normale Änderungen darstellten. Das Problem war, dass diese Bibliothek über Dutzende von verschiedenen Regalen verstreut war, in verschiedenen Sprachen geschrieben wurde und von verschiedenen Leuten nach unterschiedlichen Regeln beschriftet worden war, was den Vergleich der Ergebnisse zu einem Albtraum machte.
Dieses Papier ist wie ein Team von Detektiven, das beschlossen hat, diese unordentliche Bibliothek aufzuräumen, einen einzigen, riesigen, einheitlichen Aktenschrank zu bauen und dann den Roboter-Detektiven dem wohl rigorosesten Test vorgestellt zu hat, der vorstellbar ist. Sie sammelten über 180.000 Code-Updates aus 20 verschiedenen Datensätzen und trainierten 270 verschiedene Versionen des Roboters, die von kleinen, flinken Modellen bis hin zu massiven, hochintelligenten Modellen mit 80 Milliarden Parametern reichten. Sie wollten sehen, ob diese Roboter den Code tatsächlich „verstehen“ konnten, um Sicherheitsreparaturen zu finden, oder ob sie sich lediglich auf die Commit-Nachrichten (die Notizen, die die Programmierer geschrieben hatten) oder das Auswendiglernen der Projekte, aus denen sie stammten, verließen.
Die Ergebnisse waren ein wenig wie ein Realitätscheck. Das Team stellte fest, dass sich die Roboter hauptsächlich auf die Commit-Nachrichten statt auf die eigentlichen Code-Änderungen verließen. Als die Forscher die Roboter dazu zwangen, nur auf den Code zu schauen, sank ihre Leistung erheblich. Selbst die größten, leistungsstärksten Robotermodelle scheiterten daran, Sicherheitsreparaturen zuverlässig zu erkennen, wenn die Regeln streng waren: Bei einer sehr niedrigen Fehlalarmrate (0,5 %) übersah jedes einzelne Modell mindestens 80 % der tatsächlichen Sicherheitsreparaturen. Die Studie entdeckte auch, dass die „Ground Truth“-Labels (die Grundwahrheits-Etiketten), die zum Training der Roboter verwendet wurden, oft falsch waren, insbesondere für Reparaturen, denen keine offizielle CVE-Nummer (Common Vulnerabilities and Exposures) zugeordnet war. Tatsächlich waren die Fehler so stark bei diesen unverifizierten Reparaturen konzentriert, dass sie die gesamte Bewertung verzerrten und die Roboter besser aussehen ließen, als sie eigentlich waren.
Letztendlich legt das Papier nahe, dass es das Problem nicht löst, die Roboter einfach nur größer zu machen oder ihnen mehr Kontext zu geben (wie etwa das Hinzufügen zusätzlicher Zeilen Code aus benachbarten Dateien). Die Roboter scheinen damit zu kämpfen, dass der wahre Beweis für eine Sicherheitsreparatur oft außerhalb der spezifischen geänderten Codezeilen liegt, was ein tieferes Verständnis des gesamten Systems erfordert, das aktuelle Modelle nicht besitzen. Die Autoren kommen zu dem Schluss, dass diese automatisierten Systeme, bis wir herausfinden, wie wir den richtigen Kontext effektiv auswählen und nutzen können und bis wir die unordentliche Kennzeichnung unserer Trainingsdaten korrigiert haben, den Ersatz menschlicher Experten beim Aufspüren von Sicherheitspatches nicht leisten können. Sie haben einen besseren Testrahmen geschaffen und ihre Werkzeuge veröffentlicht, um zukünftige Forscher davor zu bewahren, in dieselben Fallen zu tappen, aber für den Moment bleibt die „Magie“ der vollautomatisierten Erkennung von Sicherheitspatches in weiter Ferne.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.