Google希望進行“模糊測試(fuzz testing,fuzzing)”,為程序提供隨機數據輸入,作為開源開發的標準部分。
為此,它剛剛在GitHub上推出了一個用于OSS-Fuzz的測試計劃的項目,其目的在于推動現代模糊技術標準化,并將它們與可以根據需要擴展的分布式執行模型相結合,以確保重要開源項目的安全性。
根據維基百科的解釋:“模糊測試是一種軟件測試技術,通常是自動或半自動的,涉及向計算機程序的輸入提供無效、意外或隨機數據。然后,監視程序是否有異常,例如崩潰、內置代碼斷言失敗或查找潛在的內存泄漏。”
Google表示,這種技術可以用來確保流行的開源組件(特別是被認為是全球IT基礎設施的關鍵部分)是穩定、安全和可靠的。
“最近的安全故事證實,緩沖區溢出和釋放后使用的錯誤會在關鍵的開源軟件中導致嚴重的后果”,該公司在最近的一篇博客中說。“這些錯誤不僅嚴重,而且通過常規代碼審計很難發現,即使對于有經驗的開發人員也是如此。這就讓模糊測試應運而生。通過生成給定程序的隨機輸入,模糊觸發并幫助快速徹底地發現錯誤。”
OSS-Fuzz將利用ClusterFuzz項目在可擴展的分布式執行環境中將不同的模糊引擎(從libFuzzer開始)和其他組件組合在一起。
該公司表示,該項目迄今已在流行的開源項目中發現了150個錯誤。
目前,OSS-Fuzz只對有大量用戶群或者對全球IT基礎架構至關重要的開源軟件提供服務。這暗示著,盡管沒有直截了當地說明,這一切仍會變化。“通過你的幫助,我們可以將模糊測試作為開源發展中的一個標準規范,并和廣大開發者、安全測試人員一道,確保那些重要開源應用、庫以及API中的程序錯誤都能被發現和修復。”