Google heeft onthuld dat zijn AI-aangedreven fuzzing-tool, OSS-Fuzz, is gebruikt om 26 kwetsbaarheden in verschillende open-sourcecodeopslagplaatsen te helpen identificeren, waaronder een middelzware fout in de cryptografische bibliotheek OpenSSL.
“Deze specifieke kwetsbaarheden vertegenwoordigen een mijlpaal voor het geautomatiseerd opsporen van kwetsbaarheden: ze zijn allemaal gevonden met AI, met behulp van door AI gegenereerde en verbeterde fuzz-doelen”, zei het open-source beveiligingsteam van Google in een blogpost gedeeld met The Hacker News.
De OpenSSL-kwetsbaarheid in kwestie is CVE-2024-9143 (CVSS-score: 4,3), een fout bij het schrijven van geheugen buiten het bereik die kan resulteren in een applicatiecrash of uitvoering van externe code. Het probleem is verholpen in OpenSSL-versies 3.3.3, 3.2.4, 3.1.8, 3.0.16, 1.1.1zb en 1.0.2zl.
Google, dat in augustus 2023 de mogelijkheid heeft toegevoegd om grote taalmodellen (LLM’s) te gebruiken om de fuzzing-dekking in OSS-Fuzz te verbeteren, zei dat de kwetsbaarheid waarschijnlijk al twintig jaar aanwezig is in de codebase en dat deze “niet ontdekt zou zijn geweest met bestaande fuzz-doelen geschreven door mensen.”
Bovendien merkte de technologiegigant op dat het gebruik van AI om fuzz-doelen te genereren de codedekking in 272 C/C++-projecten heeft verbeterd, waardoor meer dan 370.000 regels nieuwe code zijn toegevoegd.
“Een reden dat dergelijke bugs zo lang onontdekt kunnen blijven, is dat lijndekking geen garantie is dat een functie vrij is van bugs”, aldus Google. “Codedekking als statistiek is niet in staat om alle mogelijke codepaden en -statussen te meten – verschillende vlaggen en configuraties kunnen verschillend gedrag veroorzaken en verschillende bugs aan het licht brengen.”
Deze door AI ondersteunde ontdekkingen van kwetsbaarheden worden ook mogelijk gemaakt door het feit dat LLM’s bedreven blijken te zijn in het emuleren van de vage workflow van een ontwikkelaar, waardoor meer automatisering mogelijk wordt.
De ontwikkeling komt nadat het bedrijf eerder deze maand onthulde dat zijn op LLM gebaseerde raamwerk genaamd Big Sleep de detectie van een zero-day kwetsbaarheid in de SQLite open-source database-engine mogelijk maakte.
Tegelijkertijd heeft Google gewerkt aan de transitie van zijn eigen codebases naar geheugenveilige talen zoals Rust, terwijl het ook mechanismen heeft aangepast om veiligheidskwetsbaarheden in het ruimtelijk geheugen aan te pakken – die optreden wanneer het mogelijk is dat een stukje code toegang krijgt tot geheugen dat buiten het beoogde doel valt. grenzen – binnen bestaande C++-projecten, inclusief Chrome.
Dit omvat het migreren naar Safe Buffers en het inschakelen van geharde libc++, waarvan de laatste grenscontrole toevoegt aan standaard C++-datastructuren om een aanzienlijke klasse van ruimtelijke veiligheidsbugs te elimineren. Verder werd opgemerkt dat de overhead die wordt opgelopen als gevolg van het doorvoeren van de wijziging minimaal is (dwz een prestatie-impact van gemiddeld 0,30%).
“Verharde libc++, onlangs toegevoegd door open source-bijdragers, introduceert een reeks beveiligingscontroles die zijn ontworpen om kwetsbaarheden op te sporen, zoals toegang buiten het bereik in de productie”, aldus Google. “Hoewel C++ niet volledig geheugenveilig zal worden, verminderen deze verbeteringen het risico (…), wat leidt tot betrouwbaardere en veiligere software.”