← Neueste Arbeiten
🤖 AI

ARQ: Agentic CodeQL Query Refinement for C/C++ Vulnerability Detection

ARQ ist ein agentisches Framework, das C/C++ CodeQL-Abfragen unter Verwendung von aus synthetisierten Programmen und LLMs gewonnener, auf Ausführungen basierender Evidenz automatisch verfeinert, um die Anzahl der falsch-positiven und falsch-negativen Ergebnisse signifikant zu reduzieren, ohne dass gelabelte Datensätze erforderlich sind, wobei es bis zu 119,8 % mehr True-Positive-Detektionen erreicht und langjährige Probleme in offiziellen Repositories löst.

Ursprüngliche Autoren: Chunyi Wang, Yunfei Ke, Junfeng Yang, Yun-Yun Tsai, Penghui Li

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

Ursprüngliche Autoren: Chunyi Wang, Yunfei Ke, Junfeng Yang, Yun-Yun Tsai, Penghui Li

Originalarbeit unter CC0 1.0 der Gemeinfreiheit gewidmet (http://creativecommons.org/publicdomain/zero/1.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

Software, die unsere Computer, Telefone und Autos steuert, wird oft mit Sprachen wie C und C++ entwickelt. Diese Werkzeuge geben Programmierern eine präzise Kontrolle darüber, wie eine Maschine ihren Speicher verwendet, aber genau diese Macht macht es auch leicht, Fehler zu machen. Ein kleiner Fehler in der Art und Weise, wie ein Programm den Speicher verwaltet, kann eine Tür für Angreifer öffnen, um Systeme zum Absturz zu bringen oder Daten zu stehlen. Um diese Fehler abzufangen, bevor sie Schaden anrichten, nutzen Sicherheitsexperten automatisierte Scanner, die den Code lesen und nach gefährlichen Mustern suchen. Diese Scanner verlassen sich auf einen Satz von Regeln, die von Menschen geschrieben wurden und ihnen genau sagen, wie ein verwundbarer Stück Code aussieht. Wenn die Regeln zu streng sind, übersieht der Scanner echte Gefahren; wenn sie zu locker sind, schlägt er Alarm wegen Problemen, die gar nicht existieren, was Zeit und Vertrauen verschwendet.

Jahrelang war die Verbesserung dieser Regeln eine langsame, manuelle Aufgabe. Experten mussten Code lesen, vermuten, wo der Scanner versagen könnte, und die Regeln von Hand umschreiben. Dieser Prozess ist schwierig, da die Regeln perfekt sein müssen und der Code, den sie scannen, riesig und komplex ist. Ein neuer Ansatz namens ARQ verändert die Art und Weise, wie diese Arbeit erledigt wird. Anstatt sich allein auf die menschliche Intuition zu verlassen, nutzt ARQ künstliche Intelligenz, um diese Regeln automatisch zu testen und zu korrigieren. Es rät nicht einfach nur; es führt den Code aus, den es erstellt, um zu sehen, ob die Regeln tatsächlich funktionieren. Indem es eine Schleife aufbaut, in der das System Testprogramme generiert, sie ausführt und dann die Ergebnisse nutzt, um die Regeln zu verbessern, findet und behebt ARQ Fehler, die Menschen jahrelang übersehen haben.

Die Forscher hinter ARQ begannen mit einer einfachen, aber kraftvollen Idee: Eine Regel ist nur so gut wie ihre Fähigkeit, zwischen sicherem und gefährlichem Code zu unterscheiden. Sie gaben einer künstlichen Intelligenz eine spezifische Regel aus einem populären Sicherheitsscanner und baten sie, zwei sehr ähnliche Programme zu erstellen. Ein Programm wurde so entworft, dass es sicher ist, und das andere so, dass es gefährlich ist. Die KI beobachtete dann, wie der Scanner auf beide reagierte. Wenn der Scanner das sichere Programm als gefährlich markierte, war die Regel zu locker. Wenn er das gefährliche Programm übersah, war die Regel zu streng. Diese Diskrepanz zwischen dem, was der Scanner sagte, und dem, was tatsächlich beim Ausführen des Codes geschah, wurde zu dem Beweis, den die KI benötigte, um die Regel zu korrigieren.

Um sicherzustellen, dass die KI nicht nur rät, nutzte das System ein spezielles Werkzeug namens Sanitizer. Dieses Werkzeug fungiert wie ein Hochpräzisionssensor, der ein Programm während der Ausführung beobachtet. Wenn das Programm versucht, etwas Unsicheres zu tun, wie etwa auf Speicher zuzugreifen, der bereits freigegeben wurde, stoppt der Sanitizer das Programm und meldet den Fehler sofort. Dies lieferte den Forschern eine „Ground Truth“ (eine verlässliche Grundlage). Sie konnten das Urteil des Scanners mit dem Bericht des Sanitizers vergleichen. Wenn der Scanner sagte, ein Programm sei sicher, der Sanitizer aber einen Absturz fand, wussten die Forscher, dass der Scanner einen Fehler gemacht hatte. Die KI nutzte diesen bestätigten Fehler, um die Regel neu zu schreiben und sie dadurch intelligenter zu machen.

Dieser Prozess lief in einer kontinuierlichen Schleife ab. Die KI generierte ein neues Paar von Testprogrammen, führte sie aus, überprüfte die Ergebnisse und verfeinerte die Regel erneut. Entscheidend war, dass bei jeder Änderung der Regel das System die Regel gegen alle vorherigen Beispiele erneut testete, um sicherzustellen, dass die Korrektur nichts beschädigte, was bereits funktionierte. Dies verhinderte, dass die KI überkorrigierte und neue Probleme schuf, während sie alte löste. Das Team testete diese Methode an zwölf verschiedenen Sicherheitsregeln, die in realer Software verwendet werden. Sie ließen diese Regeln gegen zwei große Codesammlungen laufen, die darauf ausgelegt sind, Sicherheitstools zu testen. Die Ergebnisse zeigten, dass die durch KI verfeinerten Regeln signifikant mehr reale Schwachstellen fanden als die ursprünglichen, von Menschen geschriebenen Regeln. In einigen Fällen verdoppelte sich die Zahl der erkannten Bedrohungen sogar, während die Rate der Fehlalarme extrem niedrig blieb und eine Genauigkeit von über neunzig Prozent aufwies.

Die Auswirkungen dieser Arbeit gingen über Testdaten hinaus. Die Forscher wandten ihre verfeinerten Regeln auf reale, weit verbreitete Softwarebibliotheken an, die einen Großteil des Internets antreiben, wie etwa Werkzeuge zur Datenkompression und zur Anzeige von Bildern. Die verbesserten Regeln deckten zwei Bugs auf, die in diesen Bibliotheken jahrelang verborgen lagen und darauf warteten, gefunden zu werden. Darüber hinaus konnte das System erfolgreich drei spezifische Probleme beheben, die in einem öffentlichen Software-Repository gemeldet worden waren, aber seit so lange wie wohl kaum zweiundzwanzig Monaten ungelöst geblieben waren. Diese Probleme hatten menschliche Experten über zwei Jahre lang vor Rätsel gestellt, doch das automatisierte System löste sie durch das systematische Testen und Anpassen der Erkennungsregeln.

Dieser Ansatz deutet auf einen neuen Weg hin, die Sicherheit unserer digitalen Infrastruktur aufrechtzuerhalten. Anstatt darauf zu warten, dass Menschen einen Fehler finden und manuativ eine Lösung schreiben, können Systeme nun ihre eigenen Regeln kontinuierlich gegen die reale Ausführung testen. Die Methode benötigt keine massiven Datenbanken mit markierten Fehlern oder jahrelange historische Daten, um zu funktionieren. Sie benötigt lediglich die Fähigkeit, Code auszuführen und die Ergebnisse zu prüfen. Indem sie die künstliche Intelligenz in die Realität dessen einbettet, wie Programme tatsächlich reagieren, statt nur danach, wie sie auf dem Papier aussehen, haben die Forscher ein Werkzeug geschaffen, das Sicherheitsscanner scharf und effektiv halten kann, während sich die Software weiterentwickelt. Die Arbeit zeigt, dass die künstliche Intelligenz, wenn sie mit konkreten Beweisen aus dem laufenden Code kombanniert wird, komple in technische Probleme lösen kann, die der menschlichen Bemühung lange Zeit widerstanden haben.

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 →