[发明专利]对程序异常情况处理的规约生成方法、装置、设备及介质在审
申请号: | 202110713929.9 | 申请日: | 2021-06-25 |
公开(公告)号: | CN113392016A | 公开(公告)日: | 2021-09-14 |
发明(设计)人: | 范皓;邢哲源;李池;周旻;赵曦斌 | 申请(专利权)人: | 中债金科信息技术有限公司;清华大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F21/57 |
代理公司: | 北京科领智诚知识产权代理事务所(普通合伙) 11782 | 代理人: | 陈士骞 |
地址: | 101118 北京市通州区宋庄镇*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序 异常 情况 处理 规约 生成 方法 装置 设备 介质 | ||
本发明实施例公开一种对程序异常情况处理的规约生成方法、装置、设备及介质,其中,该方法包括:将符合预设异常处理代码结构的被调用函数,确定为对异常情况处理的候选代码段;在候选代码段中,如果检测到包含错误语义特征的第一候选代码段,则从第一候选代码段中提取各函数对应的第一检测条件,如果检测到不包含错误语义特征的第二候选代码段,则从第二候选代码段中提取各函数对应的第二检测条件;对于任意一个被调用函数,从第一检测条件和/或第二检测条件中筛选出符合预设投票策略的目标检测条件,并将目标检测条件作为对程序异常情况进行处理的异常处理规约。通过采用上述技术方案,提高了接口异常处理规约的准确率和检测效率。
技术领域
本发明实施例涉及计算机程序漏洞检测技术领域,具体而言,涉及一种对程序异常情况处理的规约生成方法、装置、设备及介质。
背景技术
随着软件工程领域的飞速发展,接口(API)作为程序内以及程序间沟通交流的重要媒介,被现代软件系统广泛应用。与此同时,接口误用(API misuse)的现象时有发生,例如,CWE组织2011年发布的最危险25种软件错误中,有40%和接口误用相关。其中一类常见的误用为接口的错误处理(Error handling),指在接口执行出错后如何对异常情况进行处理,并保持程序流的正常执行。不规范的接口错误处理被OWASP项目在2017年列入影响系统安全的最危险10类漏洞之一,常导致软件系统崩溃,甚至会导致灾难性的后果,威胁着人民的财产,甚至生命安全。阿丽亚娜5号火箭,由于代码中出现缓冲区溢出的缺陷,直接导致计算系统崩溃,最终使得火箭和上面被运载的卫星化为灰烬,造成了超过3.7亿美元的损失。
为了减少不规范的错误处理对软件系统造成灾难性的后果,并有效地检测软件系统中存在的不规范错误处理的问题,需要提出一种针对异常处理问题的接口规约自动生成方法与系统。但针对C语言的错误处理规约自动化生成困难重重。一方面,我们要锁定代码中可能在进行异常处理的代码段,然而在没有特定的异常处理机制的情况下,对系统中对异常处理代码段的定位和验证是一项耗时且复杂的任务,只有通过高准确率的分析,减少误报率,才能在有效提取出已存在的检测模式,为后续有效性的规约推断任务打下坚实的基础。另一方面,与正常路径的执行代码相比,异常处理代码被包含在程序的错误路径中,包含特殊的程序语义,使得我们要通过实际项目的调研工作去锁定异常处理代码段潜在的程序语义特征,进行异常处理代码段的筛选。
为应对以上的一系列挑战,以往的研究者提出了一些方法来进行异常处理的规约生成。除了通过阅读官方文档人工总结规约外,开发者也通过总结异常代码的使用模式进行规约的推断。例如,Acharya等研究人员认为exit函数的出现表示程序正常执行流遭到破坏,使用exit标志去识别异常处理代码,从而提取控制流的检测条件,进行规约推断;Kang等研究人员认为错误路径比正常路径具有更少的分支数以及语句数量,通过此特征进行异常处理代码的定位,并提取检测条件进行后续的规约推断。
这些方法能够帮助接口异常处理的规约推断,但是由于分析策略不够全面,给出的特性无法覆盖大规模的异常处理代码段,因此,在规约推断过程具有较低的准确率和召回率,并且对大规模的程序适应性较差。正是由于这些缺点,导致了现存在的分析机制,无法高效的应用在复杂的工业环境中。
由此可见,现有的针对接口异常处理规约推断的方法存在高误报率,高漏报率,检测效率低的典型问题。
发明内容
本发明实施例提供一种对程序异常情况处理的规约生成方法、装置、设备及介质,提高了接口异常处理规约的准确率和检测效率。
第一方面,本发明实施例提供一种对程序异常情况处理的规约生成方法,应用于接口执行错误后的异常情况的处理过程中,该方法包括:
对于源代码中存在映射关系的被调用函数及其调用者,将符合预设异常处理代码结构的被调用函数,确定为对异常情况处理的候选代码段;
在所述候选代码段中,将包含错误语义特征的代码段作为第一候选代码段,将不包含错误语义特征的代码段作为第二候选代码段;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中债金科信息技术有限公司;清华大学,未经中债金科信息技术有限公司;清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110713929.9/2.html,转载请声明来源钻瓜专利网。