بازگشت GhostAction؛ ورک‌فلوهای سارق اعتبارنامه در ده‌ها هزار مخزن گیت‌هاب کاشته شدند

اخبار داغ فناوری اطلاعات و امنیت شبکه

بیش از ۵۰۰ حساب کاربری، یک ورک‌فلوی مخرب و یک آدرس IP ثابت

پژوهشگران امنیتی از ادامه یک کمپین سرقت اعتبارنامه خبر داده‌اند که در آن، حساب‌های دو نگهدارنده شناخته‌شده پروژه‌های متن‌باز به‌خطر افتاده و از آن‌ها برای کاشتن یک ورک‌فلوی مخرب در بیش از ۳۴۰ مخزن استفاده شده است. بر اساس گزارش شرکت Socket، تا تاریخ ۹ اکتبر ۲۰۲۶، بیش از ۵۰۰ حساب گیت‌هاب شناسایی شده‌اند که از ۷ اکتبر به این سو، این ورک‌فلوی مخرب را در ده‌ها هزار مخزن ثبت (Commit) کرده‌اند.


دو حساب پرنفوذ، دو موج حمله در یک روز

شرکت StepSecurity جزئیات نخستین موج‌ها را این‌گونه شرح داده است:


GhostAction چیست؟ بازگشت یک کمپین شناخته‌شده

این فعالیت به کمپین GhostAction نسبت داده شده؛ یک حمله گسترده زنجیره تأمین نرم‌افزار که نخستین بار در سپتامبر ۲۰۲۵ آشکار شد. آن کمپین، ۸۱۷ مخزن متعلق به ۳۲۷ کاربر گیت‌هاب را تحت تأثیر قرار داد و به استخراج ۳٬۳۲۵ راز (Secret)، از جمله توکن‌های PyPI، npm و DockerHub، از طریق حساب‌های توسعه‌دهندگان به‌خطرافتاده منجر شد.

مانند دفعه قبل، هر دو حساب به‌خطرافتاده، یک ورک‌فلو را منتشر کرده‌اند که نام آن «Security Audit» (فایل security-audit.yml) یا «GitHub Actions Security» (فایل github_actions_security.yml) است. این ورک‌فلوها طراحی شده‌اند تا داده‌های حساس را از طریق HTTP ساده (بدون رمزنگاری) به یک آدرس IP ثابت و کدگذاری‌شده (193.32.204[.]199) ارسال کنند.


چه چیزی سرقت می‌شود؟

داده‌های برداشت‌شده شامل رازهای نام‌گذاری‌شده GitHub Actions (از جمله رازهای CI/CD) و اعتبارنامه‌های ابری، هوش مصنوعی و SaaS موجود در درخت کاری و کل تاریخچه گیت هستند؛ از جمله:

زنجیره حمله، گام‌به‌گام

کل این زنجیره حمله به این شکل رخ می‌دهد:

۱. مهاجم اعتبارنامه‌های گیت‌هاب یک نگهدارنده را به دست می‌آورد؛ به‌احتمال زیاد یک توکن دسترسی شخصی (PAT) نشت‌کرده از لاگ‌های بدافزارهای سارق اطلاعات یا مجموعه‌های داده‌های افشاشده.

۲. در یک مرحله شناسایی، فایل‌های ورک‌فلوی مخزن برای یافتن رازها اسکن می‌شوند.

۳. ورک‌فلویی که خود را به‌عنوان یک «ممیزی امنیتی» جا می‌زند، با هویت خود قربانی، به شاخه پیش‌فرض مخزن تزریق می‌شود.

۴. بار مخرب جاسازی‌شده، داده‌ها را استخراج کرده و از طریق curl به یک نقطه پایانی تحت کنترل مهاجم می‌فرستد.

درون ورک‌فلو چه می‌گذرد؟

به گفته StepSecurity، این ورک‌فلو هم با رویداد workflow_dispatch و هم با هر Push بدون فیلتر (روی هر شاخه یا برچسب) فعال می‌شود، با گزینه fetch-depth: 0 مخزن را کامل دریافت می‌کند و یک مرحله واحد با نام «Audit» اجرا می‌کند که چهار کار انجام می‌دهد:


آمار GitGuardian: ۷۷۲ مخزن و ۲٬۵۷۷ راز هدف

شرکت GitGuardian در اوایل همین هفته گزارش داده بود که کمپین GhostAction، ورک‌فلوی مخرب را در فاصله ۳۱ اوت تا ۳۰ سپتامبر ۲۰۲۶، در ۷۷۲ مخزن عمومی متعلق به ۳۷۳ کاربر و سازمان گیت‌هاب منتشر کرده است.

این ورک‌فلوهای تزریق‌شده، ۲٬۵۷۷ راز را هدف گرفته‌اند؛ از جمله:

یک نمونه: ماینر مونرو در تصویر داکر

در دست‌کم یک مورد مشاهده‌شده در ۳۰ اوت ۲۰۲۶، عوامل تهدید مخزن kuafuai/DevOpsGPT را دستکاری کرده و یک ماینر ارز دیجیتال XMRig را درون تصویر داکر این پروژه جاسازی کرده‌اند. تا زمان نگارش گزارش، هیچ انتشار بسته مخربی با استفاده از اعتبارنامه‌های انتشار به‌خطرافتاده گزارش نشده است.


خطر فورک‌ها: آلودگی که به پایین‌دست منتقل می‌شود

Socket هشدار داده فورک‌ها نیز در معرض خطر هستند: «۲۷۹ فورک در فضای نام henrywoo، هرکدام فایل ورک‌فلو را در خود دارند. اگر Actions فعال باشد، Pushهای بعدی می‌توانند برداشت اعتبارنامه را فعال کنند.»

فورک‌های پایین‌دست نیز در صورتی که ورک‌فلوی مخرب را به ارث ببرند — چه هنگام ایجاد جدید و چه با همگام‌سازی با مخزن بالادستی آلوده — در معرض خطر هستند. به گفته این شرکت، فورک‌های خصوصی و آینه‌های پایین‌دست بیشترین آسیب‌پذیری را دارند، چراکه اعتبارنامه‌های ثبت‌شده در واقع بیشتر در مخازن خصوصی یافت می‌شوند.

یک نکته مهم دیگر: در هر دو حساب، هر اجرا — چه اعتبارنامه‌ای پیدا شود و چه نشود — یک شناسه مخزن را بازمی‌گرداند؛ بنابراین اپراتور، مستقل از هرگونه سرقت اعتبارنامه، نقشه‌ای از زمینه‌های اجرایی قابل‌دسترس در اختیار دارد.


توصیه‌های امنیتی

توسعه‌دهندگان باید مخازن خود را از نظر وجود هرکدام از این دو ورک‌فلو از تاریخ ۳۱ اوت ۲۰۲۶ بررسی کنند و در صورت وجود، فرض را بر به‌خطر افتادن بگذارند. اقدامات پیشنهادی:


چرا این کمپین اهمیت دارد؟

این کمپین چند ویژگی نگران‌کننده را کنار هم می‌آورد. نخست، مهاجم از هویت قانونی خود قربانی استفاده می‌کند؛ ورک‌فلو با نام و دسترسی خود نگهدارنده منتشر می‌شود و به همین دلیل، در نگاه اول هیچ نشانه‌ای از نفوذ خارجی ندارد. دوم، نام فریبنده «Security Audit» به‌ظاهر یک ابزار امنیتی را نمایندگی می‌کند و ممکن است در بررسی‌های سطحی نادیده گرفته شود.

سوم، اسکن کل تاریخچه گیت، نه فقط وضعیت فعلی مخزن، به این معناست که حتی اعتبارنامه‌هایی که سال‌ها پیش به اشتباه ثبت و سپس پاک شده‌اند، همچنان در معرض سرقت هستند؛ موضوعی که اهمیت چرخش اعتبارنامه‌ها، فراتر از صرف حذف آن‌ها از کد، را برجسته می‌کند. چهارم، حضور کلیدهای API سرویس‌های هوش مصنوعی در فهرست اهداف، نشان می‌دهد این اعتبارنامه‌ها اکنون به‌اندازه کلیدهای ابری سنتی، برای مهاجمان ارزشمند شده‌اند.

در نهایت، ارتباط این کمپین با سرقت توکن‌ها از طریق بدافزارهای سارق اطلاعات، نشان می‌دهد زنجیره تأمین نرم‌افزار و امنیت حساب‌های توسعه‌دهندگان، دو روی یک سکه‌اند: یک توکن نشت‌کرده از یک دستگاه شخصی آلوده، می‌تواند به آلوده شدن صدها مخزن متن‌باز منجر شود.


جمع‌بندی

بازگشت GhostAction، با مقیاسی به‌مراتب بزرگ‌تر از موج نخست (بیش از ۵۰۰ حساب و ده‌ها هزار مخزن)، نشان می‌دهد حملات زنجیره تأمین مبتنی بر سوءاستفاده از GitHub Actions، به یک روش پایدار و مؤثر برای مهاجمان تبدیل شده است. توسعه‌دهندگان و سازمان‌ها باید ورک‌فلوهای مخازن خود را به‌طور دوره‌ای بازبینی کنند، توکن‌های دسترسی را با حداقل سطح لازم صادر کنند، و هرگونه اعتبارنامه‌ای را که ممکن است حتی یک‌بار در تاریخچه گیت ثبت شده باشد، به‌عنوان افشاشده تلقی و تعویض کنند.

برچسب ها: امنیت_اطلاعات, امنیت_سایبری, GitLab, Cyberattack, cybersecurity, حمله سایبری, news

نوشته شده توسط تیم خبر.

چاپ