Google證實(shí)LLM可改善開(kāi)源軟件漏洞測(cè)試計(jì)劃OSS-Fuzz

來(lái)源:十輪網(wǎng)
作者:十輪網(wǎng)
時(shí)間:2023-08-22
3550
Google指出,善用大型語(yǔ)言模型(Large Language Model,LLM)可自動(dòng)化開(kāi)源軟件漏洞模糊測(cè)試計(jì)劃OSS-Fuzz,進(jìn)而使程序代碼的檢查范圍平均提升1.5%到31%。Google計(jì)劃之后發(fā)布工具,讓其他開(kāi)發(fā)人員也能用LLM對(duì)開(kāi)源項(xiàng)目自行模糊測(cè)試。

0821-ai-powered_fuzzing-by_google.jpg

Google指出,善用大型語(yǔ)言模型(Large Language Model,LLM)可自動(dòng)化開(kāi)源軟件漏洞模糊測(cè)試計(jì)劃OSS-Fuzz,進(jìn)而使程序代碼的檢查范圍平均提升1.5%到31%。Google計(jì)劃之后發(fā)布工具,讓其他開(kāi)發(fā)人員也能用LLM對(duì)開(kāi)源項(xiàng)目自行模糊測(cè)試。

模糊測(cè)試(fuzz testing)為于軟件中輸入無(wú)效或隨機(jī)數(shù)據(jù),來(lái)快速及全面監(jiān)控程序的反應(yīng),經(jīng)常被用來(lái)檢測(cè)軟件或計(jì)算機(jī)系統(tǒng)的安全漏洞。Google 2016年發(fā)布針對(duì)開(kāi)源軟件的模糊測(cè)試項(xiàng)目OSS-Fuzz,以協(xié)助開(kāi)發(fā)人員尋找軟件中的瑕疵或安全漏洞。一開(kāi)始支持C與C++語(yǔ)言,幾年下來(lái)擴(kuò)大到JVM/Java、Rust、Go與Python,也可以用于LLVM支持的語(yǔ)言。幾個(gè)月前,Google OSS-Fuzz項(xiàng)目小組做了一項(xiàng)實(shí)驗(yàn),使用Google大型模型語(yǔ)言(LLM)來(lái)提升OSS-Fuzz的性能。他們發(fā)現(xiàn)LLM可有效擴(kuò)大OSS-Fuzz服務(wù)對(duì)項(xiàng)目程序代碼覆蓋率,且不需撰寫(xiě)新的程序代碼。

OSS-Fuzz自2016年迄今,已識(shí)別出超過(guò)1,000個(gè)安全漏洞,但是Google認(rèn)為可以再更多。目前OSS-Fuzz一項(xiàng)開(kāi)源項(xiàng)目程序代碼的平均覆蓋率僅為30%,即大部分程序代碼都被遺漏了,因此項(xiàng)目小組相信,如果擴(kuò)大fuzz target,可以找到更多漏洞。Fuzz target是發(fā)送隨機(jī)輸入值測(cè)試程序代碼的函數(shù),但是撰寫(xiě)fuzz target得依不同項(xiàng)目進(jìn)行,且需要人力花時(shí)間撰寫(xiě),問(wèn)題是這些項(xiàng)目維護(hù)人員通常是志工,吃力又不討好。

為此Google訓(xùn)練LLM來(lái)撰寫(xiě)模糊測(cè)試fuzz target函數(shù)。項(xiàng)目小組寫(xiě)了一個(gè)評(píng)估框架架在OSS-Fuzz的檢查工具和LLM之間并展開(kāi)實(shí)驗(yàn)。他們Fuzz檢查工具(Introspector tool)找出樣本項(xiàng)目的程序代碼未經(jīng)模糊測(cè)試的部分,將程序代碼送到評(píng)估框架。評(píng)估框架發(fā)出一項(xiàng)提示,包含一些項(xiàng)目必要資訊,要求LLM撰寫(xiě)新的fuzz target。之后評(píng)估框架以LLM撰寫(xiě)的fuzz target執(zhí)行模糊測(cè)試,再觀察執(zhí)行結(jié)果及覆蓋率。如果fuzz target無(wú)法匯編,評(píng)估框架就會(huì)要求LLM修改fuzz target直到修正錯(cuò)誤。

一開(kāi)始,LLM撰寫(xiě)的fuzz target程序代碼的確無(wú)法匯編,但重復(fù)幾次并測(cè)試新的fuzz target后,研究人員發(fā)現(xiàn),開(kāi)源項(xiàng)目程序代碼覆蓋率平均增加了1.5%到31%。Google的樣本項(xiàng)目之一tinyxml2的程序代碼覆蓋率則由38%上升到69%,項(xiàng)目小組完全零介入。研究人員說(shuō),若以人力撰寫(xiě)來(lái)復(fù)制tinyxml2的結(jié)果,至少需要一天時(shí)間。這意味著,整個(gè)OSS-Fuzz現(xiàn)有處理的1,000多個(gè)項(xiàng)目,要以人力來(lái)擴(kuò)大覆蓋率,得花好幾年。

Google以LLM測(cè)試OpenSSL項(xiàng)目時(shí),撰寫(xiě)了一個(gè)新的target,在之前沒(méi)測(cè)試的程序代碼又發(fā)現(xiàn)了CVE-2022-3602。這雖非新漏洞,但也顯示,只要擴(kuò)大程序代碼覆蓋率,就可能找出更多漏洞。

基于tinyxml2實(shí)驗(yàn)的成功證明,加入LLM有望能大幅提升程序代碼覆蓋,Google希望把LLM的自動(dòng)化技術(shù)正式用在其他OSS-Fuzz項(xiàng)目上。

幾個(gè)月后,Google會(huì)將其評(píng)估框架開(kāi)源,讓其他研究人員測(cè)試其LLM撰寫(xiě)的fuzz target。Google也會(huì)持續(xù)改善其LLM撰寫(xiě)fuzz target的能力及基礎(chǔ)架構(gòu),并且和Google Assured OSS部門(mén)合作,以便確保Google Cloud客戶拿到更安全的開(kāi)源軟件。

立即登錄,閱讀全文
原文鏈接:點(diǎn)擊前往 >
版權(quán)說(shuō)明:本文內(nèi)容來(lái)自于十輪網(wǎng),本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開(kāi)掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家