پروفایل گیتهاب شما؛ ویترین افتخارات یا نقشه راه نفوذ مهاجمان؟
آیا پروفایل گیتهاب شما امن است؟ با خطرات GitHub Actions، تگهای شناور و نحوه محدود کردن دسترسی توکنها برای جلوگیری از نفوذ مهاجمان آشنا شوید.
امروزه نمایش آمار لحظهای در پروفایل گیتهاب به یک ترند تبدیل شده است. نمایش تعداد دنبالکنندگان، آخرین پستهای وبلاگ یا حتی آهنگهای در حال پخش در اسپاتیفای، ظاهر جذابی به صفحه میدهد. اما بسیاری از این ابزارها که در قالب GitHub Actions اجرا میشوند، یک مشکل اساسی دارند: آنها پیکربندیهای امنیتی و دسترسیهای مخزن شما را به صورت عمومی منتشر میکنند. در واقع، آنچه به عنوان یک نشان افتخار در صفحه خود میبینید، برای یک مهاجم کنجکاو، چیزی جز یک نقشه دقیق برای شناسایی سطوح حمله نیست.
چه اطلاعاتی را ناخواسته لو میدهید؟
هنگامی که یک اسکریپت خودکار را بدون بررسی دقیق به مخزن خود اضافه میکنید، در واقع در حال ارسال دعوتنامه به مهاجمان هستید. این جریانهای کاری (Workflows) اغلب موارد زیر را برملا میکنند:
۱. سطح دسترسی پیشفرض توکن
اگر در فایل تنظیمات خود بخش ۰ را تعریف نکرده باشید، گیتهاب به صورت پیشفرض بالاترین سطح دسترسی را به توکن شما میدهد. این یعنی هر اسکریپت سادهای که از یک منبع خارجی دریافت کردهاید، میتواند در مخزن شما فایل ایجاد یا حذف کند.
۲. استفاده از تگهای شناور (Floating Tags)
بسیاری از کاربران از نسخههایی مانند ۱ استفاده میکنند. این تگها متغیر هستند و اگر مخزن اصلی آن ابزار در آینده هک شود یا کدهای مخربی به آن اضافه شود، سیستم شما به صورت خودکار نسخه آلوده را دریافت و اجرا میکند. این یک حفره امنیتی بزرگ در زنجیره تأمین نرمافزار شماست.
۳. کپیبرداری کورکورانه از اسکریپتها
وقتی اسکریپتی برای دریافت آمار مینویسید، توکنهای حساس را به عنوان متغیر محیطی به آن میسپارید. اگر این اسکریپت دارای وابستگیهای (Dependencies) غیرضروری باشد، هر یک از آنها میتواند به سادگی توکن شما را سرقت کند و به سرورهای مهاجم بفرستد.
چگونه امنیت پروفایل را تأمین کنیم؟
برای اینکه هم آمار خود را نمایش دهید و هم درهای مخزن را به روی مهاجمان ببندید، نیازی به حذف ابزارها نیست. تنها کافی است این پنج تغییر ساده را در فایل تنظیمات اعمال کنید:
- تعریف حداقل دسترسی: در بخش ۲ فقط دسترسی ۳ را فعال کنید و از اعطای دسترسیهای غیرضروری به سایر بخشها خودداری کنید.
- استفاده از SHA به جای تگ: به جای استفاده از شماره نسخه، از هش کامل (SHA) آن استفاده کنید تا مطمئن شوید کدی که اجرا میشود، دقیقاً همان کدی است که قبلاً بازبینی کردهاید.
- محدودسازی توکنها: برای کارهای ساده، از توکنهای با دسترسی محدود (Read-only) استفاده کنید. هرگز از توکنهای مدیریتی برای کارهای نمایشی استفاده نکنید.
- پرهیز از pull_request_target: هرگز این تریگر را با کدهایی که از منابع نامطمئن دریافت شدهاند، ترکیب نکنید.
- بازبینی کد: هر اسکریپتی که به آن اجازه دسترسی به توکنهای خود را میدهید، باید به اندازه کدهای اصلی پروژهتان برای شما حساس و حیاتی باشد.
امنیت در دنیای توسعهدهندگان، بیش از آنکه به ابزارهای پیچیده وابسته باشد، به رعایت همین جزئیات ساده در پیکربندیها بستگی دارد. هوش مصنوعی نهال پیشنهاد میکند همیشه قبل از اجرای هرگونه اسکریپت خودکار در مخازن عمومی، دسترسیهای آن را بررسی کنید تا ویترین شما به ابزاری علیه خودتان تبدیل نشود.
منبع: dev.to