System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及软件系统开发,尤其涉及一种在软件系统开发过程中用于开源组件选取的开源组件选取方法及系统。
技术介绍
1、在现代软件开发中,开源组件的使用日益普及,因其能够显著提升开发效率和降低成本。然而,开源组件的安全性问题也逐渐引起广泛关注。随着开源软件的广泛应用,各类安全漏洞不断被发现和披露,这给软件开发带来了潜在的风险。因此,开发者在选取开源组件时,需要综合考虑其安全性能,以避免因安全隐患而导致的系统漏洞和数据泄露等严重后果。
2、目前,针对开源组件的评估,通常依赖于静态分析工具和漏洞数据库。然而,这些方法往往存在评估不全面、实时性不足的问题,无法有效反映开源组件在实际使用中的安全状况。
技术实现思路
1、本专利技术的目的是提供一种可基于开源组件的代码情况进行开源组件选取的开源组件选取方法及系统。
2、为了实现上述目的,本专利技术提供了一种开源组件选取方法,其包括:
3、获取目标开源组件的代码文件;
4、统计所述代码文件中功能模块的个数,以获得第一模块数;
5、统计所述功能模块中复杂模块的个数,以获得第二模块数,所述复杂模块的循环复杂度大于预设第一阈值;
6、计算所述第二模块数与所述第一模块数的比值,以获得第一参数;
7、统计所述功能模块中过长模块的个数,以获得第三模块数,所述过长模块中的代码行数大于预设第二阈值或加权代码行数大于预设第三阈值;
8、计算所述第三模块数与所述第一模块数
9、基于所述第一参数和第二参数拟合出第一评估参数;
10、基于所述第一评估参数选取所述目标开源组件
11、较佳地,基于下述公式拟合第一评估参数sm:
12、
13、其中,cp为所述第一参数,lp为所述第二参数。
14、较佳地,还从开源漏洞数据库获取与目标开源组件相对应的漏洞信息,所述漏洞信息包括漏洞种类、漏洞发布日期以及漏洞评分系统给出的漏洞评分;
15、从公众的开源服务平台获取所述目标开源组件的指定时间段内的日均下载量和日均发布版本量;
16、基于所述日均下载量和所述日均发布版本量拟合生成第三参数;
17、基于每一漏洞的所述漏洞发布日期距当前的天数和所述漏洞评分拟合生成第四参数;
18、基于所述第三参数和所述第四参数拟合生成代表安全性要素的第二评估参数;
19、基于所述第一评估参数和所述第二评估参数选取所述目标开源组件。
20、较佳地,基于下述公式拟合出所述第三参数s1:
21、
22、其中,use_c表示所述日均下载量,rel_c表示所述日均发布版本量。
23、较佳地,基于下述公式拟合出所述第四参数s2:
24、
25、其中,e为自然常数,cvssi表示所述目标开源组件中第i个漏洞的所述漏洞评分,timei表示所述目标开源组件中第i个漏洞的所述漏洞发布日期距当前的天数,t表示统计时长。
26、较佳地,基于下述公式拟合出第二评估参数ss:
27、
28、其中,a、b为预设的调整常数,1.5≤a≤2,1<b<1.5。
29、较佳地,从开源漏洞数据库获取与目标开源组件相对应的漏洞信息,所述漏洞信息包括漏洞种类、漏洞发布日期;从开源社区平台获取所述目标开源组件中漏洞的漏洞修复状态信息,根据所述漏洞修复状态信息和相应的漏洞发布日期拟合出代表漏洞响应情况的第三评估参数;结合所述第一评估参数和第三评估参数选取所述目标开源组件。
30、较佳地,设置下述四种用于评价漏洞响应状况的响应状态:
31、待响应:漏洞处于未修复状态,且δt1<δ1;
32、无响应:漏洞处于未修复状态,且δt1≥δ1;
33、慢响应:漏洞处于已修复状态,且δt2≥δ2;
34、快响应:漏洞处于已修复状态,且δt2<δ2;
35、其中,δt1为所述漏洞发布日期与当前统计日期之间的时间间隔;
36、δt2为所述漏洞发布日期与漏洞修复完成日期之间的时间间隔;
37、δ1和δ2为预设的两个时间阈值;
38、根据所述漏洞修复状态信息和所述漏洞发布日期,对于每一漏洞,为其匹配相应的响应状态;
39、基于所述开源组件中所有漏洞的所述响应状态创建与所述开源组件中漏洞的响应速度相关的第五参数;
40、计算所述开源组件中处于所述慢响应和所述快响应状态的漏洞数量与总的漏洞数量的比值,以获得漏洞响应比例;
41、基于所述第五参数与所述漏洞响应比例的乘积获得所述第三评估参数。
42、较佳地,基于下述公式创建第五参数cov:
43、cov=∑wi×ai
44、
45、其中,wi表示为每一所述响应状态赋予的权重,ai表示任一所述响应状态在所有所述响应状态中的占比,bi表示任一所述响应状态的数量。
46、较佳地,还从开源社区平台获取目标开源组件的参与事件的发生数量,所述参与事件包括与所述目标开源组件相关的多用户参与的行为事件;
47、所述参与事件包括与所述目标开源组件相关的发起问题、问题评论、发起拉取请求、拉取请求评论以及合并拉取请求中的至少两者或多者,每一类型的所述参与事件包括若干分别发生在不同时间的事件项;
48、基于所述参与事件的发生数量创建表示所述目标开源组件活跃度的第四评估参数;
49、基于所述第一评估参数、所述第四评估参数选取所述目标开源组件。
50、较佳地,所述第四评估参数的生成方法包括:
51、为每一类型的参与事件赋予比例权重,所有类型的所有参与事件的比例权重之和为100%;
52、对于任一类型的所述参与事件中的若干所述事件项,基于时间函数,根据每一所述事件项的发生时间,为每一所述事件项配置时间权重;
53、基于下述公式计算任一所述参与事件的活动水平ali:
54、ali=wi×∑qn
55、其中,wi为所述参与事件的比例权重,qn为该参与事件中任一所述事件项的时间权重;
56、基于下述公式计算代表所述目标开源组件的社区活跃度的第四评估参数sca:
57、
58、较佳地,基于下述公式配合所述参与事件中任一所述事件项的时间权重qn:
59、
60、其中,e为自然常数,t为统计时长,t为预设的时间常数,δt为所述事件项的行为事件发生后的天数。
61、较佳地,还从开源社区平台获取所述目标开源组件的社区规模量,并基于该社区规模量生成第五评估参数;为所述第五评估参数和所述第四评估参数配置比例权重,所述第五评估参数和所述第四评估参数的比例权重的和为100%;本文档来自技高网...
【技术保护点】
1.一种开源组件选取方法,其特征在于,包括:
2.根据权利要求1所述的开源组件选取方法,其特征在于,基于下述公式拟合第一评估参数SM:
3.根据权利要求1所述的开源组件选取方法,其特征在于,还从开源漏洞数据库获取与目标开源组件相对应的漏洞信息,所述漏洞信息包括漏洞种类、漏洞发布日期以及漏洞评分系统给出的漏洞评分;
4.根据权利要求3所述的开源组件选取方法,其特征在于,基于下述公式拟合出所述第三参数S1:
5.根据权利要求4所述的开源组件选取方法,其特征在于,基于下述公式拟合出所述第四参数S2:
6.根据权利要求5所述的开源组件选取方法,其特征在于,基于下述公式拟合出第二评估参数Ss:
7.根据权利要求1所述的开源组件选取方法,其特征在于,从开源漏洞数据库获取与目标开源组件相对应的漏洞信息,所述漏洞信息包括漏洞种类、漏洞发布日期;从开源社区平台获取所述目标开源组件中漏洞的漏洞修复状态信息,根据所述漏洞修复状态信息和相应的漏洞发布日期拟合出代表漏洞响应情况的第三评估参数;结合所述第一评估参数和第三评估参数选取所述
8.根据权利要求7所述的开源组件选取方法,其特征在于,设置下述四种用于评价漏洞响应状况的响应状态:
9.根据权利要求8所述的开源组件选取方法,其特征在于,基于下述公式创建第五参数CoV:
10.根据权利要求1所述的开源组件选取方法,其特征在于,还从开源社区平台获取目标开源组件的参与事件的发生数量,所述参与事件包括与所述目标开源组件相关的多用户参与的行为事件;
11.根据权利要求10所述的开源组件选取方法,其特征在于,所述第四评估参数的生成方法包括:
12.根据权利要求11所述的开源组件选取方法,其特征在于,基于下述公式配合所述参与事件中任一所述事件项的时间权重Qn:
13.根据权利要求10所述的开源组件选取方法,其特征在于,还从开源社区平台获取所述目标开源组件的社区规模量,并基于该社区规模量生成第五评估参数;为所述第五评估参数和所述第四评估参数配置比例权重,所述第五评估参数和所述第四评估参数的比例权重的和为100%;基于所述第一评估参数、所述第四评估参数和所述第五评估参数选取所述目标开源组件。
14.根据权利要求13所述的开源组件选取方法,其特征在于,所述第五评估参数的生成方法包括:
15.根据权利要求14所述的开源组件选取方法,其特征在于,基于判断矩阵对所述各个所述指标参数之间的重要性关系进行调整和确认。
16.一种开源组件选取系统,其特征在于,包括评估参数生成器,所述评估参数生成器基于权利要求1至15任一项所述的开源组件选取方法生成用于评估目标开源组件的评估参数。
17.一种开源组件选取系统,其特征在于,包括:
18.一种计算机可读存储介质,其特征在于,包括计算机程序,所述计算机程序可被处理器执行以完成如权利要求1至15任一项所述的开源组件选取方法。
...【技术特征摘要】
1.一种开源组件选取方法,其特征在于,包括:
2.根据权利要求1所述的开源组件选取方法,其特征在于,基于下述公式拟合第一评估参数sm:
3.根据权利要求1所述的开源组件选取方法,其特征在于,还从开源漏洞数据库获取与目标开源组件相对应的漏洞信息,所述漏洞信息包括漏洞种类、漏洞发布日期以及漏洞评分系统给出的漏洞评分;
4.根据权利要求3所述的开源组件选取方法,其特征在于,基于下述公式拟合出所述第三参数s1:
5.根据权利要求4所述的开源组件选取方法,其特征在于,基于下述公式拟合出所述第四参数s2:
6.根据权利要求5所述的开源组件选取方法,其特征在于,基于下述公式拟合出第二评估参数ss:
7.根据权利要求1所述的开源组件选取方法,其特征在于,从开源漏洞数据库获取与目标开源组件相对应的漏洞信息,所述漏洞信息包括漏洞种类、漏洞发布日期;从开源社区平台获取所述目标开源组件中漏洞的漏洞修复状态信息,根据所述漏洞修复状态信息和相应的漏洞发布日期拟合出代表漏洞响应情况的第三评估参数;结合所述第一评估参数和第三评估参数选取所述目标开源组件。
8.根据权利要求7所述的开源组件选取方法,其特征在于,设置下述四种用于评价漏洞响应状况的响应状态:
9.根据权利要求8所述的开源组件选取方法,其特征在于,基于下述公式创建第五参数cov:
10.根据权利要求1所述的开源组件选取方法,其特征在于,还从开源社区平台获取...
【专利技术属性】
技术研发人员:王颉,万振华,菅志刚,
申请(专利权)人:深圳开源互联网安全技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。