uv حالا وابستگیهاتو اسکن امنیتی میکنه
خلاصهٔ کاملتر
تیم Astral تو این پست از دو تا قابلیت امنیتی تازه برای uv (همون مدیر پکیج سریع پایتون) رونمایی کرده. اولیش دستور uv audit هست که وابستگیهای پروژه رو دنبال آسیبپذیریهای شناختهشده و وضعیتهای بهقول خودشون «نامطلوب» مثل منسوخ (deprecated) شدن میگرده. این دستور یه جایگزین بومی برای pip-audit به حساب میاد و به گفتهٔ نویسنده رو پروژههای معمولی بین ۴ تا ۱۰ برابر سریعتره.
نویسنده میگه با اینکه پایتون از قبل ابزارهایی مثل pip-audit و safety داشت، دو تا دلیل باعث شد uv ابزار خودشو بسازه. اول اینکه اسکن آسیبپذیری باید بخشی طبیعی از روند توسعه باشه نه یه کار جداگانه؛ چون audit مستقیم تو خود uv هست، میتونه از resolutionهای قفلشدهٔ uv استفاده کنه و سرعتو بالا ببره. دلیل دوم هم کاراییه: uv از همون اجزای پرسرعت خودش برای شبکه، کش و resolve کردن پکیج استفاده میکنه.
قابلیت دوم سراغ یه تهدید متفاوت میره: پکیجهایی که عمداً مخربان. نویسنده توضیح میده که آسیبپذیری معمولی رو اغلب با آپدیت به نسخهٔ سالم میشه حل کرد، ولی بدافزار معمولاً اطلاعات حساس و کلمهٔ عبور رو میدزده، پس باید فوری بهش واکنش نشون داد. به همین خاطر یه دستور مجزا براش کافی نیست.
راهکاری که دارن آزمایش میکنن اینه که موقع هر uv add یا هر کاری که باعث sync میشه، uv از سرویس OSV میپرسه که آیا برای پکیجهای قفلشدهی فعلی هشدار بدافزار (MAL) ثبت شده یا نه. اگه پکیجی تو لاکفایل با یه هشدار شناختهشده مطابقت داشته باشه، عملیات sync قبل از اینکه کد مخرب فرصت اجرا پیدا کنه متوقف میشه. این بررسی فعلاً پیشفرض خاموشه و باید متغیر UV_MALWARE_CHECK=1 رو ست کنی تا روشن بشه.
نویسنده به یه نکتهٔ ظریف هم اشاره میکنه: وقتی PyPI یه پکیج مخربو قرنطینه میکنه، فقط اشارهگرش از روی ایندکس برداشته میشه ولی خود فایل تو object storage میمونه. چون نصبکنندههایی مثل uv آدرس مستقیم فایلو تو لاکفایل ذخیره میکنن، هنوز میتونن همون نسخهٔ مخربو نصب کنن؛ برای همینه که این بررسی زنده موقع نصب لازمه.
هر دو قابلیت فعلاً تو حالت preview و ناپایدارن و ممکنه تغییر کنن. نویسنده میگه برای آینده دنبال یکپارچگی بیشترن، مثلاً اینکه resolve کردن وابستگیها خودش آسیبپذیریهای نسخههای کاندید رو در نظر بگیره، یا uv add فقط وقتی هشدار بده که آسیبپذیری تو همون وابستگی تازهاضافهشده باشه تا از خستگی هشدار جلوگیری بشه. پشتیبانی از بکاندهای دیگه مثل PYSEC و فرمتهایی مثل requirements.txt هم تو برنامهشونه.
نکات کلیدی:
- uv audit آسیبپذیریهای شناختهشدهٔ وابستگیها رو اسکن میکنه، جایگزین بومی pip-audit و ۴ تا ۱۰ برابر سریعتر
- بررسی بدافزار موقع sync با استعلام از OSV، قبل از اجرای کد مخرب جلوشو میگیره (با UV_MALWARE_CHECK=1 روشن میشه)
- چون لاکفایل به فایل مستقیم تو object storage اشاره میکنه، پکیج قرنطینهشده هنوز قابل نصبه؛ این بررسی زنده همینو پوشش میده
- هر دو قابلیت فعلاً preview و ناپایدارن




