CVSS یک استاندارد جهانی برای امتیازدهی شدت آسیبپذیری است
عبارت CVSS مخفف Common Vulnerability Scoring System هست. این سیستم، همونطور که از اسمش پیداست، یک روش استاندارد و جهانی برای امتیاز دادن به میزان خطرناک بودن یا همون شدت یک آسیبپذیری نرمافزاریه. وقتی یک باگ کشف میشه، تیمهای امنیتی بر اساس فاکتورهای مشخصی بهش نمره میدن تا مدیران سیستم بتونن سریعا بفهمن با چه فاجعهای روبرو هستن.
امتیاز CVSS به ما کمک میکنه تا آسیبپذیریها رو با هم مقایسه کنیم و تصمیم بگیریم کدوم یکی رو باید اورژانسی برطرف کنیم و کدوم رو میشه در آپدیتهای بعدی رفع کرد.
تفاوت شدت فنی با ریسک واقعی سایت شما
یکی از مهمترین نکاتی که تو باید بدونی اینه که نمره CVSS، شدت فنی (Severity) یک باگ رو اندازه میگیره، نه ریسک واقعی (Risk) اون رو برای سیستم تو! این دو تا با هم فرق دارن.
شدت فنی بر اساس ویژگیهای خود باگ محاسبه میشه (مثلا آیا برای اکسپلویت شدن نیاز به لاگین هست یا نه؟). اما ریسک واقعی بستگی به شرایط سیستم تو داره. ممکنه یک باگ در یک ماژول خاص از سیستم باشه که تو اصلا روی سایتت فعال نکردی. در این صورت، با اینکه باگ به صورت تئوری خطرناکه و نمره بالایی داره، اما ریسک اون برای سایت تو صفره!
سه دسته متریک اصلی در CVSS
محاسبه نمره CVSS بر اساس سه دسته از معیارها (Metrics) انجام میشه که ترکیب اینها، نمره نهایی رو میسازه:
- Base Metrics (معیارهای پایه): این معیارها خصوصیات ذاتی و ثابت آسیبپذیری رو نشون میدن. مواردی که به زمان یا محیط کاربر بستگی ندارن. مثل روش دسترسی به سیستم (شبکه، لوکال)، نیاز به احراز هویت، و تاثیری که روی محرمانگی (Confidentiality)، یکپارچگی (Integrity) و در دسترس بودن (Availability) میذاره. اکثر اوقات وقتی نمره CVSS رو در اخبار میبینی، منظور همین نمره Base هست.
- Temporal Metrics (معیارهای زمانی): این معیارها در طول زمان تغییر میکنن. مثلا آیا کدی برای سوءاستفاده (اکسپلویت) در دسترس عموم هست؟ آیا پچ (Patch) رسمی برای رفع باگ منتشر شده؟ با گذشت زمان و انتشار آپدیت، نمره زمانی معمولا کاهش پیدا میکنه.
- Environmental Metrics (معیارهای محیطی): این معیارها مختص سازمان یا سیستم خودته. مثلا اگر سایت تو یک فایروال قوی داشته باشه که جلوی اون باگ خاص رو بگیره، میتونی نمره محیطی رو برای خودت کمتر محاسبه کنی.
رنج امتیازها: 0.0 تا 10.0
نمره CVSS یک عدد اعشاری بین ۰.۰ تا ۱۰.۰ هست. هر چه این عدد بزرگتر باشه، یعنی باگ خطرناکتره. برای اینکه کار راحتتر بشه، این نمرات به دستههای کیفی زیر تقسیم میشن:
- ۰.۰: بدون مشکل (None)
- ۰.۱ تا ۳.۹: کمخطر (Low)
- ۴.۰ تا ۶.۹: خطر متوسط (Medium)
- ۷.۰ تا ۸.۹: پرخطر (High)
- ۹.۰ تا ۱۰.۰: بحرانی (Critical)
اگر باگی دارای امتیاز بحرانی باشه، یعنی باید همین الان، بدون هیچ تاخیری اون رو رفع کنی!
چرا یک باگ با CVSS 9.8 ممکن است برای سایت تو خطرناک نباشه؟
فرض کن افزونهای روی سایتت نصب داری که در نسخه جدیدش یک باگ با نمره ۹.۸ گزارش شده. این نمره نشون میده این باگ میتونه از راه دور و بدون نیاز به لاگین، کل سایت رو به خطر بندازه. اما چرا ممکنه جای نگرانی نباشه؟
همونطور که قبلا گفتیم، باید شرایط محیطی رو هم در نظر بگیری. اگر اون ویژگی خاص افزونه که دارای باگ هست رو غیرفعال کرده باشی، یا دسترسی به اون بخش فقط از طریق IP های خاصی در فایروال مجاز باشه، هکرها نمیتونن از اون باگ علیه سایت تو استفاده کنن. پس نمره پایه ۹.۸ هست، اما ریسک برای تو خیلی پایینه.
چرا یک باگ با CVSS 5.0 ممکن است خیلی خطرناک باشه؟
برعکس حالت بالا، ممکنه یک باگ با نمره ۵.۰ (متوسط) برای تو فاجعهآفرین باشه! فرض کن یک باگ از نوع XSS در بخش نظرات سایتت پیدا شده که نیاز داره هکر یک حساب کاربری با سطح دسترسی "مشارکتکننده" داشته باشه. نمره این باگ ممکنه به خاطر نیاز به دسترسی، ۵.۰ بشه.
اما اگر سایت تو یک فروم عمومی باشه که هر کسی بتونه توش ثبتنام کنه و سریعا نقش "مشارکتکننده" رو بگیره، اون وقت چی؟ در این حالت، هکرها به راحتی میتونن از باگ استفاده کنن و سایتت رو آلوده کنن. اینجا ریسک برای تو به شدت بالاست، با اینکه نمره CVSS متوسطه!
ارتباط CVSS با CVE چیست؟
در یک جمله: CVE نام و آدرس یک باگ رو مشخص میکنه، اما CVSS میزان خطرناک بودن همون باگ رو نشون میده.
وقتی یک آسیبپذیری جدید کشف میشه، اول از همه یک شناسه CVE بهش اختصاص پیدا میکنه (مثلا CVE-2023-12345). سپس تحلیلگران امنیتی با استفاده از استانداردهای نمرهدهی، ویژگیهای اون باگ رو بررسی میکنن و یک نمره CVSS به همون شناسه اختصاص میدن. این دو مفهوم همیشه در کنار هم استفاده میشن تا تصویر کاملی از یک آسیبپذیری به مدیران سایت ارائه بدن.