[发明专利]基于序列模式匹配的API误用缺陷检测系统有效
| 申请号: | 202010974385.7 | 申请日: | 2020-09-16 |
| 公开(公告)号: | CN112214399B | 公开(公告)日: | 2023-01-10 |
| 发明(设计)人: | 孙文靖;李晓伟;曾杰;贲可荣;苏建敏;洪楠;张清;杨洋;李春静;王赢超 | 申请(专利权)人: | 北京京航计算通讯研究所 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/41 |
| 代理公司: | 中国兵器工业集团公司专利中心 11011 | 代理人: | 周恒 |
| 地址: | 100074 北*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 序列 模式 匹配 api 误用 缺陷 检测 系统 | ||
本发明属于软件缺陷检测领域,具体涉及一种基于序列模式匹配的API误用缺陷检测系统。本发明不分析API使用规约,而是根据已经发现的API误用缺陷实例,结合补丁文件中缺陷修复前后的代码信息,刻画API误用模式,然后在目标被测软件中利用改进的AC算法搜索符合误用模式的API调用序列,从而检测出相似缺陷。相比基于规约的检测方法,本发明方案有效规避了缺陷检测准确度依赖于规约描述准确性,以及部分API规约本身自带缺陷等问题。提高了API误用缺陷检测的准确度。
技术领域
本发明属于软件缺陷检测领域,具体涉及一种基于序列模式匹配的API误用缺陷检测系统。
背景技术
随着大数据时代的到来,代码资源在开源社区呈爆炸式增长,开发人员相互间分享和复制代码已成常态,并且利用API(application programming interface,应用程序调用接口)作为已有代码库或应用框架的访问接口,实现对高质量代码模块的复用。API的提供方通过API文档中的规约说明了API如何使用,比如Java编程中常用的JavaDoc文档。但是调查显示,开发人员往往在不熟悉API规约的情况下编程,当API的使用违反了API规约中的使用规则,致使程序无法正确执行时,就产生了API误用缺陷。
为检测API误用缺陷,基于规约的检测方法对API规约进行描述,检查目标系统是否满足规约描述的性质,从而判断违例。基于规约的检测方法又分为“显”式规约和“隐”式规约检测方法。其中基于严格的形式化方法描述的为“显”式规约,形式化规约的构建过程需要考虑到API的所有使用条件,过程相当复杂,并且部分API规约本身自带缺陷。利用大数据的思想学习的方法是“隐”式规约,这些方法存在两个问题:1)缺陷检测的准确度依赖于规约的准确度;2)当一个正确调用模式没有在被挖掘样本中出现时,则不能学习出相应规则,此时基于规约的违例检测就会造成误报。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何提高API误用缺陷检测的准确度以及搜索效率。
(二)技术方案
为解决上述技术问题,本发明提供一种基于序列模式匹配的API误用缺陷检测系统,所述系统包括:API误用模式分析模块、API调用序列抽取模块、关联判定模块;
所述API误用模式分析模块用于针对API误用缺陷数据库中历史已知的API误用缺陷,抽取其缺陷代码和补丁代码,分析API误用缺陷的API误用模式;
所述API调用序列抽取模块用于针对程序代码库中的目标被测代码,面向程序多路径进行分析,抽取API调用序列;
所述关联判定模块用于通过序列模式匹配方法,判定所抽取的目标被测代码中的API调用序列与所分析确定的历史已知API误用缺陷的API误用模式之间是否存在关联,并报告相似缺陷。
其中,所述API误用模式分析模块分析API误用缺陷的API误用模式的过程,具体如下:
若历史已知API误用缺陷为多余调用类型缺陷,则针对多余调用类型缺陷进行API误用模式分析,设定其API误用模式为p,判定目标被测代码T是否符合p;
具体判定过程为只需要判定目标被测代码T中是否存在一个API调用序列s同时满足以下两个条件:
1)s调用了p的关键方法;
2)p的错误调用序列是s的非连续子序列;
当条件成立时,可以认为目标被测代码T中存在与p相似的API误用缺陷。
其中,所述API误用模式分析模块分析API误用缺陷的API误用模式的过程,具体如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京航计算通讯研究所,未经北京京航计算通讯研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010974385.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种利用时序信息的目标跟踪方法
- 下一篇:一种混合电力推进系统





