Class: CvssSuite::Cvss31Base
- Inherits:
-
CvssMetric
- Object
- CvssMetric
- CvssSuite::Cvss31Base
- Defined in:
- lib/cvss_suite/cvss31/cvss31_base.rb
Overview
This class represents a CVSS Base metric in version 3.1.
Instance Attribute Summary collapse
-
#attack_complexity ⇒ Object
readonly
Property of this metric.
-
#attack_vector ⇒ Object
readonly
Property of this metric.
-
#availability ⇒ Object
readonly
Property of this metric.
-
#confidentiality ⇒ Object
readonly
Property of this metric.
-
#integrity ⇒ Object
readonly
Property of this metric.
-
#privileges_required ⇒ Object
readonly
Property of this metric.
-
#scope ⇒ Object
readonly
Property of this metric.
-
#user_interaction ⇒ Object
readonly
Property of this metric.
Attributes inherited from CvssMetric
Instance Method Summary collapse
- #exploitability_subscore ⇒ Object
- #impact_subscore ⇒ Object
-
#score ⇒ Object
Returns score of this metric.
Methods inherited from CvssMetric
Constructor Details
This class inherits a constructor from CvssSuite::CvssMetric
Instance Attribute Details
#attack_complexity ⇒ Object (readonly)
Property of this metric
17 18 19 |
# File 'lib/cvss_suite/cvss31/cvss31_base.rb', line 17 def attack_complexity @attack_complexity end |
#attack_vector ⇒ Object (readonly)
Property of this metric
17 18 19 |
# File 'lib/cvss_suite/cvss31/cvss31_base.rb', line 17 def attack_vector @attack_vector end |
#availability ⇒ Object (readonly)
Property of this metric
17 18 19 |
# File 'lib/cvss_suite/cvss31/cvss31_base.rb', line 17 def availability @availability end |
#confidentiality ⇒ Object (readonly)
Property of this metric
17 18 19 |
# File 'lib/cvss_suite/cvss31/cvss31_base.rb', line 17 def confidentiality @confidentiality end |
#integrity ⇒ Object (readonly)
Property of this metric
17 18 19 |
# File 'lib/cvss_suite/cvss31/cvss31_base.rb', line 17 def integrity @integrity end |
#privileges_required ⇒ Object (readonly)
Property of this metric
17 18 19 |
# File 'lib/cvss_suite/cvss31/cvss31_base.rb', line 17 def privileges_required @privileges_required end |
#scope ⇒ Object (readonly)
Property of this metric
17 18 19 |
# File 'lib/cvss_suite/cvss31/cvss31_base.rb', line 17 def scope @scope end |
#user_interaction ⇒ Object (readonly)
Property of this metric
17 18 19 |
# File 'lib/cvss_suite/cvss31/cvss31_base.rb', line 17 def user_interaction @user_interaction end |
Instance Method Details
#exploitability_subscore ⇒ Object
39 40 41 |
# File 'lib/cvss_suite/cvss31/cvss31_base.rb', line 39 def exploitability_subscore calc_exploitability end |
#impact_subscore ⇒ Object
35 36 37 |
# File 'lib/cvss_suite/cvss31/cvss31_base.rb', line 35 def impact_subscore calc_impact end |
#score ⇒ Object
Returns score of this metric
22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/cvss_suite/cvss31/cvss31_base.rb', line 22 def score exploitability = calc_exploitability impact_sub_score = calc_impact return 0 if impact_sub_score <= 0 if @scope.selected_value[:name] == 'Changed' [10, 1.08 * (impact_sub_score + exploitability)].min else [10, impact_sub_score + exploitability].min end end |