CVE و CWE: أسماء الثغرات
يعني إيه CVE ومين بيدّيه، وشكل رقمه، والفرق بينه وبين CWE، وإزاي تطلّع أرقام CVE من أي نص بـ Python.
نص شرح المعلم والكود الذي كتبه ونتيجة تشغيله، بنفس ترتيب الدرس.
تخيّل إن كل شركة سمّت نفس الثَغْرة باسم مختلف. هتبقى فوضى. علشان كده فيه نظام عالمي اسمه CVE، بيدّي كل ثَغْرة رقم واحد ثابت.
الـ CVE معناها Common Vulnerabilities and Exposures. الشكل: CVE، وبعدها السنة، وبعدها رقم. مثلاً CVE twenty twenty one forty one seven seven three. والأرقام دي بتدّيها جهات معتمدة اسمها CNA، زي Microsoft و Red Hat، تحت إشراف MITRE.
أما CWE، فمعناها Common Weakness Enumeration. الـ CVE ثَغْرة معيّنة في برنامج معيّن. الـ CWE نوع الغلطة نفسها. مثلاً CWE twenty two يعني Path Traversal، و CWE eighty nine يعني SQL Injection. يعني آلاف الـ CVEs ممكن يبقوا من نفس الـ CWE. عندنا نص من advisory فيه أرقام CVE، وواحد منهم مكتوب small. نستخدم regular expression بتدوّر على شكل الـ CVE، ونخلّيها capital، ونشيل التكرار. نشغّل… تلات CVEs، مترتّبين، وكل واحد بسنته.
import re
text = """Apache 2.4.49 is affected by CVE-2021-41773 (CWE-22).
The fix in 2.4.50 was incomplete: see cve-2021-42013.
vsFTPd 2.3.4 shipped with a backdoor, CVE-2011-2523 (CWE-506)."""
cves = re.findall(r"CVE-\d{4}-\d{4,}", text, flags=re.I)
cves = sorted({c.upper() for c in cves})
for cve in cves:
year = cve.split("-")[1]
print(cve, "published around", year)المخرجات
CVE-2011-2523 published around 2011 CVE-2021-41773 published around 2021 CVE-2021-42013 published around 2021
دورك: بنفس الطريقة، طلّع أرقام الـ CWE من النص، واطبعها.
cwes = sorted(set(re.findall(r"CWE-\d+", text)))
الحل: نشغّل… CWE twenty two و CWE five oh six.
import re
text = """Apache 2.4.49 is affected by CVE-2021-41773 (CWE-22).
The fix in 2.4.50 was incomplete: see cve-2021-42013.
vsFTPd 2.3.4 shipped with a backdoor, CVE-2011-2523 (CWE-506)."""
cves = re.findall(r"CVE-\d{4}-\d{4,}", text, flags=re.I)
cves = sorted({c.upper() for c in cves})
for cve in cves:
year = cve.split("-")[1]
print(cve, "published around", year)
cwes = sorted(set(re.findall(r"CWE-\d+", text)))
print("weakness types:", cwes)المخرجات
CVE-2011-2523 published around 2011 CVE-2021-41773 published around 2021 CVE-2021-42013 published around 2021 weakness types: ['CWE-22', 'CWE-506']
الدرس الجاي: عرفنا اسم الثَغْرة، بس خطيرة قد إيه؟ نراجع CVSS، ونضيف عليه EPSS و KEV. يلا بينا.
03 / دروس المسار (16)
- 01يعني إيه ثغرة؟ ومن الـ Recon للـ Vulnerabilities
- 02CVE و CWE: أسماء الثغراتانت هنا
- 03الخطورة: CVSS و EPSS و KEV
- 04البحث في NVD
- 05Exploit-DB و searchsploit
- 06GitHub و Metasploit
- 07الفحص بـ Nmap NSE
- 08الفحص بـ Nuclei
- 09الفحص بـ Nikto
- 10الفحص بـ OpenVAS
- 11فحص بصلاحيات ومن غيرها
- 12تجميع وتنظيم النتايج
- 13False Positives والتأكد اليدوي
- 14ترتيب الأولويات
- 15أتمتة الفحص بـ Python
- 16مراجعة شاملة