امتیاز CVSS یا Common Vulnerability Scoring System روشی برای نشان دادن شدت باگ یا آسیبپذیری نرمافزار است. شدت آسیبپذیر با سه گروه متغییر Temporal ,Base و Environmental تعیین میشود. گروه Base خصوصیات اصلی(intrinsic qualities) آسیبپذیری را نشان میدهد و در طول زمان و محیط ثابت هستند.
گروه Temporal ویژگیهای آسیبپذیری را نشان میدهد و باگذشت زمان تغییر میکنند. گروه Environmental خاصیت آسیبپذیری است که در محیط کاربر ویژه است. بازه امتیاز دهی گروه Base مستقلا بین ۰ تا ۱۰ متغییر است. متغییرهای گروهای Temporal و Environmental شدت آسیبپذیری تعیین شده را با اضافه کردن جزئیات در مورد آسیبپذیری تغییر میدهند. سیستم امتیاز دهی CVSS به شکل یک بردار رشتهای، مانند زیر نمایش داده میشود:
Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
درجه آسیبپذیری یا Base Scores معمولا توسط سازمانی مسئول نگهداری نرمافزار و یا شرکت شخص ثالث مانند پلتفرمهای باگ بانتی تعیین میشود. این امتیاز براساس استاندارهای پایه است و در طول زمان و در تمام شرایط ثابت است. درجه آسیبپذیری با تغییر متغییرهای گروههای Temporal و Environmental دقیقتر محاسبه میشود. اطلاعات CVSS را برای فرایند مدیریت آسیبپذیری سازمان میتوان استفاده کند. همچنین سازمان با این روش و ضرایب آسیبپذیری که بخشی از امتیاز دهی CVSS نیست، میتواند تهدیدات علیه زیرساخت تکنولوژی رتبه بندی کند و تصمیمات امنیتی را با آگاهی کامل بگیرد. ضرایب آسیبپذیری غیر از CVSS شامل تعداد مشتریان خط تولید، ضرر مالی به دلیل رخنه مالی، تهدیدات مالی و جانی و احساست عمومی است. این شکل از آسیبپذیریها بسیار رایج و خارج از اهداف CVSS است. جنبه مثبت CVSS، استاندارد سازی وندورها و شفافیت متد کسب امتیاز آسیبپذیری است.
۱.معیارهای امتیاز دهی CVSS :
CVSS به سه دسته Base، Temporal و Environmental تقسیم میشود و هر دسته به دستههای کوچکی به شکل زیر تقسیم میشود:
معیار گروه Base خصوصیات ذاتی آسیبپذیری است و در طول زمان و محیط ثابت هستند و از ترکیب دو معیار اکسپلویتپذیری (Expoiltability) و اثر باگ (impact metrics) است. معیار اکسپلویتپذیری درجه سختی تکنیکال اکسپلویت آسیبپذیری را نشان میدهد. این ویژگی نشان دهنده آسیبپذیر بودن هدف است که به قسمت آسیبپذیری نرمافزار اشاره میکند. اثر باگ درجه تاثیر پذیری نرمافزار از اکسپلویت آسیبپذیری را نشان میدهد.
۲.۱ امتیازگذاری:
زمانی که متغییرها توسط متخصص امنیت برای آسیبپذیری انتخاب شد، امتیاز در بازه ۰ تا ۱۰ به آسیبپذیری اختصاص داده میشود. مطابق شکل زیر:
معادله Base توسط دو زیرمعادله تعیین میشود: زیرمعادله اکسپلویتپذیری و معادله اثر باگ. همچنین امتیاز Base با تعیین متغییرهای Temporal و Environmental تغییر میکند و امتیاز جدید با دقت و جزئیات بیشتری است. تعیین متغییرهای Temporal و Environmental الزامی نیست ولی دقت امتیاز دهی به باگ را افزایش میدهد.
معمولاً مقادیر نمرههای Base و Temporal توسط تحلیلگران آسیب پذیری، وندورهای محصولات امنیتی یا وندورهای نرمافزارها تعیین میشوند. زیرا این گروها دقیقترین اطلاعات را در مورد خصوصیات آسیبپذیری را در اختیار دارند. معیارهای Environmental را سازمانهای end-user تعیین میکنند. این سازمانها پتانسیل اثر باگ را با دقت بیشتری با روشهای محیطی ویژه تعیین میکنند.
معیارهای امتیاز دهی CVSS به شکل بردار رشتهای نشان داده میشوند. نمایش متنی از ارزش معیارها برای امتیازدهی به آسیبپذیری استفاده میشود. بردار رشتهای هر امتیاز را به یک متغییر اختصاص میدهد و بهتر است با امتیاز آسیبپذیری نمایش داده شود.
گفتن این نکته الزامی است که امتیازدهی با این فرض تعیین میشود که مهاجم آسیبپذیری را پیدا کرده است. به این معنی که متخصص امنیت الزامی به پیدا کردن مهاجمی که آسیبپذیری شناسایی کرده ندارد. بهعلاوه افراد و سازمانهای مختلف مانند وندورهای نرمافزار و وندورهای محصولات امنیتی امتیاز آسیبپذیری را تعیین میکنند و این امتیاز دهی درجه ضرر آسیبپذیری را تعیین میکند.
۲.معیارهای Base:
۱.۲ معیار اکسپلویتپذیری (Exploitability Metrics):
همانطور که در بخش قبل گفته شد، معیار اکسپلویتپذیری درجه سختی تکنیکال اکسپلویت آسیبپذیری را نشان میدهد. این ویژگی نشان دهنده آسیبپذیر بودن هدف است که به قسمت آسیبپذیری نرمافزار اشاره میکند. بنابراین هرکدام از معیارهای اکسپلویتپذیری مربوط به آسیبپذیر باید امتیازدهی شوند و هر امتیاز اثر اکسپلویت آسیبپذیری را نشان میدهد.
با فرض براینکه مهاجم اطلاعات کامل از نقاط ضعف سیستم هدف، تنظیمات عمومی و مکانیزمهای دفاعی پیشفرض(firewall داخلی، محدودیتها، سیاستهای ترافیک اطلاعات) دارد. برای مثال، امکان تکرار فرایند اکسپلویت آسیبپذیری امتیاز پیچیدگی حمله را Low تعیین میکند و این امتیاز فارغ از میزان دانش مهاجم است. بهعلاوه، راههای ایجاد محدودیت در حمله(فیلترهای firewall تنظیم شده و لیست دسترسیها) باید در معیارهای Environmental در نظر گرفته شود.
۱.۱.۲ Attack Vector (AV):
این معیار چارچوب اکسپلویت آسیبپذیری را نشان میدهد. ارزش این معیار(متغییر Base) محدوده حمله کننده را مشخص میکند: به این معنی که حمله کنند از چه طریقی فرایند اکسپلویت آسیبپذیری را انجام میدهد. برای مثال اگر حمله کننده از Network اکسپلویت آسیبپذیری را انجام دهد امتیاز بیشتری نسبت به حالت physical اختصاص پیدا میکند. در حالت اول مهاجم از راه دور است و به سختافزاردسترسی ندارد و در حالت بعدی مهاجم باید به سختافزار دسترسی داشته باشد. تمام متغییرهای این معیار شامل:
- Network(N): آسیبپذیری به پشته شبکه بستگی دارد و از طریق شبکهای مانند اینترنت اکسپلویت میشود. در این حالت معمولاً از اصطلاح ٬remotely exploitable٬ استفاده میشود.
- Adjacent(A): آسیبپذیری به پشته شبکه بستگی دارد. اما حمله در سطح پرتکل نزدیک به شبکه محدود شده است. حمله باید از طریق شبکه فیزیکی (Bluetooth or IEEE 802.11) یا منطقی (local IP subnet) به اشتراک گذاشته شده و یا از طریق دامین محدود ادمین(MPLS, secure VPN to an administrative network zone) اجرا شود. برای مثال حمله Adjacent، حمله ARP (IPv4) یا neighbor discovery (IPv6) است.
- Local(L): آسیبپذیری به پشته شبکه بستگی ندارد و مهاجم توانایی اجرای read/write/execute دارد. مهاجم با دسترسی لوکال به شبکه اکسپلویت آسیبپذیری را اجرا میکند. برای مثال، مهاجم با دسترسی به کیبورد و کنسول و یا از راه دور از طریق SSH حمله را اجرا میکند. مهاجم نیاز به همکاری کاربر برای اجرای حمله و اکسپلویت آسیبپذیری دارد.
- Physical(P): مهاجم با حضور فیزیکی به آسیبپذیری دسترسی دارد. برای مثال، مهاجم در حمله cold boot به کلید رمزنگاری بعد از دسترسی فیزیکی به سرور بدست میآورد
۲.۱.۲ Attack Complexity (AC):
این معیار پیچیدگی حمله را بدون درنظر گفتن دانش مهاجم بررسی میکند. این شرایط که در ادامه توضیح داده میشود، نیازمند جمعآوری اطلاعات بیشتری از هدف است. ارزیابی این معیار نیازمند این موضوع است که آیا همکاری کاربر برای اکسپلویت آسیبپذیری الزامی است یا خیر(این موضع در معیار User Interaction بررسی میشود). متغییرهای این معیار شامل موارد زیر است:
- Low(L): شرایطی ویژهای برای اجرای این حمله وجود ندارد. مهاجم توانای تکرار حمله موفق برای اکسپلویت آسیبپذیری دارد.
- High(H): نیازمند شرایط ویژه برای اجرای حمله موفق است. برای اکسپلویت آسیبپذیری شرایطی مانند جمعآوری اطلاعات از هدف مانند تنظیمات، آماده سازی برای اکسپلویت آسیب پذیری نیاز است.
۳.۱.۲ Privileges Required (PR):
این معیار افزایش سطح دسترسی را بررسی میکند و اگر افزایش سطح دسترسی الزامی نباشد متغییر None که بیشترین امتیاز را دارد انتخاب میشود. متغییرهای این معیار شامل موارد زیر است:
- None(N): در این حالت مهاجم برای اجرای حمله نیازی به افزایش سطح دسترسی مانند دسترسی به تنظیمات و فایلهای سرور ندارد.
- Low(L): در این حالت مهاجم برای اجرای حمله نیاز به افزایش سطح دسترسی دارد. افزایش سطح دسترسی تنظیمات و منابع کاربر عادی برای اجرای حمله نیاز است. این منابع و تنظیمات غیرحساس هستند.
- High(H): در این حالت مهاجم برای اجرای حمله نیاز به افزایش سطح دسترسی بیشتری نسبت به LOW دارد. برای مثال، سطح دسترسی مدیر یا root نیاز است.
۴.۱.۲ User Interaction (UI):
این معیار اکسپلویت آسیبپذیری با همکاری کاربر قانونی بررسی میکند .متغییرهای این معیار شامل موارد زیر است:
- None(N): اگر آسیبپذیری نیازی به کاربر قانونی نداشته باشد None است و امتیاز آسیبپذیری افزایش مییابد
- Required(R): مهاجم برای اکسپلویت آسیبپذیری موفق نیاز به همکاری کاربر سیستم هدف دارد. برای مثال، زمانی که مدیر سیستم در حال نصب نرمافزاری روی سیستم است مهاجم میتواند اکسپلویت آسیبپذیری موفق را اجرا کند.
۲.۲ Scope(S):
معیار Scope تأثیر آسیبپذیری را درسیستم هدف بررسی میکند.معمولا مکانیسم مرجع امنیتی، روش کنترل دسترسی برای کاربران با تعریف محدودیتها روی منابع و اهداف مانند فایلها، پردازندهها و حافظهها تعیین میکند. تمام قسمتهای سیستم هدف تحت صلاحیت یک واحد امنیتی در پوشش یک Scope قرار میگیرند. اگر یک آسیبپذیری با Scope مشخص قسمتهای خارج از Scope را تحت تأثیر قرار دهد، Scope Change اتفاق افتاده است.
امتیاز Base Score در حالت Change بالاترین امتیاز است.
- Unchanged(U): در این حالت اکسپلویت آسیبپذیری تنها همان بخش آسیبپذیری و منابع آن با یک اختیار امنیتی تحت تاثیر قرار میدهد. در این حالت قسمتهای آسیبپذیر و تحت تاثیر آسیبپذیری زیر یک بخش امنیتی یا یک Scope هستند.
- Changed: در این حالت اکسپلویت آسیبپذیری بخشهای فراتر از Scope تعریف شده را تحت تاثیر قرار میدهد. در این حالت بخش Scope و غیر دارای یک بخش امنیتی نیستند.
۳.۲ Impact Metrics:
معیار Impact، امتیاز تاثیر اکسپلویتاسیبپذیری موفق را در بدترین حالت سناریو تعیین میکند. تحلیلگر آسیبپذیری دلایل منطقی را باید برای این آسیبپذیری درنظر بگیرد و خروجی آنالیز باید موفقیت مهاجم در حمله را درنظر بگیرد. افزایش سطح دسترسی یا تاثیرات منفی در اکسپلویت آسیبپذیری درنظر گرفته شود و بر این اساس امتیازدهی شود. برای مثال، اکسپلویت آسیبپذیری فقط نیازمند اجازه read-only است و بعد از اکسپلویت آسیبپذیری مهاجم دسترسی write دارد. در این حالت امتیاز معیار Integrity باید درنظر گرفته شود و معیارهای Confidentiality و Availability در این حالت برابر با مقدار None شوند.
۱.۳.۲ Confidentiality (C):
این معیار تاثیر مدیریت محرمانگی منابع در اکسپلویت آسیبپذیری موفق را نشان میدهد. این معیار محدودیت دسترسی و افشای اطلاعات به مالک اطلاعات را تعیین میکند و همچنین میزان جلوگیری کردن از دسترسی و افشای اطلاعات به کاربر ناشناس را بررسی میکند. زمانی که این معیار High است امتیاز Base به بیشترین مقدار ممکن میرسد.
- High(H): محرمانگی در این حالت کاملا از بین رفته است. در نتیجه تمام منابع در اختیار مهاجم است و افشای اطلاعات روی کسب و کار تاثیر گذاشته است.
- Low(L): در این حالت بخشی از اطلاعات و منابع در اختیار مهاجم است و کنترل اطلاعات را در ختیار ندارد. همچنین افشای اطلاعات صورت گرفته است ولی تاثیر منفی زیادی روی سیستم آسیبپذیر ندارد.
- None(N): در این حالت هیچگونه اطلاعاتی افشا نشده است.
۲.۳.۲ Integrity(I):
این معیار تمامیت و یکپارچگی سیستم آسیبپذیری را بررسی میکند. به این معنی که صحت اطلاعات از بین نرفته نباشد.
- High(H): در این حالت تمامیت و یکپارچگی اطالاعات از بین میرود. مهاجم توانایی تغییر تمام اطلاعات در اکسپلویت آسیبپذیر موفق را دارد. در حالت دیگر مهاجم نمیتواند همه اطلاعات را تغییر دهد ولی تغییر همان اطلاعات تاثیر مستقیم روی سیستم دارد.
- Low(L): در این حالت تغییر اطلاعات ممکن است ولی مهاجم کنترل کامل روی تمام اطلاعات ندارد و یا تغییر اطلاعات اثر زیادی روی روند کار سیستم هدف نمیگذارد.
- None(N): در این حالت مهاجم نمیتواند به یکپارچگی و تمامیت اطلاعات آسیب برساند.
۳.۳.۲ Availability(A):
ین معیار اثر دسترسی اطلاعات در اکسپلویت آسیبپذیری موفق را بررسی میکند.
- High(H): در این حالت دسترسی، کاملا از دست میرود و مهاجم جلوی دسترسی منابع به سیستم آسیبپذیر را میگیرد.
- Low(L): در این حالت دسترسی منابع به سیستم آسیبپذیری را کاهش میدهد.
- None(N): در این حالت مهاجم نمیتواند به دسترسی منابع به سیستم آسیبپذیر اثر بگذارد.