System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种软件依赖包的安全检测系统技术方案_技高网

一种软件依赖包的安全检测系统技术方案

技术编号:43841708 阅读:12 留言:0更新日期:2024-12-31 18:37
本发明专利技术公开了一种软件依赖包的安全检测系统,本发明专利技术涉及依赖包安全检测技术领域。包括数据收集模块、数据分析模块、缺陷分析模块、漏洞检测模块、模拟检测模块和结果评估模块。该软件依赖包的安全检测系统,通过数据分析模块可以在不运行应用的情况下判断应用是否能在目标操作系统上运行,剔除不兼容的依赖包,通过缺陷分析模块对依赖包的缺陷进行分析,有效弥补现有的以模糊测试、静态审计为代表的漏洞挖掘或缺陷检测技术在检测触发效果具有隐蔽性、代码模式在不同软件实现间不具备通用性的逻辑缺陷检测方面的不足。

【技术实现步骤摘要】

本专利技术涉及依赖包安全检测,具体为一种软件依赖包的安全检测系统


技术介绍

1、软件依赖包是指在软件开发过程中,一个软件项目所依赖的外部模块、库或者其他软件组件,这些依赖包通常包括用于实现特定功能、提供必要功能支持或者解决特定问题的代码库或工具,随着开源软件的普及和使用,软件项目中使用的依赖包数量不断增加,这些依赖包通常由社区维护,并且可能存在安全漏洞或其他安全漏洞,因此,有必要对这些依赖包进行安全审查和检测,以降低软件项目的安全风险。

2、公开号为cn118094548a的专利技术公开了一种软件依赖包的安全检测系统,通过模糊代码生成模块使用模糊测试算法生成若干随机或半随机的模糊测试代码,模糊测试模块将生成的模糊测试代码输入到依赖包中,判断依赖包是否存在安全漏洞,路径建立模块对依赖包进行符号执行后建立依赖包的程序符号执行路径,分析符号执行路径,寻找导致程序崩溃或异常行为的安全漏洞触发条件,根据发现的安全漏洞触发条件,生成有输入值的符号测试代码,将生成的符号测试代码输入到依赖包中,验证发现的安全漏洞是否存在。

3、如上述专利技术所示,现有的软件依赖包的安全检测系统联合模糊测试与符号执行算法对软件依赖包进行全局检测,提高了测试覆盖率,但是这种方式只能检测依赖包的漏洞,不能检测依赖包与目标软件的兼容性,以及依赖包本身的缺陷。


技术实现思路

1、针对现有技术的不足,本专利技术提供了一种软件依赖包的安全检测系统,解决了现有的问题。

2、为实现以上目的,本专利技术通过以下技术方案予以实现:一种软件依赖包的安全检测系统,所述

3、数据收集模块,用于收集软件依赖包及依赖包相关信息;

4、数据分析模块,用于分析软件依赖包与目标系统是否兼容;

5、缺陷分析模块,用于根据依赖包形成的依赖图和缺陷算法进行依赖包的缺陷分析;

6、漏洞检测模块,根据信息收集、信息聚合、漏洞判断三个过程来检测软件依赖包的漏洞;

7、模拟检测模块,利用钩子技术对应用软件进行的方法或者函数进行挂载,当被挂载的方法或者函数被调用时,触发漏洞检测模块;

8、结果评估模块,用于确认依赖包中是否存在安全漏洞,并将发现的安全漏洞整理成报告后提交给开发人员。

9、优选的,所述数据分析模块通过在第一深度依赖模型中获取当前依赖包的版本、格式、大小、位数,并判断目标系统中当前依赖包的版本、格式、大小、位数是否满足要求,如果满足要求则判定当前依赖包兼容检查通过,否则判定当前依赖包兼容检查不通过。

10、优选的,所述缺陷分析模块的分析步骤包括:

11、1)获取协议软件的源代码、特定api及协议软件中的条件检查程序点ct,将所述源代码转换为中间表示,其中t为条件检查程序点c的编号;

12、2)根据中间表示,分别构建待分析软件的调用图、系统依赖图及过程间支配树;

13、3)基于特定api与系统依赖图,在调用图的函数调用点中识别出程序点vi,其中i为程序点v的编号;

14、4)基于系统依赖图分析程序点vi所在函数中控制依赖于程序点vi的定值语句,获取程序点oj,其中j为程序点o的编号;

15、5)结合过程间支配树与路径约束蕴含关系求解,检查执行至每一程序点oj时是否经过任一程序点vi和所有条件检查程序点ct,及执行至每一程序点vi是否经过所有条件检查程序点ct,从而得到安全机制缺陷检测结果。

16、优选的,所述特定api包括:开源密码学算法库中用于验证数字签名或消息认证码的api。

17、优选的,所述构造调用图的方法包括:将每一函数作为节点,且将函数调用关系作为边;

18、所述构造过程间支配树的方法包括:将每一语句作为节点,且将支配关系作为边。

19、优选的,所述程序点vi的识别步骤包括:

20、s1:遍历调用图中的所有函数调用点;

21、s2:当任一函数调用点位于特定api的调用路径上,且该函数调用点的参数与报文中表示消息认证码或数字签名的字段变量存在数据依赖关系,则将该函数调用点作为验证协议报文真实性及完整性的程序点vi。

22、优选的,所述钩子技术是一种在内存中修改方法或函数的方法的技术,钩子技术允许实现程序拦截并处理方法或函数的执行逻辑,当指定的方法或函数被调用后,钩子技术就可以在方法或函数的原始代码被执行之前将其捕获,从而得到对方法或函数的控制权,进而可以对该方法或函数进行处理或修改,加入所需的功能。

23、优选的,所述结果评估模块通过cvss基础分对每个发现的安全漏洞进行严重程度评估,并将评估后的安全漏洞整理成报告,报告包括漏洞描述、漏洞影响、漏洞利用场景、漏洞修复建议,将整理好的安全漏洞报告提交给开发人员,更新安全漏洞报告,记录漏洞修复的情况和结果,并将修复后的报告存档。

24、有益效果

25、本专利技术提供了一种软件依赖包的安全检测系统。与现有技术相比具备以下有益效果:

26、1、该软件依赖包的安全检测系统,通过数据分析模块可以在不运行应用的情况下判断应用是否能在目标操作系统上运行,剔除不兼容的依赖包,通过缺陷分析模块对依赖包的缺陷进行分析,有效弥补现有的以模糊测试、静态审计为代表的漏洞挖掘或缺陷检测技术在检测触发效果具有隐蔽性、代码模式在不同软件实现间不具备通用性的逻辑缺陷检测方面的不足。

27、2、该软件依赖包的安全检测系统,通过漏洞检测模块能够检测软件依赖包的漏洞,有效提高测试覆盖率,而且能发现更多潜在的安全漏洞。

本文档来自技高网...

【技术保护点】

1.一种软件依赖包的安全检测系统,其特征在于,所述

2.根据权利要求1所述的一种软件依赖包的安全检测系统,其特征在于:所述数据分析模块通过在第一深度依赖模型中获取当前依赖包的版本、格式、大小、位数,并判断目标系统中当前依赖包的版本、格式、大小、位数是否满足要求,如果满足要求则判定当前依赖包兼容检查通过,否则判定当前依赖包兼容检查不通过。

3.根据权利要求1所述的一种软件依赖包的安全检测系统,其特征在于:所述缺陷分析模块的分析步骤包括:

4.根据权利要求3所述的一种软件依赖包的安全检测系统,其特征在于:所述特定API包括:开源密码学算法库中用于验证数字签名或消息认证码的API。

5.根据权利要求3所述的一种软件依赖包的安全检测系统,其特征在于:所述构造调用图的方法包括:将每一函数作为节点,且将函数调用关系作为边;

6.根据权利要求3所述的一种软件依赖包的安全检测系统,其特征在于:所述程序点Vi的识别步骤包括:

7.根据权利要求1所述的一种软件依赖包的安全检测系统,其特征在于:所述钩子技术是一种在内存中修改方法或函数的方法的技术,钩子技术允许实现程序拦截并处理方法或函数的执行逻辑,当指定的方法或函数被调用后,钩子技术就可以在方法或函数的原始代码被执行之前将其捕获,从而得到对方法或函数的控制权,进而可以对该方法或函数进行处理或修改,加入所需的功能。

8.根据权利要求1所述的一种软件依赖包的安全检测系统,其特征在于:所述结果评估模块通过CVSS基础分对每个发现的安全漏洞进行严重程度评估,并将评估后的安全漏洞整理成报告,报告包括漏洞描述、漏洞影响、漏洞利用场景、漏洞修复建议,将整理好的安全漏洞报告提交给开发人员,更新安全漏洞报告,记录漏洞修复的情况和结果,并将修复后的报告存档。

...

【技术特征摘要】

1.一种软件依赖包的安全检测系统,其特征在于,所述

2.根据权利要求1所述的一种软件依赖包的安全检测系统,其特征在于:所述数据分析模块通过在第一深度依赖模型中获取当前依赖包的版本、格式、大小、位数,并判断目标系统中当前依赖包的版本、格式、大小、位数是否满足要求,如果满足要求则判定当前依赖包兼容检查通过,否则判定当前依赖包兼容检查不通过。

3.根据权利要求1所述的一种软件依赖包的安全检测系统,其特征在于:所述缺陷分析模块的分析步骤包括:

4.根据权利要求3所述的一种软件依赖包的安全检测系统,其特征在于:所述特定api包括:开源密码学算法库中用于验证数字签名或消息认证码的api。

5.根据权利要求3所述的一种软件依赖包的安全检测系统,其特征在于:所述构造调用图的方法包括:将每一函数作为节点,且将函数调用关系作为边;

6.根...

【专利技术属性】
技术研发人员:苏超
申请(专利权)人:南通君亨瑞科技有限公司
类型:发明
国别省市:

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1