Google gab kürzlich bekannt, dass sein KI-basiertes Fuzzing-Tool OSS-Fuzz 26 Schwachstellen in Open-Source-Code-Bibliotheken entdeckt hat, darunter eine mittelschwere Schwachstelle in der OpenSSL-Kryptografiebibliothek.
Das Open-Source-Sicherheitsteam von Google erklärte in einem Blogbeitrag: „Die Entdeckung dieser Schwachstellen markiert einen neuen Meilenstein in der automatisierten Schwachstellenprüfung: Jede Schwachstelle wurde mithilfe von KI-generierten und -verbesserten Fuzzing-Zielen gefunden.“
Bildquelle: Das Bild wurde von KI generiert und stammt von Midjourney.
Die entdeckte OpenSSL-Schwachstelle, CVE-2024-9143 (CVSS-Score 4.3), ist ein Out-of-Bounds-Speicher-Schreibfehler, der zu einem Absturz der Anwendung oder zur Remote-Code-Ausführung führen kann. Das Problem wurde in mehreren OpenSSL-Versionen behoben, darunter 3.3.3, 3.2.4, 3.1.8, 3.0.16, 1.1.1zb und 1.0.2zl. Google weist darauf hin, dass diese Schwachstelle möglicherweise fast 20 Jahre lang im Code bestand und von traditionellen, manuell erstellten Fuzzing-Zielen nicht entdeckt werden konnte.
Google erwähnt außerdem, dass die KI-generierten Fuzzing-Ziele die Codeabdeckung von 272 C/C++-Projekten verbessert und über 370.000 Zeilen neuen Code hinzugefügt haben. Google erklärt, dass viele Fehler übersehen werden, weil die Codeabdeckung nicht gleichbedeutend mit der Abwesenheit von Fehlern ist. Die Codeabdeckung allein reicht nicht aus, um alle möglichen Codepfade und Zustände zu prüfen, da verschiedene Flags und Konfigurationen unterschiedliches Verhalten und damit verschiedene Schwachstellen auslösen können.
Diese KI-gestützte Schwachstellenfindung profitiert auch von der hervorragenden Leistung großer Sprachmodelle (LLMs) bei der Simulation von Entwickler-Fuzzing-Workflows, was den Automatisierungsgrad weiter erhöht. Darüber hinaus gab Google Anfang des Monats bekannt, dass sein LLM-basiertes Framework Big Sleep dazu beigetragen hat, eine Zero-Day-Schwachstelle im SQLite-Open-Source-Datenbank-Engine zu erkennen.
Um die Sicherheit seiner eigenen Codebasis zu verbessern, treibt Google die Migration von Code zu speicher-sicheren Sprachen wie Rust voran und behebt Speicher-Sicherheitslücken in bestehenden C++-Projekten. Dazu gehört die Migration zu sicheren Puffern und die Aktivierung von gehärtetem libc++, wodurch eine wichtige Klasse von Speicher-Sicherheitslücken durch Hinzufügen von Grenzprüfungen zu Standard-C++-Datenstrukturen eliminiert wird. Google gibt an, dass die Leistungseinbußen durch diese Verbesserungen minimal sind und durchschnittlich nur 0,30 % betragen.
Google betont weiter, dass die kürzlich von Open-Source-Mitwirkenden hinzugefügten gehärteten libc++ eine Reihe von Sicherheitsüberprüfungen einführen, die darauf abzielen, Schwachstellen wie Out-of-Bounds-Zugriffe in der Produktion zu erkennen. Obwohl C++ nicht vollständig speicher-sicher ist, reduzieren diese Verbesserungen das Risiko deutlich und machen die Software zuverlässiger und sicherer.
Wichtigste Punkte:
🌟 Googles OSS-Fuzz-Tool hat Schwachstellen in 26 Open-Source-Projekten entdeckt, darunter eine fast 20 Jahre alte Schwachstelle in OpenSSL.
🔍 KI-generierte Fuzzing-Ziele haben die Codeabdeckung von 272 C/C++-Projekten verbessert und über 370.000 Zeilen neuen Code hinzugefügt.
🔒 Google migriert Code zu speicher-sicheren Sprachen und verbessert die Sicherheit von C++-Projekten durch Maßnahmen wie gehärtetes libc++.