Google hat frühe Ergebnisse aus seinen Forschungen zu Codemender geteilt, einem neuen KI-betriebenen Agenten, der zur automatischen Verbesserung der Codesicherheit entwickelt wurde. Der Agent kann sowohl neue Sicherheitslücken reaktiv flicken als auch proaktiv vorhandenen Code umschreiben, um ganze Klassen von Sicherheitsfehler zu beseitigen. Wenn KI-betriebene Tools bei der Erkennung von Software-Schwachstellen effektiver werden, wird erwartet, dass das Volumen der identifizierten Probleme die Kapazität menschlicher Entwickler zur Behebung überschreitet. Codemender wurde entwickelt, um dieses Problem zu lösen, indem die Erstellung und Anwendung hochwertiger Sicherheitspatches automatisiert wird. In den letzten sechs Monaten hat das Projekt bereits 72 Sicherheitsfixes für Open-Source-Projekte eingereicht, von denen einige Codebasen von bis zu 4,5 Millionen Codezeilen.
Wie Google Codemender funktioniert
Codemender ist ein autonomer Agent, der verwendet Gemini Deep Think Modelle zum Debuggen und Fixieren komplexer Schwachstellen. Es ist mit einer Reihe von Tools ausgestattet, die es ihm ermöglichen, vor dem Code zu ordnen, bevor sie Änderungen vornehmen, und diese Änderungen automatisch zu validieren, um sicherzustellen, dass sie korrekt sind und keine Regressionen verursachen.
Der Validierungsprozess ist eine kritische Komponente, die kostspielige Fehler verhindern soll. Codemender übertrifft nur qualitativ hochwertige Patches für die menschliche Überprüfung, die bestätigt werden, dass sie die Hauptursache eines Problems beheben, funktional korrekt sind, keine Regressionen verursachen und die Richtlinien zum Projektstil befolgen. Das System verwendet verschiedene Techniken, um dies zu erreichen:
- Erweiterte Programmanalyse: Codemender verwendet Tools für statische Analysen, dynamische Analyse, Differentialtests und Fuzzing, um die Codemuster und den Datenfluss zu überprüfen. Dies ermöglicht es, die Hauptursachen von Sicherheitsfehler besser zu identifizieren.
- Multi-Agent-Systeme: Das System setzt spezielle Wirkstoffe für bestimmte Aufgaben ein. Ein großsprachmodellbasiertes Kritik-Tool zeigt beispielsweise die Unterschiede zwischen dem ursprünglichen und modifizierten Code, um zu überprüfen, ob eine vorgeschlagene Änderung keine neuen Probleme einführt, sodass der Hauptagent nach Bedarf sich selbst korrigieren kann.
Reparatur aktiver Schwachstellen
Um eine Sicherheitsanfälligkeit effektiv zu patchen, verwendet Codemender Tools wie einen Debugger und einen Quellcode -Browser, um die Root -Ursache zu bestimmen, bevor sie eine Lösung entwickelt. In einem Beispiel zeigte ein Crash -Bericht einen Heap -Pufferüberlauf an, aber die Analyse des Agenten ergab, dass das tatsächliche Problem eine falsche Stapelverwaltung von XML -Elementen während des Parsens war. Während der endgültige Patch nur einige Codezeilen geändert hat, ist die Identifizierung der tatsächlichen Ursache erforderlich, dass eine komplexe Argumentation erforderlich ist. In einem anderen Fall hat der Agent ein nicht triviales Patch erstellt, um ein komplexes Problem mit der Lebensdauer von Objekte zu beheben, indem ein benutzerdefiniertes System zum Generieren von C-Code innerhalb des Projekts geändert wurde.
Proaktiv vorhandener Code sichern
Codemender ist auch so konzipiert, dass Code proaktiv umschreibt, um sicherere Datenstrukturen und APIs zu verwenden. Zum Beispiel wurde der Agent bereitgestellt, um Annotationen von `-Founds-Safety anzuwenden, um Teile der weit verbreiteten Bibliothek für libwebp-Bildkomprimierung zu erhalten. Bei der Anwendung weisen diese Anmerkungen den Compiler an, dem Code Grenzenprüfungen hinzuzufügen, wodurch die Nutzung von Pufferüberlaufverfällen verhindern kann.
Ein zuvor entdeckter Heap-Pufferüberlauf in libwebp (CVE-2023-4863) wurde als Teil eines iOS-Exploits mit Null-Klick verwendet. Mit den Anmerkungen, die von Codemender hinzugefügt wurden, wären diese Schwachstellen und viele andere, wie sie es nicht erfüllt hätten. Der Agent kann automatisch neue Kompilierungsfehler oder Testfehler korrigieren, die sich aus seinen eigenen Anmerkungen ergeben, und verwendet ein LLM-basiertes Tool, um zu überprüfen, ob seine Änderungen die beabsichtigte Funktionalität des Codes nicht geändert haben.
Aktueller Status und Zukunftspläne
Alle derzeit von Codemender generierten Patches werden von menschlichen Forschern überprüft, bevor sie bei Open-Source-Projekten eingereicht werden. Google erhöht allmählich die Anzahl der von ihm eingereichten Patches, um eine hohe Qualität zu gewährleisten und sich systematisch Feedback von der Open-Source-Community anzusprechen. Das Team plant, sich an die Inhaber von kritischen Open-Source-Projekten mit mit Codemendern erstellten Patches zu wenden. Durch die Iteration des Feedbacks aus diesem Prozess ist es das Ziel, Codemender schließlich als Tool freizugeben, mit dem alle Softwareentwickler dazu beitragen können, ihre Codebasen sicher zu halten.





