পাঠ ১৪ · ৬০-এর মধ্যে · মডিউল ৪
Home / Courses / Cybersecurity & Ethical Hacking / ভালনারেবিলিটি স্ক্যানিং

ভালনারেবিলিটি স্ক্যানিং ও CVE/CVSS স্কোরিং

Vulnerability scanning & CVE/CVSS scoring
৯ মিনিট পড়া শুরু · Beginner Python কোডসহ সম্পূর্ণ বাংলায়

এই পাঠে যা শিখবেন

  • CVE কী এবং কেন এটি ইন্ডাস্ট্রি-ওয়াইড একটি সর্বজনীন "নাম" ব্যবস্থা
  • CVSS স্কোর কী মেট্রিকের উপর ভিত্তি করে গণনা করা হয়, এবং severity bands কী
  • কীভাবে CVSS-এর Impact মেট্রিক সরাসরি CIA Triad-এর প্রতিফলন
  • Risk-based vulnerability prioritization বাস্তবে কীভাবে প্রয়োগ করা হয়

১ · CVE — একটি সর্বজনীন দুর্বলতার "নাম"

যখন একটি নতুন নিরাপত্তা দুর্বলতা আবিষ্কৃত ও নিশ্চিত হয়, তাকে একটি CVECommon Vulnerabilities and Exposuresএকটি পরিচিত, নিশ্চিত দুর্বলতার জন্য বরাদ্দকৃত ইউনিক পাবলিক আইডি — ফরম্যাট CVE-YYYY-NNNNN। ইন্ডাস্ট্রি-ওয়াইড রেফারেন্স হিসেবে ব্যবহৃত হয়। আইডি বরাদ্দ করা হয় — ফরম্যাট CVE-YYYY-NNNNN (যেমন CVE-2024-1001), যেখানে YYYY প্রকাশের বছর। এই একক, সর্বজনীন নামকরণ ব্যবস্থাই নিশ্চিত করে যে একজন গবেষক, একজন vendor, একজন pentester ও একটি স্ক্যানিং টুল — সবাই ঠিক একই দুর্বলতা নিয়ে কথা বলছে, ভিন্ন ভিন্ন নাম নয়।

২ · CVSS স্কোরিং — কীভাবে Severity পরিমাপ হয়

একটি CVE শুধু identify করে দুর্বলতাকে — এর severity কতটা গুরুতর তা বলে CVSSCommon Vulnerability Scoring Systemএকটি প্রমিত সিস্টেম যা একটি দুর্বলতার severity-কে ০.০ থেকে ১০.০ স্কেলে সংখ্যায়িত করে, একাধিক মেট্রিকের সমন্বয়ে। — একটি $0.0$ থেকে $10.0$ স্কেলে। কিছু মূল মেট্রিক —

Attack Vector
আক্রমণটি কি নেটওয়ার্ক থেকে দূর থেকে সম্ভব, নাকি লোকাল/ফিজিক্যাল অ্যাক্সেস প্রয়োজন — দূরবর্তী হলে স্কোর বেশি।
Attack Complexity
আক্রমণ সফল করতে কতটা বিশেষ শর্ত/প্রচেষ্টা লাগে — কম জটিল হলে স্কোর বেশি।
Privileges Required
আক্রমণকারীর কী পূর্ব-অ্যাক্সেস দরকার — কোনো প্রিভিলেজ না লাগলে স্কোর বেশি।
User Interaction
একজন সাধারণ ব্যবহারকারীর কোনো ক্লিক/অ্যাকশন লাগে কি না — না লাগলে স্কোর বেশি।
Impact (C/I/A)
Confidentiality, Integrity, Availability-এর উপর প্রভাব — L01-এর CIA Triad-এরই সরাসরি প্রয়োগ।

৩ · Severity Bands ও CIA Triad-এর সংযোগ

চূড়ান্ত সংখ্যাসূচক স্কোরকে একটি গুণগত ব্যান্ডে ভাগ করা হয় (CVSS v3.1 স্ট্যান্ডার্ড রেফারেন্স ব্যান্ড) —

  • Low: $0.1 \le \text{CVSS} \le 3.9$
  • Medium: $4.0 \le \text{CVSS} \le 6.9$
  • High: $7.0 \le \text{CVSS} \le 8.9$
  • Critical: $9.0 \le \text{CVSS} \le 10.0$
কেন Impact মেট্রিক CIA Triad-এর সাথে সরাসরি যুক্ত

CVSS-এর Impact মেট্রিক ঠিক তিনটি জিনিস পরিমাপ করে — Confidentiality-তে প্রভাব, Integrity-তে প্রভাব, এবং Availability-তে প্রভাব। এটি L01-এ শেখা CIA Triad-এরই একটি প্রমিতকৃত, সংখ্যায়িত প্রয়োগ — একটি দুর্বলতা যা তথ্য ফাঁস করে (Confidentiality), একটি যা ডেটা বদলে দিতে পারে (Integrity), এবং একটি যা সার্ভিস ডাউন করে দিতে পারে (Availability) — প্রতিটির severity ভিন্নভাবে গণনা হতে পারে একই দুর্বলতার মধ্যেও।

৪ · হ্যান্ডস-অন: CVSS অনুযায়ী দুর্বলতা প্রায়োরিটাইজ করা

নিচের কোড সেলটি সম্পূর্ণ শিক্ষামূলক উদাহরণ — এখানে ব্যবহৃত CVE আইডি ও স্কোর কাল্পনিক, কোনো নির্দিষ্ট বাস্তব সফটওয়্যারকে নির্দেশ করছে না। L04-এ শেখা risk-based prioritization-এর ধারণাটিই এখানে CVSS স্কোরের সাথে প্রয়োগ করা হচ্ছে।

Python
# কাল্পনিক, শিক্ষামূলক (cve_id, cvss_score) জোড়া — কোনো নির্দিষ্ট বাস্তব সফটওয়্যার নয়
vulnerabilities = [
    ("CVE-2024-1001", 9.8),   # Critical
    ("CVE-2023-2045", 7.2),   # High
    ("CVE-2022-3390", 5.4),   # Medium
    ("CVE-2021-4477", 3.1),   # Low
    ("CVE-2023-0099", 9.1),   # Critical
]

def classify_severity(score):
    """CVSS v3.1 স্ট্যান্ডার্ড রেফারেন্স ব্যান্ড অনুযায়ী শ্রেণীবদ্ধ করে।"""
    if score >= 9.0:
        return "Critical"
    elif score >= 7.0:
        return "High"
    elif score >= 4.0:
        return "Medium"
    else:
        return "Low"

report = [(cve, score, classify_severity(score)) for cve, score in vulnerabilities]
report.sort(key=lambda row: row[1], reverse=True)

print("দুর্বলতা রিপোর্ট — CVSS স্কোর অনুযায়ী প্রায়োরিটাইজড")
print("-" * 50)
for cve, score, severity in report:
    print(f"{cve:<16} CVSS {score:>4}  ->  {severity}")

    
লক্ষ্য করুন — sort করার পর দুটি Critical দুর্বলতা তালিকার শীর্ষে চলে এসেছে। বাস্তব organization-এ ঠিক এই ধরনের একটি sorted রিপোর্টই নির্ধারণ করে টিম কোনটি আগে ঠিক করবে — এটিই পরের পাঠ (L15)-এর remediation lifecycle-এর ইনপুট।

৫ · কেন শুধু স্কোর যথেষ্ট নয়

মূল কথা · Key takeaway

একটি উচ্চ CVSS স্কোর মানেই "তাত্ত্বিকভাবে" গুরুতর — কিন্তু বাস্তব ঝুঁকি নির্ভর করে context-এর উপরও: এই দুর্বলতার জন্য কি একটি পাবলিক exploit ইতিমধ্যে আছে (L16), এই সার্ভারটি কি ইন্টারনেট-ফেসিং নাকি অভ্যন্তরীণ নেটওয়ার্কে, এবং এতে কি সংবেদনশীল ডেটা আছে। CVSS একটি শক্তিশালী শুরুর বিন্দু, কিন্তু চূড়ান্ত prioritization সিদ্ধান্ত সবসময় সম্পূর্ণ ছবি বিবেচনা করে।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ CVSS-এর Impact মেট্রিক (C/I/A) কেন সরাসরি L01-এর CIA Triad-এর প্রতিফলন?

CVSS Impact মেট্রিক ঠিক CIA Triad-এর তিনটি স্তম্ভ ব্যবহার করে একটি দুর্বলতার প্রভাব বর্ণনা করে — এটি দুর্ঘটনাক্রমে নয়, বরং ইচ্ছাকৃতভাবে ডিজাইন করা, যাতে CVSS একটি সর্বজনগ্রাহ্য নিরাপত্তা কাঠামোর (CIA) সাথে সামঞ্জস্যপূর্ণ থাকে এবং যেকোনো নিরাপত্তা পেশাদার এটি সহজে বুঝতে পারেন।

প্র ০২ দুটি ভালনারেবিলিটির CVSS স্কোর একই হলেও তাদের বাস্তব ঝুঁকি ভিন্ন হতে পারে কেন?

CVSS base score একটি "তাত্ত্বিক সর্বোচ্চ ঝুঁকি" পরিমাপ করে — এটি context জানে না। একটি দুর্বলতার জন্য যদি একটি পাবলিক, কার্যকর exploit ইতিমধ্যে বিদ্যমান থাকে (L16), অথবা affected সিস্টেমটি সরাসরি ইন্টারনেট-এক্সপোজড হয়, তার বাস্তব ঝুঁকি একই স্কোরের কিন্তু private/অভ্যন্তরীণ সিস্টেমের একটি দুর্বলতার চেয়ে অনেক বেশি।

প্র ০৩ কেন একটি organization শুধু "সব Critical ঠিক করব" নীতি নিলেও যথেষ্ট নয়?

বাস্তবে টিমের ক্ষমতা সীমিত, এবং একই সাথে অনেকগুলো Critical দুর্বলতা থাকতে পারে। শুধু severity band দিয়ে prioritize করলে exploitability, exposure এবং business context উপেক্ষিত হয়ে যেতে পারে — একটি নিম্ন-এক্সপোজার Critical-এর চেয়ে একটি ইন্টারনেট-ফেসিং, actively-exploited Medium আসলে আগে ঠিক করা বেশি জরুরি হতে পারে।

অনুশীলন

  1. চিন্তা করুন: এমন একটি বাস্তব-সদৃশ পরিস্থিতি কল্পনা করুন যেখানে একটি Medium severity দুর্বলতা বাস্তবে একটি Critical severity দুর্বলতার চেয়ে বেশি জরুরি হতে পারে।

    উদাহরণ: একটি Medium দুর্বলতার জন্য ইতিমধ্যে একটি পাবলিক, সহজে-ব্যবহারযোগ্য exploit বিদ্যমান এবং এটি সরাসরি ইন্টারনেট-ফেসিং প্রোডাকশন সার্ভারে আছে — অন্যদিকে Critical দুর্বলতাটি এমন একটি সিস্টেমে যা সম্পূর্ণ এয়ার-গ্যাপড, কোনো exploit পাবলিকলি নেই, এবং শুধু ফিজিক্যাল অ্যাক্সেস দিয়ে সম্ভব। এই ক্ষেত্রে Medium-টি আগে ঠিক করা বাস্তবসম্মত।

  2. পরীক্ষা করুন: কোড সেলের vulnerabilities লিস্টে নিজের একটি (cve_id, score) জোড়া যোগ করুন (যেমন ("CVE-2025-0007", 6.5)) এবং Run করে দেখুন এটি রিপোর্টে কোথায় বসে।

    স্কোর ৬.৫ থাকলে এটি "Medium" ব্যান্ডে classify হবে এবং সাজানো রিপোর্টে Critical ও High এন্ট্রিগুলোর নিচে, কিন্তু Low এন্ট্রির উপরে অবস্থান করবে — কারণ রিপোর্ট score অনুযায়ী descending order-এ সাজানো।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

আগের পাঠ
সার্ভিস এনুমারেশন ও ব্যানার গ্র্যাবিং