[发明专利]源代码风险分析方法、装置、电子设备及存储介质在审
申请号: | 202111418015.6 | 申请日: | 2021-11-24 |
公开(公告)号: | CN114065222A | 公开(公告)日: | 2022-02-18 |
发明(设计)人: | 苟孟洛;陈灵锋 | 申请(专利权)人: | 安天科技集团股份有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F21/56 |
代理公司: | 北京科衡知识产权代理有限公司 11928 | 代理人: | 王淑静 |
地址: | 150028 黑龙江省哈尔滨市高新技术产*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 源代码 风险 分析 方法 装置 电子设备 存储 介质 | ||
1.一种源代码风险分析方法,其特征在于,包括:
获取待分析的目标源代码;
对所述目标源代码进行环境检测,得到目标环境检测信息,所述目标环境检测信息包括上下文信息、开发语言、引入的框架和第三方库、以及使用的SDK版本信息中的一个或多个;
根据所述目标环境检测信息,利用具有对应规则库的内容分析器对所述目标源代码进行检测;
若存在漏洞,则根据所述目标环境检测信息,利用具有对应规则库的语法分析器、污点分析器和/或用户自定义分析器对所述目标源代码进行检测;
输出风险分析报告。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标环境检测信息,利用具有对应规则库的内容分析器对所述目标源代码进行检测,包括:
使用内容分析器中的正则规则对所述目标源代码进行检测。
3.根据权利要求1所述的方法,其特征在于,所述若存在漏洞,则根据所述目标环境检测信息,利用具有对应规则库的语法分析器、污点分析器和/或用户自定义分析器对所述目标源代码进行检测,包括:
使用语法分析器梳理出所述目标源代码中存在的危害函数;
基于抽象语法树分析所述危害函数的入参是否可控来判断是否存在漏洞;
或者,所述若存在漏洞,则根据所述目标环境检测信息,利用具有对应规则库的语法分析器、污点分析器和/或用户自定义分析器对所述目标源代码进行检测,包括:
使用语法分析器梳理出所述目标源代码中存在的危害函数;
使用污点分析器对所述危害函数进行污点分析,定位产生风险的地方以及污点数据流向。
4.根据权利要求3所述的方法,其特征在于,所述若存在漏洞,则根据所述目标环境检测信息,利用具有对应规则库的语法分析器、污点分析器和/或用户自定义分析器对所述目标源代码进行检测之后包括:
若存在漏洞,则利用第三方检测模块或插件对所述目标源代码进行检测。
5.根据权利要求1-4中任一所述的方法,其特征在于,所述输出风险分析报告之前还包括:
确定所述目标源代码中对存在的漏洞不存在修复规则。
6.一种源代码风险分析装置,其特征在于,包括:
获取模块,用于获取待分析的目标源代码;
第一检测模块,用于对所述目标源代码进行环境检测,得到目标环境检测信息,所述目标环境检测信息包括上下文信息、开发语言、引入的框架和第三方库、以及使用的SDK版本信息中的一个或多个;
第二检测模块,用于根据所述目标环境检测信息,利用具有对应规则库的内容分析器对所述目标源代码进行检测;
第三检测模块,用于若存在漏洞,则根据所述目标环境检测信息,利用具有对应规则库的语法分析器、污点分析器和/或用户自定义分析器对所述目标源代码进行检测;
输出模块,用于输出风险分析报告。
7.根据权利要求6所述的装置,其特征在于,所述第二检测模块包括:
检测单元,用于使用内容分析器中的正则规则对所述目标源代码进行检测。
8.根据权利要求6所述的装置,其特征在于,所述第三检测模块包括:
梳理单元,用于使用语法分析器梳理出所述目标源代码中存在的危害函数;
判断单元,用于基于抽象语法树分析所述危害函数的入参是否可控来判断是否存在漏洞;
或者,所述第三检测模块包括:
梳理单元,用于使用语法分析器梳理出所述目标源代码中存在的危害函数;
分析单元,用于使用污点分析器对所述危害函数进行污点分析,定位产生风险的地方以及污点数据流向。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于安天科技集团股份有限公司,未经安天科技集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111418015.6/1.html,转载请声明来源钻瓜专利网。