cvss-suite 1.0.2
This Ruby gem helps you to process the vector of the Common Vulnerability Scoring System (https://www.first.org/cvss/specification-document). Besides calculating the Base, Temporal and Environmental Score, you are able to extract the selected option. Homepage is still in progress and will be published soon (along with full documentation). ## Usage ```ruby require 'cvss_suite' cvss = CvssSuite.new('AV:A/AC:M/Au:S/C:P/I:P/A:P/E:POC/RL:TF/RC:UC/CDP:L/TD:M/CR:M/IR:M/AR:M') vector = cvss.vector # 'AV:A/AC:M/Au:S/C:P/I:P/A:P/E:POC/RL:TF/RC:UC/CDP:L/TD:M/CR:M/IR:M/AR:M' version = cvss.version # 2 # Scores base_score = cvss.base_score # 4.9 temporal_score = cvss.temporal_score # 3.6 environmental_score = cvss.environmental_score # 3.2 overall_score = cvss.overall_score # 3.2 # Available options access_vector = cvss.base.access_vector.name # 'Access Vector' remediation_level = cvss.temporal.remediation_level.name # 'Remediation Level' access_vector.choices.each do |choice| choice[:name] # 'Local', 'Adjacent Network', 'Network' choice[:abbreviation] # 'L', 'A', 'N' choice[:selected] # false, true, false end # Selected options cvss.base.access_vector.selected_choice[:name] # Adjacent Network cvss.temporal.remediation_level.selected_choice[:name] # Temporary Fix # Exceptions CvssSuite.new('random_string') # will throw a RuntimeError: Vector is not valid! CvssSuite.new() # will throw a ArgumentError cvss = CvssSuite.new('AV:N/AC:P/C:P/AV:U/RL:OF/RC:C') # invalid vector, authentication is missing version = cvss.version # 2 cvss.base_score # will throw a RuntimeError: Vector is not valid! ```