[English]Es gibt sie, die sinnvollen Beispiele zur KI-Anwendung. Das Project Zero Team hat nun dargelegt, wie es im Projekt "Big Sleep" (als Nachfolger von "Naptime") ein Large Language Model (LLM) auf Software zur Schwachstellenanalyse los ließ. Dabei wurde eine bisher unbekannte SQLite-Schwachstelle aufgedeckt, bevor diese in eine allgemein freigegebenen Version übernommen wurde. Das zeigt das Potential von AI zur Schwachstellenanalyse während der Software-Entwicklung.
Anzeige
Ich bin gestern über nachfolgenden Tweet auf dieses Projekt "Big Sleep" und die Offenlegung der Schwachstelle im Artikel From Naptime to Big Sleep: Using Large Language Models To Catch Vulnerabilities In Real-World Code gestoßen.
Das Projekt Naptime
Bei Google gab es bereits ein Projekt Naptime zur Bewertung der Sicherheitsfähigkeiten von großen Sprachmodellen (siehe Project Naptime: Evaluating Offensive Security Capabilities of Large Language Models). Im Projekt wurde ein Framework für die Schwachstellenforschung mit Hilfe von LLMs entwickelt und dann am CyberSecEval2-Benchmarks von Meta getestet. Dadurch konnte das Framework und das LLM so verbessert werden, dass Spitzenleistung bei der Analyse auf Schwachstellen erzielt wurden. Seitdem hat sich Naptime zu Big Sleep entwickelt, heißt es weiter. Big Sleep entstand aus einer Zusammenarbeit zwischen Google Project Zero und Google DeepMind.
Big Sleep deckt SQLite-Schwachstelle auf
Das Project Zero Team feiert nur den ersten Erfolg der AI-gestützten Analyse von Schwachstellen an einem Real-World-Beispiel. Big Sleep wurde auf die weit verbreitete Open-Source-Datenbank-Engine SQLite angesetzt, um diese auf Schwachstellen zu überprüfen.
Anzeige
Dabei wurde die erste reale Schwachstelle vom auf Gemini 1.5 Pro basierenden Big Sleep-Agenten entdeckt. Es handelt sich um einen Stack-Buffer-Underflow in SQLite, der ausnutzbar gewesen wäre. Die entdeckte Schwachstelle wurde Anfang Oktober 2024 an die Entwickler gemeldet. Diese haben die Schwachstelle noch am selben Tag behoben. Diese Schwachstelle wurde wohl in einer Beta-Fassung von SQLite gefunden, so dass diese nie in einer offiziellen Version enthalten war. Daher sind SQLite-Benutzer von der aufgedeckten Schwachstelle nicht betroffen gewesen.
Inspiriert wurde dieser Versuch dadurch, dass Anfang 2024 das Team Atlanta auf der DARPA AIxCC-Veranstaltung eine Null-Pointer-Dereferenz in SQLite entdeckte. Das Google Team nahm sich darauf hin SQLite in ihrem Framework vor und die AI entdeckte ebenfalls eine Schwachstelle.
Das Team geht davon aus, dass dies der erste erste öffentlich gewordene Fall ist, bei dem es einem KI-Agenten gelungen ist, ein bisher unbekanntes, ausnutzbares Sicherheitsproblem im Speicher einer weit verbreiteten, realen Software zu finden. Das Team sieht ein großes Potential beim Aufspüren von Schwachstellen in Software durch AI, bevor diese Software überhaupt veröffentlicht wird. Das nimmt Angreifern die Möglichkeit, Schwachstellen in Produkten nachträglich zu entdecken. Details lassen sich im verlinkten Beitrag des Google-Teams nachlesen.
Das Thema KI-gestützte Code-Prüfung scheint in der Luft zu liegen – im Nachgang bin ich auf diesen heise-Beitrag gestoßen. Der Anbieter Tabnine hat eine KI-Lösung zum automatischen Code-Reviews vorgestellt.
Anzeige
Bedarf es irgend eines Aufwands, Stack-Buffer-Underflow-Pfusch aufzuspüren/bereits beim Programmieren zu unterlassen?
Nö.
Einfach die richtige Programmiersprache benutzen, wie z.B. Rust.
Da ist so etwas unmöglich.
Außer man muss externe Komponenten z.B. per PInvoke einbinden, die nicht in einer solchen Sprache geschrieben sind. Wobei ich nicht sicher bin (mangels Erfahrung mit Rust) ob Rust das dann trotzdem abfangen kann, aber andere Sprachen die selbst keine Pointer verwenden, haben jedenfalls dann trotzdem das Problem.
KI-gestützte Code-Prüfung wird dazu führen, dass dann niemand mehr selbst die offensichtlichsten Fehler benennt, weil die KI hat ja recht. Des Kaisers neue Kleiner in Neuauflage.
Wieder dieser KI Werbeblabla! Das Vorgehen nennt sich Fuzzing und gab es vor dem Totschlagblödsinn KI!