OSV: پایگاه دادهٔ توزیعشدهٔ آسیبپذیری متنباز
خلاصهٔ کاملتر
OSV.dev یه رویکرد باز، دقیق و توزیعشده برای تولید و مصرف اطلاعات آسیبپذیری تو دنیای متنبازه. ایدهٔ اصلیش اینه که به جای توصیفهای مبهم، هر آسیبپذیری رو دقیق به نسخهٔ پکیج یا هش کامیت وصل کنه، جوری که هم برای آدم خونا باشه هم برای ماشین قابل پردازش.
پشت این کار فرمت OSV schema قرار داره که با همکاری جامعههای متنباز و زیر چتر OpenSSF ساخته شده. این فرمت یه ساختار دادهٔ مشخص داره که مثلاً میگه یه آسیبپذیری از چه نسخهای وارد شده و تو چه نسخهای درست شده، کدوم پکیج و کدوم اکوسیستم رو درگیر میکنه، و شناسههایی مثل CVE و GHSA بهش وصله. همین دقت باعث میشه ابزارها بتونن بیابهام بفهمن پروژهٔ تو دقیقاً به کدوم آسیبپذیری آسیبپذیره.
این زیرساخت خودش نقش یه تجمیعکننده رو داره؛ یعنی پایگاههای دادهای که فرمت OSV رو پذیرفتن رو یهکاسه میکنه، از جمله GitHub Security Advisories، پایگاه دادهٔ PyPA، RustSec و Global Security Database. دامنهاش هم خیلی گستردهست و دهها اکوسیستم رو پوشش میده؛ از npm و PyPI و Go و crates.io گرفته تا توزیعهای لینوکسی مثل Debian و Ubuntu و Alpine و Red Hat.
برای استفاده، یه API ساده داره که میتونی همهٔ آسیبپذیریهای شناختهشده رو با یه هش کامیت یا با نسخه و اسم پکیج و اکوسیستم ازش کوئری بگیری و جواب رو بگیری. این باعث میشه بشه راحت توی ابزارها و پایپلاینهای خودت ازش استفاده کنی.
کنارش یه ابزار خط فرمان به اسم OSV-Scanner هست که وابستگیهای پروژه رو با این پایگاه داده تطبیق میده. میتونه لاکفایلها و SBOM رو بخونه، یه پوشهٔ پروژه رو بهصورت بازگشتی اسکن کنه، و حتی ایمیجهای کانتینر رو برای آسیبپذیریهای شناختهشده بررسی کنه. یه حالت Guided Remediation هم داره که کمکت میکنه وابستگیهای آسیبپذیر رو بهصورت درجا یا با relock بهروز کنی.
برای خودکارسازی هم OSV-Scanner یه سری GitHub Workflow آمادهٔ استفادهٔ مجدد داره که راحت تو CI/CD میشینن؛ میتونن وابستگیهای تازهاضافهشده تو pull requestها رو برای آسیبپذیری چک کنن و بهصورت منظم کل پروژه رو هم اسکن کنن. کل پروژه هم متنبازه و کدش روی GitHub در دسترسه.
نکات کلیدی:
- OSV.dev آسیبپذیریها رو دقیق به نسخهٔ پکیج یا هش کامیت وصل میکنه
- فرمت استاندارد OSV زیر چتر OpenSSF ساخته شده و هم آدمخونا هم ماشینخوناست
- منابع مختلف مثل GitHub Advisories، PyPA و RustSec رو تجمیع میکنه
- دهها اکوسیستم از npm و PyPI و Go تا توزیعهای لینوکسی رو پوشش میده
- ابزار OSV-Scanner لاکفایل، پوشهٔ پروژه و ایمیج کانتینر رو اسکن میکنه و تو CI/CD میشینه




