KI-Tool CodeMender findet und behebt Sicherheitslücken automatisch

(C) unter Verwendung eines Motivs von Andrei Suslov / 123RF.com

(C) unter Verwendung eines Motivs von Andrei Suslov / 123RF.com

Das Unternehmen DeepMind hat nun mit CodeMender ein KI-gestütztes Tool vorgestellt, das Sicherheitslücken sucht und automatisch patcht.

In den vergangenen sechs Monaten, in denen CodeMender entwickelt wurde, sollen bereits 72 Sicherheitspatches in Open-Source-Projekte eingeflossen sein, darunter einige Projekte mit einem Umfang von bis zu 4,5 Millionen Codezeilen.

CodeMender verwendet das schlussfolgernde Modell Gemini Deep Think in einem autonomen Agenten, der in der Lage ist, komplexe Schwachstellen zu finden und zu beseitigen. Wurde eine Schwachstelle entdeckt, entwirft CodeMender einen Patch und validiert ihn zunächst selbst im Hinblick darauf, ob er die Ursache des Problems behebt, funktional korrekt ist, keine Regressionen verursacht und den Stilrichtlinien entspricht. Nur Code, der diese Überprüfung besteht, wird am Ende an einen menschlichen Prüfer weitergegeben. Derzeit werden aber alle von CodeMender generierten Patches von menschlichen Forschern überprüft, bevor sie an den Upstream übermittelt werden.

Im Zuge der Entwicklung entstanden Techniken und Werkzeuge, die es CodeMender ermöglichen, Code zu verstehen und Änderungen effektiv zu validieren. Dazu gehört eine fortgeschrittene Code-Analyse, die auf statischer Analyse, dynamischer Analyse, Differenzialtests, Fuzzing und SMT-Solvern basiert. Durch den Einsatz dieser Tools zur systematischen Untersuchung von Codemustern, Kontroll- und Datenfluss kann CodeMender die Ursachen von Sicherheitsmängeln und Architekturschwächen besser identifizieren.

Weiter wurden spezielle Agenten entwickelt, die jeweils bestimmte Aspekte eines Problems adressieren. CodeMender verwendet beispielsweise ein umfangreiches, auf Sprachmodellen basierendes Kritikwerkzeug, das die Unterschiede zwischen dem ursprünglichen und dem geänderten Code hervorhebt, um zu überprüfen, ob die vorgeschlagenen Änderungen keine Regressionen verursachen. Bei Bedarf korrigiert sich der Agent selbst. Für das Patchen der Schwachstellen verwendet CodeMenger Debugger, Source-Code-Browser und andere Tools.

CodeMender kann auch proaktiv existierenden Code überarbeiten, um so zu sichereren Datenstrukturen und APIs zu kommen. So hat CodeMender beispielsweise -fbounds-safety-Annotationen auf Teile einer weit verbreiteten Bildkompressionsbibliothek namens libwebp angewendet. Im Ergebnis fügt der Compiler dem Code spezielle Prüfungen hinzu, die einen Angreifer daran hindern, einen Pufferüberlauf oder -unterlauf zur Ausführung von beliebigem Code auszunutzen. Vor einigen Jahren gab es eine solche Heap-Buffer-Overflow-Schwachstelle in libwebp tatsächlich (CVE-2023-4863), die mit den -fbounds-safety-Annotationen nicht entstanden wäre.

E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben