OpenSSF (بنیاد امنیت منبع باز) که توسط بنیاد لینوکس تشکیل شده و با هدف بهبود امنیت نرم افزارهای منبع باز، پروژه باز Package Analysis را معرفی کرد که سیستمی را برای تجزیه و تحلیل وجود کدهای مخرب در بسته ها توسعه می دهد. کد پروژه در Go نوشته شده و تحت مجوز Apache 2.0 توزیع شده است. اسکن اولیه مخازن NPM و PyPI با استفاده از ابزارهای پیشنهادی به ما اجازه می دهد تا بیش از 200 بسته مخرب شناسایی نشده قبلی را شناسایی کنیم.
بخش عمده ای از بسته های مشکل دار شناسایی شده، تلاقی نام ها با وابستگی های داخلی غیرعمومی پروژه ها را دستکاری می کنند (حمله سردرگمی وابستگی) یا از روش های typosquatting (تخصیص نام های مشابه با نام کتابخانه های محبوب) استفاده می کنند، و همچنین اسکریپت هایی را فراخوانی می کنند که در طول زمان به میزبان های خارجی دسترسی دارند. فرآیند نصب به گفته توسعهدهندگان Package Analysis، بیشتر بستههای مشکلدار شناساییشده به احتمال زیاد توسط محققان امنیتی شرکتکننده در برنامههای پاداش باگ ایجاد شدهاند، زیرا دادههای ارسالی محدود به نام کاربر و سیستم است و اقدامات بهصراحت و بدون تلاش برای انجام آنها انجام میشود. رفتار خود را پنهان کنند
بسته های دارای فعالیت مخرب عبارتند از:
- بسته PyPI discordcmd، که ارسال درخواستهای غیر معمول به raw.githubusercontent.com، Discord API و ipinfo.io را ثبت میکند. بسته مشخص شده کد backdoor را از GitHub دانلود کرده و در فهرست کلاینت Discord Windows نصب کرده و پس از آن فرآیند جستجوی توکن های Discord در سیستم فایل و ارسال آنها به سرور خارجی Discord که توسط مهاجمان کنترل می شود را آغاز می کند.
- بسته NPM colorss همچنین سعی کرد توکن ها را از یک حساب Discord به یک سرور خارجی ارسال کند.
- بسته NPM @roku-web-core/ajax - در طول فرآیند نصب، دادههای مربوط به سیستم را ارسال کرد و یک هندلر (پوسته معکوس) را راهاندازی کرد که اتصالات خارجی را میپذیرفت و دستورات را اجرا میکرد.
- بسته PyPI secrevthree - هنگام وارد کردن یک ماژول خاص، یک پوسته معکوس راه اندازی کرد.
- بسته NPM تصادفی-vouchercode-generator - پس از وارد کردن کتابخانه، درخواستی را به یک سرور خارجی ارسال کرد که دستور و زمان اجرای آن را برگرداند.
کار Package Analysis به تجزیه و تحلیل بستههای کد در کد منبع برای ایجاد اتصالات شبکه، دسترسی به فایلها و اجرای دستورات خلاصه میشود. علاوه بر این، تغییرات در وضعیت بستهها برای تعیین اضافه شدن درجهای مخرب در یکی از نسخههای نرمافزار اولیه بیضرر نظارت میشود. برای نظارت بر ظاهر بستههای جدید در مخازن و ایجاد تغییرات در بستههای ارسال شده قبلی، از جعبه ابزار Package Feeds استفاده میشود که کار را با مخازن NPM، PyPI، Go، RubyGems، Packagist، NuGet و Crate یکپارچه میکند.
تجزیه و تحلیل بسته شامل سه مؤلفه اساسی است که می توانند هم به صورت پیوسته و هم جداگانه مورد استفاده قرار گیرند:
- برنامهریزی برای راهاندازی کار تحلیل بسته بر اساس دادههای Package Feeds.
- تحلیلگری که مستقیماً یک بسته را بررسی می کند و رفتار آن را با استفاده از تکنیک های تحلیل استاتیک و ردیابی پویا ارزیابی می کند. آزمایش در محیط ایزوله انجام می شود.
- لودری که نتایج آزمایش را در فضای ذخیره سازی BigQuery قرار می دهد.
منبع: opennet.ru