آسیب‌پذیری که اجازه می‌دهد به‌روزرسانی برای هر بسته موجود در مخزن NPM منتشر شود

GitHub دو رویداد را در زیرساخت مخزن بسته NPM افشا کرده است. در 2 نوامبر، محققان امنیتی شخص ثالث (Kajetan Grzybowski و Maciej Piechota) به عنوان بخشی از برنامه Bug Bounty یک آسیب پذیری را در مخزن NPM گزارش کردند که به شما امکان می دهد نسخه جدیدی از هر بسته را با استفاده از حساب شخصی خود منتشر کنید که مجاز به انجام آن نیست. انجام چنین به روز رسانی

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

این مشکل 6 ساعت پس از گزارش آسیب‌پذیری برطرف شد، اما این آسیب‌پذیری برای مدت طولانی‌تر از پوشش گزارش‌های تله متری در NPM وجود داشته است. GitHub ادعا می کند که از سپتامبر 2020 هیچ اثری از حملات با استفاده از این آسیب پذیری وجود ندارد، اما هیچ تضمینی وجود ندارد که این مشکل قبلا مورد سوء استفاده قرار نگرفته باشد.

حادثه دوم در 26 اکتبر رخ داد. در جریان کار فنی با پایگاه داده این سرویس replicate.npmjs.com، حضور در پایگاه داده قابل دسترسی برای پرس و جوهای خارجی داده های محرمانه فاش شد و اطلاعاتی را در مورد نام بسته های داخلی که در گزارش تغییرات ذکر شده بود فاش کرد. اطلاعات مربوط به چنین نام‌هایی را می‌توان برای راه‌اندازی حملات وابستگی در پروژه‌های داخلی مورد استفاده قرار داد (در ماه فوریه، چنین حمله‌ای اجازه اجرای کد روی سرورهای PayPal، Microsoft، Apple، Netflix، Uber و 30 شرکت دیگر را داد).

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

به یاد بیاورید که طبق مطالعه ای که در سال 2020 انجام شد، تنها 9.27 درصد از نگهبانان بسته از احراز هویت دو مرحله ای برای محافظت از دسترسی استفاده می کنند و در 13.37 درصد موارد، هنگام ثبت حساب های جدید، توسعه دهندگان سعی در استفاده مجدد از رمزهای عبور در معرض خطر دارند که به صورت شناخته شده ظاهر می شوند. نشت رمز عبور قدرت گذرواژه های مورد استفاده به دلیل استفاده از رمزهای عبور قابل پیش بینی و پیش پا افتاده مانند «12» توانست به 13 درصد از حساب های NPM (123456 درصد از بسته ها) دسترسی پیدا کند. از جمله مشکلات 4 حساب کاربری از 20 بسته محبوب برتر، 13 حساب که بسته های آنها بیش از 50 میلیون بار در ماه دانلود می شد، 40 حساب - بیش از 10 میلیون بار در ماه و 282 حساب با بیش از 1 میلیون دانلود در ماه بود. با توجه به بارگذاری ماژول ها در امتداد زنجیره وابستگی، به خطر افتادن حساب های غیرقابل اعتماد می تواند تا 52٪ از همه ماژول ها در NPM در مجموع برسد.

منبع: opennet.ru

اضافه کردن نظر