گیتهاب و PyPI سراغ دفاع زمانی رفتن
خلاصهٔ کاملتر
تو این گزارش اومده که گیتهاب و PyPI هر دو یه لایهٔ دفاعی تازه اضافه کردن که پایهش «زمان»ـه. ایدهٔ مشترکشون سادهست: بین لحظهای که یه پکیج مخرب منتشر میشه تا وقتی که کشف و حذف بشه، یه پنجرهٔ خطر باز میمونه؛ اگه ابزارها یه مدت صبر کنن، خیلی از پروژهها اصلاً وارد اون پنجره نمیشن. این تغییرات بعد از یه سال پر از حملهٔ پرسروصدا به اکوسیستم npm و پایتون اومده.
Dependabot سرویس آپدیت وابستگیهای گیتهابه که نسخههای جدید پکیجها رو رصد میکنه و برای نگهدارندهها pull request آپدیت باز میکنه. حالا بهصورت پیشفرض ۷۲ ساعت این کارو عقب میندازه. گیتهاب میگه سه روز نقطهٔ تعادل بین دوری از ریلیزهای پرریسک و عقب نموندن از آخرین نسخههاست، ولی هر کسی میتونه با گزینهٔ پیکربندی cooldown این تأخیر رو کم یا زیاد کنه.
نکتهای که گیتهاب روش دست میذاره اینه که تو خیلی از حملههای اخیر، پکیجهای مخرب npm ظرف چند دقیقه شناسایی و علامتگذاری شدن؛ ولی کشف سریع بهتنهایی تهدید رو از بین نمیبره، چون تا وقتی نگهدارندهها پکیج رو پاک کنن یه فاصله باقی میمونه و تو همون فاصله ممکنه توسعهدهندهها کد آلوده رو بردارن.
خود گیتهاب هم تأکید میکنه که cooldown جلوی نفوذهای بلندمدت رو نمیگیره و توصیه میکنه کنارش از lockfile برای پین کردن وابستگیها، توکنهایی با دسترسی محدود و غیرفعال کردن اسکریپتهای نصب غیرضروری تو CI هم استفاده بشه.
سمت PyPI هم قانون تازه اینه که بعد از گذشت ۱۴ روز از انتشار یه ریلیز، نگهدارنده دیگه نمیتونه فایل جدیدی بهش اضافه کنه. هدفش جلوگیری از «مسموم کردن ریلیز»ـه؛ یعنی مهاجمی که توکن انتشار یا workflow رو در اختیار گرفته، نتونه یه نسخهٔ قدیمی و جاافتاده رو آلوده کنه. PyPI میگه فقط درصد خیلی کمی از پروژهها واقعاً بعد از دو هفته فایل اضافه میکنن و تا حالا هم هیچ حملهٔ تأییدشدهای با این روش روی این پلتفرم دیده نشده — این اقدام کاملاً پیشگیرانهست.
نکات کلیدی:
- Dependabot بهصورت پیشفرض ۷۲ ساعت قبل از پیشنهاد آپدیت یه نسخهٔ جدید صبر میکنه
- مقدار این تأخیر با گزینهٔ cooldown قابل کم و زیاد کردنه
- PyPI بعد از ۱۴ روز از انتشار یه ریلیز، اضافه شدن فایل جدید بهش رو میبنده
- هدف PyPI جلوگیری از آلوده کردن نسخههای قدیمی با توکن یا workflow دزدیدهشدهست
- گیتهاب میگه cooldown کافی نیست و باید کنارش از lockfile، توکن محدود و خاموش کردن اسکریپتهای نصب تو CI هم کمک گرفت




