KI
KI-gestützte Schwachstellenbehebung: was KI-Fix-Pull-Requests leisten können
Der langsame Teil des Schwachstellenmanagements war nie das Finden der Schwachstellen. Es war das Schreiben des Fixes, das Anpassen des Codes an ein Breaking-Upgrade und das Review der Änderung. Genau darin ist KI inzwischen gut. Ob ihre Fixes helfen, hängt davon ab, was sie beheben soll.
Aktualisiert am
Was KI-gestützte Behebung ist
Bei der KI-gestützten Schwachstellenbehebung erzeugt ein Sprachmodell den Fix für eine bekannte Schwachstelle. Es gibt sie in drei Formen:
- Vorschläge für Code-Fixes. Ein Modell schlägt neben einem Alert der statischen Analyse einen Patch vor. GitHub Copilot Autofix zum Beispiel erzeugt laut GitHub „automatisch Vorschläge für Codeänderungen zu CodeQL-Alerts, die in Pull Requests und im Standard-Branch gefunden werden“.
- Abhängigkeits-Upgrades, die den Code anpassen. Eine Versionsanhebung ist einfach. Schwierig sind die umbenannte Funktion oder der geänderte Standardwert, die die neue Version mitbringt. Ein Modell kann diese Folgeänderungen im selben Pull Request vornehmen.
- Agentische Behebung. Ein Agent führt den Fix selbstständig über mehrere Schritte: Code ändern, Build und Tests ausführen, Fehler lesen, erneut versuchen und erst dann einen Pull Request öffnen, wenn die Prüfungen bestehen.
Wo sich KI-Fixes bezahlt machen
Regelbasierte Update-Bots öffnen bereits Pull Requests, die ein verwundbares Paket auf eine behobene Version anheben. Sie bleiben stecken, wenn das Upgrade etwas kaputt macht, denn das Anpassen des aufrufenden Codes lässt sich nicht als Regel fassen. Genau dort staut sich der Rückstand: das Sicherheitsupdate, das monatelang offen bleibt, weil niemand Zeit hat, sich durch den Wechsel der Major-Version zu arbeiten.
Ein Changelog lesen, die Aufrufstellen finden und umschreiben: Das ist die Art Arbeit, die Sprachmodelle gut erledigen. Ein KI-Fix, der mit dem Upgrade und den Codeänderungen kommt, gebaut und getestet, macht aus einer Woche Aufmerksamkeit eines Menschen ein Review.
Wo KI-Fixes schiefgehen
Die klarsten Aussagen zu den Grenzen stammen von den Anbietern selbst. Zu Copilot Autofix schreibt GitHub:
- Es „nutzt ein generatives Modell, das nicht deterministisch ist. Selbst bei gleichem Alert und gleichem Code gelingt ihm womöglich kein brauchbarer Vorschlag, oder der Vorschlag fällt bei jedem Versuch anders aus.“
- „Das System weiß nicht, welche Abhängigkeitsversionen unterstützt oder sicher sind, und schlägt womöglich erfundene Abhängigkeiten vor, die unter statistisch wahrscheinlichen Namen veröffentlicht wurden.“
Der zweite Punkt ist nicht hypothetisch. Forschung zu codegenerierenden Modellen hat gemessen, wie oft sie Pakete empfehlen, die es nicht gibt: Namen, die ein Angreifer registrieren und mit Malware füllen kann. Ein Fix, der ein halluziniertes Paket installiert, ersetzt eine Schwachstelle durch eine schlimmere.
Drei Leitplanken decken den Großteil des Risikos ab:
- Jeden Fix bauen und testen, bevor ein Mensch ihn prüft, damit die Review-Zeit in Fixes fließt, die funktionieren.
- Jedes hinzugefügte oder geänderte Paket prüfen, gegen die Registry und die erwartete Version.
- Den Merge bei einem Menschen lassen. Ein KI-Fix ist der Pull Request eines Beitragenden, keine Entscheidung.
Garbage in, Pull Requests out
Ein KI-Tool zur Behebung behebt die Schwachstellen, die man ihm gibt. Wird diese Liste aus Lockfiles oder einem gescannten Image rekonstruiert, erbt sie jede Lücke der Rekonstruktion: Tools, die der Build herunterlädt und die kein Manifest deklariert, Versionen, die von dem abweichen, was der Build aufgelöst hat, Pakete, die aus Caches wiederhergestellt wurden. Das Tool öffnet dann selbstbewusste Pull Requests für manche Schwachstellen und erfährt von anderen nie.
Manche Teams gehen weiter und lassen ein Modell die Abhängigkeiten selbst ermitteln. Damit wird auch das Inventar nicht deterministisch, und das ist genau der eine Teil des Prozesses, der jedes Mal gleich ausfallen sollte. KI-generierte SBOMs erklärt, warum ein geschätztes Inventar kein Nachweis ist.
Das Muster, das funktioniert: deterministische Daten als Unterbau und KI-Urteilsvermögen obendrauf. Eine aufgezeichnete Liste dessen, was jeder Build tatsächlich enthält, per Nachschlagen mit Advisories abgeglichen, und KI, die den Fix schreibt.
Wo CRACI ins Bild passt
CRACI ist die deterministische Schicht. Es führt Ihre GitHub-Actions-Jobs auf eigenen Runnern aus und zeichnet die Pakete auf, die jeder Job tatsächlich geladen hat, einschließlich transitiver Abhängigkeiten und aus Caches wiederhergestellter Pakete, mit einem Vollständigkeitsstatus für jeden Job. Es bewertet überwachte SBOMs laufend neu, sodass ein neues Advisory bei den Builds auftaucht, die es betrifft, und Sicherheitsteams sichten jeden Befund und geben ihn an das Team weiter, das für den Fix zuständig ist.
Das ist die Liste, mit der ein KI-Fix beginnen sollte, und nach dem Merge zeigt die SBOM des nächsten Builds, ob die behobene Version wirklich die ist, die der Build verwendet hat. Die gesamte Funktion beschreibt Schwachstellenverfolgung; wohin welcher Ansatz gehört, zeigt KI vs. deterministische Sicherheit.
KI-gestützte Schwachstellenbehebung: häufig gestellte Fragen
Was ist KI-gestützte Schwachstellenbehebung?
Bei der KI-gestützten Schwachstellenbehebung erzeugt ein Sprachmodell den Fix für eine Schwachstelle: eine Codeänderung für einen Befund der statischen Analyse oder ein Abhängigkeits-Upgrade samt den Codeänderungen, die das Upgrade erfordert. Das Ergebnis ist meist ein Vorschlag oder ein Pull Request, den ein Mensch prüft.
Was ist agentische Behebung?
Bei der agentischen Behebung erhält ein KI-Agent die Werkzeuge, um einen Fix selbstständig über mehrere Schritte zu führen: den Befund lesen, den Code ändern, Build und Tests ausführen und so lange nachbessern, bis sie bestehen, dann einen Pull Request öffnen. Der Unterschied zu einem einmaligen Vorschlag: Der Agent prüft seine eigene Arbeit, bevor ein Mensch sie sieht.
Kann man KI-generierte Security-Fixes bedenkenlos mergen?
Behandeln Sie sie wie den Pull Request jedes anderen Beitragenden. GitHub beschreibt Copilot Autofix als nicht deterministisch und warnt, dass es erfundene Abhängigkeiten vorschlagen kann. Prüfen Sie also die Änderung, führen Sie die Tests aus und kontrollieren Sie, dass jedes hinzugefügte Paket existiert und das erwartete ist.
Kann KI Schwachstellen in Abhängigkeiten finden?
Für diesen Teil ist sie das falsche Werkzeug. Ob eine Paketversion von einem bekannten Advisory betroffen ist, lässt sich nachschlagen, und das Ergebnis sollte jedes Mal gleich ausfallen. Lassen Sie deterministische Tools die Liste der verwundbaren Pakete aus einer aufgezeichneten SBOM erstellen und setzen Sie KI dort ein, wo Urteilsvermögen hilft: beim Schreiben und Anpassen des Fixes.
Was braucht ein KI-Tool zur Behebung, um gut zu funktionieren?
Eine genaue Liste dessen, was tatsächlich verwundbar ist, einen Build und eine Testsuite, gegen die es den Fix laufen lassen kann, und einen Menschen, der über den Merge entscheidet. Am häufigsten fehlt das Erste: Ein Fix-Pull-Request für ein Paket, das das Produkt gar nicht ausliefert, ist Rauschen, und ein verwundbares Paket, das im Inventar fehlt, bekommt nie einen.
Geben Sie Ihren Fixes den richtigen Ausgangspunkt
Buchen Sie eine Demo und lassen Sie einen Ihrer Workflows auf CRACI laufen. Sehen Sie jedes verwundbare Paket, das der Build tatsächlich geladen hat, aufgezeichnet statt geschätzt.
Demo buchen