📜 ⬆️ ⬇️

CVSS 3.0 Vulnerability Assessment


We have been using the CVSS rating system since our vulnerability base came into being and our first product, XSpider (I hope someone still remembers it). It is very important for us to keep the knowledge base that we use in our products and services up to date. Since the recommendations for working with CVSS metrics do not cover all possible vulnerabilities, it is sometimes necessary to ask the question: “How is it better to set the metrics so that the final assessment reflects the real danger of vulnerability?”.

We constantly monitor the development of the standard, so we have been waiting for the final version of CVSSv3 for a long time. Opening the specification, I first of all wanted to answer the questions: “What has become better?”, “What exactly has changed?”, “Will we be able to use the new standard in our products?” And - because young professionals are often involved in maintaining the database - “How can you quickly master the assessment methodology? ”,“ How clear are the criteria? ”.

During the study of the standard, this article was born, I hope it will help you in mastering the new methodology for assessing vulnerabilities.
')

Milestones in CVSS history


The Common Vulnerability Scoring System was developed by the National Infrastructure Advisory Council's security expert group. This group includes experts from various organizations, such as CERT / CC, Cisco, DHS / MITRE, eBay, IBM Internet Security Systems, Microsoft, Qualys, Symantec.

In 2005, the first publication of the standard. The basic principles for calculating the vulnerability metrics, originally laid down in the standard, have been preserved to this day.

Further, the standard was maintained by the Common Vulnerability Scoring System-Special Interest Group (CVSS-SIG) working group as part of the Forum of Incident Response and Security Teams (FIRST) project. Membership in the group does not impose on its members any restrictions on the support and distribution of the standard.

In 2007, the second version of the standard was published: changes were made to the list of indicators and the formula for calculating the final metric was changed to more accurately assess the risk of vulnerabilities.

In 2014, guidelines for using CVSSv2 are issued by such reputable organizations as NIST and ITU, which develop manuals and standards for telecommunications and information systems.

The use of CVSS metrics for vulnerability assessment is enshrined in the PCI DSS standards and STO BR IBBS.

In June 2015, FIRST published the final version of the CVSSv3 standard, which will be discussed in this article.

The basics


CVSS provides a simple tool for calculating a numerical score on a ten-point scale, which allows security professionals to quickly decide how to respond to a particular vulnerability. The higher the value of the metric, the more rapid the response required.

The standard includes three groups of metrics:


Time and context metrics are optional and are used to more accurately assess the risk that this vulnerability poses to more or less specific infrastructure.

The value of a metric is usually published as a pair of a vector (specific values ​​of individual indicators) and a numerical value calculated on the basis of all indicators using the formula defined in the standard.

Innovations in CVSSv3


Further in the text we will not consider CVSSv2 in detail, there is quite good documentation on this subject [ 6 , 9 ], we will dwell in more detail on the changes made by the new standard.

Base Metrics


System components for which metrics are calculated


Within the framework of the standard, the following concepts are introduced:


In most cases, the vulnerable and attacked components are the same, but there are entire classes of vulnerabilities for which this is not the case, for example:


According to the new standard, the exploitation metrics are calculated for the vulnerable component, and the impact metrics for the attacked. In CVSSv2, it was not possible to describe the situation in which the vulnerable component and the attacked differ.

Exploitation metrics


Attack vector

The degree of remoteness of the potential attacker from the vulnerable object.
CVSSv2CVSSv3
Metric name
Access Vector (AV)Attack Vector (AV)
Possible metric values
Network (N)Network (N)
Adjacent Network (A)Adjacent Network (A)
Local (L)Local (L)
Physical (P)
Note: here and hereafter, letter mnemonics are used in brackets used in the description of the CVSS vector.

The changes affected the concept of “Local”, which in previous versions of the standard described any actions that did not affect the network. The new version introduces the following division:


Consider two vulnerabilities that have the same rating in terms of CVSSv2: 7.2 (AV: L / AC: L / Au: N / C: C / I: C / A: C) .

The metrics for the same vulnerabilities under the new CVSSv3 standard differ:
VulnerabilityCVSSv3 vectorCVSSv3 Evaluation
CVE-2015-2363AV: L / AC: L / PR: L / UI: N / S: U / C: H / I: H / A: H7.8
CVE-2015-3007AV: P / AC: L / PR: N / UI: N / S: U / C: H / I: H / A: H6.8
It can be seen that in CVSSv3, the degree of vulnerability is assessed more accurately, without averaging, which occurred in CVSSv2.

Difficulty exploiting vulnerabilities

Qualitative assessment of the complexity of the attack. The more conditions that must be met for the exploitation of a vulnerability, the greater the complexity.
CVSSv2CVSSv3
Metric name
Access Complexity (AC)Attack Complexity (AC)
Possible metric values
Low (L)Low (L)
Medium (M)
High (H)High (H)
“Complexity” in itself is a subjective concept, therefore this metric has always been interpreted by experts in different ways. For example, for vulnerabilities that allow to implement the “Man in the middle” attack, in the NVD database one can find various options for assessing Access Complexity.


To facilitate the interpretation of this metric, the new standard offers only two levels of complexity and more clearly spells out the criteria for assigning vulnerability to one or another. In particular, vulnerabilities that allow the “Man in the Middle” attack are prescribed to be classified as High.

The factors considered in the CVSSv2 metric Access Complexity, in the new standard are taken into account two metrics - Attack Complexity and User Interaction.

Authentication / Privilege Required

Whether authentication is required for an attack, and if so, which one.
CVSSv2CVSSv3
Metric name
Authentication (Au)Privileges Required (PR)
Possible metric values
Multiple (M)
Single (S)
High (H)
Low (L)
None (N)None (N)
The approach to calculating the metric, based on the number of independent authentication processes that an attacker needs to pass, does not accurately reflect the meaning of privileges necessary for operation.

The value of Multiple in the NVD database is quite rare and is mainly used for vulnerabilities, information about which is not detailed enough.

CVE-2015-0501 - Unknown vulnerability in Oracle MySQL Server allows remote authenticated users to disrupt database availability using an unknown vector associated with 'Server: Compiling'.

The Single value does not allow you to determine if a privileged user level access is required for operation or a standard user authentication is sufficient.

Consider two vulnerabilities that have the same rating in terms of CVSSv2: 9.0 ( AV: N / AC: L / Au: S / C: C / I: C / A: C )


Metrics for the same vulnerabilities on CVSSv3:
VulnerabilityCVSSv3 vectorCVSSv3 Evaluation
CVE-2014-0649AV: N / AC: L / PR: L / UI: N / S: U / C: H / I: H / A: H8.8
CVE-2014-9193AV: N / AC: L / PR: H / UI: N / S: U / C: H / I: H / A: H7.2
As the table shows, CVSSv3 underestimates the danger of vulnerabilities requiring privileged access to operate.

The need for user interaction

Do you need any actions from the user of the attacked system to successfully launch an attack?
CVSSv2CVSSv3
Metric name
User Interaction (UI)
Possible metric values
None (N)
Required (R)
In CVSSv2, this factor was taken into account within the framework of the Access Complexity metric, the new standard is presented as an independent one.

Consider two vulnerabilities that have the same rating in terms of CVSSv2: 9.3 ( AV: N / AC: M / Au: N / C: C / I: C / A: C ).


Metrics for CVSSv3:
VulnerabilityCVSSv3 vectorCVSSv3 Evaluation
CVE-2014-0329AV: N / AC: L / PR: N / UI: N / S: U / C: H / I: H / A: H9.8
CVE-2015-1752AV: N / AC: L / PR: N / UI: R / S: U / C: H / I: H / A: H8.8
From this example, it is clear that CVSSv3 estimates the severity of a vulnerability more correctly.

Boundaries of operation

Whether the exploited and attacked components differ, that is, whether the exploitation of a vulnerability allows violating the confidentiality, integrity and availability of any other component of the system.
CVSSv2CVSSv3
Metric name
Scope (s)
Possible metric values
Unchanged (U)
Changed (C)
Consider two vulnerabilities that have the same CVSSv2: 10.0 rating ( AV: N / AC: L / Au: N / C: C / I: C / A: C ).

VulnerabilityCVSSv3 vectorCVSSv3 Evaluation
CVE-2014-0568AV: N / AC: L / PR: N / UI: R / S: C / C: H / I: H / A: H9.6
CVE-2015-3048AV: N / AC: L / PR: N / UI: R / S: U / C: H / I: H / A: H8.8
In the new vulnerability standard, in which the vulnerable and attacked components differ, receive a higher risk rating.

Exposure metrics

Assessment of the degree of influence on the confidentiality, integrity and availability of the attacked component.
CVSSv2CVSSv3
Metric name
Confidentiality Impact (C), Integrity Impact (I), Availability Impact (A)
Possible metric values
None (N)None (N)
Partial (P)
Complete (C)
Medium (M)
High (H)
In this metric, the approach to calculating weight is fundamentally changed: from quantitative (Partial — Complete) to qualitative (Medium — High).

Consider two vulnerabilities that have the same CVSSv2: 5.0 rating ( AV: N / AC: L / Au: N / C: P / I: N / A: N ).

VulnerabilityCVSSv3 vectorCVSSv3 Evaluation
CVE-2014-0160AV: N / AC: L / PR: N / UI: N / S: U / C: H / I: N / A: N7.5
CVE-2015-4202AV: N / AC: L / PR: N / UI: N / S: U / C: L / I: N / A: N5.3
As can be seen from the example, the qualitative approach allows to more accurately assess the risk of vulnerability.

Time metrics

Time metrics have not undergone any fundamental changes.

Maturity of available operating facilities

Is there a publicly available code or other means by which an attack can be carried out, or, on the contrary, there is only a theoretical possibility of exploitation.
CVSSv2CVSSv3
Metric name
Exploitability (E)Exploit Code Maturity (E)
Possible metric values
Not Defined (ND / X)
High (H)
Functional (F)
Proof-of-Concept (POC / P)
Unproven (U)
In this metric, only the name has changed: now it more accurately reflects the purpose.

Available remedies for vulnerability

Are there formal or unofficial means to eliminate the vulnerability.
CVSSv2CVSSv3
Metric name
Remediation Level (RL)
Possible metric values
Not Defined (ND / X)
Unavailable (U)
Workaround (W)
Temporary Fix (TF / T)
Official Fix (OF / O)
No changes were made to this metric.

Confidence in Vulnerability Information

The granularity of available vulnerability reports
CVSSv2CVSSv3
Metric name
Report Confidence (RC)
Possible metric values
Not Defined (ND)Not Defined (X)
Unconfirmed (UC)
Uncorroborated (UR)
Unknown (U)
Reasonable (R)
Confirmed (C)Confirmed (C)
The new standard more clearly describes the criteria for assigning a vulnerability report to one category or another:


Impact of time metrics


Consider the vulnerability:

CVE-2015-2373 - Vulnerability in the Remote Desktop Protocol (RDP) service of the Windows operating system allows a remote attacker to execute arbitrary code on the system by sending specially crafted RDP packets.
Standard VersionCVSS vectorBaseline scorefinal grade
CVSSv2AV: N / AC: L / Au: N / C: C / I: C / A: C / E: U / RL: OF / RC: C10.07.4
CVSSv3AV: N / AC: L / PR: N / UI: N / S: U / C: H / I: H / A: H / E: U / RL: O / RC: C9.88.5
As can be seen, the new standard redesigned the calculation formula in favor of reducing the overall impact of time metrics on the final numerical score.

Context Metrics


Context metrics are modified to simplify the assessment of the impact of the environment on the final assessment.

Security requirements

Allows you to declare which characteristic of the data of the attacked component (confidentiality, integrity or availability) most affects the functionality of the business system or the whole business processes.
CVSSv2CVSSv3
Metric name
Confidentiality Requirement (CR), Integrity Requirement (IR),
Availability Requirement (AR)
Possible metric values
Not Defined (ND / X)
High (H)
Medium (M)
Low (L)
No changes were made to this metric.

Adjusted base metrics

Exploitability and potential damage in the conditions of the IT infrastructure of a particular company.
CVSSv3
Metric name
Modified Attack Vector (MAV), Modified Attack Complexity (MAC), Modified Privileges Required (MPR), Modified User Interaction (MUI), Modified Scope (MS), Modified Confidentiality (MC), Modified Integrity (MI), Modified Availability (MA )
Possible metric values
The values ​​described in the section "Basic metrics", or Not Defined (X)
This metric can either increase the final score, for example, if a potentially weak application configuration is used, or lower, if any compensating means are introduced to reduce the risk of exploitation or the potential damage from a successful attack.

Abandoned Metrics


The following metrics are excluded from the standard:

Other innovations in the standard


Chains of Vulnerabilities

The CVSS standard was originally developed for independent assessment of each vulnerability, but there are a number of cases in which it is possible, by operating several vulnerabilities consistently, to inflict significantly more damage.
The new standard recommends using CVSS metrics to describe vulnerability chains, combining the exploitation characteristics of one vulnerability with the impact metrics of another.

Consider an abstract example.


VulnerabilityCVSSv3 vectorCVSSv3 Evaluation
Vulnerability 1AV: L / AC: L / PR: N / UI: N / S: U / C: H / I: H / A: H8.4
Vulnerability 2AV: N / AC: L / PR: N / UI: R / S: U / C: N / I: L / A: N4.3
If, during the exploitation of vulnerability 2, it is possible to modify the application files so that this could lead to the exploitation of vulnerability 1, we can talk about the presence of a chain of vulnerabilities with the following characteristics.
Chain of VulnerabilitiesCVSSv3 vectorCVSSv3 Evaluation
Vulnerability 2 -> Vulnerability 1AV: N / AC: L / PR: N / UI: R / S: U / C: H / I: H / A: H8.8
As can be seen from the example, the final assessment for the chain may be higher than the severity level of each individual vulnerability.

Qualitative Hazard Rating Scale


Over the years of using CVSSv2, different companies have developed different approaches to setting a qualitative level of danger based on the CVSS metric:

The CVSSv3 standard recommends using the following quality rating scale:
QuantificationQualitative assessment
0None
0.1–3.9Low
4.0—6.9Medium
7.0—8.9High
9.0—10.0Critical

List of most important changes

Briefly summarize and list the most important CVSSv3 innovations:


The assessment approach proposed in the new standard allows for more accurate consideration of most of the factors affecting the risk of vulnerabilities; therefore, it is quite possible to expect an early implementation of this standard in companies whose work is related to the analysis of vulnerabilities.

The introduction of new metrics practically did not affect the development of the assessment process. At some points it became easier (the complexity of the attack, the need for user interaction), in some more difficult (a qualitative assessment of the impact on confidentiality, integrity and availability, the boundaries of operation).

Those who want to learn more about the CVSS vulnerability assessment methodology, I recommend, besides the specification [ 1 ], get acquainted with examples of calculations [ 3 ] and FIRST recommendations [ 2 ], where typical examples explain how to correctly use the standard for vulnerability assessment.

A number of foreign companies, including the IBM X-Force and Security Database, have already implemented CVSSv3 ratings in their products and services. We at Positive Technologies are laying the possibility of assessing CVSSv3 vulnerabilities in the corporate knowledge base and MaxPatrol product line.

Bonus: CVSS metrics for named vulnerabilities (Heartbleed, Shellshock and all-all-all)
Beginning with the vulnerability in OpenSSL, which got the memorable name Heartbleed and a beautiful logo with a bleeding heart, it has become fashionable for the information security community to come up with sound names for the vulnerabilities, especially for SSL / TLS related vulnerabilities. Let us analyze how these named vulnerabilities are really dangerous.

OpenSSL ' Heartbleed ' Vulnerability ( CVE-2014-0160 ) - Vulnerability exists in the TLS and DTLS implementations for OpenSSL due to incorrect processing of the Heartbeat expansion packs. Operation of this vulnerability allows attackers acting remotely to gain access to confidential information from process memory using specially crafted packets that cause reads outside the buffer.
Standard VersionCVSS vectorBaseline scorefinal grade
CVSSv2AV: N / AC: L / Au: N / C: P / I: N / A: N / E: F / RL: OF / RC: C5.04.1
CVSSv3AV: N / AC: L / PR: N / UI: N / S: U / C: H / I: N / A: N / E: F / RL: O / RC: C7.57.0
Mozilla ' BERserk ' vulnerability in Mozilla NSS ( CVE-2014-1568 ) - Vulnerability in the parsing function of the ASN.1 SSL certificate format in the Mozilla Network Security Services (NSS) library allows attackers to spoof RSA-signature in the certificate and get unauthorized access to confidential according to
Standard VersionCVSS vectorBaseline scorefinal grade
CVSSv2AV: N / AC: M / Au: N / C: C / I: C / A: N / E: U / RL: OF / RC: C8.86.5
CVSSv3AV: N / AC: H / PR: N / UI: N / S: U / C: H / I: H / A: N / E: U / RL: O / RC: C7.46.4
Vulnerability ' POODLE ' in SSLv3 protocol ( CVE-2014-3566 ) - The vulnerability of the SSLv3 protocol in the implementation of CBC encryption in OpenSSL and a number of other products allows an attacker carrying out the Man in the Middle attack to get unencrypted data using the padding oracle attack. Later, the vulnerability was also found in a number of TLS implementations ( CVE-2014-8730 ).
Standard VersionCVSS vectorBaseline scorefinal grade
CVSSv2AV: N / AC: M / Au: N / C: P / I: N / A: N / E: U / RL: W / RC: C4.33.5
CVSSv3AV: N / AC: H / PR: N / UI: R / S: U / C: L / I: N / A: N / E: U / RL: W / RC: C3.12.8
Windows OLE ' Sandworm ' Vulnerability ( CVE-2014-4114 ) - A vulnerability in Microsoft Windows OLE allows an attacker to execute arbitrary code on the system if the user opens a file containing a specially crafted OLE object.
Standard VersionCVSS vectorBaseline scorefinal grade
CVSSv2AV: N / AC: M / Au: N / C: C / I: C / A: C / E: F / RL: OF / RC: C9.37.7
CVSSv3AV: L / AC: L / PR: N / UI: R / S: U / C: H / I: H / A: H / E: U / RL: O / RC: C7.86.8
Vulnerability of Shellshock in Bash ( CVE-2014-6271 , CVE-2014-7169 ) - Vulnerability in GNU Bash is caused by incorrect processing of the string that occurs after the function is defined in the environment variable. The exploitation of the vulnerability is possible through different attack vectors: DHCP, HTTP, SIP, FTP, SMTP - and allows an attacker to execute an arbitrary bash code on the target system.
Standard VersionCVSS vectorBaseline scorefinal grade
CVSSv2AV: N / AC: L / Au: N / C: C / I: C / A: C / E: F / RL: OF / RC: C10.08.3
CVSSv3AV: N / AC: L / PR: N / UI: N / S: U / C: H / I: H / A: H / E: F / RL: O / RC: C9.89.1
Vulnerability of ' FREAK ' in OpenSSL ( CVE-2015-0204 ) - Vulnerability in the ssl3_get_key_exchange function in OpenSSL allows an attack on reducing the strength of the SSL / TLS cipher connection (from RSA to RSA_EXPORT). The successful implementation of the attack allows an attacker to decrypt the connection data.
Standard VersionCVSS vectorBaseline scorefinal grade
CVSSv2AV: N / AC: M / Au: N / C: N / I: P / A: N / E: U / RL: OF / RC: C4.33.2
CVSSv3AV: N / AC: H / PR: N / UI: N / S: U / C: N / I: L / A: N / E: U / RL: O / RC: C3.73.2
Glibc ' GHOST ' vulnerability ( CVE-2015-0235 ) - Buffer overflow in dynamic memory in __nss_hostname_digits_dots function in glibc allows an attacker to execute arbitrary code by calling gethostbyname or gethostbyname2.
Standard VersionCVSS vectorBaseline scorefinal grade
CVSSv2AV: N / AC: H / Au: N / C: C / I: C / A: C / E: F / RL: OF / RC: C7.66.3
CVSSv3AV: N / AC: H / PR: N / UI: N / S: U / C: H / I: H / A: H / E: F / RL: O / RC: C8.17.5
Vulnerability ' Venom ' in virtualization systems ( CVE-2015-3456 ) - Vulnerability in the drive emulator in QEMU, which is used in various virtualization systems, allows an attacker to go beyond the guest virtual machine and execute code in the context of the host machine.
Standard VersionCVSS vectorBaseline scorefinal grade
CVSSv2AV: A / AC: L / Au: S / C: C / I: C / A: C / E: POC / RL: OF / RC: C7.76.0
CVSSv3AV: A / AC: L / PR: L / UI: N / S: C / C: H / I: H / A: H / E: P / RL: O / RC: C9.08.1
Vulnerability ' Logjam ' in the TLS protocol ( CVE-2015-4000 ) - Vulnerability in the TLS protocol allows an attacker to carry out an attack on lowering the strength of the TLS-cipher cipher (from DHE to DHE_EXPORT). The successful implementation of the attack allows an attacker to decrypt the connection data.
Standard VersionCVSS vectorBaseline scorefinal grade
CVSSv2AV: N / AC: M / Au: N / C: P / I: N / A: N / E: U / RL: OF / RC: C4.33.2
CVSSv3AV: N / AC: H / PR: N / UI: N / S: U / C: L / I: N / A: N / E: U / RL: O / RC: C3.73.2

As you can see, not all named vulnerabilities have a high level of danger.

Resource list


  1. CVSSv3 Specification
  2. CVSSv3 guidelines
  3. Examples of calculating metrics according to CVSSv3
  4. CVSSv3 calculator
  5. Vulnerability Database National Vulnerability Database
  6. CVSSv2 Specification
  7. CVSSv2 calculator
  8. Open letter to FIRST on CVSSv2 weaknesses
  9. NIST CVSS Implementation Guide
  10. ITU guidelines for using CVSS

Source: https://habr.com/ru/post/266485/


All Articles