CVSSスコアリングと脆弱性の優先順位付け
共通脆弱性評価システムが深刻度を評価する方法と、セキュリティチームがスコアを使ってパッチ適用や是正作業の優先順位を決める方法を学びます。
「CVSSスコアリングと脆弱性の優先順位付け」はCoddyKit上の無料Security+ Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSecurity+ Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Security+ Academyコースには全4レッスンが含まれています。
脆弱性の優先順位付けが重要な理由
脆弱性スキャンを実行すると、組織のシステム全体で数百、数千もの脆弱性が見つかることがあります。すべてを直ちに修正しようとしても、現実的でも戦略的でもありません。リソースには限りがあり、すべての脆弱性が同じリスクを持つわけではないためです。脆弱性の優先順位付けとは、組織にとっての実際のリスクに基づいて脆弱性を順位付けし、最も危険な問題から対処するプロセスです。効果的な優先順位付けにより、重大なリモートコード実行の脆弱性が対応待ちになっている一方で、軽微な見た目上の問題を修正してしまうという、よくある誤りを防げます。
CVSSとは
Common Vulnerability Scoring System (CVSS)は、セキュリティ脆弱性の深刻度を表す標準化された数値スコア(0.0~10.0)を提供するオープンなフレームワークです。CVSSはFIRST (Forum of Incident Response and Security Teams) によって維持されており、NVD (National Vulnerability Database) で使用される主要なスコアリングシステムです。現在のバージョンであるCVSS v3.1では、3つのメトリクスグループに基づいてスコアを算出します。Base(脆弱性固有の特性)、Temporal(時間の経過で変化する要因)、Environmental(組織固有の補正要素)です。必須なのはBase Scoreだけで、その他は任意の補正項目です。
# CVSS v3.1 severity ratings:
# 0.0: None
# 0.1-3.9: Low
# 4.0-6.9: Medium
# 7.0-8.9: High
# 9.0-10.0: Critical
# Example CVSS scores:
# EternalBlue (CVE-2017-0144): 9.8 Critical
# Heartbleed (CVE-2014-0160): 7.5 High
# Log4Shell (CVE-2021-44228): 10.0 Critical
# Shellshock (CVE-2014-6271): 9.8 CriticalCVSS Base Scoreのメトリクス:攻撃特性
Base Scoreは、2つのメトリクスグループから算出されます。Exploitability metricsは、脆弱性がどのように攻撃されるかを表します。Attack Vector (AV)はNetwork(リモート)、Adjacent、Local、Physicalのいずれか、Attack Complexity (AC)はLowまたはHigh、Privileges Required (PR)はNone、Low、Highのいずれか、User Interaction (UI)はNoneまたはRequiredです。ネットワーク経由で悪用でき、認証もユーザー操作も必要ない脆弱性は、Exploitabilityで最高のスコアになります(AV:N/AC:L/PR:N/UI:N)。これらの要素がImpact metricsと組み合わされ、Base Scoreが算出されます。
# CVSS v3.1 Base Score vector string anatomy:
# CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
#
# AV:N = Attack Vector: Network (exploitable remotely)
# AC:L = Attack Complexity: Low (no special conditions)
# PR:N = Privileges Required: None (no auth needed)
# UI:N = User Interaction: None (no victim action needed)
# S:U = Scope: Unchanged
# C:H = Confidentiality Impact: High
# I:H = Integrity Impact: High
# A:H = Availability Impact: High
# -> Score: 9.8 CriticalCVSS Base Scoreのメトリクス:影響
Impact metricsは、脆弱性が悪用された場合にCIAトライアドの3つの側面へ及ぶ結果を測定します。Confidentiality Impact (C)はNone、Low、Highのいずれかで、どれだけのデータが開示される可能性があるかを表します。Integrity Impact (I)はNone、Low、Highのいずれかで、どれだけのデータが変更される可能性があるかを表します。Availability Impact (A)はNone、Low、Highのいずれかで、サービスがどの程度中断されるかを表します。Scope (S)はUnchangedまたはChangedのいずれかで、脆弱性の影響が脆弱なコンポーネントの範囲を越えて、他のコンポーネントやシステムに及ぶかどうかを表します。ScopeがChangedの場合、脆弱性が正常に悪用されると初期の範囲を越えてシステムに影響を与えられるため、スコアが大幅に高くなります。
# Impact metric examples:
# C:H (High) - attacker can read all files on system (root access)
# C:L (Low) - attacker can read some files, not all
# I:H (High) - attacker can modify any data or configuration
# A:H (High) - system becomes completely unavailable
# Scope changed (S:C) example:
# CVE-2015-4852 (WebLogic deserialization):
# Exploiting WebLogic (AV:N) grants RCE on the OS
# The impact goes BEYOND WebLogic to the entire OS -> S:CCVSS Temporalメトリクス
Temporal metricsは、時間の経過で変化する要因に基づいてBase Scoreを調整します。Exploit Code Maturity (E)は、動作するエクスプロイトが存在するかどうかを表します(Unproven、Proof-of-Concept、Functional、High)。一般公開されている実用的なエクスプロイトがある脆弱性は、既知のエクスプロイトがない脆弱性より緊急度が高くなります。Remediation Level (RL)はOfficial Fix、Temporary Fix、Workaround、Unavailableのいずれかです。ベンダーの公式パッチがある脆弱性は、修正方法がない脆弱性に比べて緊急度が低くなります。Report Confidence (RC)はUnknown、Reasonable、Confirmedのいずれかです。確認済みで広く再現されている脆弱性は、未確認の報告より信頼性の高い評価が可能です。
# CVSS v3.1 Temporal metric effects on score:
# Base Score: 9.8 Critical
# With Temporal metrics:
# E:U (No public exploit) -> score adjusted down
# RL:O (Official fix available) -> score adjusted down
# RC:C (Confirmed vulnerability) -> no change
# Temporal Score: 8.5 High
# Note: After a PoC exploit is released:
# E:P (PoC available) -> temporal score rises
# After weaponized exploit in the wild:
# E:H (High) -> temporal score near Base Score againCVSS Environmentalメトリクス
Environmental metricsを使用すると、組織は自組織の具体的な状況に基づいてCVSSスコアをカスタマイズできます。Modified Base Metricsでは、環境を反映するためにBaseの任意のメトリクスを変更できます(たとえば、ネットワークからアクセス可能な脆弱性でも、特定の構成でそのサービスにローカルからしかアクセスできない場合は、AV:Lになることがあります)。CIA Requirementの値(Low、Medium、High)は、CIAの各側面が組織にとってどれほど重要かを表します。たとえば、病院では患者監視システムのAvailabilityをHighと評価する一方、研究機関ではConfidentialityを最も高く評価する場合があります。Environmentalによるスコアリングにより、CVSSは状況を考慮したものとなり、実際の優先順位付けの判断にさらに役立ちます。
# Environmental score example:
# Vulnerability: CVE-XXXX, CVSS Base: 7.5 High
# AV:N (network accessible in vendor description)
# Your environment: this service is on an air-gapped network
# MAV:L (Modified Attack Vector: Local)
# Your Environmental Score: 5.0 Medium
# Another example:
# Your system stores highly sensitive PII
# CR:H (Confidentiality Requirement: High)
# MCR modifier raises your Environmental Score above BaseCVE、CWE、NVD
CVSSと連携して機能する関連システムが3つあります。CVE (Common Vulnerabilities and Exposures)は、公開されている既知のセキュリティ脆弱性の一覧で、各脆弱性には一意の識別子が付与されます(CVE-2021-44228はLog4Shellです)。CWE (Common Weakness Enumeration)は、ソフトウェアの弱点の種類を分類します(CWE-79はXSS、CWE-89はSQL Injectionです)。特定の脆弱性インスタンスではなく、根本原因を分類するものです。NVD (National Vulnerability Database)は、CVEエントリにCVSSスコア、参照情報、影響を受ける製品の範囲、修正リンクなどを追加します。セキュリティチームは、ソフトウェア資産に関係する新しいCVEの通知を受け取るために、NVDとベンダーのアドバイザリを購読します。
# Relationships:
# CWE (weakness type) -> CVE (specific instance) -> CVSS (severity score)
# Example:
# CWE-89: Improper Neutralization of SQL Commands (SQL Injection)
# -> CVE-2022-22963: Spring Framework expression injection
# -> CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H -> 9.8 Critical
# Look up CVEs:
curl https://services.nvd.nist.gov/rest/json/cves/2.0?cveId=CVE-2021-44228
# Subscribe to NVD notifications: nvd.nist.gov/general/newsCVSSを超えて:リスクベースの優先順位付け
CVSSスコアは技術的な深刻度を単独で表すものであり、組織の状況は考慮しません。リスクベースの優先順位付けでは、次の要素に基づいて修正の緊急度を調整します。資産の重要度(重要なERPシステムはテストサーバーより優先度が高くなります)、実環境での悪用状況(CISAのKEV — Known Exploited Vulnerabilitiesカタログ — には、実際に悪用されているCVEが掲載されています)、公開範囲(脆弱なシステムがインターネットに公開されているか)、代替的な防御策(攻撃経路をWAFがブロックしているか)です。インターネットに公開された重要な業務システムにあるCVSS 7.5の脆弱性で、公開エクスプロイトが存在するものは、隔離された内部テストサーバーにあるCVSS 9.0の脆弱性よりはるかに緊急性が高い場合があります。
# CISA Known Exploited Vulnerabilities (KEV) catalog:
# https://www.cisa.gov/known-exploited-vulnerabilities-catalog
# CISA mandates federal agencies patch KEV entries within deadlines:
# Active exploitation = highest priority regardless of CVSS base score
# Prioritization matrix example:
# Priority = CVSS_Score x Asset_Criticality x Exposure x Exploit_Available
# High CVSS + High Criticality + Internet-Facing + KEV Listed
# = Patch IMMEDIATELY (hours, not days)
# Low CVSS + Low Criticality + Internal Only + No exploit
# = Include in next patch cycle脆弱性の優先順位付けフレームワーク
いくつかのフレームワークやツールによって、CVSSに基づく優先順位付けをさらに強化できます。EPSS (Exploit Prediction Scoring System)は、脅威インテリジェンスのデータに機械学習を適用し、今後30日以内にCVEが実環境で悪用される確率を推定します。EPSSがHighでCVSSもHighの場合、最優先で対応します。SSVC (Stakeholder-Specific Vulnerability Categorization)は、CISAとCarnegie Mellonによる意思決定ツリーで、悪用状況、安全性や重要インフラへの影響、システムがミッションクリティカルかどうかを考慮します。これらのフレームワークにより、CVSSスコア順に並べるだけでなく、真にリスクを考慮した修正判断を行えるようになります。
# EPSS (Exploit Prediction Scoring System):
# Score: 0.0 to 1.0 (probability of exploitation in 30 days)
# Source: first.org/epss
# Combined prioritization:
# CVSS 9.8 Critical + EPSS 0.97 (97% exploit probability) = CRITICAL
# -> Patch in hours
# CVSS 9.8 Critical + EPSS 0.01 (1% exploit probability) = HIGH
# -> Patch this week
# CVSS 4.0 Medium + EPSS 0.95 + KEV listed = CRITICAL
# -> Patch in hours despite medium CVSS
# Lesson: CVSS alone is insufficient; context matters経営陣へのリスクの伝え方
セキュリティ担当者は、経営陣の意思決定に役立つよう、技術的なCVSSスコアをビジネスの言葉に置き換える必要があります。「公開WebサーバーにCVSS 9.8の認証不要RCEがあります」と言う代わりに、「インターネット上の攻撃者が認証情報なしで顧客向けWebサイトを完全に制御でき、50万件すべての顧客レコードや決済処理システムにアクセスされる可能性があります。ベンダーのパッチを適用するか、24時間以内にサーバーをオフラインにする必要があります」と伝えます。ビジネスへの影響(リスクにさらされるデータ、金銭的損失、規制上の影響)を示すほうが、生のスコアだけを示すよりも経営陣の迅速な意思決定につながります。
パッチ管理との統合
脆弱性の優先順位付けは、効果的なパッチ管理プロセスと連携して初めて価値を発揮します。脆弱性管理のライフサイクルには、Identify(スキャン)、Analyze(CVSSと状況の分析)、Prioritize(リスク順位付けとSLAの設定)、Remediate(SCCM/Intune/Ansibleによるパッチ展開)、Verify(再スキャンによる適用確認)、Report(経営陣への傾向報告)が含まれます。パッチ管理ツールは大規模な展開を自動化し、パッチが適用されたシステムと、依然として脆弱性にさらされているシステムを追跡します。修正SLAの計測は脆弱性が発見された時点で始まるため、スキャン頻度は平均修正時間に直接関係します。
# Patch deployment automation:
# Windows: Microsoft SCCM / Intune / WSUS
# Linux: Ansible, Chef, Puppet
# Cloud: AWS Systems Manager Patch Manager
# Verify patch applied:
nessus rescan target after patching
# OR manually check:
rpm -q --changelog kernel | head -20 # Linux
Get-HotFix -Id KB5030216 # Windows PowerShell
# Vulnerability trend reporting:
# Track: number of Critical/High open vulns over time
# Goal: downward trend with <5 unaddressed Critical at any timeクイックチェック
このレッスンで扱ったCompTIA Security+ (SY0-701)の概念について、理解度を確認しましょう。
レッスンのまとめ
このレッスンでは、次のことを学びました。CVSSは、Base(悪用可能性と影響)、Temporal(エクスプロイトの成熟度と修正方法の提供状況)、Environmental(組織の状況)のメトリクスを使用して、脆弱性を0.0~10.0の尺度で評価します。CISAのKEVカタログとEPSSスコアは、実環境で現在悪用されている脆弱性を特定することで、CVSSに基づく優先順位付けを強化します。また、効果的な脆弱性管理では、スキャン結果を重大度ごとに定義されたSLAを持つパッチ管理ワークフローに結び付けます。これで脆弱性管理モジュールは完了です。次はアプリケーションセキュリティとOWASP Top 10について学びます。
AI チューターと学ぶ Security+ Academy — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 30
- レッスン
- 120
よくある質問
「CVSSスコアリングと脆弱性の優先順位付け」レッスンは無料ですか?
はい。「CVSSスコアリングと脆弱性の優先順位付け」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Security+ Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Security+ Academyコースには全4レッスンが含まれています。
「CVSSスコアリングと脆弱性の優先順位付け」で何を学びますか?
共通脆弱性評価システムが深刻度を評価する方法と、セキュリティチームがスコアを使ってパッチ適用や是正作業の優先順位を決める方法を学びます。 ブラウザで直接実行するハンズオンコードでSecurity+ Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Security+ Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのSecurity+ Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「CVSSスコアリングと脆弱性の優先順位付け」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このSecurity+ Academyレッスンでコードを書いて実行できますか?
はい。すべてのSecurity+ Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 脆弱性スキャンとペネトレーションテスト
- 一般的なスキャンツール:Nessus、OpenVAS、Nmap
- ペネトレーションテストの段階:偵察から報告まで
- CVSSスコアリングと脆弱性の優先順位付け