Google 宣佈大型語言模型 (LLM) 加入 OSS-Fuzz 計畫,可讓這項模糊測試計畫檢查效率更高。
OSS-Fuzz 是針對開原碼軟體執行模糊測試,並私下通知漏洞的免費方案,由 Google 在 2016 年將內部的模糊測試工具專案開放原始碼而成。 Google 表示,使用 LLM,能讓 OSS-Fuzz 擴大程式碼覆蓋範圍到涵括 1,000 多項專案,也無需手動撰寫新程式碼。
模糊測試是以藉由對程式發送隨機輸入以找出安全漏洞的安全研究計畫。要是程式內有漏洞導致發生例外事件、當掉或伺服器錯誤,研究人員可以分析測試結果,加速辨識這些情形的起因。但是模糊測試相當仰賴人力撰寫測試目標及函式來測試一段段程式,因此 Google 工程式想了解是不是能用 LLM 改良 OSS-Fuzz 專案。
Google 表示,迄今,OSS-Fuzz 專案已經在開放原始碼軟體專案中找出 1 萬多項漏洞,但研究人員相信現今 OSS-Fuzz 對開放原始碼軟體專案程式碼平均覆蓋率僅 30% 。如果擴大覆蓋率,可以找到更多漏洞。
為了進行測試,Google 工程師開發了評估框架,放在 OSS-Fuzz 及 LLM 之間,然後寫了聊天機器人(提示)功能,讓 LLM 可用以撰寫新的模糊測試。一開始,他們的聊天機器人寫出的程式碼不會組譯,但經過幾輪的測試,以及嘗試新的模糊測試目標,程式碼涵蓋率成長率增加了 1.5% 到 31% 。
其中 tinyxml2 專案的程式碼覆蓋率從 38% 成長到 69%,完全不需人為介入。更重要的是省了大量時間。有 LLM 加持,tinyxml2 只需 1 天,這意謂著,如果是全部人力來做要花好幾年。
經由這項實驗,Google 表示 LLM 自動產生作業目標來重新辨識 CVE-2022-3602,涵括以前沒有檢視到的程式碼。雖然沒有發現新漏洞,但他們相信可以找到原本模糊測試忽略掉的漏洞。
Google 計畫再把評估框架工具開放原始碼,公開給想要自動化模糊測試的研究人員。
來源:SecurityWeek
