[发明专利]JAVA反序列化漏洞检测系统和方法有效
申请号: | 201910006129.6 | 申请日: | 2019-01-03 |
公开(公告)号: | CN109992970B | 公开(公告)日: | 2023-09-26 |
发明(设计)人: | 魏丰国;林岳勋 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;京东美国科技公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F21/56 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 倪斌 |
地址: | 100086 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | java 序列 漏洞 检测 系统 方法 | ||
1.一种生成Java项目的反序列化漏洞报告的方法,包括:
由计算设备确定所述Java项目的内部知识是否可用,当所述Java项目的内部知识不可用时,执行黑盒分析以生成反序列化漏洞报告;以及
当所述Java项目的内部知识可用时,由所述计算设备确定所述Java项目的源代码是否可访问,当所述Java项目的源代码可访问时,执行白盒分析以生成反序列化漏洞报告,并且当所述Java项目的源代码不可访问时,执行灰盒分析以生成反序列化漏洞报告,
其中,所述白盒分析通过以下步骤来执行:
分析所述源代码以获得入口点的信息;
扫描所述Java项目的配置文件以生成利用载荷;以及
针对所述入口点执行所述利用载荷以生成反序列化漏洞报告,
其中,扫描所述Java项目的配置文件以生成利用载荷的步骤包括:
对所述配置文件进行解析以获得所述Java项目所依赖的库文件;
扫描所述库文件和所述源代码以获得与来自gadget模式数据库DB的gadget相匹配的gadget;以及
使用所获得的gadget生成所述利用载荷。
2.根据权利要求1所述的方法,其中,分析所述源代码以获得入口点的信息的步骤包括:
从所述源代码收集源信息和汇信息,其中所述源信息包括接受外部数据的源入口点,并且所述汇信息包括执行反序列化的汇点;
对所述源信息和所述汇信息执行污点分析,以生成所述源入口点和所述汇点之间的污点路径;以及
对所述污点路径进行解析以提取所述入口点的信息,其中,所述入口点的信息包括馈送数据至源入口点以触发汇点的途径。
3.根据权利要求2所述的方法,其中,所述汇信息包括反序列化应用编程接口API。
4.根据权利要求1所述的方法,其中,所述gadget模式DB包括在反序列化时导致风险的gadget模式,并且所述gadget模式包括文件写许可、代码执行许可、Java反射信息和打开套接字信息中至少之一。
5. 根据权利要求1所述的方法,其中,针对所述入口点执行所述利用载荷以生成反序列化漏洞报告的步骤包括:
确定所述入口点和所述利用载荷之间的关系以生成用于概念验证POC测试的单元测试用例;以及
在所述Java项目的相应环境下执行所述单元测试用例,以生成反序列化漏洞报告。
6.根据权利要求1所述的方法,其中,所述灰盒分析通过以下步骤来执行:通过使来自gadget载荷数据库的gadget载荷进入到入口点规范中规定的入口点来利用所述Java项目,并基于对所述Java项目的所述利用来生成反序列化漏洞报告。
7.根据权利要求6所述的方法,其中,对所述Java项目的所述利用由模糊器执行。
8.根据权利要求1所述的方法,其中,所述黑盒分析包括:
识别服务器上被视为所述Java项目的候选Java服务;
通过来自gadget载荷数据库的已知gadget载荷来利用所述候选Java服务;以及
基于对所述候选Java服务的所述利用来生成反序列化漏洞报告。
9.根据权利要求8所述的方法,其中,对所述候选Java服务的所述利用由模糊器执行。
10. 根据权利要求8所述的方法,其中,识别服务器上的候选Java服务的步骤包括:
在服务器上扫描开放端口和服务信息;以及
将所述端口之一上运行的Java服务识别为所述候选Java服务。
11.根据权利要求1所述的方法,还包括:将所生成的利用载荷累积在gadget载荷DB中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;京东美国科技公司,未经北京京东尚科信息技术有限公司;京东美国科技公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910006129.6/1.html,转载请声明来源钻瓜专利网。