فصل ۴: ارزیابی آسیبپذیری
ارزیابی آسیبپذیری، درک CVE و CVSS، اسکنرهای Nessus/OpenVAS/Nuclei، پژوهش دستی با Exploit-DB و searchsploit، تشخیص false positive و مستندسازی یافتهها.
ارزیابی آسیبپذیری چیست؟
ارزیابی آسیبپذیری (Vulnerability Assessment) فرایندی سیستماتیک برای شناسایی، دستهبندی و اولویتبندی نقاط ضعف امنیتی در یک سیستم است. برخلاف تست نفوذ که به دنبال اثبات عملی استثمار است، ارزیابی تمرکزش روی فهرستبندی کامل آسیبپذیریهای احتمالی است؛ حتی آنهایی که شاید در عمل قابل استثمار نباشند.
ارزیابی معمولاً هر چند ماه یکبار بهصورت دورهای اجرا میشود و خروجی آن ورودی مهمی برای فاز استثمار است.
CVE — زبان مشترک امنیت
CVE (Common Vulnerabilities and Exposures) یک شناسه استاندارد جهانی است که به هر آسیبپذیریشناختهشده یک رشته یکتا اختصاص میدهد؛ مثلاً CVE-2021-44228 برای معروفترین آسیبپذیری Log4j. این شناسه به محققان امنیتی امکان میدهد بدون ابهام درباره یک آسیبپذیری خاص صحبت کنند.
شما میتوانید جزئیات هر CVE را در پایگاههای مرجع زیر جستجو کنید:
- NVD (National Vulnerability Database): nvd.nist.gov — مرجع رسمی دولت آمریکا.
- MITRE CVE: cve.org — نگهدارنده اصلی شناسهها.
- Exploit-DB: exploit-db.com — شامل PoCهای قابل دانلود.
CVSS — امتیازدهی استاندارد
CVSS (Common Vulnerability Scoring System) یک سیستم امتیازدهی از ۰ تا ۱۰ است که شدت یک آسیبپذیری را نشان میدهد. نسخه فعلی CVSS 3.1 است و نسخه ۴.۰ در حال گسترش است.
| امتیاز | شدت | اقدام پیشنهادی |
|---|---|---|
| ۰.۰ | None | نیازی به اقدام |
| ۰.۱ تا ۳.۹ | Low | وصله در زمان مناسب |
| ۴.۰ تا ۶.۹ | Medium | وصله در عرض یک ماه |
| ۷.۰ تا ۸.۹ | High | وصله در عرض یک هفته |
| ۹.۰ تا ۱۰.۰ | Critical | وصله فوری (۲۴ ساعت) |
CVSS واقعی، CVSS پایه
CVSS سه لایه دارد: Base (ویژگی ذاتی آسیبپذیری)، Temporal (تغییر در طول زمان، مثلاً در دسترس بودن وصله) و Environmental (تاثیر در محیط خاص شما). اکثر ابزارها فقط Base را نشان میدهند، اما در عمل باید Environmental را برای سازمان خود محاسبه کنید.
اسکنرهای آسیبپذیری
Nessus
Nessus یکی از قدیمیترین و شناختهشدهترین اسکنرهای تجاری است. نسخه خانگی آن (Nessus Essentials) رایگان و محدود به ۱۶ IP در ماه است.
نصب و راهاندازی:
# دانلود از سایت Tenable (نیازمند ثبتنام)
sudo dpkg -i Nessus-X.X.X-debian10_amd64.deb
sudo systemctl start nessusd
# دسترسی از مرورگر
# https://localhost:8834OpenVAS / GVM
OpenVAS (که اکنون GVM — Greenbone Vulnerability Management نامیده میشود) جایگزین متنباز و رایگان Nessus است. در Kali نصب آن زمانبر است اما ارزشش را دارد:
# نصب
sudo apt update && sudo apt install gvm -y
# راهاندازی پایگاه داده (ممکن است ۳۰ دقیقه طول بکشد)
sudo gvm-setup
# بررسی وضعیت
sudo gvm-check-setup
# راهاندازی سرویس
sudo gvm-start
# دسترسی از مرورگر
# https://127.0.0.1:9392Nuclei
Nuclei یک اسکنر مدرن، سریع و مبتنی بر قالب YAML است که در سالهای اخیر به شدت محبوب شده. برخلاف Nessus و OpenVAS که سنگین و کند هستند، Nuclei برای اسکنهای سریع و هدفمند عالی است:
# نصب
sudo apt install nuclei -y
# یا با Go
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
# اسکن سریع یک هدف
nuclei -u http://192.168.1.10
# اسکن فقط آسیبپذیریهای CVE
nuclei -u http://192.168.1.10 -t cves/
# اسکن با شدت High و Critical
nuclei -u http://192.168.1.10 -severity high,critical
# اسکن لیستی از اهداف
nuclei -l urls.txt -o nuclei_results.txtNuclei برای Bug Bounty
برای برنامههای Bug Bounty، Nuclei با قالبهای سفارشی خود بهشدت مفید است. میتوانید قالبهای خود را بنویسید یا از قالبهای جامعه در github.com/projectdiscovery/nuclei-templates استفاده کنید. اسکن ماهانه یک دامنه با Nuclei، یکی از مؤثرترین روشهای یافتن آسیبپذیری جدید است.
پژوهش دستی با Exploit-DB و searchsploit
همیشه نباید به اسکنر اعتماد کرد. یک متخصص واقعی باید بتواند دستی یک نسخه از سرویس را بررسی و اعتبار آسیبپذیری را بسنجد.
Exploit-DB پایگاه دادهای است که توسط تیم Offensive Security نگهداری میشود و شامل هزاران PoC قابل دانلود است. ابزار searchsploit نسخه آفلاین آن در Kali است:
# جستجوی اکسپلویت برای Apache 2.4
searchsploit apache 2.4
# جستجوی محدود به عنوان
searchsploit -t eternalblue
# مشاهده جزئیات یک اکسپلویت با ID
searchsploit -x 12345
# کپی اکسپلویت به دایرکتوری فعلی
searchsploit -m 12345
# مسیر کامل اکسپلویت در فایل سیستم
searchsploit --path 12345سپس میتوانید کد اکسپلویت را مطالعه کنید و در صورت لزوم آن را سفارشیسازی کنید.
تفسیر خروجی اسکنر
خروجی یک اسکنر معمولاً شامل این فیلدها است:
- Plugin ID: شناسه داخلی اسکنر
- CVE: شناسه استاندارد
- CVSS: امتیاز شدت
- Description: توضیح فنی
- Solution: راهکار وصله
- Proof: شواهد (نسخه، بنر، پاسخ HTTP)
مهمترین بخش، شواهد است. بدون شواهد، گزارش شما فقط یک لیست از «احتمالات» است.
False Positive — دروغهای اسکنر
هیچ اسکنری کامل نیست. False Positive (مثبت کاذب) زمانی رخ میدهد که اسکنر گزارش میدهد آسیبپذیری وجود دارد اما در عمل وجود ندارد. علل شایع:
- نسخهیابی نادرست (مثلاً Apache ۲.۴.۴۹ در حالی که واقعاً ۲.۴.۵۱ است)
- وصله backport شده (توزیعهای لینوکسی نسخه را عوض نمیکنند اما وصله را اعمال کردهاند)
- پیکربندی خاص سرور که جلوی استثمار را میگیرد
برای تأیید هر یافته:
۱. نسخه سرویس را بهصورت دستی چک کنید (با Nmap یا بنر گربینگ). ۲. کد منبع یا changelog توزیع را بررسی کنید (Debian/Ubuntu معمولاً وصلههای backport شده دارند). ۳. اگر امکان دارد، PoC را در یک محیط آزمایشی اجرا کنید.
مستندسازی با شواهد
هر یافته در گزارش نهایی باید حداقل شامل این موارد باشد: عنوان، توضیح، شناسه CVE، امتیاز CVSS، نسخه آسیبپذیر، شواهد (اسکرینشات یا لاگ)، مراحل بازتولید، میزان ریسک در محیط شما و راهکار. بدون شواهد، گزارش شما بهسادگی توسط تیم IT رد میشود.
مقایسه اسکنرها
| اسکنر | نوع | هزینه | سرعت | پوشش | مناسب برای |
|---|---|---|---|---|---|
| Nessus | تجاری | پولی (Essentials رایگان محدود) | متوسط | عالی | سازمانهای متوسط و بزرگ |
| OpenVAS/GVM | متنباز | رایگان | کند | خوب | سازمانهای با بودجه محدود |
| Nuclei | متنباز | رایگان | بسیار بالا | متوسط (قالبمحور) | Bug Bounty و اسکنهای سریع |
| Qualys | SaaS | پولی | بالا | عالی | سازمانهای بزرگ ابری |
| Acunetix | تجاری | پولی | متوسط | عالی برای وب | تست اپلیکیشنهای وب |
تمرین عملی — اسکن با Nuclei
یک ماشین آزمایشی (مثلاً Metasploitable یا DVWA) راه بیندازید و این فهرست را اجرا کنید:
# 1. اسکن پایه
nuclei -u http://192.168.1.10 -o basic_scan.txt
# 2. اسکن فقط CVE
nuclei -u http://192.168.1.10 -t cves/ -o cve_scan.txt
# 3. اسکن با شدت بالا و بحرانی
nuclei -u http://192.168.1.10 -severity high,critical -o critical.txt
# 4. بهروزرسانی قالبها
nuclei -update-templates
# 5. جستجوی دستی برای نسخه آپاچی
searchsploit apache 2.4 | tee apache_exploits.txtبعد از پایان، هر یافته را بهصورت دستی با Nmap و مرورگر بررسی و شواهد آن را اسکرینشات بگیرید.
خلاصه و گام بعدی
در این فصل، با مفهوم CVE و CVSS آشنا شدید و یاد گرفتید که چگونه با اسکنرهایی مانند Nessus، OpenVAS و Nuclei یک ارزیابی کامل انجام دهید. مهمترین درس: اسکنرها نقطه شروع هستند، نه نقطه پایان. همیشه یافتهها را بهصورت دستی تأیید کنید.
در فصل بعد، با استثمار با Metasploit آشنا میشوید؛ جایی که یافتههای این فاز را به دسترسی واقعی به سیستم تبدیل میکنید.
این صفحه در تاریخ ۸ تیر ۱۴۰۵ بهروزرسانی شده است.