← Neueste Arbeiten
💻 computer science

HarnessLLM: Rust Verification Harness Generation with Large Language Models

HarnessLLM ist ein automatisiertes Framework, das große Sprachmodelle nutzt, um aus bestehenden Testsuiten Rust-Verifikationsharnesses zu generieren und iterativ zu verfeinern, wobei es reale Speicherfehlersicherheitsprobleme mit deutlich höherer Präzision und Effizienz als bisherige Ansätze erfolgreich erkennt.

Ursprüngliche Autoren: Minghua Wang, Yuwei Liu, Lin Huang

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

Ursprüngliche Autoren: Minghua Wang, Yuwei Liu, Lin Huang

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 die Welt der Computerprogrammierung als eine riesige, geschäftige Stadt vor, die aus Code gebaut wurde. In dieser Stadt ist die Sprache Rust dafür bekannt, ein unglaublich strenger Architekt zu sein. Sie verfügt über eingebaute Sicherheitsregeln, die verhindern, dass Gebäude einstürzen oder Straßen verschwinden, wodurch sichergestellt wird, dass die Stadt ohne Kollisionen mit sich selbst läuft. Doch selbst in dieser gut geplanten Stadt gibt es „unsichere Zonen“ – spezielle Bereiche, in denen die strengen Regeln vorübergehend aufgehoben werden können, um mächtige Dinge zu tun. Wenn ein Baumeister in diesen Zonen nicht vorsichtig ist oder ein Ampelfehler auftritt, kann die gesamte Stadt unter einem katastrophalen Fehler leiden, wie etwa einem Speicherleck oder einem plötzlichen Panic-Zustand. Um die Stadt sicher zu halten, nutzen Ingenieure eine Methode namens „formale Verifikation“, was wie eine super-strenge Simulation ist, um zu beweisen, dass die Gebäude niemals einstürzen werden, egal was passiert. Aber hier liegt der Haken: Um die Simulation auszuführen, muss man zuerst einen „Harness“ bauen. Stellen Sie sich einen Harness wie eine Teststrecke oder eine Trainingspuppe vor. Man muss diese Strecke manuell bauen und dem Simulator genau sagen, welche Autos er fahren lassen soll, wie schnell sie sein sollen und welche Hindernisse er ihnen in den Weg werfen muss. Dies von Hand zu tun, ist langsam, langweilig und fehleranfällig, besonders wenn die Stadt riesig und komplex ist.

Hier kommt ein neues Team von Forschern ins Spiel, das beschloss, etwas anderes zu versuchen: Sie fragten eine super-intelligente KI, bekannt als Large Language Model (LLM), um diese Teststrecken für sie zu bauen. Diese KIs sind wie digitale Genies, die fast jedes Buch und jedes Code-Schnipsel existierenden Wissens gelesen haben, was sie exzellent darin macht, Anweisungen zu verstehen und Code zu schreiben. Aber es gab ein Problem. Als die Forscher die KI zum ersten Mal baten, diese Teststrecken zu bauen, war die KI verwirrt. Sie erfand manchmal fiktive Teile, die gar nicht existierten, brachte die Reihenfolge der Operationen durcheinander oder scheiterte daran, die komplexen, zufälligen Szenarien zu erstellen, die wirklich nötig waren, um die Sicherheit der Stadt zu testen. Die KI war gut darin, Code zu schreiben, aber sie war nicht gut darin, den spezifischen, strengen Regeln zu folgen, die für Sicherheitstests erforderlich sind.

Hier kommt das Paper „HarnessLLM“ ins Spiel. Die Autoren, Minghua Wang, Yuwei Liu und Lin Huang, haben nicht einfach die KI gefragt: „Geh und baue eine Teststrecke.“ Stattdessen bauten sie einen cleveren, schrittweisen Workflow, der wie ein Projektmanager für die KI fungiert. Sie erkannten, dass Rust-Codebasen bereits einen Schatz an Informationen besitzen: bereits existierende Testfälle, die von menschlichen Entwicklern geschrieben wurden. Diese Tests sind wie Blaupausen, die zeigen, wie der Code eigentlich verwendet werden soll. HarnessLLM beginnt damit, diese existierenden Tests zu untersuchen, um die spezifischen „Calling Scenarios“ zu finden – also die exakten Momente, in denen der Code in Aktion gesetzt wird. Es isoliert dann diese Momente und verwandelt sie in ein sauberes, einfaches Rezept für die KI.

Die wahre Magie geschieht, wenn die KI „nicht-deterministische“ Argumente erstellen muss. Auf Deutsch bedeutet das, dass die KI zufällige Eingaben erfinden muss, die sie dem Code entgegenschleudert, um zu sehen, ob er bricht. Wenn der Code eine einfache Zahl erwartet, kann die KI leicht eine zufällige Zahl erraten. Aber wenn der Code ein komplexes, maßgeschneidertes Objekt mit vielen beweglichen Teilen erwartet, verliert sich die KI oft. Um dies zu beheben, baut HarnessLLM einen „Dependency Graph“. Stellen Sie sich dies als eine Karte vor, die zeigt, wie jedes Teil des Puzzles mit den anderen verbunden ist. Das System gibt der KI dann eine „Chain-of-Thought“-Anweisung, was wie eine Schritt-für-Schritt-Rezeptkarte ist. Es sagt der KI: „Baue zuerst den kleinen Ziegel. Nutze dann diesen Ziegel, um die Wand zu bauen. Verwende schließlich die Wand, um das Haus zu bauen.“ Dies verhindert, dass die KI versucht, das Dach zu bauen, bevor das Fundament gelegt wurde.

Darüber hinaus verfügt das System über einen eingebauten „Faktenchecker“. Wenn die KI den Code schreibt, wird dieser kompiliert (in ein Format übersetzt, das der Computer ausführen kann). Wenn der Computer einen Fehler findet, sagt das System nicht einfach nur „Fixe es“, sondern es sagt der KI spezifisch: „Du hast einen Typ erfunden, der nicht existiert“ oder „Du hast den Teil des Codes geändert, der bereits korrekt war.“ Dies stoppt die KI dabei, gefälschte Lösungen zu halluzinieren, und zwingt sie, sich nur auf die tatsächlichen Fehler zu konzentrieren.

Die Forscher testeten dieses System an 9 realen Rust-Bibliotheken, die wie verschiedene Stadtviertel sind. Sie begannen mit 494 existierenden Testfällen und baten HarnessLLM, diese in Verifikations-Harnesses zu verwandeln. Die Ergebnisse waren beeindruckend. Das System extrahierte erfolgreich 294 distinkte Calling Scenarios mit einer Präzision von 94,66 %. Es generierte anschließend für jedes dieser Szenarien einen funktionierenden Harness und erreichte damit eine Erfolgsquote von 100 %. Im Durchschnitt dauerte die Generierung jedes Harness etwa 145 Sekunden. Im Vergleich dazu konnte ein bestehendes Tool namens Autoharness nur etwa 41 % derselben Szenarien bewältigen, hauptsächlich weil es nicht in der Lage war, die komplexen, maßgeschneiderten Typen zu handhaben, die HarnessLLM bewältigen konnte.

Vielleicht am wichtigsten ist jedoch: Dies war nicht nur eine theoretische Übung. Als die Forscher die generierten Harnesses gegen den Code laufen ließen, fanden sie 6 reale Speicherfehlersicherheit-Bugs (Memory Safety Bugs). Fünf dieser Bugs wurden bereits von den Entwicklern behoben, und einer befindet sich derzeit in der Überprüfung. Dies beweist, dass das Tool nicht nur hübschen Code produziert, sondern tatsächlich gefährliche Mängel findet, die reale Probleme hätten verursachen können. Das Paper legt nahe, dass wir durch die Kombination des existierenden Wissens in Test-Suites mit der kreativen Kraft der KI, geleitet durch strenge Regeln und Feedback-Schleifen, die mühsame und schwierige Aufgabe der Verifizierung von Software-Sicherheit automatisieren können, um unsere digitalen Städte zu viel sichereren Orten zu machen.

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 →