گیتهاب و PyPI دفاعهای مبتنی بر تأخیر زمانی در برابر حملات زنجیره تأمین اعمال میکنند

گیتهاب (GitHub) و PyPI (Python Package Index) هر کدام این هفته دفاعهای مبتنی بر زمان را معرفی کردند که هدفشان کاهش سرعت حملات زنجیره تأمینی است که از سرعت بهروزرسانی خودکار وابستگیها سوءاستفاده میکنند. Dependabot گیتهاب اکنون بهطور پیشفرض نسخههای جدید بسته را با تأخیر ۷۲ ساعته میپذیرد، در حالی که PyPI شروع به رد بارگذاری فایلهای جدید برای انتشارهای بستهای کرده است که بیش از ۱۴ روز از انتشارشان میگذرد.
هر دو تغییر همان ضعف زیربنایی را هدف قرار میدهند: ابزارهای امنیتی میتوانند در عرض چند دقیقه پس از انتشار، یک بسته مخرب را علامتگذاری کنند، اما تشخیص بهتنهایی تهدید را برطرف نمیکند. نگهدارندگان هنوز باید بر اساس هشدار اقدام کنند و در این فاصله، ابزارهای خودکاری مانند Dependabot میتوانند بسته بهخطرافتاده را پیش از آنکه کسی متوجه شود به محیط تولید بکشانند.
چرا اکنون؟
این اقدامات به دنبال مجموعهای از حوادث برجسته در هر دو اکوسیستم در سال گذشته انجام میشوند، از جمله ربودن بستههای npm با نامهای 'chalk' و 'debug' که مجموعاً بستههایی با ۲ میلیارد دانلود هفتگی را تحت تأثیر قرار دادند، کمپین بدافزاری s1ngularity با قدرت هوش مصنوعی که ۲۱۸۰ حساب گیتهاب را هدف قرار داد، حمله Shai-Hulud که بستههای مخرب امضا شده را بهعنوان کتابخانههای TanStack و Mistral جعل کرده بود، و کمپین GhostAction که PyPI را مجبور به باطل کردن نشانههای انتشار دزدیده شده کرد. گیتهاب ماه گذشته مجموعه گستردهتری از تغییرات امنیتی npm را اعلام کرده بود؛ دوره انتظار این هفته Dependabot آن تلاشهای استحکامبخشی را تکمیل میکند.
دفاعها چگونه کار میکنند؟
دوره انتظار ۷۲ ساعته جدید Dependabot، درخواستهای کشش (Pull Request) را که برای نسخههای جدید وابستگی ایجاد میکند به تأخیر میاندازد و به جامعه امنیتی زمان میدهد تا انتشارهای مخرب را پیش از آنکه ابزارهای خودکار از آنها استفاده کنند شناسایی و علامتگذاری کنند. گیتهاب گفت سه روز بهعنوان تعادلی بین امنیت و بهروز ماندن با بهروزرسانیهای قانونی انتخاب شده است و این تأخیر قابل تنظیم است — نگهدارندگان میتوانند آن را کوتاه یا بلند کنند. گیتهاب همچنین توصیه کرد که دوره انتظار با فایلهای قفل (lockfile) برای ثابتسازی وابستگیها، نشانههای انتشار با دامنه محدود، و غیرفعال کردن اسکریپتهای نصب غیرضروری در خطوط لوله CI همراه شود، زیرا دوره انتظار بهتنهایی در برابر نفوذ بلندمدت به حساب دفاع نمیکند.
تغییر PyPI الگوی حمله متفاوتی را هدف قرار میدهد: مهاجمی که مدتها پس از انتشار یک نسخه بسته و جلب اعتماد توسعهدهندگان، نشانه انتشار یا گردش کار CI یک نگهدارنده را به خطر میاندازد. با مسدود کردن بارگذاری فایلهای جدید برای هر انتشار قدیمیتر از ۱۴ روز، PyPI پنجره این نوع «مسمومسازی انتشار» را میبندد، جایی که یک انتشار معتمد و از پیش پذیرفته شده پس از انتشار بهطور پنهانی تغییر میکند. PyPI خاطرنشان کرد که هیچ حمله تأیید شده گذشتهای از این روش خاص استفاده نکرده است — این پلتفرم بهصورت پیشگیرانه عمل میکند و دریافته است که تنها بخش کوچکی از پروژهها بهطور قانونی فایلها را بیش از دو هفته پس از انتشار بارگذاری میکنند.
این برای توسعهدهندگان چه معنایی دارد؟
برای بیشتر پروژهها، اثر عملی یک تأخیر کوتاه قبل از ظاهر شدن PRهای خودکار وابستگی است و عدم توانایی وصلهکردن (پچ) انتشارهای قدیمی بسته بهصورت درجا پس از دو هفته. هیچکدام از تغییرات برای بهرهمندی نیاز به اقدام توسعهدهنده ندارند — هر دو بهصورت پیشفرض در سطح پلتفرم فعال هستند — اگرچه نگهدارندگان با گردش کار انتشار غیرمعمول ممکن است نیاز به تنظیم دوره انتظار Dependabot داشته باشند اگر مقدار پیشفرض ۷۲ ساعت با چرخه بهروزرسانی آنها تداخل داشته باشد، همانطور که اولین بار BleepingComputer گزارش کرد.
Originally reported by BleepingComputer. Read the original article for additional details.
View original source