OSV-Scanner: اسکنر آسیبپذیری متنباز گوگل
خلاصهٔ کاملتر
OSV-Scanner یه ابزار رسمی و متنباز از گوگله که بهت اجازه میده وابستگیهای پروژهات رو در برابر پایگاه داده OSV.dev اسکن کنی و آسیبپذیریهای شناختهشده رو پیدا کنی. این ابزار در واقع یه رابط کاربری خطفرمان روی کتابخونه OSV-Scalibr ساخته شده و از زبانها و پکیج منیجرهای زیادی مثل npm، pip، yarn، maven، cargo، composer و بقیه پشتیبانی میکنه.
یکی از مزیتهای مهم OSV-Scanner اینه که به جای پایگاه دادههای بسته و اختصاصی، از OSV.dev استفاده میکنه؛ یه دیتابیس باز که منابع معتبری مثل GitHub Security Advisories، RustSec و Ubuntu security notices رو پوشش میده. هر کسی میتونه پیشنهاد بهبود برای advisoryها بده و همین باعث شده کیفیت اطلاعاتش خیلی بالا باشه.
سادهترین کاری که میشه باهاش کرد اینه که یه دایرکتوری از پروژه رو بهش بدی تا به صورت بازگشتی فایلهای وابستگی مثل package.json، go.mod، pom.xml و غیره رو پیدا کنه و آسیبپذیریها رو گزارش بده:
osv-scanner scan source -r /path/to/your/dirیه قابلیت جالب دیگهاش اسکن کانتینرهاست. میتونه ایمیجهای داکر رو لایه به لایه بررسی کنه و آسیبپذیریهای موجود در پکیجهای سیستمعامل (مثل Alpine، Debian، Ubuntu) و همچنین وابستگیهای زبانی داخل کانتینر رو شناسایی کنه:
osv-scanner scan image my-image-name:tagبررسی لایسنس وابستگیها هم یه فیچر خوبیه که از دادههای deps.dev استفاده میکنه. میتونی یه لیست لایسنس مجاز بهش بدی (با فرمت SPDX) و چک کنی آیا همه پکیجهات باهاش سازگارن یا نه:
osv-scanner --licenses="MIT,Apache-2.0" path/to/directoryاگه بخوای بدون اتصال به اینترنت کار کنی، حالت آفلاین هم داره. کافیه یه بار دیتابیس رو دانلود کنی و بعد بدون نیاز به شبکه اسکن کنی:
osv-scanner --offline --download-offline-databases ./path/to/your/dirیه فیچر تجربی هم به اسم Guided Remediation وجود داره که پیشنهادهای مشخصی برای ارتقاء نسخه پکیجها میده. این قابلیت الان برای فایلهای package-lock.json و package.json در npm و pom.xml در Maven پشتیبانی میشه. میتونی عمق وابستگی، حداقل شدت آسیبپذیری و استراتژی رفع مشکل رو تنظیم کنی:
osv-scanner fix \
--max-depth=3 \
--min-severity=5 \
--ignore-dev \
--strategy=in-place \
-L path/to/package-lock.jsonاز نظر حریم خصوصی، OSV-Scanner اطلاعاتی مثل نام پکیج، نسخه و اکوسیستم رو به APIهای OSV.dev و deps.dev میفرسته؛ ولی هیچ کد سورسی منتقل نمیشه. در حالت آفلاین هم که اصلاً درخواست شبکهای انجام نمیشه.
نکات کلیدی:
- ابزار متنباز گوگل برای اسکن آسیبپذیری وابستگیهای پروژه
- پشتیبانی از بیش از ۱۱ اکوسیستم زبانی و ۱۹+ نوع lockfile
- اسکن کانتینرها با آگاهی از لایهبندی ایمیج
- قابلیت بررسی لایسنس وابستگیها با فرمت SPDX
- حالت آفلاین برای اسکن بدون نیاز به اینترنت
- فیچر تجربی Guided Remediation برای پیشنهاد ارتقاء خودکار پکیجها
- بدون ارسال کد سورس به سرورهای خارجی




