近日,微軟開源了OneFuzz——一個(gè)微軟內(nèi)部使用的,由開發(fā)人員驅(qū)動(dòng)的持續(xù)開發(fā)模糊測(cè)試平臺(tái)。開源后,世界各地的開發(fā)人員都可以通過(guò)OneFuzz直接從其開發(fā)系統(tǒng)接收模糊測(cè)試結(jié)果。
模糊測(cè)試是一種自動(dòng)化的軟件測(cè)試技術(shù),將隨機(jī)、意外、畸形和/或無(wú)效數(shù)據(jù)輸入計(jì)算機(jī)程序,試圖發(fā)現(xiàn)可能影響程序安全性和性能的異常(例如崩潰、內(nèi)存泄漏等)和意外行為。
Azure驅(qū)動(dòng)的持續(xù)開發(fā)模糊測(cè)試
OneFuzz項(xiàng)目是Azure的可擴(kuò)展、自托管的Fuzzing即服務(wù)平臺(tái),該平臺(tái)聚集了多個(gè)現(xiàn)有的Fuzzer,并可(通過(guò)自動(dòng)化)整合崩潰檢測(cè)、覆蓋范圍跟蹤和輸入控制等功能。
Microsoft內(nèi)部團(tuán)隊(duì)使用OneFuzz來(lái)加強(qiáng)Windows、Microsoft Edge和其他軟件產(chǎn)品的安全性開發(fā)。
“傳統(tǒng)上,模糊測(cè)試對(duì)于開發(fā)人員來(lái)說(shuō)是一把雙刃劍:在軟件開發(fā)生命周期中發(fā)現(xiàn)可行的缺陷方面非常有效,但從中獲取、執(zhí)行和提取信息卻非常復(fù)雜?!蔽④浭紫踩浖こ藤Z斯汀?坎貝爾(Justin Campbell)和特殊項(xiàng)目管理高級(jí)總監(jiān)邁克?沃克( Mike Walker)指出。
“這種復(fù)雜性要求專門的安全工程團(tuán)隊(duì)來(lái)開發(fā)和運(yùn)行模糊測(cè)試功能,這非常有用但成本很高。使開發(fā)人員能夠執(zhí)行模糊測(cè)試,可以將漏洞發(fā)現(xiàn)轉(zhuǎn)移到開發(fā)生命周期的早期,同時(shí)釋放安全工程團(tuán)隊(duì)的精力,從事更加重要的工作?!?/p>
OneFuzz的功能
OneFuzz將允許開發(fā)人員執(zhí)行模糊測(cè)試任務(wù)(規(guī)模從幾臺(tái)虛擬機(jī)到數(shù)千個(gè)內(nèi)核不一),只需將一條命令輸入開發(fā)系統(tǒng)即可。
該工具的功能包括:
·可編排的模糊測(cè)試工作流程:開放源代碼意味著用戶將可以使用自己的模糊測(cè)試工具,替換工具和管理種子輸入;
·內(nèi)置的集成模糊測(cè)試:默認(rèn)情況下,支持多個(gè)模糊測(cè)試器協(xié)同工作,在不同模糊測(cè)試技術(shù)之間交換分享輸入信息;
·程序化分類和結(jié)果去重;
·按需實(shí)時(shí)調(diào)試發(fā)現(xiàn)的崩潰:用戶可以按需或從其開發(fā)系統(tǒng)中實(shí)時(shí)調(diào)試會(huì)話;
·透明化設(shè)計(jì)允許溯源到任意階段;
·信息豐富的遙測(cè):輕松監(jiān)視所有模糊測(cè)試;
·原生設(shè)計(jì)支持多平臺(tái):可以使用用戶自己的OS開發(fā),內(nèi)核或嵌套的管理程序在Windows和varios Linux OS系統(tǒng)上執(zhí)行模糊測(cè)試;
·崩潰報(bào)告通知回調(diào):當(dāng)前支持Azure DevOps工作項(xiàng)和Microsoft Teams消息;
·代碼覆蓋率KPI:用戶可以使用代碼覆蓋率作為關(guān)鍵指標(biāo)來(lái)監(jiān)視進(jìn)度并激發(fā)測(cè)試。
OneFuzz將在未來(lái)幾天通過(guò)GitHub(https://github.com/microsoft/onefuzz)提供給全球。微軟表示將繼續(xù)通過(guò)公司各個(gè)團(tuán)隊(duì)的貢獻(xiàn)來(lái)更新和擴(kuò)展它,并歡迎來(lái)自更大范圍的開源社區(qū)的貢獻(xiàn)和建議。