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