[发明专利]基于调用链的JAVA漏洞检测方法及检测系统有效
申请号: | 201910085114.3 | 申请日: | 2019-01-29 |
公开(公告)号: | CN109829312B | 公开(公告)日: | 2021-01-01 |
发明(设计)人: | 李雷;李鑫力 | 申请(专利权)人: | 北京启明星辰信息安全技术有限公司;启明星辰信息技术集团股份有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F21/56 |
代理公司: | 北京科石知识产权代理有限公司 11595 | 代理人: | 李艳霞 |
地址: | 100193 北京市海淀区东*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 调用 java 漏洞 检测 方法 系统 | ||
1.一种基于调用链的JAVA漏洞检测方法,其特征在于,包括以下步骤:
设定待检测的目标JAR包;
对JAR包进行处理,生成函数调用关系图;
采集已知的软件敏感调用点Sink方法,并根据漏洞类型对软件敏感调用点Sink方法进行分类,将各类软件敏感调用点Sink方法配置在相应的漏洞审计模块中;
执行漏洞审计模块,在函数调用关系图的基础上利用深度优先搜索算法创建调用链,其具体过程为:
执行漏洞审计模块,通过遍历的方式依次取出漏洞审计模块中配置的软件敏感调用点Sink方法静态列表中的软件敏感调用点Sink方法;
通过检索的方式查找目标lib库文件中是否存在某方法已调用所述软件敏感调用点Sink方法;
如果存在调用关系,则以当前软件敏感调用点Sink方法为起点,在函数调用关系图的基础上,遍历边中的软件敏感调用点Sink方法的上层调用方法;
以当前方法的上层调用方法为目标递归调用,一层一层向前追溯调用方法,得到完整的调用链;
对得到的调用链进行筛选,筛选得到顶层方法能够被外部访问解析的调用链并输出。
2.根据权利要求1所述的基于调用链的JAVA漏洞检测方法,其特征在于,所述步骤对JAR包进行处理中,采用开源框架Soot对JAR包进行处理。
3.根据权利要求1所述的基于调用链的JAVA漏洞检测方法,其特征在于,所述函数调用关系图包括多个边,每个所述边存储当前方法以及所述当前方法的上层调用方法。
4.根据权利要求1或2或3所述的基于调用链的JAVA漏洞检测方法,其特征在于,所述漏洞类型为反序列化时,将反序列化相关的软件敏感调用点Sink方法以静态列表的方式配置在反序列化漏洞审计模块中。
5.根据权利要求1或2或3所述的基于调用链的JAVA漏洞检测方法,其特征在于,所述漏洞类型为XML外部实体注入漏洞时,将XXE相关的软件敏感调用点Sink方法配置在XXE漏洞审计模块中。
6.根据权利要求1或2或3所述的基于调用链的JAVA漏洞检测方法,其特征在于,所述步骤对得到的调用链进行筛选的具体过程为:
获取每条调用链的顶层方法,并利用开源框架Soot对获取的顶层方法进行解析,得到该顶层方法所属类的所有父类信息;
根据父类信息中存在的类的特性,判断该父类信息对应的调用链的顶层方法是否存在被外部调用的可能性;
筛选得到顶层方法能够被外部调用的调用链。
7.一种基于调用链的JAVA漏洞检测系统,其特征在于,包括:
设定模块,用于设定待检测的目标JAR包;
生成模块,对JAR包进行处理,生成函数调用关系图;
分类配置模块,用于根据漏洞类型对采集到的软件敏感调用点Sink方法进行分类,并将各类软件敏感调用点Sink方法配置在相应的漏洞审计模块中;
创建模块,通过遍历的方式从漏洞审计模块中取出软件敏感调用点Sink方法并利用深度优先搜索算法创建调用链,其具体过程为:
执行漏洞审计模块,通过遍历的方式依次取出漏洞审计模块中配置的软件敏感调用点Sink方法静态列表中的软件敏感调用点Sink方法;
通过检索的方式查找目标lib库文件中是否存在某方法已调用所述软件敏感调用点Sink方法;
如果存在调用关系,则以当前软件敏感调用点Sink方法为起点,在函数调用关系图的基础上,遍历边中的软件敏感调用点Sink方法的上层调用方法;
以当前方法的上层调用方法为目标递归调用,一层一层向前追溯调用方法,得到完整的调用链;筛选模块,用于对得到的各调用链进行筛选,筛选得到顶层方法能够被外部访问解析的调用链;
输出模块,用于输出顶层方法能够被外部访问解析的调用链。
8.根据权利要求7所述的基于调用链的JAVA漏洞检测系统,其特征在于,所述调用链以软件敏感调用点Sink方法为底层方法,以程序入口方法为顶层方法,底层方法与顶层方法之间还有中间方法。
9.一种基于调用链的JAVA漏洞检测装置,其特征在于,包括:
处理器,
用于存储能够在所述处理器上运行的计算机程序的存储器;
所述处理器用于运行所述计算机程序时,执行如权利要求1所述的基于调用链的JAVA漏洞检测方法中的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京启明星辰信息安全技术有限公司;启明星辰信息技术集团股份有限公司,未经北京启明星辰信息安全技术有限公司;启明星辰信息技术集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910085114.3/1.html,转载请声明来源钻瓜专利网。