稽核第三方 Crate
新增程式庫時必須遵守 Chromium 的標準政策,不過當然也須接受安全性審查。您可能不只引入一個 Crate,還會傳入遞移依附元件,因此可能有許多程式碼需要審查。另一方面,安全的 Rust 程式碼不會產生多少負面副作用。應如何審查呢?
隨著時間推移,Chromium 的目標是移至以 cargo vet 為基礎的程序。
同時,我們會針對每個新增的 Crate 檢查以下項目:
- 瞭解使用各個 Crate 的原因。Crate 之間的關係為何?如果每個 Crate 的建構系統都包含
build.rs
或程序巨集,請思考 Crate 的用途。這些 Crate 是否與 Chromium 平常的建構方式相容? - 檢查每個 Crate 的維護情況是否合理良好
- 使用
cd third-party/rust/chromium_crates_io; cargo audit
檢查是否有已知的安全漏洞 (您首先需要執行cargo install cargo-audit
,諷刺的是,這麼做需要從網際網路下載大量依附元件2) - 確保所有
unsafe
程式碼都妥善符合兩個項目的規則 - 檢查是否使用
fs
或net
API - 請在足夠的層級閱讀所有程式碼,檢查是否出現任何可能是惡意插入的錯誤內容 (實務上很難達到 100% 完美的成果,畢竟通常會有太多程式碼。)
上述內容只是指南,請與 security@chromium.org
的審查人員合作,瞭解如何正確地確保 Crate 是可信的。