8.7 审查与审计
06-审查与审计 — Comprehensive Rust
1分钟内可阅读完
译文 · 基于 Comprehensive Rust
8.7 审查与审计
添加新库须遵守 Chromium 的标准策略,当然也须经过安全审查。由于你可能带来的不只是单个 crate,还有传递依赖,可能有大量代码需要审查。另一方面,安全的 Rust 代码负面副作用可能有限。你应如何审查它?
随着时间推移,Chromium 旨在转向基于 cargo vet 的流程。
与此同时,对每次新增 crate,我们在检查以下内容:
- 理解每个 crate 为何被使用。crate 之间是什么关系?若每个 crate 的构建系统包含
build.rs或过程宏,弄清它们的用途。它们是否与 Chromium 通常的构建方式兼容? - 检查每个 crate 看起来维护得是否合理
- 使用
cd third-party/rust/chromium_crates_io; cargo audit检查已知漏洞(首先你需要cargo install cargo-audit,讽刺的是这涉及从互联网下载大量依赖2) - 确保任何
unsafe代码对 Rule of Two 来说足够好 - 检查是否有任何对
fs或netAPI 的使用 - 以足够的层次阅读所有代码,寻找任何可能被恶意插入、看起来不对劲的东西。(你无法现实地追求 100% 完美:代码量往往太大。)
这些只是指南——与 security@chromium.org 的审查者合作,找出对 crate 建立信心的正确方法。