(安全测试)想做安全测试?先从给漏洞分级学起吧!
转载自 微信公众号 “51Testing软件测试网” 作者:刘沅斌
(个人学习记录用)
近年来,网络安全威胁层出不穷,网络攻击和数据泄露的事件频发:
既有多个知名网站大量用户信息泄露的事件;
也有委内瑞拉国家电网干线遭到攻击,造成全国大面积停电的针对关键基础设施实施的攻击;
还有乌克兰武装部队的第聂伯罗军队自动化控制系统的服务器用户名和密码分别为“admin”、“123456的弱密码事件。
可见小到信息泄露,大到国家安全,网络安全关系着个人和国家的切身利益。
因此,安全测试也日益为企业所重视。安全测试的目的就是尽可能多发现潜在漏洞。
漏洞是计算机信息系统在需求、设计、实现、配置、运行等过程中,有意或无意产生的缺陷。这些缺陷以不同的形式存在于计算机信息系统的各个层次和环节之中,一旦被恶意主体所利用,就会对计算机信息系统的安全造成损害,从而影响计算机信息系统的正常运行。
根据漏洞的定义,漏洞本质上也是缺陷,对于缺陷而言,进行缺陷的分级是一个比较重要的议题,因为需要评估修复缺陷的优先级。
对于系统测试发现的缺陷,已有较为成熟的分级方案,大都是划分为致命、严重、一般、轻微四个级别。
漏洞也需明确其严重程度划分的标准。为判断修复不同漏洞的优先级提供依据。
本文先通过分析对比业界常用的三个漏洞等级划分模型:网络安全漏洞分类分级指南、CVSS、DREAD来了解漏洞分级的通用思路。然后会选取两个典型的漏洞来运用这三种模型进行漏洞的定级实践。
一、网络安全漏洞分类分级指南
《GB/T 30279-2020 信息安全技术 网络安全漏洞分类分级指南》是国家标准,该标准替代了《GB/T 33561-2017 信息安全技术 安全漏洞分类》和《GB/T 30279-2013 信息安全技术 安全漏洞等级划分指南》,将漏洞的分级方式划分为技术分级和综合分级。
将分级指标划分为被利用性指标类、影响程度指标类和环境因素指标类。
该指南在分级方法上包括漏洞指标类的分级方法、漏洞技术分级方法和漏洞综合分级方法。
具体的分级过程是:
第一步:先对被利用性指标进行赋值,根据赋值结果,按照“被利用性分级表”得到漏洞的被利用性分级。
第二步:对影响程度指标进行赋值,根据赋值结果,按照“影响程度分级表”得到漏洞的影响程度分级。
第三步:根据漏洞的被利用分级和影响程度分级结果,按照“漏洞技术分级结果表”计算得到漏洞的技术分级结果。如果只是做漏洞的技术分级,那么到这一步就结束了,如果还需进行综合分级,则继续下一步。
第四步:对环境因素指标进行赋值,根据赋值结果,按照“环境因素分级表”得到漏洞的环境因素分级。
第五步:根据漏洞的技术分级结果和环境因素分级结果,按照“漏洞综合分级表”计算得到漏洞的综合分级结果。
二、CVSS
CVSS全称为Common Vulnerability Scoring System,即“通用漏洞评分系统,是由NIAC开发、FIRST维护的一个开放并且能够被产品厂商免费采用的标准。历经1.0、2.0、3.0、3.1版本,目前最新的是3.1版本。在FIRST上可找到相应的说明文档和得分计算器。
CVSS得分基于一系列维度上的测量结果,这些测量维度被称为量度(Metrics)。分值范围为0-10,不同的得分区间对应不同的漏洞级别。
CVSS由三个度量标准组组成:基本,时间和环境。每个标准组包含多个指标,根据指标的不同取值计算分数,然后根据分数所在区间对应漏洞严重级别。
CVSS目前被CVE、CND等漏洞共享平台使用,在计算时一般是计算基本组分数。
基本组:漏洞的内在性质,随时间推移以及在用户环境中保持不变。基本指标产生的分数介于0到10之间,然后可以通过对时间和环境指标进行评分来进行修改。
包含利用代码维度和影响维度两个度量维度,代码维度包含五个指标:攻击向量、攻击复杂度、权限要求、用户交互、范围。
影响维度包含三个指标:机密性影响、完整性影响、可用性影响。
时间组:随时间变化的漏洞的特征。包含三个指标:攻击代码成熟度、补丁水平、报告可信度。
环境组:用户环境特有的漏洞特征。除包括修正的基本度量的8个指标外还包含三个指标:机密性影响、完整性影响、可用性影响。
三、DREAD
DREAD模型,是一个威胁评级模型,威胁评级是微软威胁建模流程中的一个阶段, DREAD分别是威胁评级的5个指标的英文首字母:Damage Potential(潜在损失)、Reproducibility(重现性)、Exploitability(可利用性)、Affected users(受影响的用户)、Discoverability(可发现性)。
这5个指标每个指标的评级分为高中低三等,在下表中每个等级分别以3、2、1的分数代表权重值,最终威胁的危险评级由这5个指标的加权平均算出。
根据上表的标准,每个指标的取值范围为1-3,则结果范围为5-15,那就可以参考具体的得分和风险级别的如下。
四、案例实践
以下通过两个案例展示三种模型的漏洞分级计算过程。
1、案例一 :CVE-2021-21206 谷歌Google Chrome资源管理错误漏洞
Google Chrome存在资源管理错误漏洞,该漏洞源于Google Chrome浏览器中的Blink资源管理错误使得远程攻击者可以诱骗受害者访问特制的网页,并在系统上执行任意代码。
①CVSS
我们在NVD官网上可以看到该漏洞的CVSS3.1评分是8.8,对应的漏洞级别是高危。同时在该网站上可以看到评分的具体细节如下图。
具体的指标和取值见下表。
②DREAD
③网络安全漏洞分类分级指南
此处主要展示漏洞技术分级计算。
2、案例二 :百度外卖平台系统遭非法侵入账户被篡改4900余万元的事件
根据2018年的一篇报道,此次事件是北京小度科技有限公司在2017年10月主动报案,嫌疑人都是利用百度外卖系统漏洞,将提现金额改为负数,从而实现反向充值自己账户余额,并使用账户余额在“百度外卖”平台上进行消费,总共被篡改4900余万元。
这是一个典型的请求参数篡改的漏洞,对于用户输入的信息没有遵循用户输入不可信的原则,没有进行数据的类型长度范围的合法性检查,也没有进行必要的业务风险控制。
①CVSS
②DREAD
③网络安全漏洞分类分级指南
五、总结
通过分析上述三种比较典型的漏洞分级模型,可以看CVSS作为一个国际标准,指标较多,可通过提供的计算器自动计算。但也存在指标理解有一定难度且计算过程复杂的缺陷。
DREAD也是一个国际标准,指标维度较为精炼,但各个维度指标权重一样,需要在实际使用的时候进行适用性的调整。网络安全漏洞分类分级指南是国家标准,分级采用了参考分级表的形式,比较新颖,但不同指标赋值组合较多,在具体实施的时候如果能辅助自动化的手段会比较好。
虽然这三种模型有其不同的特点,但可以看出模型的思路均是先制定漏洞分级相关的指标,然后对每个指标赋值进行标准的定义和权重的分配,最后通过加权求和计算得分,不同得分区间对应相应漏洞级别,或者是通过不同指标赋值结果的组合匹配对应的漏洞级别。