بیش از ۱۳۵۰۰ توکن دسترسی شخصی (PAT) و توکن OAuth دزدیدهشده، اکنون در اختیار یک ابزار خودکار است که رازهای تولید نرمافزار را در مقیاس صنعتی استخراج میکند. کمپین Gheist که ویز ریسرچ (Wiz Research) از ۱۵ سپتامبر ۲۰۲۶ ردیابی میکند، نشان میدهد هویت توسعهدهندهی هکشده، حاشیهی امنیتی جدید است.
همانطور که در تحلیل قبلی ما دربارهی امنیت زنجیره تأمین نرمافزار اشاره کردیم، توکنهای توسعهدهنده مانند کلیدهای اصلی هستند که دروازههای تمام مخازن یک سازمان را باز میکنند. گیتهب اکشنز (GitHub Actions) — خطوط مونتاژ خودکار که کد را میسازند، تست میکنند و مستقر میکنند — به این توکنها اعتماد کامل دارند. وقتی توکن دزدیده میشود، مهاجم کنترل کامل خط مونتاژ را بدست میآورد.
جزئیات حمله
- تاریخ آغاز: ۱۵ سپتامبر ۲۰۲۶ (به گزارش ویز ریسرچ)
- نامگذاری: بر اساس رشته user agent منحصر به فرد "gheist" در درخواستهای API مهاجم
- مکانیزم اصلی: برای هر مخزنی که توکن دزدیده به آن دسترسی دارد، ابزار مهاجم بهصورت خودکار:
- شاخهای با نام "ci-sync-" به دنبال ۶ کاراکتر تصادفی میسازد
- فایل گردشکار مخرب ".github/workflows/sync-check.yml" را با پیام کامیت "ci: sync config" ثبت میکند
- کامیت امضا نشده است اما به نام مالک واقعی توکن ثبت میشود، در لاگهای حسابرسی اصالت ظاهری دارد
دور زدن ماسکگذاری رازها
نقطه ضعف اصلی در پیادهسازی ماسکگذاری لاگهای گیتهب است: پلتفرم تنها مقادیر راز را زمانی ماسک میکند که بهصورت دقیق در لاگها ظاهر شوند. با کدگذاری base32 (تبدیل راز به رشتهای از حروف و اعداد پایه ۳۲) قبل از چاپ، مهاجم باعث میشود رشته ماسکشده با راز اصلی همخوانی نداشته باشد؛ در نتیجه گیتهب راز را بهصورت متن ساده در لاگ نمایش میدهد. این تکنیک مانند نوشتن رمز عبور با یک کد مخفی است که سیستم امنیتی آن را نمیشناسد.
استفاده از مدل مجوزها
گردشکار "permissions: {}" را اعلام میکند تا توکن خودکار GITHUB_TOKEN محدود شود — اما این محدودیت به زمینه "secrets" (رازها) اعمال نمیشود. در نتیجه گردشکار همچنان دسترسی کامل خواندن به تمام رازهای مخزن و سازمان دارد.
شمارش محیطهای استقرار (Deployment Environments)
ابزار محیطهای استقرار پیکربندیشده در مخزن را شمارش میکند. یک ماتریس کار (job matrix) با "environment: ${{ matrix.environment }}" میسازد که گردشکار را وادار میکند رازهای محدود به محیط — اغلب اعتبارنامههای پایگاه داده تولید، کلیدهای ارائهدهنده ابری و توکنهای پردازش پرداخت — را حل کرده و در همان جریان لاگ ماسکنشده چاپ کند.
استخراج داده (Exfiltration) از زیرساخت خود گیتهب
ابزار لاگ اجرای گردشکار را از طریق API گیتهب با توکن دزدیده دانلود میکند و ثانیهها بعد اجرای گردشکار را حذف میکند تا از شناسایی فرار شود. چون هیچ دامنه خارجی تماس گرفته نمیشود و هیچ اتصال شبکه خروجی از رانر (runner) برقرار نمیشود، فیلترهای مبتنی بر شبکه و فیدهای اطلاعات تهدید هیچ دیدی به دزدی داده ندارند.
آمار و دامنه قربانیان
تحقیقگران ویز بیش از ۱۳۵۰۰ شاخه پیادهشده در ۸۵۰ حساب کاربری هکشده را بازیابی کردند. طیف قربانیان از پروژههای شخصی توسعهدهندگان منفرد تا مخازن خصوصی در سازمانهای Enterprise گسترده است. تا ۲۴ اکتبر ۲۰۲۶ حمله فعال و در حال تکامل است. حدود دوسوم حسابهای متهم دیگر در گیتهب موجود نیستند، احتمالاً نشاندهنده تلاشهای رفع آسیبپذیری پس از افشای مسئولانه ویز به پلتفرم. حمله Gheist که بیش از ۱۳۵۰۰ توکن را هدف قرار داده، در پیوندی با دobyابی ۸۰ هزار کد مخرب توسط عاملهای OpenAI نشاندهنده تهدیدات گستردهتر در امنیت زنجیره تأمین است.
شکاف حیاتی: مخازن عمومی در برابر خصوصی و Enterprise
گیتهب کنترلی استقرار داده که این برد را در مخازن عمومی مسدود میکند. با این حال مخازن خصوصی و محیطهای GitHub Enterprise Cloud/Server کاملاً آسیبپذیر باقی ماندهاند. این شکاف وجود دارد چون کنترل حفاظتی بر هیوریستیکهای دیدگاه مخازن عمومی تکیه دارد که در زمینههای خصوصی یا میزبانیشده شخصی اعمال نمیشوند. محیطهای Enterprise اهداف باارزش خاصی هستند چون اغلب اعتبارنامههای استقرار تولید و مالکیت فکری حساس را میپوشانند.
تحلیل
کمپین Gheist یک ریسک سیستمی در امنیت مدرن CI/CD را برجسته میکند: اعتماد به مدیریت راز بومی پلتفرم ساخت. سازمانهایی که تنها به ماسکگذاری رازهای گیتهب تکیه دارند، در معرض خطرند. کاهش سطح حمله نیازمند دفاع در عمق است: چرخش فوری تمام اعتبارنامههای احتمالیلو رفته، الزام توکنهای کوتاهعمر از طریق OpenID Connect (OIDC) به جای PATهای طولانیعمر، اجرای قوانین حفاظت شاخه نیازمند کامیتهای امضا شده و بازبینی درخواست kéo برای تغییرات گردشکار، و استقرار تشخیص ناهنجاری روی رویدادهای لاگ حسابرسی گیتهب — بهویژه نظارت بر ساخت سریع شاخه، تغییر فایلهای گردشکار و حذف فوری اجرای گردشکار. این رویکرد به استراتژیهای اخیر در مقابله با دزدی توکنها شباهت دارد که گزارش آنتروپیک درباره مسدودسازی دهها هزار حساب برای توقف حملات تقطیری توضیح داده است.
گام بعدی شما
- تمام توکنهای دسترسی شخصی (PAT) و OAuth فعال را بلافاصله بچرخانید و به توکنهای OIDC کوتاهعمر مهاجرت کنید
- قوانین حفاظت شاخه را برای مخازن حیاتی فعال کنید: نیاز به کامیت امضا شده و بازبینی درخواست kéo برای هر تغییر در ".github/workflows/"
- هشدارهای لاگ حسابرسی گیتهب را برای الگوهای: ساخت شاخه "ci-sync-*"، تغییر فایلهای YAML گردشکار، و حذف اجرای گردشکار در کمتر از ۶۰ ثانیه پیکربندی کنید
این حمله نشان میدهد که هویت توسعهدهنده حاشیهی امنیتی جدید است — اما داستان سختافزاری این تحول حتی شگفتانگیزتر است؛ به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو