安全数据库 / cvss
通用漏洞评分系统版本 3.1
v2.2
2020-06-12 15:13 UTC
Requires
- php: >=5.6
Requires (Dev)
- phpunit/phpunit: ^5.0
README
版本
dev-master
实际上与2.2相同
2.2
- 关于MPR / PR计算的修正(在某些情况下可能错误)
- 添加了一个测试8来检查
- 添加了可选的和对X的修改,如果没有设置(以便更好的计算)
- 修正了checkModified()
2.1.1
- Travis和Composer更新:php 5.6 -> 7.3 phpunit
2.1.0
- CVSS 3.1 升级
- 与3.0向后兼容 - 接受3.0作为输入,输出3.1向量
- 文档升级到3.1
- 我们的Cvss3::roundUp()在3.1中从3.0的重大升级似乎工作良好(实际上在3.0中使用)
- 升级测试案例到3.1和3.0向量作为输入给出3.1向量作为输出
- 从Cvssv3.php中移除了@version
2.0.3
- 当MS未设置时,使用MPR和范围修复EnvScore计算(再次)
- @faynwol通过更清晰的代码推送
- 添加一些关于向量和CVSSv3网站的单元测试
2.0.2
- 当MS未设置时,使用MPR和范围修复EnvScore计算
- EnvScore公式,现在有2个RoundUp而不是一个
- 添加一些关于向量和CVSSv3网站的单元测试
2.0.1
- 当envModifiedImpactSubScore <= 0时,修复EnvScore计算
- 在这种情况下,将EnvScore Formula设置为0
- 将一些属性更改为静态
- 将Clean方法更改为处理静态属性
2.0
-
将公共变量更改为私有变量
-
为所有私有变量添加getter
-
为局部变量添加setter
-
在__constructor和setter中添加局部验证器
-
更改phpUnit测试案例以反映getter和setter
-
更新文档
-
更新一些DocBlock
-
由于getters和setters不向后兼容,更新到2.0
-
待办事项越来越多...更多phpUnit测试案例...
1.3.2
- 使用\Exception修改DocBlock
- 添加一个Clean()函数,以便在注册另一个对象之前清理对象
- 添加公共vector_part(基础、临时和环境向量部分)
- 将私有更改为公共基础、环境和tmp
- 将私有更改为公共一些变量($this->base、$this->env、$this->tmp)
- 修复\Exception()
- 在__construct、register和explodeVector上添加代码以处理异常
- 将constructVector()更改为仅构造必需的向量(如果值为'X',则不放置可选和修改的向量)
- 修复关于语言的check常量
- 修复修改度量标准的默认值
- 添加一个加载语言文件的构造函数
- 添加一个反向向量检查器
1.3.1
- 修复envImpactSubScoreMultiplier
- 添加分数优先级
1.3.0
- 修复- 计算错误,特别是在修改范围方面
- 修复- 修改分数 -> 权重(浮点数)
- 重新工作- 修改分数具有规范化的名称 - 现在更容易阅读代码
- 添加- 多语言标签
通用漏洞评分系统版本 3.1
通用漏洞评分系统(CVSS)是评估计算机系统安全漏洞严重性的免费和开源行业标准。它由NIST负责。它试图建立一个度量,以确定漏洞与其他漏洞相比应引起多少关注,以便优先考虑努力。分数基于一系列基于专家评估的度量(称为指标)。分数范围从0到10。基础分数在7.0-10.0范围内的漏洞是高度,那些在4.0-6.9范围内的是中等,在0-3.9范围内的是低。类试图遵循PSR2标准,除了公式上的120个字符。
许可证
本软件受Apache License 2.0许可。
PHP 类
初始化
可以是 composer
composer require security-database/cvss
或者将传统类包含到你的项目中,并包含它。
include_once('Cvss3.php');
之后,创建一个新的向量。
use SecurityDatabase\Cvss\Cvss3; try { $cvss = new Cvss3(); $cvss->register("CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:U/C:L/I:L/A:N/E:P/RL:W/CR:L/IR:L/MAV:A/MAC:H/MPR:L/MUI:N/MS:U/MC:L/MI:L/MA:L"); print_r($cvss->getWeight()); print_r($cvss->getScores()); print_r($cvss->getScoresLabel()); print_r($cvss->getSubScores()); print_r($cvss->getSubScoresLabel()); print_r($cvss->getRatings()); print_r($cvss->getFormula()); print_r($cvss->getVector()); (...) } catch (Exception $e) { print $e->getCode() . " : " . $e->getMessage(); }
用法
你现在可以获取一些信息
获取向量(数组)中每个元素的重量
print_r($cvss->getWeight()); /* array (size=20) 'AV' => float 0.85 'AC' => float 0.44 'PR' => float 0.27 'UI' => float 0.62 'C' => float 0.22 'I' => float 0.22 'A' => float 0 'E' => float 0.94 'RL' => float 0.97 'CR' => float 0.5 'IR' => float 0.5 'MAV' => float 0.62 'MAC' => float 0.44 'MPR' => float 0.62 'MUI' => float 0.85 'MC' => float 0.22 'MI' => float 0.22 'MA' => float 0.22 'RC' => float 1 'AR' => float 1 */
获取用于评分的分数(数组)
print_r($cvss->getScores()); /* array (size=7) 'baseScore' => float 6.7 'impactSubScore' => float 5.7576309677951 'exploitabalitySubScore' => float 0.3924228 'temporalScore' => string 'NA' (length=2) 'envScore' => string 'NA' (length=2) 'envModifiedImpactSubScore' => string 'NA' (length=2) 'overallScore' => float 6.7 */
获取带有标签(en_US)的分数,用于评分标签(数组)
print_r($cvss->getScoresLabel()); /* array (size=7) 'Base Score' => float 6.7 'impact SubScore' => float 5.7576309677951 'Exploitabality Sub Score' => float 0.3924228 'Temporal Score' => string 'NA' (length=2) 'Environmental Score' => string 'NA' (length=2) 'Environmental Modified Impact SubScore' => string 'NA' (length=2) 'Overall CVSS Score' => float 6.7 */
获取用于子评分的子评分(数组)
print_r($cvss->getScores()); /* array (size=9) 'impactSubScoreMultiplier' => float 0.8064 'impactSubScore' => float 5.7576309677951 'exploitabalitySubScore' => float 0.3924228 'baseScore' => float 6.7 'temporalScore' => float 6.7 'envModifiedExploitabalitySubScore' => float 0.3924228 'envImpactSubScoreMultiplier' => float 0.8064 'envModifiedImpactSubScore' => float 5.7576309677951 'envScore' => float 6.7 */
获取带有标签(en_US)的子评分,用于子评分标签(数组)
print_r($cvss->getScoresLabel()); /* array (size=9) 'Impact SubScore Multiplier' => float 0.8064 'impact SubScore' => float 5.7576309677951 'Exploitabality Sub Score' => float 0.3924228 'Base Score' => float 6.7 'Temporal Score' => float 6.7 'Environmental Modified Exploitabality SubScore' => float 0.3924228 'Environmental Impact SubScore Multiplier' => float 0.8064 'Environmental Modified Impact SubScore' => float 5.7576309677951 'Environmental Score' => float 6.7 */
获取用于严重程度评分的严重程度评分(数组)
print_r($cvss->getRatings()); /* array (size=3) 'baseRating' => string 'Low' (length=3) 'tempRating' => string 'Low' (length=3) 'envRating' => string 'Low' (length=3) */
获取带详细信息的公式
print_r($cvss->getFormula()); /* array (size=9) 'impactSubScoreMultiplier' => string '1 - ( ( 1 - 0.22 ) * ( 1 - 0.22 ) * ( 1 - 0 ) )' (length=47) 'impactSubScore' => string '6.42 * 0.3916' (length=13) 'exploitabalitySubScore' => string '8.22 * 0.85 * 0.44 * 0.27 * 0.62' (length=32) 'baseScore' => string 'roundUp( min( 10 , 2.514072 + 0.514634472 ) )' (length=45) 'temporalScore' => string 'roundUp( 3.1 * 0.94 * 0.97 * 1)' (length=31) 'envModifiedExploitabalitySubScore' => string '8.22 * 0.62 * 0.44 * 0.62 * 0.85' (length=32) 'envImpactSubScoreMultiplier' => string 'min( 0.915, 1 - ( ( 1 - 0.22 * 0.5 ) * ( 1 - 0.22 * 0.5 ) * ( 1 - 0.22 * 1 ) ) )' (length=80) 'envModifiedImpactSubScore' => string '6.42 * 0.382162' (length=15) 'envScore' => string 'roundUp(min(10 , (2.45348004 + 1.181753232 ) * 0.94 * 0.97 * 1),1)' (length=66) */
获取向量
print $cvss->getVector(); /* return a string : CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:U/C:L/I:L/A:N/E:P/RL:W/CR:L/IR:L/MAV:A/MAC:H/MPR:L/MUI:N/MS:U/MC:L/MI:L/MA:L */
贡献
如果你在类中发现了任何错误,请,分叉它,推送一个 PR 或通过 "info at security-database.com" 联系我们