演講嘉賓 | 梁洪亮
回顧整理 | 廖 濤
排版校對(duì) | 宋夕明
嘉賓介紹
OS安全分論壇
梁洪亮,博士,北京郵電大學(xué)副教授,博士生導(dǎo)師。研究興趣為可信軟件與智能系統(tǒng)。
視頻回顧
打開嗶哩嗶哩APP,觀看更清晰視頻
正文內(nèi)容
軟件缺陷是影響軟件質(zhì)量的關(guān)鍵因素,軟件缺陷分析能夠幫助開發(fā)和測(cè)試團(tuán)隊(duì)及時(shí)識(shí)別和分析軟件中的缺陷問(wèn)題,從而制定相應(yīng)的解決方案,并持續(xù)改進(jìn)軟件質(zhì)量和可靠性。目前有哪些高效可靠的軟件缺陷分析方法呢?北京郵電大學(xué)梁洪亮老師在第二屆OpenHarmony技術(shù)大會(huì)上進(jìn)行了精彩分享。
相較于黑盒/白盒測(cè)試而言,模糊測(cè)試(Fuzzing)具有可完全自動(dòng)化、高效率、無(wú)誤報(bào)等優(yōu)勢(shì),已經(jīng)成為當(dāng)前最熱門的軟件缺陷分析方法之一。通過(guò)變異給定的一組種子輸入,模糊測(cè)試可以生成大量隨機(jī)的或意料之外的測(cè)試用例,以觸發(fā)被測(cè)軟件中的崩潰、斷言失敗或內(nèi)存泄漏等異常。截止2023年8月,谷歌開放的開源模糊測(cè)試框架OSS-Fuzz已幫助1000個(gè)項(xiàng)目識(shí)別并修復(fù)了10000多個(gè)漏洞和36000個(gè)缺陷。
定向模糊測(cè)試是指給定一組測(cè)試目標(biāo)(例如代碼位置),關(guān)注于朝向這些測(cè)試目標(biāo)進(jìn)行搜索,可用于補(bǔ)丁測(cè)試、崩潰復(fù)現(xiàn)、靜態(tài)分析報(bào)告驗(yàn)證等場(chǎng)景。盡管現(xiàn)實(shí)軟件中通常存在多個(gè)缺陷或漏洞,但是已有模糊測(cè)試方法和工具難以處理多個(gè)目標(biāo)。例如,傳統(tǒng)模糊測(cè)試工具的粗粒度能量調(diào)度方案導(dǎo)致測(cè)試的覆蓋率不全面且執(zhí)行效率較低;導(dǎo)向模糊測(cè)試工具在探索階段和利用階段也存在效率和質(zhì)量的平衡難題。
針對(duì)上述問(wèn)題,梁老師團(tuán)隊(duì)提出并實(shí)現(xiàn)了序列引導(dǎo)的多目標(biāo)混合模糊測(cè)試方案“LeoFuzz”。LeoFuzz的核心思想為:
在靜態(tài)分析階段,給定被測(cè)程序和目標(biāo)集合,LeoFuzz首先生成目標(biāo)序列,并對(duì)待測(cè)程序進(jìn)行插樁編譯,生成可執(zhí)行程序。
在模糊測(cè)試階段,如果模糊器(Fuzzer)生成的種子輸入使得被測(cè)程序崩潰,則存儲(chǔ)到崩潰隊(duì)列中;如果增加了目標(biāo)序列覆蓋率,則存儲(chǔ)到導(dǎo)向隊(duì)列中;如果增加了代碼覆蓋率,則存儲(chǔ)到覆蓋隊(duì)列中,否則丟棄。
模糊器和混合執(zhí)行器獨(dú)立執(zhí)行被測(cè)程序,并通過(guò)共享覆蓋種子隊(duì)列和導(dǎo)向種子隊(duì)列相互幫助。
LeoFuzz創(chuàng)新提出了動(dòng)態(tài)協(xié)調(diào)探索-利用兩階段策略。在最初的探索階段,當(dāng)覆蓋種子數(shù)量在總種子中的比率大于某個(gè)閾值時(shí),意味著模糊器具有足夠的代碼覆蓋信息,那么應(yīng)切換到利用階段。當(dāng)利用階段未生成導(dǎo)向種子的連續(xù)執(zhí)行次數(shù)超過(guò)某個(gè)閾值時(shí),表明當(dāng)前模糊器的利用能力不足,那么應(yīng)切換到探索階段。
同時(shí),LeoFuzz也提出了新的能量調(diào)度策略,重點(diǎn)考慮了種子和目標(biāo)之間的多種關(guān)系:目標(biāo)序列TSi的優(yōu)先級(jí)priority、目標(biāo)序列TSi的全局最大覆蓋率gMaxCov、種子在目標(biāo)序列 (TSi) 上的序列覆蓋率seqCov。用一個(gè)綜合因子(CF)來(lái)表示它們的關(guān)系。CF的表達(dá)式如下:
在基于7個(gè)開源軟件(例如objdump,readelf,cxxfilt等)的31個(gè)漏洞的實(shí)驗(yàn)評(píng)估中,LeoFuzz對(duì)單個(gè)目標(biāo)的測(cè)試表現(xiàn)優(yōu)于Beacon、QSYM、AFLGo、Lolly和Berry等基線工具;對(duì)多個(gè)目標(biāo)的測(cè)試表現(xiàn)也優(yōu)于QSYM、AFLGo、Lolly、Berry和WindRanger等基線工具。
通過(guò)創(chuàng)新的技術(shù)手段,LeoFuzz大幅提升了軟件系統(tǒng)缺陷的發(fā)現(xiàn)效率和準(zhǔn)確率,為開源社區(qū)軟件安全分析提供了一種高效的解決思路。未來(lái),希望更多的創(chuàng)新技術(shù)能夠使能OpenHarmony,為OpenHarmony技術(shù)生態(tài)助力。
E N D
關(guān)注我們,獲取更多精彩。
審核編輯 黃宇
-
軟件
+關(guān)注
關(guān)注
69文章
4619瀏覽量
86995 -
軟件缺陷
+關(guān)注
關(guān)注
0文章
6瀏覽量
7188
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論