System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及软件安全,具体涉及一种源代码的安全性验证方法、装置、设备及介质。
技术介绍
1、计算机软件与人们生活密切相关,从网络、手机等日常通信设备到能源、国防等关键基础设施,几乎无处不在。由于缺少有效手段控制软件质量,使得软件的漏洞或错误几乎不可避免。每年由于软件的漏洞或者错误导致的损失达上百亿美元。操作系统是所有软件的基础平台,严格保证其可靠性和安全性具有重要价值。目前已知技术中,只有形式化方法能够保证软件不会出错,但是由于大规模软件系统,比如操作系统,其代码规模和复杂度大、并发度高等问题,其形式化验证一直以来都是一件非常困难的工作。
2、对于复杂软件的源码验证方法,一般采用模型检测技术。模型检测(modelchecking)先将程序源码转化为公式,再用公式解析器来证明公式的正确性,相比于定理证明等形式化验证技术,模型检测自动化程度更高。但是复杂软件由于代码规模和复杂度大,进行模型检测存在验证时间过长或运行超时、产生误报或漏报等问题。
技术实现思路
1、本申请提供了一种源代码的安全性验证方法、装置、设备及介质,通过文件调用依赖图和函数调用图的组合依赖关系对源代码识别并拆解,提升了源代码拆解效率和验证效果。
2、本申请技术方案如下:
3、一方面,本申请提供了一种源代码的安全性验证方法,所述方法包括:获取源代码的文件调用依赖图和函数调用图;分割所述文件调用依赖图,得到文件依赖子图;基于所述文件依赖子图分割所述函数调用图,得到函数调用子图;遍历所述函
4、另一方面,本申请提供了一种源代码的安全性验证装置,所述装置包括:
5、第一获取模块,用于获取源代码的文件调用依赖图和函数调用图;
6、第一分割模块,用于分割所述文件调用依赖图,得到文件依赖子图;
7、第二分割模块,用于基于所述文件依赖子图分割所述函数调用图,得到函数调用子图;
8、遍历模块,用于所述函数调用子图,得到第一函数集和第二函数集,所述第一函数集包括预设验证范围内的多个第一目标函数,所述第二函数集包括所述多个第一目标函数调用的第二目标函数;
9、第三函数集获取模块,用于基于所述文件调用依赖图、所述函数调用图、所述函数调用子图和所述第二函数集,得到第三函数集;
10、验证模块,基于所述第一函数集和所述第三函数集,得到所述源代码对应的目标分片并对所述目标分片进行验证以得到所述源代码的验证结果。
11、另一方面,提供了一种源代码的安全性验证设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的源代码的安全性验证方法。
12、另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上述的源代码的安全性验证。
13、本申请提供的源代码的安全性验证方法、装置、设备及存储介质,具有如下技术效果:
14、利用本申请提供的技术方案,在对源代码形式化验证的场景中,通过先获取源代码的文件调用依赖图和函数调用图;分割文件调用依赖图,得到文件依赖子图;基于文件依赖子图分割函数调用图,得到函数调用子图;遍历函数调用子图,得到第一函数集和第二函数集,第一函数集包括预设验证范围内的多个第一目标函数,第二函数集包括多个第一目标函数调用的第二目标函数;基于文件调用依赖图、函数调用图、函数调用子图和第二函数集,得到第三函数集;基于第一函数集和第三函数集,得到源代码对应的目标分片并对目标分片进行验证以得到源代码的验证结果。通过先分割文件调用依赖图,再分割函数调用图,提高了函数调用图的划分效率和准确性,进而提升了源代码的验证效率。
本文档来自技高网...【技术保护点】
1.一种源代码的安全性验证方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述文件调用依赖图、所述函数调用图、所述函数调用子图和所述第二函数集,得到第三函数集包括:
3.根据权利要求2所述的方法,其特征在于,所述基于所述文件调用依赖图、所述函数调用图、所述函数调用子图,得到多个第三目标函数及多个组合度量值,所述组合度量值与所述第三目标函数一一对应,包括:
4.根据权利要求3中所述的方法,其特征在于,所述基于所述多个第三关键节点和所述函数调用子关系,得到多个所述第三目标函数及多个组合度量值,所述组合度量值与所述第三目标函数一一对应,包括:
5.根据权利要求4中所述的方法,其特征在于,所述基于所述多个第三关键节点和所述多个第四关键节点,得到多个第三目标函数,所述第三目标函数表征所述第四关键节点所在函数归属于所述第三关键节点的函数之后,包括:
6.根据权利要求1-3任一项所述的方法,其特征在于,所述获取源代码的文件调用依赖图和函数调用图,包括:
7.根据权利要求1-3任一项所述的
8.一种源代码的安全性验证装置,其特征在于,所述装置包括:
9.一种源代码的安全性验证设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1至7任一所述的源代码的安全性验证方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1至7任一所述的源代码的安全性验证方法。
...【技术特征摘要】
1.一种源代码的安全性验证方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述文件调用依赖图、所述函数调用图、所述函数调用子图和所述第二函数集,得到第三函数集包括:
3.根据权利要求2所述的方法,其特征在于,所述基于所述文件调用依赖图、所述函数调用图、所述函数调用子图,得到多个第三目标函数及多个组合度量值,所述组合度量值与所述第三目标函数一一对应,包括:
4.根据权利要求3中所述的方法,其特征在于,所述基于所述多个第三关键节点和所述函数调用子关系,得到多个所述第三目标函数及多个组合度量值,所述组合度量值与所述第三目标函数一一对应,包括:
5.根据权利要求4中所述的方法,其特征在于,所述基于所述多个第三关键节点和所述多个第四关键节点,得到多个第三目标函数,所述第三目标函数表征所述第四关键节点所在函数归属于所述第三关键节点的函数之后,包括:
【专利技术属性】
技术研发人员:黄永平,杨奕堃,徐兴民,刘家宁,
申请(专利权)人:中汽创智科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。