خانه » آسیب پذیری ArtiPACKED، موجب افشای توکن های احراز هویت GitHub می‌شود

آسیب پذیری ArtiPACKED، موجب افشای توکن های احراز هویت GitHub می‌شود

2024 ArtiPACKED Exploit

توسط Vulnerbyte
آسیب پذیری ArtiPACKED - توکن های احراز هویت GitHub

محققان امنیت سایبری Palo Alto Network اخیرا متوجه شده‌اند که تعدادی از پروژه‌های منبع باز اصلی همچون AWS، Microsoft، Google، Red Hat در حال افشای توکن‌های احراز هویت GitHub هستند.

این باگ که مربوط به آرتیفکت Actionهای GitHub  در workflowهای (گردش‌های کاری) CI/CD می‌باشد، ArtiPACKED نام دارد و می‌تواند برای تصرف مخازن و دسترسی به محیط‌های ابری سازمان‌ها مورد سوء استفاده قرار گیرد.

هکرها در واقع می‌توانند با ربودن این توکن‌ها (مانند GITHUB_TOKEN و ACTIONS_RUNTIME_TOKEN) و کد منبع به مخازن خصوصی دست یابند و یا کدهای مخرب را به پروژه تزریق کنند.

آسیب پذیری ArtiPACKED - توکن های احراز هویت GitHub
آرتیفکت Actionهای GitHub

ترکیبی از پیکربندی‌های پیش فرض و نادرست، بررسی‌های امنیتی ناکافی و نقص‌های امنیتی می‌تواند علت این فاجعه (انتشار توکن‌های GitHub) باشد.

زنجیره نفوذ ArtiPACKED
زنجیره نفوذ ArtiPACKED

لازم به ذکر است که توسعه دهندگان GitHub قبلا مسئولیت حفاظت از آرتیفکت‌ها را بر عهده کاربران گذاشته‌اند، از این رو هیچ گونه مسئولیتی در قبال مشکل به وجود آمده ندارند.

اولین مشکل، مربوط به action/checkout می‌باشد که معمولاً در گردش کار GitHub برای کلون کردن کد مخزن استفاده می‌شود تا در طی کار در دسترس باشد.

این action به طور پیش‌فرض، توکن GitHub را در دایرکتوری مخفی لوکال git ذخیره می‌کند که برای انجام احراز هویت ضروری می‌باشد. چنانچه کاربر به اشتباه کل دایرکتوری checkout  را به عنوان بخشی از آرتیفکت دانلود کند، توکن GitHub در پوشه git فاش می‌شود.

از سوی دیگر ممکن است اطلاعات حساسی همچون کلیدهای API، توکن‌های دسترسی سرویس‌های ابری و داده‌های لاگین حساب‌های مختلف در این دایرکتوری وجود داشته باشند.

یکی از خطاهای مشابه کشف شده مربوط به بارگذاری آرتیفکت‌هایی است که می‌توانند به علت آرتیفکت‌هایی که در طول فرایند CI/CD ایجاد شده‌اند، رخ دهند (به عنوان مثال، نتایج ساخت و آزمایش که ذخیره می شوند و تا سه ماه در دسترس قرار دارند).

توکن فاش شده
توکن فاش شده

مسئله بعدی مربوط به pipelineهای  CI/CDمی‌باشد که از متغیرهای محیطی برای ذخیره توکن‌های GitHub استفاده می‌کند. چنانچه actionها و اسکریپت‌های درون یک workflow به طور هدفمند یا اشتباه این متغیرها را ثبت کنند، آنگاه لاگ‌ها به عنوان آرتیفکت‌ بارگذاری خواهند شد.

اگر CREATE_LOG_FILE بر روی True تنظیم شده باشد، باعث ایجاد اکشن super-linter برای ارائه لاگ‌های دقیق می‌شود.

توکن‌های گیت هاب (GITHUB_TOKEN) تنها تا پایان کار، معتبر می‌مانند و پس از آن منقضی می‌شوند. از این رو، پتانسیل استفاده از آن‌ها بستگی به موارد خاصی دارد.

آسیب پذیری ArtiPACKED - توکن های احراز هویت GitHub
نمونه‌ای از یک workflow مخزن مایکروسافت که GITHUB_TOKEN معتبر را در یک آرتیفکت بارگذاری می‌کند

بهبودهایی که در ویژگی آرتیفکت‌های نسخه 4 انجام شده است این امکان را فراهم می‌آورد تا هکرها بتوانند با دانلود یک آرتیفکت‌ در حین اجرای workflow از سناریوهای race condition  برای ربودن و سوء استفاده از توکن بهره برداری کنند.

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

مجموعه دیگری از اسکریپت‌ها به هکرها این امکان را می‌دهند که به صورت خودکار، آرتیفکت‌‌ها را از pipelineهای CI/CD مخازن هدف دانلود کنند (که در مورد مخازن عمومی اصلا دشوار نیست) و سپس آن‌ها را به صورت پنهان مورد بررسی قرار دهند.

متخصصان امنیت سایبری  Palo Alto Network ، چهارده پروژه بزرگ منبع باز را شناسایی کرده‌اند که امکان انتشار چنین توکن‌هایی را فراهم می‌کردند. کارشناسان این یافته‌های خود را به توسعه دهندگان گزارش کردند و آن‌ها نیز این باگ را در موارد زیر برطرف نمودند:

کارشناسان در پایان، توصیه کرده‌اند که کاربران GitHub از گنجاندن کل دایرکتوری‌ها در آرتیفکت‌‌های قابل دانلود خودداری کنند، لاگ‌ها را پاک کرده و به طور منظم تنظیمات pipelineهای CI/CD را مورد بررسی قرار دهند. تنظیمات برای actionهای خطرناک باید به گونه‌ای انجام شود که از ذخیره داده‌های لاگین جلوگیری به عمل آید.

 

منابع

همچنین ممکن است دوست داشته باشید

پیام بگذارید

تعریف نشده است