Ein neues Forschungsprojekt von Google Deepmind nutzt künstliche Intelligenz, um Schwachstellen im Code zu erkennen, zu beheben und künftig sogar ganze Fehlerklassen präventiv auszuschalten. Laut dem Unternehmen hat CodeMender bereits Dutzende Patches in Open-Source-Projekten geliefert.
Nach Angaben von Google Deepmind arbeitet das Unternehmen an einem automatisierten Verfahren zur Erkennung und Behebung von Software-Sicherheitslücken. Das Projekt mit dem Namen CodeMender soll Programmcode analysieren und eigenständig Sicherheitskorrekturen vorschlagen oder anwenden.
Die Forscher verweisen auf den wachsenden Aufwand bei der Beseitigung von Schwachstellen, der durch klassische Methoden wie Fuzzing oder statische Analyse nicht mehr vollständig beherrscht werde. Frühere Projekte wie Big Sleep und OSS-Fuzz hätten bereits gezeigt, dass KI neue Fehler in etablierten Programmen finden kann. CodeMender soll diese Arbeitsschritte nun automatisieren und zugleich die Qualität der Reparaturen prüfen.
Kombinierte Analyse- und Validierungssysteme
Der Agent basiert auf dem Sprachmodell Gemini Deep Think und kombiniert mehrere Verfahren: statische und dynamische Codeanalyse, Differentialtests, Fuzzing sowie SMT-Solver. Änderungen werden automatisch geprüft, unter anderem durch ein internes Tool, das Unterschiede zwischen Original- und Zielcode bewertet und bei Bedarf Korrekturen veranlasst.
Video: Google
Laut Deepmind dient dieser mehrstufige Prüfprozess dazu, nur Patches weiterzugeben, die funktional korrekt und rückverfolgbar sind. Alle Vorschläge werden derzeit von menschlichen Forschenden überprüft, bevor sie in Softwareprojekte eingespielt werden.
Zusammenarbeit mit der Open-Source-Community
In einem Testprojekt konnte CodeMender laut Deepmind die Ursache eines Heap-Buffer-Overflows in XML-Code finden, der auf fehlerhaftes Stack-Management zurückging – ein Problem, das aus der Absturzmeldung allein nicht ersichtlich war. In einem weiteren Beispiel passte der Agent den Lebenszyklus von C-Objekten in einer generativen Codebasis an, um Speicherfehler zu verhindern.
Die Software aber auch bestehenden Code präventiv absichern. Dazu setzt Deepmind etwa „-fbounds-safety“-Annotationen ein, die Compiler-Prüfungen gegen Speicherzugriffsfehler aktivieren. Das Verfahren wurde auf Teile der weit verbreiteten libwebp-Bibliothek angewendet. Eine frühere Schwachstelle in libwebp (CVE-2023-4863) war 2023 Teil eines iOS-Zero-Click-Angriffs der NSO Group. Laut Deepmind könnten solche Schwachstellen durch die neuen Compiler-Sicherungen abgeschwächt oder vollständig vermieden werden.
Seit dem Start hat CodeMender laut Deepmind mehr als 70 Sicherheitskorrekturen in Open-Source-Projekte eingebracht, teilweise in große Codebasen mit mehreren Millionen Zeilen. Alle Änderungen unterliegen einer manuellen Prüfung, bevor sie veröffentlicht werden. Langfristig will Deepmind den Agenten als Werkzeug für Entwickler zur Verfügung stellen und die Ergebnisse in weiteren Forschungsberichten dokumentieren.