[发明专利]代码缺陷识别方法及系统有效
申请号: | 202010260662.8 | 申请日: | 2020-04-03 |
公开(公告)号: | CN111459826B | 公开(公告)日: | 2023-03-21 |
发明(设计)人: | 邹为;阳骁尧;夏伟;涂耀旭;李冬晓;李刚;梁家伟;李珊珊 | 申请(专利权)人: | 建信金融科技有限责任公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 王涛;孙乳笋 |
地址: | 200120 上海市浦东新区*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 缺陷 识别 方法 系统 | ||
本发明提供了一种代码缺陷识别方法及系统,所述方法包含:通过代码分析工具识别待分析的代码数据,获得所述代码数据的问题信息和发现位置;获取代码数据运行环境中各组件调用关系及数据流向信息,根据各组件调用关系及数据流向信息生成网状拓扑图;根据所述问题信息的发现位置和所述网状拓扑图中各组件的对应关系,建立代码缺陷视图;根据所述代码缺陷视图和所述代码数据的问题信息比较获得代码缺陷。由此,通过产生带数据流向的代码问题拓扑图,构建整体产品缺陷视图,缩减代码优化工作量;降低缺陷分析工具误报率,减少代码人工复核工作量。
技术领域
本发明涉及程序开发领域,尤指一种代码缺陷识别方法及系统。
背景技术
在金融领域为了保障整个产品的质量与安全,对开发源代码的静态分析是安全开发过程中必不可少的一个环节。目前金融行业尤其是大中型银行,包括借记卡、贷记卡、存贷款、网上银行等众多业务产品,每个产品的代码量都在百万级以上,并且产品项目组成复杂,通过代码分析工具扫描出的结果存在误报率较高,人工复核工作量大、缺陷整体视图缺失等问题。目前针对缺陷复核的方式主要为以下几种:1、将不同产品的代码放在一个大工程下扫描,通过自定义扫描规则集将可能有关联的产品源代码通过模式匹配截获出来,但是截取的疑似问题任然需要人工进行复核,误报率较高。2、对代码扫描工具分析的结果逐一进行人工的复核,通过有经验的分析人员来判断多产品间的逻辑对应关系及数据流向,增加可能存在的遗漏缺陷,并且将分析工具误报的缺陷进行归档标记。3、在集成测试过程中通过业务安全测试进行发现,对集成在一起的整体产品线进行用户测试及业务安全测试,通过设计测试用例来发现潜在的安全问题。
针对目前的三种缺陷复核方案:1、将不同产品的代码放在一个大工程下扫描,通过自定义扫描规则集将可能有关联的产品源代码通过模式匹配截获出来,但是这种方法截取的疑似问题仍然需要人工进行复核,误报率较高。而且自定义规则集的编写与匹配能力与代码审计人员的经验能力高度相关,扩展性差。2、对代码扫描工具分析的结果逐一进行人工的复核,通过有经验的分析人员来判断多产品间的逻辑对应关系及数据流向,增加可能存在的遗漏缺陷,并且将分析工具误报的缺陷进行归档标记。此类方法人工工作量消耗大,且与参与人员经验能力高度相关。3、在集成测试过程中通过业务安全测试进行发现,对集成在一起的多产品进行用户测试及业务安全测试,通过设计测试用例来发现潜在的安全问题。此类方法不属于程序静态分析范畴,对程序内部结构做不到遍历验证的目的。
发明内容
本发明目的在于提供一种代码缺陷识别方法及系统,缩小多业务组件高关联场景下代码分析工具的误报,降低程序静态分析工具的误报率,减少人工代码复核工作量,提高代码安全质量。
为达上述目的,本发明所提供的代码缺陷识别方法,具体包含:通过代码分析工具识别待分析的代码数据,获得所述代码数据的问题信息和发现位置;获取代码数据运行环境中各组件调用关系及数据流向信息,根据各组件调用关系及数据流向信息生成网状拓扑图;根据所述问题信息的发现位置和所述网状拓扑图中各组件的对应关系,建立代码缺陷视图;根据所述代码缺陷视图和所述代码数据的问题信息比较获得代码缺陷。
在上述代码缺陷识别方法中,优选的,根据所述问题信息的发现位置和所述网状拓扑图中各组件的对应关系,建立代码缺陷视图还包含:根据所述问题信息的成因分类归并至一个或多个问题集合;根据所述问题集合的数量建立对应数量的代码缺陷视图。
在上述代码缺陷识别方法中,优选的,所述问题信息的成因包含命令注入、路径遍历、SQL注入、跨站脚本攻击中一个或多个的组合。
在上述代码缺陷识别方法中,优选的,根据所述问题集合的数量建立对应数量的代码缺陷视图包含:根据所述问题集合中各问题信息的发现位置和所述网状拓扑图,通过递归分析调用关系获得代码缺陷视图。
在上述代码缺陷识别方法中,优选的,通过递归分析调用关系获得代码缺陷视图包含:根据所述问题集合中各问题信息的发现位置,将各问题信息标注与所述网状拓扑图中对应的组件位置,获得代码缺陷视图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于建信金融科技有限责任公司,未经建信金融科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010260662.8/2.html,转载请声明来源钻瓜专利网。