تحقیقات جدید شرکت GitGuardian نشان میدهد که صدها کلید خصوصی (Private Keys) مربوط به اپلیکیشنهای گیتهاب که در کدهای عمومی افشا شدهاند، همچنان فعال هستند. برخی از این کلیدها دسترسیهای سطح Administrator را برای کل سازمانهای هدف فراهم میکنند.
جزئیات تحلیل دادهها
این شرکت با بررسی بیش از ۵۰۰,۰۰۰ کلید خصوصی RSA افشا شده، توانست ۴,۸۰۲ مورد را که در کنار یک App ID در محیط GitHub قرار داشتند، شناسایی کند. از این تعداد، حدود ۱۰ درصد (۴۷۴ مورد) همچنان قادر به احراز هویت در API گیتهاب بودند که مربوط به ۴۴۰ اپلیکیشن مجزا میشدند.
چرا این موضوع بحرانی است؟
برخلاف بسیاری از اعتبارنامهها (Credentials)، کلیدهای خصوصی GitHub App هرگز منقضی نمیشوند. این کلیدها تا زمانی که به صورت دستی حذف شوند، معتبر میمانند و هر کسی که به آنها دسترسی داشته باشد، میتواند توکنهای دسترسی (Access Tokens) دقیقا مشابه توکنهای خود اپلیکیشن درخواست کند.
دامنه دسترسیهای افشا شده
- دسترسی به مخازن: ۷۲٪ از اپلیکیشنهای آسیبدیده قادر به خواندن محتوای مخازن خصوصی (Private Repositories) بودند و ۲۰۷ مورد دسترسی نوشتن داشتند.
- مدیریت سازمان: ۴۴ اپلیکیشن دارای امتیازات مدیریت سازمان (Organization Administration) بودند.
- زیرساخت و اتوماسیون: ۴۰ مورد دسترسی مدیریت Self-hosted Runners و ۹۸ مورد کنترل Workflowها را در اختیار داشتند.
این سطح از دسترسی میتواند منجر به تسخیر کامل یک سازمان یا اجرای کد (Code Execution) در زیرساختهای داخلی آن شود. نکته قابل توجه این است که ۵۹٪ از این اپلیکیشنها تنها یک بار نصب شده بودند که نشاندهنده استفاده از ابزارهای اتوماسیون داخلی و تکمنظوره است که به راحتی فراموش میشوند.
نمونههای واقعی از نشت دادهها
یکی از گستردهترین موارد مربوط به ابزاری برای Access Tokens در GitHub Actions بود که در ژانویه ۲۰۲۴ افشا شد و حدود ۳۰۰ سازمان از جمله Civica و Sierra Nevada Corp را تحت تأثیر قرار داد. همچنین کلیدی مربوط به فریمورک تست Crusher.dev که در سال ۲۰۲۰ افشا شده بود، با وجود متوقف شدن پروژه از سه سال پیش، همچنان فعال بود.
در مورد دیگری، کلیدی متعلق به یک سازمان به نام cdcent در آپریل ۲۰۲۵ در مخزن رسمی مرکز کنترل و پیشگیری از بیماریهای آمریکا (CDC) افشا شد. این کلید دسترسی نوشتن به دو مخزن خصوصی داشت که یکی از آنها ارتباط بین مخازن CDC و زیرساخت Azure را مدیریت میکرد و پتانسیل اجرای کد دلخواه (Arbitrary Code Execution) در Tenant مربوطه را داشت.
توصیههای امنیتی
برای مقابله با این تهدیدات، توصیه میشود تمامی کلیدهای اپلیکیشن که احتمال نشت آنها وجود دارد، سریعاً جایگزین (Rotate) شوند. همچنین به جای بررسی یکباره در زمان راهاندازی، باید از ابزارهای مانیتورینگ مستمر برای شناسایی افشای اعتبارنامهها استفاده کرد.