近日,谷歌宣佈其基於人工智能的模糊測試工具 OSS-Fuzz 成功發現了26個開源代碼庫中的漏洞,其中包括 OpenSSL 加密庫中的一箇中等嚴重性漏洞。

谷歌的開源安全團隊在一篇分享的博客文章中表示:“這些漏洞的發現標誌着自動化漏洞檢測的新里程碑:每個漏洞都是通過 AI 生成和增強的模糊測試目標找到的。”

代碼 互聯網 電腦

圖源備註:圖片由AI生成,圖片授權服務商Midjourney

此次發現的 OpenSSL 漏洞編號爲 CVE-2024-9143(CVSS 評分爲4.3),其表現爲一個越界內存寫入錯誤,可能導致應用程序崩潰或遠程代碼執行。該問題已在 OpenSSL 的多個版本中得到修復,包括3.3.3、3.2.4、3.1.8、3.0.16、1.1.1zb 和1.0.2zl。谷歌指出,這個漏洞可能在代碼庫中存在了近20年,而傳統人類編寫的模糊測試目標無法發現該問題。

谷歌還提到,藉助 AI 生成的模糊測試目標,272個 C/C++ 項目的代碼覆蓋率得到了提升,增加了超過370,000行的新代碼。谷歌解釋道,之所以許多錯誤會被忽視,是因爲代碼覆蓋率並不等同於功能沒有漏洞。僅靠代碼覆蓋率這一指標並不能衡量所有可能的代碼路徑和狀態,因爲不同的標誌和配置可能會觸發不同的行爲,從而暴露出不同的漏洞。

這種 AI 輔助的漏洞發現還得益於大語言模型(LLMs)在模擬開發者模糊測試工作流程方面的出色表現,進一步提高了自動化程度。此外,谷歌本月初還透露,其基於 LLM 的框架 Big Sleep 幫助檢測到 SQLite 開源數據庫引擎中的一個零日漏洞。

爲了提高自身代碼庫的安全性,谷歌正在推動將代碼遷移到內存安全語言如 Rust,並對現有的 C++ 項目進行空間內存安全漏洞的修復。這包括遷移到安全緩衝區並啓用硬化 libc++,通過對標準 C++ 數據結構添加邊界檢查,消除一類重要的空間安全漏洞。谷歌表示,實施這些改進所造成的性能損耗極小,平均僅爲0.30%。

谷歌進一步強調,最近由開源貢獻者添加的硬化 libc++ 引入了一系列安全檢查,旨在在生產環境中捕捉諸如越界訪問等漏洞。儘管 C++ 語言無法完全實現內存安全,這些改進無疑降低了風險,使軟件更加可靠和安全。

劃重點:

🌟 谷歌的 OSS-Fuzz 工具發現了26個開源項目中的漏洞,包括一個存在近20年的 OpenSSL 漏洞。  

🔍 AI 生成的模糊測試目標提高了272個 C/C++ 項目的代碼覆蓋率,增加了超過370,000行新代碼。  

🔒 谷歌正在將代碼遷移到內存安全語言,並通過硬化 libc++ 等措施提升 C++ 項目的安全性。