گیت‌هاب اکنون به‌صورت پیش‌فرض پیش از باز کردن pull request برای به‌روزرسانی‌های غیرامنیتی وابستگی‌ها، سه روز صبر می‌کند تا فرصت شناسایی و حذف نسخه‌های مخرب پیش از وارد شدن به خطوط ساخت فراهم شود.

هدف این تغییر

این سیاست با هدف کاهش خطر نشر سریع بسته‌های دستکاری‌شده طراحی شده است. کارلین چری، مدیر محصول گیت‌هاب، به حادثه‌ای اشاره می‌کند که در آن چند بسته پرکاربرد با مجموع دانلود هفتگی بیش از دو میلیارد بار برای مدتی با نسخه‌های دستکاری‌شده جایگزین شدند. هرچند آن نسخه‌ها سریعاً از npm حذف شدند، تنها چند ساعت در دسترس بودن کافی بود تا ابزارهای خودکار به‌روزرسانی را شناسایی و pull request ایجاد کنند و این تغییرات به سرعت به جریان توسعه وارد شوند.

نحوه کار و گزینه‌های تنظیم

به‌صورت پیش‌فرض، پس از انتشار یک نسخه جدید غیرامنیتی، سه روز تأخیر اعمال می‌شود. این رفتار از طریق گزینه cooldown در فایل پیکربندی dependabot.yml قابل تغییر است. مستندات رسمی و گزینه‌های پیکربندی در صفحه راهنمای گیت‌هاب موجود است: GitHub Dependabot configuration.

توجه: این تأخیر شامل به‌روزرسانی‌های امنیتی نیست؛ اصلاحات مربوط به آسیب‌پذیری‌ها بلافاصله وارد چرخه می‌شوند.

محدودیت‌ها

کولداون تنها یک لایه دفاعی است و جایگزین سایر اقدامات امنیتی نیست. حملات زنجیره‌تأمین تنوع بالایی دارند و تأخیر انتشار صرفاً جلوی نمونه‌هایی را می‌گیرد که به سرعت وارد خطوط ساخت می‌شوند؛ اما حملاتی که به‌صورت هدفمند یا از طریق دسترسی‌های داخلی انجام می‌شوند، ممکن است به این مکانیزم واکنشی نشان ندهند.

توصیه‌های تکمیلی

  • استفاده از lockfileها برای ثابت نگه داشتن نسخه‌ها.
  • غیرفعال‌سازی یا محدودسازی اسکریپت‌های نصب در محیط CI هرجا که ممکن است.
  • محدود کردن دسترسی توکن‌ها در خطوط ساخت و اسکوپ کردن مجوزها.
  • ترکیب بررسی‌های دستی و اسکن‌های خودکار امنیتی پیش از ادغام pull requestهای وابستگی.

بازخورد جامعه توسعه

برخی توسعه‌دهندگان در شبکه‌های اجتماعی از زمان سه روزه به‌عنوان «زمان مناسبی» برای آشکار شدن بدافزارها یا دریافت گزارش‌های مشکوک یاد کرده‌اند. در مقابل، بعضی تحلیل‌ها نگرانی دارند که اگر همه به‌روزرسانی‌ها به تأخیر بیفتند، شناسایی انتشارهای مخرب از طریق مشاهده تصادفی کاهش یابد؛ اما طرفداران کولداون می‌گویند که فرض امنیتی این مکانیزم بر تقویت اسکن‌های خودکار و فرایندهای بازبینی استوار است، نه بر کشف اتفاقی نسخه‌های مخرب توسط کاربران عادی. برای مطالعه بیشتر در زمینه حملات زنجیره‌تأمین می‌توانید به بحث‌های عمومی مراجعه کنید: Supply chain attack.

معنای این تغییر برای تیم‌ها

اعمال کولداون پیش‌فرض به هماهنگی بهتر ابزارها و زمان‌بندی کشف کمک می‌کند، اما نباید تنها مکانیزم حفاظتی باشد. ترکیب کولداون با بهترین شیوه‌های DevSecOps، اسکن منظم و سیاست‌های محدودکننده، سطح حفاظتی را به‌طور قابل توجهی افزایش می‌دهد.

چک‌لیست عملی برای اجرا

  • مقدار cooldown در dependabot.yml را بررسی و در صورت نیاز تنظیم کنید.
  • مطمئن شوید اسکن‌های نرم‌افزاری و اعلان‌های امنیتی مخزن فعال هستند.
  • CI را طوری پیکربندی کنید که اسکریپت‌های نصب غیرفعال یا محدود شوند.
  • فرآیند بازبینی سریع برای pull requestهای وابستگی تعریف و اجرا کنید.

کولداون سه‌روزه یک گام عملی و هماهنگ‌شده برای کاهش حملات زنجیره‌تأمین است؛ با این حال بهترین نتیجه زمانی حاصل می‌شود که این قابلیت همراه با سایر سیاست‌ها و ابزارهای امنیتی مورد استفاده قرار گیرد.