برنامههایی که از نامهای مخزن قدیمی در GitHub به عنوان وابستگی استفاده میکنند ممکن است در واقع کاربران را به سمت بدافزار سوق دهند. در اینجا چیزی است که شما باید بدانید.
به طور فزاینده ای آشکار می شود که بازپس گیری GitHub یک خطر قانونی برای توسعه دهندگان ایجاد می کند. هکرها میتوانند با ربودن نامهای مخزن قدیمی از تغییر نامهای GitHub کاربران و شرکتها استفاده کنند، به این امید که فایلهای مخربی که اضافه میکنند ممکن است توسط برنامههایی که از کد به عنوان یک وابستگی استفاده میکنند واکشی شوند.
بنابراین، مهم است که اگر اخیراً نام کاربری خود را تغییر داده اید یا به مخازن دیگر به عنوان وابستگی ارجاع داده اید، برای محافظت از پروژه GitHub خود اقدامات لازم را انجام دهید.
RepoJacking چیست؟
Repojacking GitHub نوعی سوء استفاده است که می تواند پس از تغییر نام کاربری توسط صاحب مخزن انجام شود. ترکیب نام کاربری قدیمی و نام مخزن در دسترس قرار میگیرد و یک repojacker میتواند با ادعای نام کاربری و ایجاد یک مخزن با همین نام از وابستگیهای آن استفاده کند.
Repojacking می تواند دو نوع خطر مجزا ایجاد کند:
- Repojacking می تواند یک برنامه کاربردی قابل اعتماد را غیر قابل اعتماد کند. اگر از برنامه ای استفاده می کنید که از مخزن GitHub به عنوان وابستگی استفاده می کند و مالک آن مخزن را تغییر نام می دهد، استفاده از برنامه شما را آسیب پذیر می کند.
- Repojacking می تواند برنامه ای را که در حال توسعه آن هستید در معرض خطر قرار دهد. اگر به یک مخزن GitHub به عنوان یک وابستگی اشاره کنید و در هنگام تغییر نام مخزن متوجه آن یا به روز رسانی آن نشوید، برنامه شما در برابر اکسپلویت های repojacking آسیب پذیر خواهد بود.
Repojacking خطر بزرگی برای کاربران ایجاد نمی کند، اما دلیل موجهی وجود دارد که باور کنیم می تواند به عنوان مکانیزم یک حمله جدی زنجیره تامین عمل کند. اگر برنامهای وابستگی داشته باشد که به یک مخزن بازجکشده ارجاع دهد، کدی را که ممکن است حاوی بدافزار باشد از Repojackerها فراخوانی میکند و دریافت میکند.
اگر در GitHub توسعه میدهید، دانستن اینکه چگونه میتوانید خطر حملات زنجیره تامین و جعل مجدد را به حداقل برسانید – هم از نظر مخزن ربودهشده و هم به عنوان یک شخص ثالث با وابستگی – حیاتی است.
چگونه ریسک RepoJacking را به حداقل برسانیم
حملات Repojacking بر یک مکانیسم بسیار قابل پیشبینی تکیه میکنند: ربایندگان کنترل یک مخزن بدون ادعا را در دست میگیرند و سپس از هر برنامهای که به آن به عنوان یک وابستگی اشاره میکند، بهره میبرند. خوشبختانه، این امر مبارزه با جابجایی مجدد را آسان می کند.
کلون های خصوصی مخازن ایجاد کنید
شبیه سازی یک مخزن یک راه عالی برای به حداقل رساندن خطر مرتبط با وابستگی ها در پروژه شما است زیرا کنترل مطلق بر نسخه خصوصی خود خواهید داشت. همانطور که در GitHub مستند شده است، میتوانید یک کپی خصوصی از یک مخزن عمومی با شبیهسازی ساده و فشار دادن آینه آن ایجاد کنید.
وابستگی های پروژه خود را با دقت دنبال کنید
اگر تصمیم دارید که ترجیح می دهید از مشکل و مرجع مخازن عمومی جلوگیری کنید، باید اطمینان حاصل کنید که وابستگی های پروژه خود را مرتباً بررسی می کنید. بررسی وضعیت وابستگیهایتان چند بار در سال حداکثر کمتر از یک ساعت طول میکشد – و از استرس زیادی نجات میدهید.
در تغییر نام حساب خود تجدید نظر کنید
در حالت ایده آل، به روز نگه داشتن نام کاربری شما هیچ دلیلی برای نگرانی نخواهد داشت. با توجه به خطر بازپس گیری، باید نام قدیمی خود را حفظ کنید. اگر باید نام کاربری خود را تغییر دهید، باید نام قدیمی را با ثبت حساب دیگر درخواست و رزرو کنید.
از منابع خارجی عاقلانه استفاده کنید
وابستگی ها یک خطر ذاتی هستند زیرا نقاط دسترسی شخص ثالث را در برنامه شما ایجاد می کنند. در حالی که آنها معمولاً ارزش زمانی را دارند که صرفه جویی می کنند، بازرسی منظم وابستگی های پروژه شما بسیار مهم است. همچنین باید اقدامات امنیتی دیگری مانند استفاده از احراز هویت SSH برای جلوگیری از سوء استفاده ها انجام دهید.