【技术实现步骤摘要】
一种基于依赖项检测和开源评分体系的NET平台开源软件供应链漏洞评分方法
[0001]本专利技术涉及一种基于依赖项检测和开源评分体系的.Net开源供应链漏洞评分方法,适用 于开源工业组件的漏洞评估,同时考虑了软件供应链上下游依赖关系因素的评分指标,提高 了安全评分系统针对开源工业组件漏洞评分的全局性和客观性。
技术介绍
[0002]由于信息技术的迭代和商业发展的需求,无数的企业团队开始采用敏捷开发模式以提升 软件开发的效率,而开源组件正好为开发者实现快速开发与技术创新提供了坚实的基础。随 着开源生态的逐步繁荣和工业互联网的迅速兴起,开源软件供应链的安全问题日益凸显。
[0003]开源生态中的工业组件若出现漏洞缺陷,开发团队或者安全人员在缺陷被修复之前需对 组件进行安全评估,并告知组件使用者准确的危害程度及风险范围。安全评估中的两大重点 是风险要素的量化和缺陷的识别,这两点直接关系到安全评估的准确性和客观性。在信息安 全领域中,通用漏洞评分系统(CVSS)是针对软件漏洞严重性的评分方法中最具有权威性的 行业标准。软件漏洞公布后,CVSS将对其进行具体分析,最终得出量化评分,即一个从0 到10之间的具体分数,数值越大,风险等级越高。CVSS直观通用、完全开放,它在产业界 的广泛应用解决了大部分的安全漏洞评估问题,但依旧存在一些不足之处。
[0004]CVSS的三组度量标准可以得出三个分数,基础评分、时限评分和环境评分。评分中的 部分指标因素定义模糊,实际操作中评分过于主观。所以产业界的大部分厂商只会关注基础 ...
【技术保护点】
【技术特征摘要】
1.一种基于依赖项检测和开源评分体系的NET平台开源软件供应链漏洞评分方法,其特征包括如下步骤:1)依赖项检测:使用依赖项检测程序获取上下游依赖项数据信息并定义指标区间;2)开源评分体系:基于针对上下游依赖关系的评分指标提出开源评分体系及计分公式。2.根据权利要求1所述的基于依赖项检测和开源评分体系的NET平台开源软件供应链漏洞评分方法,其特征在于:所述步骤1)具体包括下列步骤:步骤1.1、实现NuGet目录读取器的游标,标识出处理目录资源的时间点或者时间段;步骤1.2、确定目录读取器的资源链接,对JSON格式的资源文档进行目录检索;步骤1.3、在@type属性标识的资源目录中,按照对应的@id属性读取下一级的目录;步骤1.4、处理步骤1.3中获取到的次级目录页,读取对应NuGet组件的名称、描述、大小和依赖项等信息;步骤1.5、基于步骤1.4中获取到的NuGet组件信息进行数据统计,并对数据结果的相关概念做出定义、归纳区间。3.根据权利要求1所述的基于依赖项检测和开源评分体系的NET平台开源软件供应链漏洞评分方法,其特征在于:所述步骤2)具体包括下列步骤:步骤2.1、将CVSS可利用度评分S
e
中的攻击复杂度指标E
ac
重新进行等级划分,并作为开源评分体系的基础评分指标,其余基础评分指标沿用CVSS;步骤2.2、为影响度评分S
i
重新选取度量指标,并进行等级划分和权值分配;步骤2.3、通过开源评分体系得出漏洞的严重性分数S
oc
,评分指标组的计分公式为:其中作用域scope的取值为改变(C)和未改变(U),不做具体取值。4.根据权利要求2所述的基于依赖项检测和开源评分体系的NET平台开源软件供应链漏洞评分方法,其特征在于:在所述步骤1.5中,基于步骤1.4获取NuGet平台中用户活跃性较高的30341个组件进行依赖项的检测与分析,其中对组件依赖关系的概念定义和区间归纳如下:(a)基于NuGet组件下游依赖度的统计NuGet组件的下游依赖度表示该组件被其他NuGet组件依赖的程度,数值越大,依赖该组件的依赖项个数越多。下游依赖度在很大程度上体现了NuGet组件对下游供应链的影响程度。(b)基于NuGet组件上游依赖度的统计NuGet组件的上游依赖度表示该组件依赖其他NuGet组件的程度,依赖度越大,该组件的依赖项个数越多。根据NuGet组件的上、下依赖度可以判断该组件处于开源工业软件供应链的位置。数据显示90%以上的NuGet组件下游依赖度都分布于10以下,尤其是下游依赖度为0的NuGet组件接近总数的50%,此类NuGet组件是面向终端用户、可以直接使用的软件,可被归类于成
品组件;上游依赖度集中于2以下,此类NuGet组件基本上是应用程序的重要依赖项,可归类为基础组件;而上、下依赖项都处于较大值的NuGet组件可归类为中间组件。(c)基于NuGet组件依赖深度的统计下游依赖度只反映了某NuGet组件下一级的依赖项数量分布情况,而缺少了对该NuGet组件多级依赖关系的直观度量,而依赖深度可作为参考指标。每一个组件存在若干下游依赖项,各个依赖项可能依旧包含下一级依赖,其中依赖的层级数被称为依赖深度;根据所有依赖项的依赖深度总数与依赖项个数,可求得该NuGet组件的平均依赖深度;根据平均依赖深度的数据分布,可分为三组0、1~2和3~8,分别对应下游依赖项层级数量的极少、较少和较高三种情况。(d)基于NuGet组件下载量的统计NuG
e
t组件的历史下载次数充分体现了该组件的影响力和流行度。依据下载量的数据统计,可将NuGet组件分为下载量较低(0~90)、下载量较高(90~600)和下载量极高(大于600)三个范围区间。5.根据权利要求3所述的基于依赖项检测和开源评分体系的NET平台开源软件供应链漏洞评分方法,其特征在于:在所述步骤2.1中,所述步骤2.1中对CVSS可利用度评分S
e
的攻击复杂度指标E
ac
重新进行了等级的划分,依据漏洞利用的不同模型把CVSS中的两档细分为开源评分体系中的四挡,低、中、高和极高,具体分级标准如表1所示,此举更加切实和准确地描述了开源工业组件漏洞被利用的复杂程度。而CVSS可利用度中攻击向量E
av
、权限要求E
pr
和用户交互E
ui
指标定义清晰、分级明确,所以开源评分体系继续沿用这些标准。表1攻击复杂度分级标准等级攻击复杂度说明低L无需特定条件,即可达成攻击预期中M需要一定条件,但是条件较为简单高H需要一定或多种条件,并且条件较为严格极高E需要条件苛刻,攻击难度极高6.根据权利要求3所述的基于依赖项检测和开源评分体系的NET平台开源软件供应链漏洞评分方法,其特征在于:在所述步骤2.2中,为开源评分体系的影响度评分S
i
重新选取度量指标并进行定级和取分。影响度评分S
i
从两个方面进行考虑:...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。