محققان امنیتی دستکم ۸۳ حمله علیه ۶۱ مخزن (Repository) عمومی در GitHub را شناسایی کردهاند که شامل پروژههای معروفی همچون Google LangExtract، Trivy، مرورگر Brave و MLflow میشود. این فعالیتها که به نظر میرسد یک کمپین هماهنگ شده باشد، با هدف اجرای دستورات در محیطهای CI/CD و سرقت اعتبارنامهها (Credentials) و توکنهای دسترسی انجام شده است.
جزئیات کمپین حمله
این حملات با سرعت بسیار بالایی انجام شدهاند؛ ۷۷ مورد از موارد مخرب تنها در یک بازه زمانی ۴۳ دقیقهای منتشر شدهاند. هدف نهایی این حملات، ایجاد یک حمله زنجیره تأمین (Supply Chain Attack) است که در آن مهاجم با به دست آوردن اعتبارنامههای مخزن، بتواند محتوای کد را تغییر داده و نسخههای آلوده را به کاربران دیگر تحمیل کند.
مکانیزم فنی حمله
مهاجم ابتدا یک Issue، Pull Request یا کامنت حاوی دستورات مخرب را منتشر میکند. این دستورات در قالب کامنتهای HTML پنهان شدهاند تا در صفحه نمایش داده نشوند. از آنجایی که بسیاری از مخازن برای پاسخ به رویدادهایی مانند Issue یا Pull Request تنظیم شدهاند، این کار باعث فعال شدن خودکار یک Workflow میشود.
اگر Workflow آسیبپذیر باشد، محتوای کنترلشده توسط مهاجم مستقیماً در کدهای Shell ادغام شده و دستورات مخرب اجرا میشوند. این دستورات متغیرهای محیطی (Environment Variables) را جمعآوری کرده و سعی میکنند آنها را به سرور مهاجم ارسال کنند.
توصیههای امنیتی برای مدیران SOC و توسعهدهندگان
برای مقابله با این نوع تهدیدات، متخصصان موارد زیر را توصیه میکنند:
- اعمال اصل حداقل دسترسی (Least-privilege) در جریانهای کاری CI/CD.
- جداسازی Workflowهایی که توسط رویدادهای خارجی فعال میشوند از وظایفی که دسترسیهای سطح بالا دارند.
- در نظر گرفتن تمامی محتواهای خارجی به عنوان محتوای غیرقابل اعتماد (Untrusted).
- محدود کردن دسترسی توکنها و متغیرهای محیطی در دسترس برای Workflowها.