Cordyceps؛ حفرهٔ زنجیرهٔ تأمین پنهان در GitHub Actions
خلاصهٔ کاملتر
تیم تحقیقاتی Novee یه دسته آسیبپذیری تو زنجیرهٔ تأمین نرمافزار پیدا کرده و اسمش رو از قارچ انگلی معروف Cordyceps گرفته؛ همون قارچی که بدن میزبانش رو تصاحب میکنه. به گفتهٔ Novee، این الگو تو کد ورکفلوهای CI/CD زندگی میکنه؛ یعنی همون فایلهای YAML گیتهاب اکشنز که همه به چشم «تنظیمات» بهشون نگاه میکنن، نه کدِ حساس امنیتی. ولی کد ورکفلو هم کده و باگ توش هم یه آسیبپذیریه.
هستهٔ مشکل اینجاست: یه ورکفلو وقتی فعال میشه که یکی یه Pull Request باز کنه یا کامنت بذاره، ولی اون ورودی رو انگار از طرف یه نگهدارندهٔ معتمد در نظر میگیره و با دسترسی همون نگهدارنده اجراش میکنه. یعنی یه غریبه با یه اکانت رایگان گیتهاب میتونه چند دقیقه اختیار پروژه رو قرض بگیره و باهاش تأییدیهٔ جعلی بسازه، کد مخرب push کنه یا اطلاعات ورود رو بدزده. Novee میگه این حتی به خود گیتهاب مربوط نیست و هر سیستم مدیریت ورکفلویی مستعدشه.
به گفتهٔ محققها، خطرناکترین یافتهها زنجیرههای چندمرحلهای بودن: یه PR غیرمعتمد یه ورکفلو با دسترسی پایین رو فعال میکنه، خروجی اون به یه ورکفلو با دسترسی بالا میره، و توکن اون هم با بالاترین نقش ممکن به سرویس ابری وصل میشه. هیچ مرحلهای بهتنهایی خطرناک به نظر نمیرسه؛ آسیبپذیری فقط تو ترکیب اونها شکل میگیره، اونجا که دادهی غیرمعتمد از یه مرز اعتماد رد میشه و کسی حسابرسیش نکرده.
Novee حدود ۳۰ هزار مخزن پرترافیک رو تو اکوسیستمهای npm، PyPI، crates و Go جمع کرده، به اونهایی که ورکفلو قابلتحریک داشتن محدودش کرده و بعد با agentهای هوش مصنوعی چک کرده کدومها واقعاً قابلبهرهبرداریان. تو یه اسکن، ۶۵۴ مخزن علامت خوردن و بیش از ۳۰۰ تا تأیید شدن که کاملاً قابل نفوذن. نمونهها شامل Azure Sentinel مایکروسافت، مخزن نمونهٔ ADK گوگل، دیتابیس Doris آپاچی، Workers SDK کلادفلر و ابزار Black از بنیاد پایتون بوده.
چیزی که این کلاس آسیبپذیری رو خطرناک میکنه اینه که از دید ابزارهای امنیتی سنتی نامرئیه. به گفتهٔ Novee، ابزارهای SAST و DAST روی تکفایل الگو پیدا میکنن، ولی نمیتونن دربارهٔ یه زنجیرهٔ چندمرحلهای بین چند ورکفلو استدلال کنن. یه اسکنر قطعی فقط یه YAML معتبر میبینه، در حالی که مهاجم یه زنجیرهٔ چهارمرحلهای تا رسیدن به اطلاعات ورود دائمی میبینه.
نویسنده تأکید میکنه که agentهای کدنویسی هوش مصنوعی دارن این مشکل رو بزرگتر میکنن؛ چون خیلی سریع پیکربندی CI/CD تولید میکنن و همون الگوهای ناامن رو بارها و بارها تکرار میکنن، پس همین اشتباه میتونه رو میلیونها مخزن پخش بشه. توصیهٔ اصلی برای مدیرهای امنیتی اینه که اگه سازمانشون روی گیتهاب یا هر سیستم ورکفلوی دیگه کار میکنه، فرض رو بذارن که این موضوع بهشون ربط داره و فعالانه چک کنن که آسیبپذیرن یا نه.
نکات کلیدی:
- Novee یه الگوی آسیبپذیری CI/CD به اسم Cordyceps تو گیتهاب اکشنز پیدا کرده که با یه اکانت رایگان قابل سوءاستفادهست.
- ورکفلوها ورودی غریبه (کامنت یا PR) رو با دسترسی نگهدارندهٔ پروژه اجرا میکنن، پس مهاجم میتونه کد push کنه یا توکن بدزده.
- خطرناکترین حالت، زنجیرههای چندمرحلهایان که خروجی ورکفلوی کمدسترسی به ورکفلوی پردسترسی میرسه.
- از ۳۰ هزار مخزن اسکنشده، بیش از ۳۰۰ تا (مایکروسافت، گوگل، آپاچی و…) کاملاً قابلبهرهبرداری بودن.
- ابزارهای سنتی SAST/DAST این زنجیرهها رو نمیبینن و agentهای هوش مصنوعی هم دارن مشکل رو تکثیر میکنن.




