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