給Chrome“捉蟲”16000個,Google開源bug自檢工具
整理 | 一一
出品 | 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 希望鼓勵所有軟體開發者將模糊測試整合到其工作流程中。
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)
徵稿推薦閱讀:
Playboy封面女郎、網際網路第一夫人,程式設計師們的“鋼鐵審美”
2019全球AI 100強,中國佔獨角獸半壁江山,但憂患暗存
“百練”成鋼:NumPy 100練
這4門AI網課極具人氣,逆天好評!(附程式碼+答疑)
點選“閱讀原文”,開啟CSDN APP 閱讀更貼心!
相關文章
- Google Chrome 開發者工具漏洞利用GoChrome
- 給找 Bug 的工具(larastan)找 BugAST
- ChunJun 1.16 Release版本即將釋出,bug 捉蟲活動邀您參與!
- 6 個開源的家庭自動化工具
- 開源一個程式碼規範檢測工具
- Chrome 自帶開發者工具筆記Chrome筆記
- google chromeGoChrome
- Google Chrome發現新Bug CPU使用率飆升至100%GoChrome
- 子執行緒 UI 問題捉蟲執行緒UI
- 分享個人開源爬蟲框架爬蟲框架
- 利用Google開源Java容器化工具Jib構建映象GoJava
- Google 正式開源 ParanoidGo
- 分享一個自研開發的QA自動化審計工具-Sonar檢查
- Chrome開發者工具裡的一個隱藏技能:chrome://net-internalsChrome
- 這 6 個爬蟲開源專案 yyds爬蟲
- 給RAG系統做一次全面「體檢」,亞馬遜開源RAGChecker診斷工具亞馬遜GC
- 使用者該怎麼捉資料洩露的“BUG”
- chrome開發者工具使用Chrome
- Google Chrome即將開始警告—停止支援Flash PlayerGoChrome
- 我用開源工具給女朋友寫道歉信!開源工具
- google chrome去除組織策略GoChrome
- 工具資源系列之給虛擬機器裝個centos虛擬機CentOS
- Excel 2021&365 函式與公式應用大全 捉蟲Excel函式公式
- Denial of App - Google Bug 13416059 分析APPGo
- chrome開發者工具的使用Chrome
- chrome開發者工具 - 00 概述Chrome
- Google官方釋出Chrome擴充套件Password Checkup 檢查密碼是否安全GoChrome套件密碼
- 我給 Apache 頂級專案提了個 BugApache
- 工具資源系列之給 windows 裝個 vmware 虛擬機器Windows虛擬機
- 推薦13個.Net開源的網路爬蟲爬蟲
- 如何給 Chrome 開發者工具設定 Material Design 風格的主題外觀ChromeMaterial Design
- Google Chrome除錯js入門GoChrome除錯JS
- Google Chrome for Mac(谷歌瀏覽器)GoChromeMac谷歌瀏覽器
- 阿里最強 Python 自動化工具開源了!阿里Python
- 惡意谷歌 Chrome 擴充套件竊取了至少價值 16000 美元的加密貨幣谷歌Chrome套件加密
- Chrome開發者工具Debug入門Chrome
- Chrome 72 開發者工具新特性Chrome
- Chrome 77 開發者工具新特性Chrome