پشت کد: بدافزار در مخازن GitHub

نمای کلی

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

تحقیقات اخیر دو محل قبلاً غیر منتظره را در آنجا یافت كه بدافزار می تواند پیدا شود:

  • مخزن
  • پرونده های Markdown به راحتی تجزیه می شوند

یک مهاجم حیله گر می تواند به راحتی از این مکانهای بی ضرر برای پنهان کردن و استقرار یک محموله از GitHub با استفاده از روش های مبتنی بر فایل های سنتی استفاده کند به همین ترتیب ، تحلیلگران و محققان بدافزار باید در جستجوی روش های اضافی بازیابی غیر سنتی از GitHub و همچنین هرگونه دستکاری در محتوای بازیابی شده باشند.

روش کشف

جستجوی اخیر GitHub برای جستجوی یک قطعه کد ساده:

گذشته از طیف گسترده ای از مخازن "مورد انتظار" مربوط به اسکنرها (شکل 1) ، تعدادی مخزن نیز وجود داشت که به نظر می رسید کد PHP را در توصیف مخزن نشان می دهد (شکل 2). [19659010] شکل 1

شکل 2

تحقیق

با یک بررسی سریع مشخص شد که این مخازن یا هیچ پرونده ای در آنها ندارند یا فقط پرونده های مخزن "انتظار" مانند پرونده های Markdown ، LICENSE ، پرونده ها و / یا پرونده های گیت بنابراین کد PHP کجا بود؟

در مورد مخزن اول ، هیچ سرنخی به غیر از نتایج جستجو وجود نداشت. بنابراین ، باید نگاهی بیندازیم به آنچه GitHub در آن نتایج نشان می دهد. گذشته از نام مخزن ، می توانیم اطلاعاتی در مورد مخزن از جمله زبان کد مورد استفاده (در صورت وجود) ، مجوزی که برای کد مخزن اعمال می شود و آخرین باری که مخزن به روز شده است ، بدست آوریم. علاوه بر این ، اگر صاحب مخزن توضیحی به تنظیمات مخزن اضافه کرده باشد ، از آن گزیده ای دریافت خواهیم کرد.

بنابراین ، با این مخازن که فاقد کد هستند چه می گذرد؟ در این موارد ، آنچه در نتایج جستجو می بینیم شرح مخزن است.

اکنون که دانستیم کد کجاست ، باید دو چیز را از خود بپرسیم. اول ، "پس چه؟" در مرحله دوم ، "چگونه آن اهرم می شود؟" پاسخ به هر دو س “ال "به راحتی" است.

روش استقرار 1

اولین و نگران کننده تر ، روش استقرار از اطلاعات توصیف مخزن استفاده می کند تا بدافزار را بدون استفاده از پرونده های واقعی در دسترس قرار دهد. شرح ، و هر آنچه در مورد مخزن است ، به راحتی از طریق GitHub’s Repository API در دسترس است. یک تماس ساده با API با کاربر / repo در URI و یک لکه JSON خوب برمی گردانیم.

این ، به نوبه خود ، می تواند از قافله برداشته شود و با یک قطعه PHP ساده اجرا شود.

بر خلاف نمونه فرآیند بازیابی GitHub که شامل بازیابی آشکار یک پرونده از آدرس URL "محتوای خام" GitHub است (به عنوان مثال https://raw.githubusercontent.com/ / / master / ] ، این به نظر می رسد مکانیسم به سادگی در حال بازیابی شرح مخزن است. در حالی که مثال بالا روشن می کند که ما در حال بازیابی کد هستیم و آن را اجرا می کنیم ، یک مهاجم حیله گر می تواند به راحتی آن را پنهان کند ، بنابراین ارزیابی در جای دیگری اتفاق می افتد یا از روش دیگری استفاده می کند.

خطر اصلی در اینجا بازیابی و نمایش یک قسمت "توصیف" برای اکثر مردم کاملاً بی ضرر است. به طور خاص ، بازیابی و تزریق محتوای JSON در بسیاری از موارد کاملاً طبیعی است. هیچ کس دوبار به قطعه کد فکر نمی کند که یک حباب JSON را بازیابی می کند ، یک قسمت توصیف را می گیرد و آن را نمایش می دهد یا با اصطلاحات مناسب ، آن را به نوعی اجرا می کند. در این مورد ، تنها شاخص برای صاحبان مخزن و نام مخزن است.

روش استقرار 2

روش استقرار دوم از پرونده ها استفاده می کند ، اما به روش معمول نیست.

با بازیابی خام Markdown پرونده ، README.md در مخزنی که پیدا کردم ، مهاجم به سادگی یک README بی ضرر را بازیابی می کند. با این حال ، همانطور که در زیر نشان داده شده است ، برخی از جایگزینی های ساده رشته ، محتوای Markdown را به کد پی اچ پی قابل اجرا تبدیل می کند. به طور کلی ، پرونده Markdown که سو would ظن ایجاد می کند. به هر حال پرونده های Markdown اسکریپت یا اجرایی نیستند و حاوی نویسه های قالب بندی متعددی هستند که اجرای آنها را غیر ممکن می کند. یک مهاجم حیله گر می تواند خیلی راحت این بازیابی را به گونه ای پنهان کند که سو susp ظن در مورد هدف بازیابی را برطرف کند. اگر مهاجم داده ها را در پرونده readme یا مجوز نگه دارد ، تنها شاخص هایی که صاحب مخزن و نام مخزن در آن قرار می گیرند.

نتیجه گیری

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

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

Comments are closed.