گیتهاب برای جلوگیری از انتشار پکیجهای آلوده، تأخیر سهروزه را به Dependabot اضافه کرد.
به گزارش افتانا، گیتهاب یک سازوکار جدید تأخیر زمانی (Cooldown) را به ابزار Dependabot اضافه کرده است که به این ابزار اجازه میدهد پس از انتشار یک نسخه جدید، حداقل سه روز صبر کند و سپس برای بهروزرسانی آن، یک Pull Request ایجاد کند. شرکت گیتهاب اعلام کرده است که تنظیمات مربوط به این تأخیر همچنان از طریق فایل dependabot.yml قابل کنترل است و توسعهدهندگان میتوانند مقدار متفاوتی را متناسب با نیاز پروژه خود تعیین کنند.
به گفته گیتهاب، تأخیر پیشفرض سهروزه فقط برای بهروزرسانی نسخهها اعمال میشود؛ یعنی زمانی که هدف، بهروز نگه داشتن کتابخانهها و پکیجهای نرمافزاری مورد استفاده یک پروژه است. اما بهروزرسانیهای امنیتی همچنان بدون این تأخیر منتشر میشوند تا Dependabot بتواند هشدار امنیتی ایجاد کرده و یک Pull Request برای انتقال پروژه به نسخه اصلاحشده باز کند.
هدف از اضافه شدن این قابلیت، مقابله با سناریوهایی است که در آن یک مهاجم موفق میشود نسخهای آلوده از یک پکیج محبوب را منتشر کند و پروژههای دیگر نیز پیش از حذف آن نسخه از مخزن، بهسرعت آن را دریافت کنند. هرچند چنین پکیجهای آلودهای معمولاً مدت کوتاهی در دسترس باقی میمانند، اما همین بازه زمانی کوتاه میتواند برای گسترش دامنه یک حمله زنجیره تأمین نرمافزار کافی باشد.
گیتهاب میگوید دلیل انتخاب سه روز بهعنوان مقدار پیشفرض، ایجاد تعادل میان امنیت و سرعت توسعه است. این شرکت توضیح داده است: سه روز بهعنوان مقدار پیشفرض، بین دو هدف تعادل برقرار میکند؛ از یک طرف شما را از بازه زمانی که بیشتر این حملات در آن رخ میدهند عبور میدهد و از طرف دیگر، بهروزرسانی پکیجها را بیش از حد ضروری به تأخیر نمیاندازد.
در عین حال، این پلتفرم توسعه نرمافزار تأکید کرده است که قابلیت جدید تنها باید یکی از لایههای دفاعی در برابر حملات زنجیره تأمین باشد و نباید بهتنهایی به آن تکیه کرد. گیتهاب توصیه کرده است در کنار این قابلیت، اقداماتی مانند قفل کردن نسخه کتابخانهها با استفاده از Lockfile، غیرفعال کردن اسکریپتهای نصب در محیطهای CI، محدود کردن سطح دسترسی توکنها در فرآیندهای ساخت نرمافزار و بررسی تغییرات پیش از ادغام آنها نیز انجام شود.
گیتهاب درباره محدودیت این قابلیت توضیح داده است که Cooldown برای یک الگوی مشخص از حملات طراحی شده است: زمانی که یک نسخه مخرب منتشر میشود، به سرعت در پروژهها پخش میشود و سپس شناسایی و حذف میشود. این شرکت افزود: «Cooldown در برابر حملاتی که در بازه طولانیتری انجام میشوند، تأثیر چندانی ندارد؛ از جمله قرار دادن درِ پشتی در نسخههای منتشرشده و فعالسازی آن در آینده، خرابکاری توسط نگهدارندگان پروژهها یا نفوذ به سیستم ساخت نرمافزار.»
گفتنی است در یک سال گذشته، کنترلهای مشابهی برای ایجاد فاصله زمانی میان انتشار و استفاده از پکیجها در اکوسیستمهای نرمافزاری مختلف معرفی شدهاند. از جمله این موارد میتوان به Visual Studio Code (VS Code)، Ruby، Bun، npm، pnpm و Yarn اشاره کرد. این اقدام گیتهاب در حالی انجام میشود که مدیران Python Package Index (PyPI) نیز اعلام کردهاند قصد دارند محدودیتی مشابه برای نسخههای منتشرشده اعمال کنند. بر اساس این طرح، پس از گذشت ۱۴ روز از انتشار یک نسخه، نگهدارندگان پکیج دیگر نمیتوانند فایلهای جدیدی به همان نسخه اضافه کنند. PyPI اعلام کرده است هدف از این اقدام، جلوگیری از سوءاستفاده مهاجمانی است که با بهدست آوردن توکنهای انتشار یا نفوذ به فرآیندهای توسعه، تلاش میکنند نسخههای قدیمی و مورد اعتماد پکیجها را آلوده کنند.