[发明专利]一种混合的SQL注入防护方法无效
申请号: | 201110316664.5 | 申请日: | 2011-10-18 |
公开(公告)号: | CN102682047A | 公开(公告)日: | 2012-09-19 |
发明(设计)人: | 石聪聪;余勇;林为民;张涛;张小建;郭骞;蒋诚智;范杰;冯谷;费稼轩;俞庚申;高鹏;李尼格;鲍兴川;曹宛恬 | 申请(专利权)人: | 国网电力科学研究院 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 南京知识律师事务所 32207 | 代理人: | 汪旭东 |
地址: | 210003 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 混合 sql 注入 防护 方法 | ||
技术领域
本发明涉及一种数据库SQL注入防护方法,特别是涉及一种模式匹配与特征过滤混合使用的SQL注入防护方法。
背景技术
随着Internet的发展,基于B/S模式的商业动态网站的开发越来越受到各大公司的青睐,该模式大多采用ASP (.NET)+SQL+IIS的平台架构,因此使用这种模式编写应用程序的程序员也越来越多。但编程人员水平的参差不齐以及安全防御技术的不成熟,给应用系统带来了很多不安全因素。大部分web应用系统需要与用户进行交互,从用户那里接受数据并进行处理,如果攻击者故意输入含有恶意构造的数据,则在系统执行处理时,这些数据中包含的恶意代码就会被系统或者其它客户端执行,从而对服务器或客户端造成损害,这就是所谓的SQL注入。由于SOL注入从正常的WWW端口访问,并且看起来和正常的web页面访问没有什么区别,所以目前常见的防火墙检测不到SQL注入。不久之前,OWASP(Open Web Application Security Project开源Web应用安全组织)公布了2010年10大Web攻击,而注入攻击被列为十大攻击之首。
SQL注入的产生经常是由于开发人员没有对用户输入部分做充分的安全检查。因此可以通过提高应用程序的代码质量,抵御SQL注入攻击。但仅仅通过提高代码的质量或者减少代码漏洞并不能解决所有问题,黑客依然可以寻找新的攻击字符串来规避这些程序检测点。其他SQL防护手段还包括注入特征检查以及模式匹配等。SQL注入特征过滤是在网络服务前端增加一个应用级的防火墙,在接收到用户输入信息时进行集中检查,过滤掉恶意输入,例如Snort以及PHP 中实现的“MagicQuotes”。相对而言,特征过滤实现较为简单,然而过滤程序通常采用特征字符串匹配算法,往往仅凭预先定义好的一系列正则表达式进行过滤。一方面如果进行大量的特征检查,性能下降较快,另一方面准确率以及误报率难以平衡。与特征过滤不同,模式匹配的方法并不是检查注入特征,而是将SQL语句与预定义的合法SQL语句进匹配,通过接收合法SQL语句来达到过滤恶意SQL语句的目的。模式匹配的方法能够很好的解决SQL注入问题,而且效率较高。然而它的成功率依赖于模式建立的准确率,同时它的覆盖率也很难以达到百分之百,而且一定程度上可能需要修改应用程序。
本发明通过分析合法SQL语句的特征构造知识库,现实环境下利用模式匹配算法将SQL语句与知识库进行匹配,匹配成功则判定为合法SQL语句。对于匹配失败的SQL语句并不立即判定为非法,而是采用基于风险值的特征过滤算法进行深度特征检查,识别真正的非法SQL语句,从而过滤非法SQL语句。在工作流程上,与申请日为20070917,专利号:200710145398.8的“一种SQL注入攻击检测方法及系统”类似,都包括知识库构建的步骤(类似学习步骤)以及实时SQL注入攻击检测步骤(类似过滤步骤),不过两者在实现上有较大差别。“一种SQL注入攻击检测方法及系统”知识库的构建是基于分析SQL注入样本,实时检测步骤主要是根据已知的SQL注入特征进行过滤。而本发明知识库的构建是基于学习合法SQL语句,实时工作环境下根据检测SQL语句的合法特征来过滤非法语句。对于特定的应用业务系统,合法的SQL语句的特征相对比较固定,因此通过识别这些合法SQL语句来阻断含有注入特征的非法SQL语句能够极大提高整个系统的防御能力,同时对于上层应用系统完全透明。同时本发明在过滤阶段采用了动态特征过滤方法,将模式匹配方法与特征过滤方法混合使用,充分发挥两种方法的优点。
发明内容
本发明通过在学习阶段(安全环境下)对应用程序产生的所有SQL语句进行语法解析得到SQL语法树,然后基于SQL语法树进行语法结构特征提取,构建知识库。然后在实时工作阶段(普通环境下)将所有SQL语句与知识库进行模式匹配,匹配成功即判定为合法SQL语句。由于知识库的覆盖率以及模式匹配的准确率难以达到100%,对于匹配失败的SQL语句并不立即判定为非法SQL语句,而是进行深度SQL注入特征过滤,检查不通过才被判定为非法SQL语句。通过将两种方法配合使用,一方面能够很好缓解模式匹配可能带来的覆盖率以及匹配准确率不足的问题;另一方面可以解决特征过滤方法可能带来的高识别率和高误判率之间的矛盾;其次由于模式匹配效率高于特征过滤,相比单独使用特征过滤方法,本方法在性能上有较大提升。
本发明通过以下技术方案实现:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国网电力科学研究院,未经国网电力科学研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110316664.5/2.html,转载请声明来源钻瓜专利网。