近日,谷歌開源了一個(gè)模糊測(cè)試基礎(chǔ)設(shè)施——ClusterFuzz,可以非常簡(jiǎn)單地自動(dòng)化查找并修復(fù)程序中的 bug。
模糊測(cè)試是一種用于自動(dòng)化檢測(cè)軟件中存在的問題的方法,其通過向目標(biāo)程序提供意外輸入來實(shí)現(xiàn)。它能有效地發(fā)現(xiàn)可以帶來嚴(yán)重安全隱患的內(nèi)存損壞錯(cuò)誤。手動(dòng)查找這些問題既困難又耗時(shí),盡管有嚴(yán)格的代碼審查實(shí)踐,但難免會(huì)漏掉一些問題。對(duì)于使用諸如 C/C++ 這類不安全的語言編寫的軟件項(xiàng)目,模糊測(cè)試是確保其安全性和穩(wěn)定性的關(guān)鍵環(huán)節(jié)。
項(xiàng)目團(tuán)隊(duì)表示,為了使模糊測(cè)試行之有效,它必須是連續(xù)的、大規(guī)模執(zhí)行,并且集成到軟件項(xiàng)目的開發(fā)過程中,而為了在 Chrome 上提供這些功能,他們編寫了 ClusterFuzz商城店商網(wǎng)站解決方案,這是一個(gè)運(yùn)行在 25000 多個(gè)核心上的模糊測(cè)試基礎(chǔ)設(shè)施。兩年前,團(tuán)隊(duì)開始將 ClusterFuzz 作為一項(xiàng)免費(fèi)服務(wù)通過 OSS-Fuzz 向開源項(xiàng)目提供。如今 ClusterFuzz 已開源,任何人都可以使用。
ClusterFuzz 研發(fā)到現(xiàn)在已經(jīng)過 8 年時(shí)間,其旨在無縫地融入開發(fā)人員工作流程,并使得查找 bug 并修復(fù)它們變得非常簡(jiǎn)單。ClusterFuzz 提供端到端的自動(dòng)化,從 bug 檢測(cè)到分類
企業(yè)網(wǎng)站建設(shè),到錯(cuò)誤報(bào)告,最后到錯(cuò)誤報(bào)告的自動(dòng)閉合
網(wǎng)站制作收費(fèi)標(biāo)準(zhǔn),特性包括:
高度可擴(kuò)展,谷歌的內(nèi)部實(shí)例運(yùn)行在超過 25000 臺(tái)機(jī)器上
準(zhǔn)確的去副本化(Accurate deduplication)
問題跟蹤器的全自動(dòng)錯(cuò)誤歸檔和關(guān)閉
最小化測(cè)試用例
通過二分法回歸查找
提供分析 fuzzer 性能和崩潰率的統(tǒng)計(jì)信息
易于使用的 Web 界面,用于管理和查看崩潰
支持引導(dǎo)模糊(例如 libFuzzer 和 AFL)和黑盒模糊測(cè)試
ClusterFuzz 已經(jīng)在 Chrome 中發(fā)現(xiàn)了超過 16000 個(gè) bug,在與 OSS-Fuzz 集成的 160 多個(gè)開源項(xiàng)目中發(fā)現(xiàn)了超過 11000 個(gè) bug。它是 Chrome 和許多其它開源項(xiàng)目開發(fā)過程中不可或缺的一部分。ClusterFuzz 通常能夠在引入后幾小時(shí)檢測(cè)到問題,并在一天內(nèi)驗(yàn)證修復(fù)。
,