ما در گزارش اخیر خود بررسی کردیم که چگونه یک نقص GitHub در بخش کامنتها (نظرات)، میتواند توسط مهاجم برای توزیع بدافزار مورد سوء استفاده قرار گیرد. اکنون مشخص شده است که GitLab نیز تحت تأثیر این نقص قرار دارد و میتواند به شیوهای مشابه (با استفاده از URLهای مرتبط با مخازن) مورد سوء استفاده قرار گیرد.
مهاجمان با سوء استفاده از این نقص خواهند توانست طعمههای فریبنده و متقاعدکنندهای ایجاد کنند. به عنوان مثال، به نظر میرسد URLهای زیر که به ظاهر حاوی فایلهای ZIP هستند، در مخزن کد منبع مایکروسافت میزبانی میشوند. در حالی که نتایج بررسیها، حاکی از آن است که فایلها، بدافزار بوده و در مخزن کد مایکروسافت وجود ندارند.
این نقص در گیت هاب، بیانگر آن است که مهاجم چگونه میتواند از بخش کامنت برای ارسال بدافزار سوء استفاده کرده و وانمود کند، فایلهای مخرب در مخازن کد منبع رسمی سازمانهای معتبر میزبانی میشوند.
کاربر گیت هاب هنگام گذاشتن کامنت، میتواند فایلی (آرشیو، اسناد و غیره) را ضمیمه کند که در CDN گیت هاب آپلود میگردد و با استفاده از یک URL منحصربهفرد و مرتبط با پروژه در فرمت زیر مشخص میشود:
“ https://www.github.com/{project_user}/{repo_name}/files/{file_id}/{file_name}“
گیت هاب به جای ایجاد URL پس از ارسال کامنت، لینک دانلود را به طور خودکار پس از افزودن فایل به کامنتِ ذخیره نشده، ایجاد میکند. این شرایط، به مهاجم اجازه میدهد تا بدافزار خود را به هر مخزنی متصل کند.
شما حتی اگر تصمیم بگیرید کامنت را ارسال نکنید و یا آن را پس از ارسال حذف کنید، فایلها از CDN گیت هاب حذف نخواهند شد و URLهای دانلود، برای همیشه باقی خواهند ماند.
ما مدت کوتاهی پس از انتشار این گزارش، متوجه شدیم که GitLab نیز از این موضوع در امان نیست و کاربران میتوانند از ویژگی “کامنت” در GitLab به روشی مشابه سوء استفاده کنند.
Bleepingcomputer در آزمایشهای خود توانست، فایلهایی را آپلود کند که تنها در CDN این سایت (GitLab) آپلود شده بودند، اما این گونه به نظر میرسید که فایلها در مخازن GitLab پروژههای منبع باز محبوب مانند Inkscape و Wireshark وجود دارند:
فایل مورد استفاده در آزمایش، یک تصویر JPG است که به فرمت exe تغییر نام داده است تا نشان دهد که مهاجمان چگونه با سوء استفاده از این ویژگی، میتوانند کاربران را به دانلود نرمافزارهای جعلی حاوی بدافزار فریب دهند. فرمت URL پس از آپلود چنین فایلهایی در GitLab به صورت زیر خواهد بود:
https://gitlab.com/{project_group_namr}/{repo_name}/uploads/{file_id}/{file_name}
لینکهای فایل GitLab مانند GitHub، به گونهای هستند که بدون ارسال کامنت، ایجاد میشوند و قابل حذف نخواهند بود.
متأسفانه، حتی اگر شرکتی متوجه شود که مخازن آنها برای توزیع بدافزار مورد سوء استفاده قرار گرفته است، احتمالا نخواهد توانست فایلهای پیوست شده به پروژههای خود را مدیریت کند (چنین تنظیماتی تاکنون مشاهده نشده است). GitLab هنوز پاسخی در خصوص این باگ ارائه نکرده است.