توسعه دهندگان پلتفرم Packj که امنیت کتابخانه ها را تجزیه و تحلیل می کند، یک جعبه ابزار خط فرمان باز منتشر کرده اند که به آنها امکان می دهد ساختارهای مخاطره آمیز را در بسته هایی شناسایی کنند که ممکن است با اجرای فعالیت های مخرب یا وجود آسیب پذیری های مورد استفاده برای انجام حملات مرتبط باشد. در پروژه هایی که از بسته های مورد نظر استفاده می کنند ("زنجیره تامین"). بررسی بسته به زبانهای پایتون و جاوا اسکریپت پشتیبانی میشود و در فهرستهای PyPi و NPM میزبانی میشود (آنها همچنین قصد دارند در این ماه پشتیبانی از Ruby و RubyGems را اضافه کنند). کد جعبه ابزار در پایتون نوشته شده و تحت مجوز AGPLv3 توزیع شده است.
طی تجزیه و تحلیل 330 هزار بسته با استفاده از ابزارهای پیشنهادی در مخزن PyPi، 42 بسته مخرب با درب پشتی و 2.4 هزار بسته ریسکی شناسایی شد. در طول بازرسی، یک تحلیل کد استاتیک برای شناسایی ویژگیهای API و ارزیابی وجود آسیبپذیریهای شناخته شده در پایگاه داده OSV انجام میشود. بسته MalOSS برای تجزیه و تحلیل API استفاده می شود. کد بسته برای وجود الگوهای معمولی که معمولاً در بدافزار استفاده میشوند تجزیه و تحلیل میشود. این الگوها بر اساس مطالعه 651 بسته با فعالیت مخرب تایید شده تهیه شدند.
همچنین ویژگیها و ابردادههایی را که منجر به افزایش خطر سوءاستفاده میشوند، مانند اجرای بلوکها از طریق «eval» یا «exec»، تولید کد جدید در زمان اجرا، استفاده از تکنیکهای کد مبهم، دستکاری متغیرهای محیطی، دسترسی غیر هدف به فایلها، شناسایی میکند. دسترسی به منابع شبکه در اسکریپت های نصب (setup.py)، استفاده از typequatting (تخصیص نام های مشابه با نام کتابخانه های محبوب)، شناسایی پروژه های قدیمی و متروکه، مشخص کردن ایمیل ها و وب سایت های موجود، عدم وجود مخزن عمومی با کد.
علاوه بر این، میتوان به شناسایی پنج بسته مخرب در مخزن PyPi توسط سایر محققان امنیتی اشاره کرد که محتویات متغیرهای محیطی را با انتظار سرقت نشانهها برای AWS و سیستمهای یکپارچهسازی مداوم به یک سرور خارجی ارسال میکردند: loglib-modules (ارائه شده به عنوان ماژول ها برای کتابخانه قانونی loglib)، pyg-modules، pygrata و pygrata-utils (که به عنوان اضافات به کتابخانه قانونی pyg تبلیغ می شوند) و hkg-sol-utils.
منبع: opennet.ru