給Chrome“捉蟲”16000個,Google開源bug自檢工具

AI科技大本營發表於2019-02-10

640?wx_fmt=png

整理 | 一一

出品 | AI科技大本營(ID:rgznai100)     


內部開發和使用八年之久,近日,Google 宣佈開源 bug 自動化檢測工具 ClusterFuzz


ClusterFuzz 是一款提供端到端的自動化模糊測試工具:從錯誤檢測到分類排查,再到生成錯誤報告,最後到自動關閉錯誤報告。


根據維基百科,模糊測試是一種用於檢測軟體 bug 的自動化方法,通過向目標程式提供意外輸入進行運作。它可以有效地發現損壞記憶體的 bug,通常會帶來嚴重的安全隱患,需要安全補丁進行修復。手動查詢這些問題既困難又耗時,而且即便是嚴格的程式碼審查,有些 bug 也會被漏掉。對於用不安全的語言(如 C 或 C++)編寫的軟體專案,模糊測試是確保其安全性和穩定性的關鍵一步。


為了使模糊測試真正發揮效用,它必須是連續的且需要大規模執行,要無縫整合到軟體專案的開發過程中。具體而言,需要有以下功能:


  • 高度可擴充套件

  • 準確的重複資料刪除

  • 問題跟蹤器的全自動錯誤歸檔和關閉(僅限現在的 Monorail)

  • 測試用例最小化

  • 通過二分法找回歸

  • 用於分析模糊器效能和故障率的統計資訊

  • 易於使用的 Web 介面,用於管理和檢視錯誤

  • 支援覆蓋引導模糊測試(例如 libFuzzer 和 AFL)和 blackbox 模糊測試


為了給 Chrome 瀏覽器提供這些功能,Google 開始編寫 ClusterFuzz,這是一個在 25000 多個核心上執行的模糊測試基礎架構,同時還依賴於 Google 的雲端儲存、資料庫、監控設施和資料倉儲技術。 兩年前,他們開始通過 OSS-Fuzz (開源軟體的連續模糊測試,ClusterFuzz 是其背後的分散式模糊測試基礎架構)向開源專案提供 ClusterFuzz 免費服務。


在開發 ClusterFuzz 的八年時間裡,Google 希望這個工具可以融入到開發者的工作流程,並且使得查詢 bug、修復 bug 變得異常簡單。開源 ClusterFuzz 後,開發者則可以在本地群集上測試 ClusterFuzz,Google 希望鼓勵所有軟體開發者將模糊測試整合到其工作流程中。


640?wx_fmt=png


ClusterFuzz 在 Google 雲中執行的方式是,Google 上傳想要測試的程式,在它上面提供意外輸入,在發現故障後,自動歸檔 bug,隨後工程師就可以開始著手修復。 但需要指出的是,由於依賴於 Google 雲的功能,ClusterFuzz 的使用可能會存在一些限制。


多數情況下,ClusterFuzz 的工作流程是自動化的,包括錯誤檢測、分類、錯誤報告和關閉錯誤報告。ClusterFuzz 團隊指出,像瀏覽器般複雜的模糊測試產品,ClusterFuzz 提供的自動化測試服務可以節省時間,還能發現在手動進行程式碼審查時可能漏掉的 bug。早在 2012 年,Google 就使用該款工具每天針對各種 Chrome 版本執行 5000 萬個測試用例。 


近年來重要的開源專案可以申請加入 OSS-Fuzz 計劃,並接收到 Google 的錯誤報告,具有大量使用者群或在全球 IT 基礎架構中發揮關鍵作用的軟體專案就可加入。那些被該計劃接受的專案也可以訪問該工具,例如模糊測試統計資料。


ClusterFuzz 團隊表示,ClusterFuzz 是 Chrome 以及許多開源專案開發過程中不可或缺的一部分,它能夠在引入後幾小時就能發現錯誤,並在一天內驗證修復方法。


現在 Google 已將 ClusterFuzz 與 OSS-Fuzz 結合使用。截止 2019 年 1 月, ClusterFuzz 在與 OSS-Fuzz 整合的 160 多個開源專案中發現了超 11000 個 bug。與此同時,ClusterFuzz 在 Chrome 中發現了 16000 個 bug。


當然,ClusterFuzz 並非唯一的自動化模糊測試工具。據 Venturebeat 報導,2018 年 8 月,Google 還收購了一家專門研究移動圖形基準測試工具的公司 GraphicsFuzz,他們的其中一些工具用於找出三星 Galaxy S6 和S9 等手機中的 bug。兩年前,微軟推出了基於雲的模糊測試服務  Project Springfield,用於查詢軟體中關乎安全的 bug。


相關連結:

https://github.com/google/clusterfuzz

https://opensource.googleblog.com/2019/02/open-sourcing-clusterfuzz.html


(本文為AI科技大本營翻譯文章,轉載請微信聯絡 1092722531)

徵稿

640?wx_fmt=png


推薦閱讀:

                         640?wx_fmt=png

點選“閱讀原文”,開啟CSDN APP 閱讀更貼心!

相關文章