Chromium Chronicle #9:ClusterFuzz

第 9 集:山景城的 Adrian Taylor (2019 年 12 月)
上一集

您可能會發現,系統要求您必須修正優先順序較高的安全性錯誤。 ClusterFuzz。是什麼?你該認真看待這些錯誤嗎?要如何 該怎麼辦?

模糊流程圖

在 Chrome 和手錶中輸入 ClusterFuzz 動態饋給是否有當機情形。我們有些 Chrome 版本已啟用額外檢查功能,例如 AddressSanitizer。 這類規則會尋找記憶體安全錯誤

ClusterFuzz 會根據當機位置指派元件,並指派 判斷依據為當機類型和是否在沙箱中發生 程序。舉例來說,「釋放後的堆積」將歸類為高嚴重性 在瀏覽器程序中,因此至關重要 (無沙箱限制) 影響力!):

class Foo {
  Widget* widget;
};

void Foo::Bar() {
  delete widget;
  ...
  widget->Activate();  // Bad in the renderer process, worse in the
                       // browser process. Obviously, real bugs are
                       // more subtle. Usually.

ClusterFuzz 會根據模糊不清或對外提交的錯誤產生輸入內容。 部分模糊測試工具採用 libFuzzer,可將輸入內容進化為 擴大程式碼涵蓋率有些人能理解輸入語言的文法 轉換為 protobufs。ClusterFuzz 發現當機情形後,就會嘗試 盡量減少輸入測試案例,甚至是找出違規的修訂版本。 它發現很多...

你可以提供協助:

  • 請顧及物件生命週期,整數溢位現象
  • 新增模糊化工具,尤其是在您處理不可靠的資料或處理序間通訊 (IPC) 時 (請參閱 連結,通常 <20 行程式碼)。
  • 修正 ClusterFuzz 回報的錯誤:其嚴重性經驗法則值得信任,因為 這些攻擊手法對現實世界的漏洞攻擊造成不良影響單一位元組溢位會導致 攻擊者

資源