第 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 回報的錯誤:其嚴重性經驗法則值得信任,因為 這些攻擊手法對現實世界的漏洞攻擊造成不良影響: 單一位元組溢位會導致 攻擊者
資源
- Chromium 的模糊測試:如何將新的模糊測試程式新增至 ClusterFuzz 支援新的資料格式 尋找漂亮的字眼
- Chrome Fuzzer 程式更新與使用方法:Fuzzer 也適用 由外部貢獻者撰寫瞭解他們的使用體驗和難易度 一開始就能上手