System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术提出了一种开源组件漏洞检测方法及系统,属于漏洞检测。
技术介绍
1、开源组件漏洞检测是一种针对应用程序或系统中使用的开源软件组件(如库、框架等)进行漏洞扫描和分析的过程。这旨在及时发现并纠正开源组件中的安全漏洞,以减少潜在的安全风险。现有技术中的开源组件漏洞检测存在漏检率较大的问题。
技术实现思路
1、本专利技术提供了一种开源组件漏洞检测方法及系统,用以解决现有技术中的开源组件漏洞检测存在漏检率较大的问题:
2、一种开源组件漏洞检测方法,所述开源组件漏洞检测方法包括:
3、提取待检测的开源组件及其对应的版本信息;
4、将已知的漏洞数据库与所述开源组件进行组件的代码数据信息比对,获取已知的漏洞信息;
5、利用代码分析工具对所述开源组件的代码数据信息进行潜在漏洞信息分析,获得潜在的漏洞信息;
6、根据所述已知的漏洞信息和潜在的漏洞信息的数据信息设置定期检测时间间隔,并按照所述定期检测时间间隔对待检测的开源组件进行定期安全检测。
7、进一步地,将已知的漏洞数据库与所述开源组件进行组件的代码数据信息比对,获取已知的漏洞信息,包括:
8、根据所述待检测的开源组件及其对应的版本信息从所述漏洞数据库中调取与所述开源组件及其版本信息对应的漏洞数据信息;
9、将所述开源组件的代码数据信息与从已知的漏洞数据库调取的漏洞数据信息进行比对,获取已知的漏洞信息,其具体步骤包括,
10、步骤a
11、w(a)=f{len(d16)<len(l_a16)}(1)
12、其中w(a)表示所述已知的漏洞数据库调取的第a个漏洞数据信息的剔除控制值;l_a16表示所述已知的漏洞数据库调取的第a个漏洞数据信息的16进制形式;d16表示所述开源组件的代码数据信息的16进制形式;len()表示求取括号内数据的数据总位数;f{}表示判断函数,若括号内对算式成立则函数值为1,若括号内的函数值不成立则函数值为0;
13、若w(a)=1,则将所述已知的漏洞数据库调取的第a个漏洞数据信息进行剔除;
14、若w(a)=0,则将所述已知的漏洞数据库调取的第a个漏洞数据信息进行保留;
15、将全部保留漏洞数据信息重新记作l_b16,表示剩余的第b个漏洞数据信息的16进制形式;
16、步骤a2:利用公式(2)根据所述开源组件的代码数据信息与剩余的漏洞数据信息进行比对,获取所述开源组件的代码数据已知的漏洞信息;
17、
18、其中y(b)表示剩余的第b个漏洞数据信息是所述开源组件的代码数据已知的漏洞信息的判定值;d16[i→i+len(l_b16)-1]-l_b16表示数据d16中第i位至第i+len(l_b16)-1位上的16进制形式数据;n表示数据d16中的数据总位数;
19、若y(b)=1,则剩余的第b个漏洞数据信息是所述开源组件的代码数据已知的漏洞信息;
20、若y(b)=0,则剩余的第b个漏洞数据信息不是所述开源组件的代码数据已知的漏洞信息;
21、步骤a3:利用公式(3)得到所述开源组件的代码数据已知的漏洞信息的总个数
22、
23、其中k表示所述开源组件的代码数据已知的漏洞信息的总个数;m表示所述已知的漏洞数据库调取的漏洞数据信息总个数。
24、进一步地,利用代码分析工具对所述开源组件的代码数据信息进行潜在漏洞信息分析,获得潜在的漏洞信息,包括:
25、利用动态代码分析工具对所述开源组件的代码数据信息进行潜在漏洞信息分析,获得第一潜在漏洞信息;
26、利用静态代码分析工具对所述开源组件的代码数据信息进行潜在漏洞信息分析,获得第二潜在漏洞信息;
27、对所述第一潜在漏洞信息和第二潜在漏洞信息进行整合,形成潜在的漏洞信息;
28、将所述已知的漏洞信息和潜在的漏洞信息反馈至所述待检测的开源组件对应的用户终端进行显示。
29、进一步地,根据所述已知的漏洞信息和潜在的漏洞信息的数据信息设置定期检测时间间隔,并按照所述定期检测时间间隔对待检测的开源组件进行定期安全检测,包括:
30、提取所述已知的漏洞信息的漏洞数量;
31、提取所述潜在的漏洞信息的漏洞数量;
32、利用所述已知的漏洞信息的漏洞数量和潜在的漏洞信息的漏洞数量设置定期检测时间间隔;其中,所述定期检测时间间隔通过如下公式获取:
33、t=[1+ln[1+(m01-n01)/m01]+ln[1+(m02-n02)/m02]]×t0
34、其中,t表示定期检测时间间隔;t0表示预设的初始时间间隔;m01表示预设的第一次数阈值;m02表示预设的第二次数阈值;n01表示已知的漏洞信息的漏洞数量;n02表示潜在的漏洞信息的漏洞数量;
35、按照所述定期检测时间间隔对待检测的开源组件进行定期安全检测。
36、一种开源组件漏洞检测系统,所述开源组件漏洞检测系统包括:
37、组件信息提取模块,用于提取待检测的开源组件及其对应的版本信息;
38、已知漏洞信息获取模块,用于将已知的漏洞数据库与所述开源组件进行组件的代码数据信息比对,获取已知的漏洞信息;
39、潜在漏洞信息获取模块,用于利用代码分析工具对所述开源组件的代码数据信息进行潜在漏洞信息分析,获得潜在的漏洞信息;
40、定期安全检测执行操作模块,用于根据所述已知的漏洞信息和潜在的漏洞信息的数据信息设置定期检测时间间隔,并按照所述定期检测时间间隔对待检测的开源组件进行定期安全检测。
41、进一步地,所述已知漏洞信息获取模块包括:
42、漏洞数据信息调取模块,用于根据所述待检测的开源组件及其对应的版本信息从所述漏洞数据库中调取与所述开源组件及其版本信息对应的漏洞数据信息;
43、比对执行模块,用于将所述开源组件的代码数据信息与从已知的漏洞数据库调取的漏洞数据信息进行比对,获取已知的漏洞信息,其具体步骤包括,
44、步骤a1:首先利用公式(1)根据所述开源组件的代码数据信息的数据长度对所述已知的漏洞数据库调取的漏洞数据信息进行部分剔除;
45、w(a)=f{len(d16)<len(l_a16)}(1)
46、其中w(a)表示所述已知的漏洞数据库调取的第a个漏洞数据信息的剔除控制值;l_a16表示所述已知的漏洞数据库调取的第a个漏洞数据信息的16进制形式;d16表示所述开源组件的代码数据信息的16进制形式;len()表示求取括号内数据的数据总位数;f{}表示判断函数,若括号内对算式成立则函数值为1,若括号内的函数值不成立本文档来自技高网...
【技术保护点】
1.一种开源组件漏洞检测方法,其特征在于,所述开源组件漏洞检测方法包括:
2.根据权利要求1所述开源组件漏洞检测方法,其特征在于,将已知的漏洞数据库与所述开源组件进行组件的代码数据信息比对,获取已知的漏洞信息,包括:
3.根据权利要求1所述开源组件漏洞检测方法,其特征在于,利用代码分析工具对所述开源组件的代码数据信息进行潜在漏洞信息分析,获得潜在的漏洞信息,包括:
4.根据权利要求1所述开源组件漏洞检测方法,其特征在于,根据所述已知的漏洞信息和潜在的漏洞信息的数据信息设置定期检测时间间隔,并按照所述定期检测时间间隔对待检测的开源组件进行定期安全检测,包括:
5.一种开源组件漏洞检测系统,其特征在于,所述开源组件漏洞检测系统包括:
6.根据权利要求5所述开源组件漏洞检测系统,其特征在于,所述已知漏洞信息获取模块包括:
7.根据权利要求5所述开源组件漏洞检测系统,其特征在于,所述潜在漏洞信息获取模块包括:
8.根据权利要求5所述开源组件漏洞检测系统,其特征在于,所述定期安全检测执行操作模块包括:
>...【技术特征摘要】
1.一种开源组件漏洞检测方法,其特征在于,所述开源组件漏洞检测方法包括:
2.根据权利要求1所述开源组件漏洞检测方法,其特征在于,将已知的漏洞数据库与所述开源组件进行组件的代码数据信息比对,获取已知的漏洞信息,包括:
3.根据权利要求1所述开源组件漏洞检测方法,其特征在于,利用代码分析工具对所述开源组件的代码数据信息进行潜在漏洞信息分析,获得潜在的漏洞信息,包括:
4.根据权利要求1所述开源组件漏洞检测方法,其特征在于,根据所述已知的漏洞信息和潜在的漏洞...
【专利技术属性】
技术研发人员:沈伍强,崔磊,周纯,钱正浩,李如雄,龙震岳,唐亮亮,梁哲恒,骆书剑,沈桂泉,张金波,张小陆,姚潮生,王业超,
申请(专利权)人:广东电网有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。