[发明专利]面向Java EE程序SQLIA漏洞的污点分析和验证方法及装置有效
| 申请号: | 202010725417.X | 申请日: | 2020-07-24 |
| 公开(公告)号: | CN111737150B | 公开(公告)日: | 2023-09-15 |
| 发明(设计)人: | 郭帆;范威威;龙薇 | 申请(专利权)人: | 江西师范大学 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/41;G06F21/57;G06F16/958 |
| 代理公司: | 南昌市平凡知识产权代理事务所 36122 | 代理人: | 夏材祥 |
| 地址: | 330100 *** | 国省代码: | 江西;36 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 面向 java ee 程序 sqlia 漏洞 污点 分析 验证 方法 装置 | ||
本发明涉及一种面向Java EE程序SQLIA漏洞的污点分析和验证方法的装置。所述方法包括:对Source进行预处理和分类得到真实可靠的Source集合;应用多重关系匹配存在潜在安全漏洞的(Source,Sink)对;结合静态污点分析和活跃变量分析过滤不可能存在污点传播路径的(Source,Sink)对;对所述Java EE程序进行插桩,然后在执行所述Java EE程序的同时进行动态污点分析并生成Trace;将每条Trace与静态分析结果的(Source,Sink)对进行匹配,判断是否存在真实污点传播路径,获取真实污点传播路径的漏洞集合。达到可以准确检测和定位Java EE程序的潜在SQLIA安全漏洞,提高网站安全性的效果。
技术领域
本发明属于计算机安全领域,涉及一种面向Java EE程序SQLIA漏洞的污点分析和验证方法及装置。
背景技术
不可信WEB软件正在破坏金融、医疗、国防、能源和其他关键基础设施。Open WebApplication Security Project项目在2017年十大关键Web应用安全漏洞报告中将SQLIA列在第一位。使用未经验证的外部输入数据是SQLIA漏洞产生的主要原因,外部输入数据亦被称为污点数据,即tainted data,指那些外部非可信实体数据源输入到应用程序的数据,包括从HTML表单中提交的数据、客户端Cookies获得的数据、URL中的参数、外部流数据和外部文件输入数据等,追踪和阻止对这些污点数据的使用称为污点分析。
污点分析为明确划分污点数据在程序中传播的各个阶段,将传播污点的方法分为以下几类:
Source:源方法,指返回外部不可信数据的方法。
Sanitizer:验证方法,由开发人员自定义,如果污染数据经过验证函数处理,那么该污点数据转为可信数据。
Sink:使用方法,指使用污染数据的数据库操作方法。
发明内容
基于此,有必要可以准确检测和定位Java EE程序的潜在SQLIA安全漏洞的污点分析和验证方法及装置。
一种面向Java EE程序SQLIA漏洞的污点分析和验证方法,其特征在于,所述方法包括:
对Source进行预处理和分类得到真实可靠的Source集合;
应用多重关系匹配存在潜在安全漏洞的(Source, Sink)对;
结合静态污点分析和活跃变量分析过滤不可能存在污点传播路径的(Source,Sink)对;
对所述Java EE程序进行插桩,然后在执行所述Java EE程序程序的同时进行动态污点分析并生成Trace;
将每条Trace与静态分析结果的(Source,Sink)对进行匹配,判断是否存在真实污点传播路径,获取真实污点传播路径的漏洞集合。
可选的,所述将每条Trace与静态分析结果的(Source,Sink)对进行匹配,判断是否存在真实污点传播路径,获取真实污点传播路径的漏洞集合,包括:
搜索每条Trace存在的(Source,Sink)对;
逐一与静态分析结果的(Source, Sink)对集合匹配,匹配成功则定位了一条真实污点传播路径;
获取真实污点传播路径的漏洞集合。
可选的,所述Java EE程序进行插桩,然后在执行所述Java EE程序程序的同时进行动态污点分析并生成Trace包括:
静态遍历程序的每条语句,根据污点传播规则判断其是否需要插桩;
根据每条语句的语句类型进行相应插桩,插入一条调用辅助类相应方法的语句;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江西师范大学,未经江西师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010725417.X/2.html,转载请声明来源钻瓜专利网。





