حسابرسی 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 پیدا کنید.