آسیب‌پذیری بدافزار در GitHub Codespaces

بررسی های اخیر توسط Trend Micro نشان می دهد که قابلیت “پورت فوروارد” در GitHub Codespaces می تواند به مجرمان سایبری اجازه میزبانی و ارائه بدافزار را بدهد. محققان دریافتند که می توان از اشتراک گذاری عمومی پورت های فوروارد برای ایجاد یک سرور بدافزار استفاده کرد. برای انجام این کار، عوامل تهدید به یک حساب GitHub قانونی نیاز دارند تا به آنها مشکوک نشوند.

GitHub Codespaces از نوامبر 2022 در دسترس است .GitHub Codespace دارای بیش از 94 میلیون حساب توسعه دهنده است و توسط شرکت های بزرگی مانند DuoLingo و Vanta استفاده می شود. پس از ثبت نام، هر توسعه دهنده وب می تواند حداقل دو نمونه فضای کد را به صورت رایگان ایجاد کند.

GitHub Codespace چیست؟

GitHub Codespaces به توسعه دهندگان وب ، امکان نوشتن ، ویرایش و اجرای کد را مستقیماً از مرورگر وب خود می دهد. GitHub Codespaces ، یک محیط مبتنی بر کانتینر را در یک ماشین مجازی (VM) از پیش کانفیگ شده ، به همراه تمام ابزارها و متعلقات لازم برای پروژه‌های جاوا اسکریپت، پایتون و روبی ایجاد می‌کند. به این معنی که توسعه‌دهندگان وب  می‌توانند به سرعت و بدون نیاز به راه‌اندازی IDE محلی خود، پروژه جدید شروع کنند. در حالیکه بدون این امکان معمولاً ایجاد پروژه ساعت‌ها طول می‌کشد و می‌تواند مشارکت و بهره‌وری را در زمان واقعی به تأخیر بیندازد. با Codespaces گیت هاب ، برنامه نویسان و توسعه دهندگان وب بدون نگرانی در مورد تفاوت و محدودیت های محلی خود ، می توانند روی پروژه مشابهی از هر سیستم و هر نقطه ای از دنیا کار کنند.

در حالی که ارسال پورت های خصوصی برای احراز هویت به کوکی ها و یا توکن ها نیاز دارد، یک پورت عمومی تقریباً برای هر کسی که به URL دسترسی دارد در دسترس می باشد. طبق تحقیقات Trend Micro، مشکل GitHub Codespaces این است که وقتی به کاربران اجازه می‌دهد پورت‌های عمومی را از طریق پروتکل کنترل انتقال (TCP) مشاهده و آزمایش کنند، به مجرمان سایبری نیز امکان ورود را می‌دهد.

این امر به بازیگران تهدید امکان می دهد تا پلتفرم های هوش تهدید را دور بزنند. در GitHub Codespaces، پورت ها با استفاده از HTTP ارسال می شوند. امنیت HTTP کمتر از HTTPS است. بدون نشان دادن تاریخچه مخرب، بدافزار از زیر رادارهای امنیتی عبور می کند. در حمله شبیه سازی شده Trend Micro، محققان پورت 8000 را با استفاده از ویژگی forwardPorts ارسال کردند. سپس، آنها یک سرور HTTP مبتنی بر پایتون را در هر راه‌اندازی موفق کانتینری با استفاده از ویژگی postStartCommand اجرا کردند.

در نتیجه، محققان نشان دادند که چگونه یک مجرم سایبری می تواند یک وب سرور پایتون را اجرا کند، اسکریپت های مخرب را در Codespace آپلود و یک پورت وب سرور عمومی را باز کند. سپس ، مجرمان سایبری از URL برای توزیع بدافزار بین کاربران نهایی استفاده کردند. در طول این فرآیند، GitHub Codespaces هیچ روش احراز هویت را شروع نکرد.

این فرآیند مشابه نحوه توزیع بدافزار توسط مجرمان سایبری در سایر سرویس‌های معتبر مانند Microsoft Azure، Google Cloud و Amazon AWS است.

از آنجایی که کانتینرهای توسعه دهنده در گیت هاب (GitHub) دارای تمام ابزارها و متعلقات مورد استفاده در پروژه های توسعه وب هستند، توسعه دهندگان وب برای استقرار سریع به آنها اعتماد کرده اند. اما ، در همین زمان ، همان کانتینرهای توسعه دهنده به مجرمان سایبری نیز کمک می کنند تا در عرض چند دقیقه یک وب سرور مخرب در GitHub Codespaces بدون هیچ نظارتی ایجاد نمایند.

با استفاده از چنین اسکریپت‌هایی، مهاجمان می‌توانند به راحتی و به سرعت از GitHub Codespaces در ارائه محتوای مخرب با افشای پورت‌ها در Codespaces خود سوء استفاده کنند. از آنجایی که هر Codespaces ایجاد شده دارای یک شناسه منحصر به فردمی باشد ، ساب دامین مرتبط با آن نیز منحصر به فرد است. این آسیب پذیری به مهاجم زمینه کافی برای ایجاد نمونه های مختلف از دایرکتوری های باز را می دهد.

معمولاً این پلتفرم Codespaces را ظرف 30 روز حذف می کند و به عوامل تهدید یک ماه اجازه استفاده از URL را می دهد. هنگامی که این آسیب پذیری امنیتی خاص هنوز مورد سوء استفاده قرار نگرفته باشد ، مجرمان سایبری پس از کشف آن وقت را تلف نمی کنند. تمایل آنها برای بهره برداری از خدمات رایگان، مانند Dropbox، GitHub، Azure، OneDrive و موارد دیگر، شناخته شده و مستند است. متأسفانه، این آسیب‌پذیری‌ها، کاربران عادی را نیز در معرض دانلود بدافزار از این پلتفرم‌ها قرار می‌دهند.