← Neueste Arbeiten
💻 computer science

Vulnerable Code Search: Transferable Attack for Code Language Models

Dieses Paper führt einen übertragbaren, programmiersprachenunabhängigen adversen Angriff ein, der Code-Identifikatoren so stört, dass irrelevante Snippets künstlich mit Zielabfragen abgeglichen werden, was die Retrieval-Leistung sowohl von Open-Source- als auch von Closed-Source-Code-Sprachmodellen signifikant verschlechtert.

Ursprüngliche Autoren: Kaicheng Wang, Liyan Huang, Jesse Thomason, Weihang Wang

Veröffentlicht 2026-08-27
📖 5 Min. Lesezeit🧠 Tiefgang

Ursprüngliche Autoren: Kaicheng Wang, Liyan Huang, Jesse Thomason, Weihang Wang

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

In dem riesigen, weitläufigen Ökosystem moderner Software verlassen sich Entwickler auf digitale Bibliotheken, um die Bausteine zu finden, die sie benötigen. Stellen Sie sich einen Programmierer vor, der nach einer spezifischen Funktion sucht, um Daten schnell zu laden; er gibt eine Frage in eine Suchleiste ein, und ein System muss in Sekundenschnelle Millionen von Codezeilen durchsuchen, um die perfekte Übereinstimmung zu finden. Dieser Prozess, bekannt als Code-Retrieval (Code-Abruf), ist das Rückgrat der Produktivität und ermöglicht es Ingenieuren, bestehende Lösungen wiederzuverwenden, anstatt das Rad neu zu erfinden. Um dies in großem Maßstab zu ermöglichen, verwenden Computer spezialisierte Modelle, die sowohl die menschliche Frage als auch den Computercode in einen gemeinsamen mathematischen Raum übersetzen. In diesem Raum gilt: Je näher zwei Elemente beieinander liegen, desto ähnlicher werden sie betrachtet. Das System rankt dann die Ergebnisse und platziert den relevantesten Code ganz oben. Jahrelang hat die Branche diesen Systemen vertraut und vorausgesetzt, dass das System das Ziel versteht, weil der Code korrekt funktioniert.

Doch eine neue Studie enthüllt eine erschreckende Fragilität dieser Systeme. Forscher der University of Southern-California haben entdeckt, dass diese leistungsstarken Suchwerkzeuge leicht getäuscht werden können – nicht dadurch, dass man ändert, was der Code tatsächlich tut, sondern indem man die Namen der Variablen und Funktionen innerhalb des Codes verändert. Das Team demonstrierte, dass sie durch das gezielte Austauschen dieser Namen völlig unzusammenhängenden Code so aussehen lassen konnten, als sei er die perfekte Antwort auf eine spezifische Frage. Es ist, als könnte ein Bibliothekar dazu verleitet werden, ein Kochbuch aus dem Regal zu ziehen, nur weil der Autor den Titel eines Kapitels so geändert hat, dass er mit den Worten auf dem Zettel eines Besuchers übereinstimmt, obwohl der Inhalt des Buches völlig über das Kochen handelt und nicht über das eigentliche Bedürfnis des Besuchers.

Die Forscher entwickelten eine Methode, um diese Schwachstelle auszunutzen. Sie nahmen ein Stück Code, das nichts mit einer bestimmten Suchanfrage zu tun hatte – zum Beispiel ein Snippet zum Sortieren einer Zahlenliste, während der Benutzer nach einem Weg fragte, Daten zu laden – und benannten die internen Symbole systematisch um. Sie taten dies, ohne eine einzige Zeile der Logik des Codes zu verändern, wodurch sichergestellt wurde, dass das Programm exakt wie zuvor ausgeführt werden kann. Durch die Verwendung eines kleineren, zugänglichen Computermodells zur Steuerung dieser Änderungen fanden sie die spezifischen Namen, die den unzusammenhängenden Code in den Augen des Computers mathematisch identisch mit der Zielanfrage erscheinen ließen. Das Ergebnis war ein Code, der perfekt funktionierte, aber semantisch von der Intention des Benutzers entkoppelt war, und dennoch rankte die Suchmaschine ihn als das Top-Ergebnis.

Der alarmierendste Aspekt dieser Entdeckung ist, wie leicht dieser Trick auf verschiedene Systeme übertragbar ist. Die Forscher erzeugten diese täuschenden Codeschnipsel mithilfe eines kleineren Open-Source-Modells, doch der Trick funktionierte genauso effektiv gegen viel größere, geschlossene Systeme, die von großen Technologieunternehmen verwendet werden. Als sie dies gegen modernste Modelle testeten, brach die Leistungsfähigkeit der Suchmaschinen zusammen. In einem Experiment sank die Fähigkeit des Systems, die richtige Antwort zu finden, um bis zu 77 Prozent. Die Suchmaschinen, die zuvor in Standardtests hohe Punktzahlen erreicht hatten, waren nicht mehr in der Lage, zwischen der echten Lösung und dem manipulierten Imitator zu unterscheiden. Dies deutet darauf darauf hin, dass diese Modelle nicht wirklich die Bedeutung des Codes verstehen, sondern sich zu sehr auf oberflächliche Muster verlassen, wie etwa die spezifischen Wörter in Variablennamen, anstatt auf die tiefere Logik des Programms.

Die Studie untersuchte auch, ob diese Systeme gegen solche Angriffe gehärtet werden könnten. Die Forscher versuchten, die Modelle darauf zu trainieren, diese täuschenden Muster zu ignorieren, doch die Lösung hatte einen hohen Preis. Wenn sie die Modelle resistenter gegen den Trick machten, litt ihre Fähigkeit, normale Suchen durchzuführen, erheblich, wobei ihre Genauigkeit um die Hälfte sank. Wenn sie wiederum versuchten, Sicherheit und Leistung in Einklang zu bringen, blieben die Modelle gegenüber einer anspruchsvolleren Version des Angriffs verwundbar. Die Ergebnisse deuten darauf hin, dass die aktuelle Generation von Code-Suchwerkzeugen trotz ihrer beeindruckenden Benchmarks auf einem Fundament steht, das weit brüchiger ist als bisher angenommen. Sie priorisieren das Abgleichen von oberflächlichem Text gegenüber dem Erfassen der tatsächlichen Funktion der Software, was sie anfällig für Manipulationen macht, die Arbeitsabläufe in der Entwicklung stören oder im schlimmsten Fall dazu führen könnten, dass Entwickler bösartigen Code verwenden, der legitim aussieht.

Diese Schwachstelle erstreckt sich über einfache Suchmaschinen hinaus. Die Forscher zeigten, dass derselbe Trick auch große Sprachmodelle täuschen kann, die zur Generierung von Code aus Repositories verwendet werden. Als diese fortschrittlichen Systeme mit dem manipulierten Code konfrontiert wurden, brach ihre Genauigkeit bei der Auswahl der korrekten Funktion über mehrere Programmiersprachen hinweg, einschließlich Python, C++ und Java, drastisch ein. Der Angriff funktionierte, weil die Modelle von den umbenannten Identifikatoren angezogen wurden, die zur Suchanfrage passten, und dabei ignorierten, dass das Verhalten des Codes irrelevant war. Die Studie kommt zu dem Schluss, dass die Branche zu robusteren Methoden übergehen muss, die die Struktur und Logik von Code verstehen, anstatt nur dessen textuelle Erscheinung. Bis dahin bleibt das Vertrauen, das in diese automatisierten Werkzeuge gesetzt wird, um kritische Softwareentscheidungen zu leiten, prekär und anfällig für eine einfache Änderung weniger Wörter.

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.

Digest testen →