Class: CvssSuite::Cvss3Base

Inherits:
CvssMetric show all
Defined in:
lib/cvss_suite/cvss3/cvss3_base.rb

Overview

This class represents a CVSS Base metric in version 3.

Instance Attribute Summary collapse

Attributes inherited from CvssMetric

#properties

Instance Method Summary collapse

Methods inherited from CvssMetric

#count, #initialize, #valid?

Constructor Details

This class inherits a constructor from CvssSuite::CvssMetric

Instance Attribute Details

#attack_complexityObject (readonly)

Property of this metric



16
17
18
# File 'lib/cvss_suite/cvss3/cvss3_base.rb', line 16

def attack_complexity
  @attack_complexity
end

#attack_vectorObject (readonly)

Property of this metric



16
17
18
# File 'lib/cvss_suite/cvss3/cvss3_base.rb', line 16

def attack_vector
  @attack_vector
end

#availabilityObject (readonly)

Property of this metric



16
17
18
# File 'lib/cvss_suite/cvss3/cvss3_base.rb', line 16

def availability
  @availability
end

#confidentialityObject (readonly)

Property of this metric



16
17
18
# File 'lib/cvss_suite/cvss3/cvss3_base.rb', line 16

def confidentiality
  @confidentiality
end

#integrityObject (readonly)

Property of this metric



16
17
18
# File 'lib/cvss_suite/cvss3/cvss3_base.rb', line 16

def integrity
  @integrity
end

#privileges_requiredObject (readonly)

Property of this metric



16
17
18
# File 'lib/cvss_suite/cvss3/cvss3_base.rb', line 16

def privileges_required
  @privileges_required
end

#scopeObject (readonly)

Property of this metric



16
17
18
# File 'lib/cvss_suite/cvss3/cvss3_base.rb', line 16

def scope
  @scope
end

#user_interactionObject (readonly)

Property of this metric



16
17
18
# File 'lib/cvss_suite/cvss3/cvss3_base.rb', line 16

def user_interaction
  @user_interaction
end

Instance Method Details

#exploitability_subscoreObject



38
39
40
# File 'lib/cvss_suite/cvss3/cvss3_base.rb', line 38

def exploitability_subscore
  calc_exploitability
end

#impact_subscoreObject



34
35
36
# File 'lib/cvss_suite/cvss3/cvss3_base.rb', line 34

def impact_subscore
  calc_impact
end

#scoreObject

Returns score of this metric



21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/cvss_suite/cvss3/cvss3_base.rb', line 21

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