CVE مخفف چیست و دقیقا یعنی چه؟
عبارت CVE مخفف کلمات Common Vulnerabilities and Exposures هست که در زبان فارسی میتونیم اون رو به «آسیبپذیریها و قرارگیریهای رایج در معرض خطر» ترجمه کنیم. به زبان ساده، CVE یک لیست یا دیکشنری از نقصهای امنیتی شناخته شده عمومیه که هر کدوم دارای یک شناسه یکتا هستن. این لیست توسط متخصصین امنیتی و سازمانهای مرتبط تکمیل میشه تا همه در سراسر دنیا یک زبان مشترک برای صحبت در مورد یک باگ امنیتی خاص داشته باشن.
وقتی کسی از عبارت «شناسه آسیبپذیری» استفاده میکنه، معمولا منظورش همین کد CVE هست که به یک نقص خاص اختصاص داده شده.
چرا به یک سیستم شناسه گذاری نیاز داریم؟
تصور کن تو یک متخصص امنیت هستی و یک باگ در یک افزونه پرطرفدار وردپرس پیدا کردی. اگر قرار باشه تو به همکارت بگی «اون باگی که باعث میشه کاربر بتونه بدون لاگین شدن، فایل آپلود کنه»، خیلی طولانیه و ممکنه باگهای مشابه دیگهای هم وجود داشته باشن. اما وقتی میگی «اون مشکل تو CVE-2023-1234»، همه دقیقا میدونن داری در مورد کدوم باگ صحبت میکنی.
پس دلیل اصلی نیاز به سیستم CVE این موارد هست:
- ایجاد زبان مشترک بین محققین امنیتی، تیمهای توسعه و مدیران سیستمها.
- جلوگیری از سردرگمی و اشتباه در شناسایی باگهای مشابه.
- ردیابی دقیق تاریخچه و وضعیت پچ شدن (رفع شدن) آسیبپذیریها.
- تسهیل کار ابزارهای اسکنر امنیتی برای تشخیص باگها.
ساختار شناسه CVE چگونه است؟
ساختار نامگذاری CVE خیلی ساده و منطقیه. هر شناسه از سه بخش تشکیل شده:
CVE-YYYY-NNNN
- CVE: که همون پیشوند ثابت برای همه شناسههاست.
- YYYY: سالی که اون آسیبپذیری ثبت شده یا به صورت عمومی منتشر شده. مثلا ۲۰۲۳ یا ۲۰۲۴.
- NNNN: یک عدد چند رقمی (حداقل ۴ رقم) که به صورت ترتیبی به باگهای اون سال اختصاص داده میشه.
برای مثال، شناسه CVE-2024-5678 نشون میده که این باگ در سال ۲۰۲۴ ثبت شده و پنج هزار و ششصد و هفتاد و هشتمین باگ ثبت شده در اون سال هست.
سازمان MITRE و نقش آن در مدیریت CVE ها
شاید بپرسی چه کسی این شناسهها رو صادر میکنه و این لیست رو مدیریت میکنه؟ پاسخ سازمان MITRE هست. یک سازمان غیرانتفاعی در آمریکا که با حمایت آژانس امنیت سایبری و امنیت زیرساخت آمریکا (CISA) برنامه CVE رو پشتیبانی میکنه. سازمان MITRE در واقع نقش نگهدارنده اصلی لیست CVE ها رو برعهده داره و استانداردهای مربوط به اون رو تعیین میکنه.
علاوه بر MITRE، سازمانهای دیگهای هم تحت عنوان CNA (CVE Numbering Authorities) وجود دارن که مجوز تخصیص شناسه CVE رو دارن. مثلا شرکتهای بزرگی مثل مایکروسافت، اپل یا حتی تیمهای امنیتی وردپرس میتونن برای محصولات خودشون شناسه CVE صادر کنن.
تفاوت CVE با CWE و CVSS چیست؟
در دنیای امنیت، اصطلاحات مشابه زیادی وجود دارن که ممکنه با هم اشتباه گرفته بشن:
- CVE: همونطور که گفتیم، یک شناسه منحصربهفرد برای یک باگ خاص در یک نرمافزار خاص هست. (مثلا باگ XSS در افزونه فلان نسخه ۱.۲)
- CWE (Common Weakness Enumeration): به نوع یا دستهبندی ضعفهای نرمافزاری اشاره میکنه. مثلا
CWE-79که مربوط به حملات XSS هست. یک CWE نشوندهنده نوع مشکل برنامهنویسی هست که میتونه منجر به ایجاد دهها CVE مختلف در نرمافزارهای مختلف بشه. - CVSS (Common Vulnerability Scoring System): یک سیستم امتیازدهی هست که شدت و خطرناک بودن یک CVE رو با یک نمره از ۰ تا ۱۰ مشخص میکنه.
یک CVE چگونه ثبت میشود؟
روند ثبت یک CVE معمولا شامل این مراحل هست:
- کشف: یک محقق امنیتی (یا خود تیم توسعهدهنده) یک باگ رو در یک نرمافزار پیدا میکنه.
- گزارش: محقق این باگ رو به صورت خصوصی به توسعهدهنده گزارش میده تا اونها فرصت رفع مشکل رو داشته باشن (به این کار Responsible Disclosure میگن).
- درخواست CVE: همزمان با گزارش یا بعد از رفع مشکل، محقق یا توسعهدهنده به یکی از مراکز مجاز (CNA) درخواست یک شناسه CVE میدن.
- تخصیص شناسه: در صورت تایید، شناسه رزرو و به این باگ اختصاص داده میشه.
- انتشار عمومی: بعد از اینکه پچ (وصله امنیتی) منتشر شد یا زمان مشخصی گذشت، جزئیات باگ به همراه شناسه CVE به صورت عمومی در دیتابیسهایی مثل NVD منتشر میشه.
CVE در اکوسیستم وردپرس: مثالهای واقعی
اکوسیستم وردپرس به دلیل گستردگی و محبوبیت بالا، همیشه زیر ذرهبین محققین امنیتی هست. افزونهها و پوستههای وردپرسی بخش زیادی از CVE های ثبت شده در حوزه وب رو به خودشون اختصاص میدن. وقتی یک باگ در یک افزونه پرطرفدار کشف میشه، خیلی زود یک CVE براش ثبت میشه و شرکتهای امنیتی مثل Wordfence یا Patchstack جزئیاتش رو منتشر میکنن.
مثلا فرض کن یک افزونه معروف فرمساز، دچار آسیبپذیری SQL Injection میشه. وقتی یک CVE براش ثبت میشه، به عنوان یک مدیر سایت میتونی بفهمی که کدوم نسخهها آسیبپذیر هستن و باید به کدوم نسخه آپدیت کنی تا مشکل برطرف بشه. اینجاست که اهمیت پیگیری اخبار CVE وردپرس مشخص میشه.
چطور یک CVE را جستجو و بررسی کنیم؟
برای پیدا کردن اطلاعات در مورد یک شناسه CVE خاص، میتونی از منابع مختلفی استفاده کنی:
- دیتابیس NVD (National Vulnerability Database): دیتابیس رسمی دولت آمریکا که اطلاعات کاملی از جمله امتیاز CVSS رو برای هر CVE ارائه میده. سایت
nvd.nist.govمرجع اصلی در این زمینه هست. - دیتابیس WPScan: برای وردپرسیها، این دیتابیس یکی از بهترین منابع هست. WPScan بهطور اختصاصی روی آسیبپذیریهای وردپرس کار میکنه و اطلاعات بسیار دقیقی از افزونهها و پوستههای آسیبپذیر داره.
- سایت رسمی cve.org: مرجع اصلی برای مشاهده وضعیت و تاریخچه ثبت خود شناسه CVE.
با سرچ کردن شناسه در این سایتها، میتونی بفهمی باگ چقدر خطرناکه (از روی CVSS)، در کدوم نسخهها وجود داره و راهحل رفع اون چیه.