← Neueste Arbeiten
💻 computer science

KaPilot: LLM-Assisted Generation of Kani Specifications for Unsafe Rust Verification

KaPilot ist ein Multi-Agenten-Framework, das große Sprachmodelle nutzt, um Kani-Spezifikationen zur Verifizierung der Speichersicherheit in unsicherem Rust-Code automatisch zu generieren und iterativ zu verfeinern, wobei es im Vergleich zu bestehenden Werkzeugen wie AutoSpec signifikant höhere Erfolgsraten und eine höhere Spezifikationsqualität erzielt.

Ursprüngliche Autoren: Minghua Wang, Yuxi Ling, Mingzhi Gao, Yuwei Liu, Lin Huang

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

Ursprüngliche Autoren: Minghua Wang, Yuxi Ling, Mingzhi Gao, 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 vor, Sie bauen ein Haus mit einem Satz magischer, selbstkorrigierender Ziegelsteine. Diese Ziegel werden „Rust“ genannt und sind berühmt dafür, dass sie einen eingebauten Sicherheitsinspektor besitzen, der sich weigert, etwas Instabiles bauen zu lassen. Wenn Sie versuchen, ein Fenster dort zu platzieren, wo eine Wand sein sollte, schreit der Inspektor „Nein!“ und stoppt Sie, noch bevor Sie den ersten Stein legen. Dies macht Rust unglaublich sicher für den Bau von Software, da es Abstürze und Sicherheitslücken verhindert, bevor sie überhaupt entstehen. Doch manchmal muss ein Meisterbaumeister etwas tun, das der Inspektor nicht versteht – wie zum Beispiel ein spezielles, gefährliches Werkzeug benutzen, um einen schweren Balken schnell zu bewegen. In der Welt von Rust wird dies als „unsicherer Code“ (unsafe code) bezeichnet. Es ist wie ein Geheimpass, der es Ihnen ermöglicht, den Inspektor zu umgehen, aber es hat einen schweren Preis: Wenn Sie auch nur einen einzigen Fehler machen, könnte das ganze Haus einstürzen. Um das Haus stehen zu lassen, müssen Sie ein sehr strenges, mathematisches „Regelwerk“ (eine Spezifikation) schreiben, das genau beweist, wie diese gefährlichen Werkzeuge sicher zu verwenden sind. Aber diese Regelwerke von Hand zu schreiben, ist unglaublich schwer, langsam und anfällig für menschliche Fehler.

Hier beginnt die Geschichte von KaPilot. Die Forscher hinter diesem Projekt stellten eine einfache Frage: Können wir ein superintelligentes Computergehirn (eine KI) lehren, diese Sicherheitsregelwerke für uns zu schreiben? Die Herausforderung besteht darin, dass diese KIs zwar großartig darin sind, Code zu schreiben, aber oft die Fehler im Code kopieren, den sie sehen, anstatt die dahinterstehende Intention zu verstehen. Sie könnten ein Regelwerk schreiben, das perfekt aussieht, aber ein winziges, tödliches Detail übersieht. Das Papier präsentiert KaPilot, ein Team von KI-Agenten, die zusammenarbeiten, um dieses Rätsel zu lösen. Anstatt die KI einfach nur zu fragen: „Schreibe eine Regel“, agiert KaPilot wie ein Detektiv, ein Schreiber und ein strenger Editor in einem. Es liest die Notizen des Baumeisters (Dokumentation), extrahiert die wahren Sicherheitsregeln, schreibt einen Entwurf, prüft ihn auf Lücken und lässt ihn dann durch einen strengen Test laufen, um sicherzustellen, dass er tatsächlich funktioniert. Das Ergebnis ist ein System, das automatisch hochwertige Sicherheitsregeln für gefährlichen Code generieren kann, was es viel einfacher macht, sichere Software zu bauen, ohne dass ein Team von menschlichen Experten jede einzelne Regel von Hand schreiben muss.

Der Detektiv, der Schreiber und der Editor

Den Prozess der Verifizierung von unsicherem Rust-Code zu betrachten, ist wie der Versuch, eine perfekte Bedienungsanleitung für ein Hochgeschwindigkeits-Rennauto zu schreiben, das keine Bremsen hat. Wenn die Anleitung falsch ist, stürzt das Auto ab. Wenn die Anleitung zu vage ist, weiß der Fahrer nicht, wie er fahren soll. Wenn die Anleitung zu streng ist, kann sich der Fahrer gar nicht erst bewegen.

KaPilot ist ein Multi-Agenten-Framework, was nur eine schicke Art und Weise ist zu sagen, dass es ein Team von spezialisierten KI-Charakteren ist, die zusammenarbeiten. So spielen sie ihre Rollen:

  1. Der Detektiv (SafetyReq): Bevor etwas geschrieben wird, muss das Team wissen, wie die Regeln sein sollten. Normalerweise sind diese Regeln in den unordentlichen, von Menschen geschriebenen Notizen (Dokumentation) verborgen, die mit dem Code geliefert werden. Der „SafetyReq“-Agent agiert wie ein Detektiv. Er liest diese Notizen, ignoriert das Geschwafel und extrahiert eine saubere, prägnante Liste von Sicherheitsanforderungen. Es ist, als würde man eine ausschweifende Geschichte über „Fassen Sie nicht den roten Knopf an“ in eine klare, nummerierte Liste verwandeln: „1. Drücken Sie nicht den roten Knopf. 2. Stehen Sie nicht innerhalb von 1,5 Metern um den roten Knopf herum.“ Dieser Schritt ist entscheidend, weil er verhindert, dass die KI einfach die Fehler des Codes kopiert.
  2. Der Schreiber (SpecGenerate): Sobald der Detektiv die Liste erstellt hat, tritt der „SpecGenerate“-Agent auf den Plan. Er ist der Schreiber, der diese Liste in eine formale, mathematische Sprache überträgt, die der Computer verstehen kann (speziell eine Sprache namens Kani). Er rät nicht einfach; er nutzt die Liste des Detektivs als strikte Orientierungshilfe.
  3. Der Editor (SpecPrecheck): Bevor der Entwurf des Schreibers zum Endgegner geht, überprüft der „SpecPrecheck“-Agent ihn. Er ist ein strenger Editor, der fragt: „Hast du jeden Punkt abgedeckt, den der Detektiv gefunden hat? Ist dein Satz zu schwach? Ist er zu stark?“ Wenn der Entwurf nachlässig ist, schickt der Editor ihn mit spezifischen Anmerkungen zur Korrektur an den Schreiber zurück. Dies geschieht in einer Schleife, bis der Entwurf solide ist.
  4. Der Testfahrer (SpecVerify): Schließlich nimmt der „SpecVerify“-Agent den Entwurf und unterzieht ihn einem realen Test. Er verwendet ein Tool namens Kani, um Millionen von verschiedenen Fahrszenarien zu simulieren, um zu sehen, ob das Auto abstürzt. Wenn das Auto abstürzt (die Verifizierung fehlschlägt), sagt der Testfahrer dem Schreiber genau, warum es abgestürzt ist, und die Schleife beginnt von vorn.

Die „Shuffle and Mix“-Strategie

Hier wird das Team wirklich clever. Manchmal generiert die KI ein paar verschiedene Versionen des Regelwerks. Eine Version hat vielleicht eine perfekte „Anfangsbedingung“ (Precondition), aber eine schwache „Endbedingung“ (Postcondition). Eine andere hat eine schwache Anfangsbedingung, aber eine perfekte Endbedingung. Wenn man sich einfach für eine entscheidet, übersieht man vielleicht die beste Kombination.

KaPilot verwendet eine Strategie namens „Shuffle-and-Implication“. Stellen Sie sich vor, Sie haben ein Kartendeck, bei dem jede Karte ein anderer Teil des Regelwerks ist. Das Team mischt diese Karten um und kombiniert das beste „Anfangsszenario“ aus einer Version mit dem besten „Ende“ aus einer anderen. Sie testen dann diese neuen Kombinationen, um zu sehen, ob sie nicht sogar noch besser funktionieren als die ursprünglichen Entwürfe. Es ist, als würde man den besten Motor aus einem Auto und die besten Reifen aus einem anderen nehmen, um das ultimative Rennauto zu bauen. Dies stellt sicher, dass sie sich nicht mit einem „gut genug“ Regelwerk zufrieden geben, sondern das beste mögliche finden.

Was sie herausgefunden haben

Die Forscher haben KaPilot an 124 verschiedenen Stücken unsicheren Rust-Codes getestet. Diese wurden in zwei Gruppen aufgeteilt:

  • Der Gold-Satz (54 Funktionen): Diese verfügten über „Ground Truth“-Regelwerke, die von menschlichen Experten geschrieben wurden, sodass das Team prüfen konnte, ob die Arbeit von KaPilot korrekt war.
  • Der Ultra-Satz (70 Funktionen): Diese hatten keine menschlichen Regelwerke, daher prüfte das Team lediglich, ob KaPilot irgendein funktionierendes Regelwerk generieren konnte.

Die Ergebnisse waren beeindruckend. Für den Gold-Satz generierte KaPilot erfolgreich ein funktionierendes Regelwerk für 88,9 % der Funktionen. Noch wichtiger ist, dass in 57,4 % der Fälle das von der KI geschriebene Regelwerk genauso gut oder sogar besser war als das der menschlichen Experten. Für den Ultra-Satz gelang es dem System, funktionierende Regelwerke für 71,4 % der Funktionen zu erstellen.

Beim Vergleich von KaPilot mit einem anderen KI-Tool namens AutoSpec (das an dieses neue System angepasst wurde), gewann KaPilot haushoch. Es produzierte 14,8 % mehr Regelwerke, die die Tests bestanden, und 25,9 % mehr Regelwerke, die semantisch äquivalent zu oder besser als die von Menschen geschriebenen waren.

Warum das wichtig ist

Das Paper argumentiert, dass es nicht gut funktioniert, eine KI einfach nur zu bitten: „Schreibe eine Sicherheitsregel basierend auf diesem Code“. Die KI neigt dazu, die Fehler des Codes zu kopieren oder durch die Komplexität verwirrt zu werden. Indem man die Aufgabe in ein Team von Spezialisten aufteilt – einer zum Lesen der Notizen, einer zum Schreiben, einer zum Editieren und einer zum Testen – vermeidet KaPilot diese Fallstricke.

Die Forscher fanden auch heraus, dass die Qualität der menschlichen Notizen (Dokumentation) eine große Rolle spielt. Wenn die Notizen vage sind, hat die KI Schwierigkeiten. Aber wenn die Notiken klar sind, glänzt KaPilot. Sie entdeckten auch, dass ihre „Shuffle“-Strategie eine entscheidende Zutat war; ohne sie würde das System oft bei einer mittelmäßigen Lösung verharren, anstatt die perfekte Kombination von Regeln zu finden.

Kurz gesagt: KaPilot legt nahe, dass wir uns nicht zwischen menschlicher Expertise und KI-Geschwindigkeit entscheiden müssen. Indem wir KI als ein Team spezialisierter Assistenten einsetzen, die einem strengen, logischen Prozess folgen, können wir die Erstellung von Sicherheitsregeln für die gefährlichsten Teile unserer Software automatisieren und die digitale Welt zu einem sichereren Ort machen. Das Paper behauptet nicht, dass dies jedes Problem löst (einige komplexe Schleifen benötigen immer noch menschliche Hilfe), aber es beweist, dass dieser Multi-Agenten-Ansatz ein massiver Schritt nach vorn ist, um die Softwareverifizierung automatisch und zuverlässig zu gestalten.

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 →