حسابرسی Crateهای شخص ثالث
افزودن کتابخانههای جدید تابع قواعد مربوط به Chromium است، اما البته موضوع بررسی امنیتی نیز وجود دارد. از آنجایی که ممکن است نه تنها یک crate، بلکه وابستگیهای گذرا را نیز وارد کنید، ممکن است کدهای زیادی برای بررسی وجود داشته باشد. از سوی دیگر، safe Rust code میتواند عوارض جانبی محدودی داشته باشد. پس چگونه باید آن را بررسی کنید؟
با گذشت زمان، Chromium قصد دارد به فرآیندی بر اساس cargo vet حرکت کند.
در همین حال، برای هر crate جدید اضافه شده، موارد زیر را بررسی می کنیم:
- بدانید که چرا هر crate استفاده میشود. رابطه بین crateها چیست؟ اگر سیستم ساخت هر جعبه حاوی
build.rs
یا ماکروهای رویهای (procedural macros) است، مشخص کنید که آنها برای چه چیزی هستند. آیا آنها با روشی که Chromium به طور معمول ساخته و built میشود سازگار هستند؟ - Check each crate seems to be reasonably well maintained
- از
cd third-party/rust/chromium_crates_io; cargo audit
استفاده کنید. بررسی cargo برای بررسی آسیبپذیریهای شناختهشده (ابتدا بایدcargo install cargo-audit
که از قضا شامل دانلود وابستگیهای زیادی از اینترنت میشود2) - مطمئن شوید هر کد
unsafe
به اندازه کافی برای قاعده دو خوب است - هرگونه استفاده از APIهای
fs
یاnet
را بررسی کنید - تمام کدها را در سطح کافی بخوانید تا به دنبال هر چیزی که ممکن است به طور مخرب وارد شده باشد را بگردید. (در اینجا نمی توانید به طور واقع بینانه به دنبال نتیجه ۱۰۰ درصدی باشید: اغلب کدهای زیادی وجود دارد.)
اینها فقط دستورالعملهایی هستند --- با بازبینهایی از security@chromium.org
کار کنید تا راه درستی برای اطمینان از crate پیدا کنید.