基于数据库的sql注入攻击防护方法

文档序号:6371955阅读:404来源:国知局
专利名称:基于数据库的sql注入攻击防护方法
技术领域
本发明涉及网络安全领域,具体涉及一种基于数据库的SQL注入攻击防护方法。
背景技术
Web安全纷繁复杂,危害最严重的当属SQL注入。SQL Injection,中文名称为“SQL注入”是一种数据库攻击手段,也是WEB应用程序漏洞存 在的一种表现形式,它的实际意义就是利用某些数据库的外部接口把用户数据插入到实际的数据库操作语言当中,从而达到入侵数据库乃至操作系统的目的。SQL Injection的主要形式是,直接将代码插入与SQL命令串联并执行的用户输入变量中,间接的将恶意代码注入要在表中存储或作为元数据存储的字符串,在存储的字符串随后串连到一个动态SQL命令中时,执行该恶意代码。基本的攻击是提如终止文本字符串,然后追加一个新的命令。由于插入的命令可能在执行前追加其他字符串,因此攻击者将用注释标记“一”来中止注入的字符串。执行时,此后的指令将被忽略.SQL Injection攻击技术就其本质而言,它利用的工具是SQL的语法,针对的是应用程序开发者编程中的漏洞,当攻击者能操作数据,向应用程序中插入一些SQL语句时,SQLInjection攻击就发生了。实际上,SQL Injection攻击是存在于常见的多连接的应用程序中的一种漏洞,攻击者通过在应用程序预先定义好的查询语句结尾加上额外的SQL语句元素,欺骗数据库服务器执行非授权的任意查询。这类应用程序一般是Web Application,它允许用户输入查询条件,并将查询条件嵌入SQL语句中,提交到数据库中执行。通过构造畸形SQL语句攻击者能够获取额外的信息数据。就风险而言,SQL Injection攻击也是位居前列,和缓冲区溢出漏洞相比,其优势在于能够轻易的绕过防火墙直接访问数据库,甚至能够获得数据库所在的服务器的访问权限。在某些环境下,SQL Injection漏洞的风险要高过其他所有的漏洞。SQL Injection攻击利用的是SQL语法,这使得这种攻击具有广泛性。特点鲜明一、隐蔽性强。利用Web漏洞发起对WEB应用的攻击纷繁复杂,包括SQL注入,跨站脚本攻击等等,一个共同特点是隐蔽性强,不易发觉,因为一方面普通网络防火墙是对HTTP/HTTPS全开放的,另一方面,对Web应用攻击的变化非常多,传统的基于特征检测的IDS对此类攻击几乎没有作用。二、攻击时间短。可在短短几秒到几分钟内完成一次数据窃取、一次木马种植、完成对整个数据库或Web服务器的控制,以至于非常困难作出人为反应。三、危害性大。目前几乎所有银行,证券,电信,移动,政府以及电子商务企业都提供在线交易,查询和交互服务。用户的机密信息包括账户,个人私密信息(如身份证),交易信息等等,都是通过Web存储于后台数据库中,这样,在线服务器一旦瘫痪,或虽在正常运行,但后台数据已被篡改或者窃取,都将造成企业或个人巨大的损失。据权威部门统计,目前身份失窃(identity theft)已成为全球最严重的问题之一。政府网站被攻击和篡改造成恶劣的社会影响甚至被外来势力所利用,已经在危害着社会的稳定。
四、非常严重的有形和无形损失。目前,包括政府以及很多大型企业尤其是在国内外上市的企业,一旦发生这类安全事件,必将造成人心惶惶,名誉扫地,以致于造成经济和声誉上的巨大损失,即便不上市,其影响和损失也是不可估量的。对于上述SQL注入的风险,目前行业内绝大多数的解决方法只是优化代码质量或者提高防护水平,并不能从根本上解决SQL注入的问题。申请号为200710099534. 4的中国专利申请公开了一种SQL注入漏洞检测方法及系统,这种方法及系统是基于程序的,其主要功能是在外部数据进入SQL数据库之前进行拦截和HTTP包的整合,但这种拦截和整合会对外部访问产生影响。

发明内容
本发明的目的在于提供一种基于数据库的SQL注入攻击防护方法,利用硬盘缓存以及底层过滤为整个SQL数据库做一个数据安全壳,所有读取和写入的SQL代码必须经过数据安全壳的过滤,从源头上解决SQL被注入的风险。 本发明的技术方案如下一种基于数据库的SQL注入攻击防护方法,包括如下步骤(I)为数据库建立数据安全壳数据安全壳是建立在操作系统层的一个底层驱动,利用硬盘缓存形成的一个虚拟空间,将数据库加载在这个虚拟空间内,数据安全壳包括端口转向驱动、过滤驱动以及管理端;(2)数据接管外部数据在访问数据库的时候,首先通过数据安全壳,由数据安全壳负责外部数据与数据安全壳内部数据库的数据交换;(3)数据判断数据安全壳的管理端对外部数据所来自的地址进行记录,将首次访问者的地址记录在访问记录库中,将访问者的地址与访问记录库中的地址表进行匹配,对经常发生攻击行为的地址进行识别;(4)端口接管数据安全壳的端口转向驱动对数据库的端口进行管理,形成到达数据库的过滤通道;(5) SOL指令过滤数据安全壳的过滤驱动对所有访问数据库的外部数据进行过滤,将安全的代码放行进入数据库,并对恶意的代码进行过滤和清除。本发明的有益技术效果是本发明通过数据安全壳对数据库进行SOL注入防护,利用硬盘缓存的数据安全壳类似于一个信息网闸,与HTTP整合和SOL数据修正无关,因而本发明的前提条件是不影响外部访问。本发明是基于驱动过滤的SOL防注入方法,是用底层建立的缓存进行处理和管理,可以有效的做到对SOL注入攻击行为的合理的管理和对SOL注入风险的规避。


图I是本发明的数据安全壳与数据库及操作系统的关系示意图。图2是本发明的流程图。
具体实施例方式下面结合附图对本发明的具体实施方式
做进一步说明。如图I所示,本发明的数据安全壳是一个建立在操作系统层的一个底层驱动,利用硬盘cache (缓存)做成的一个虚拟空间,将数据库加载在这个空间。外部数据在访问数据库的时候,必须通过该数据安全壳,由数据安全壳负责数据的内外交换。如图2所示,本发明的基于数据库的SOL注入攻击防护方法的流程如下( I)为数据库建立数据安全壳数据安全壳是建立在操作系统层的一个底层驱动,利用硬盘缓存形成的一个虚拟空间,将数据库加载在这个虚拟空间内,数据安全壳包括端口转向驱动、过滤驱动以及管理端;(2)数据接管外部数据在访问数据库的时候,首先通过数据安全壳,由数据安全壳负责外部数据与安全壳内部数据库的数据交换;(3)数据判断
数据安全壳的管理端对外部数据所来自的地址进行记录,将首次访问者的地址记录在访问记录库中,将访问者的地址与访问记录库中的地址表进行匹配,对经常发生攻击行为的地址进行识别;(4)端口接管数据安全壳的端口转向驱动对数据库的端口进行管理,形成到达数据库的过滤通道;(5) SOL指令过滤数据安全壳的过滤驱动对所有访问数据库的外部数据进行过滤,将安全的代码放行进入数据库,并对恶意的代码进行过滤和清除。上述的数据安全壳的管理端可以对数据安全壳的端口转向驱动和过滤驱动进行管理,控制过滤驱动的过滤模式和读写行为,并对于数据库经常发生的攻击行为进行查看。综上所述,本发明在装有数据库的服务器实施后,所有端口的数据都可以按照自己的意图发送和接受,并可以对恶意的代码进行过滤和清除,并带有访问记录库用于记录访问者的地址,有效地预防SOL注入攻击造成ddos瘫痪的问题。以上所述的仅是本发明的优选实施方式,本发明不限于以上实施例。可以理解,本领域技术人员在不脱离本发明的基本构思的前提下直接导出或联想到的其他改进和变化,均应认为包含在本发明的保护范围之内。
权利要求
1.一种基于数据库的SOL注入攻击防护方法,其特征在于包括如下步骤 (1)为数据库建立数据安全壳 数据安全壳是建立在操作系统层的一个底层驱动,利用硬盘缓存形成的一个虚拟空间,将数据库加载在这个虚拟空间内,数据安全壳包括端口转向驱动、过滤驱动以及管理端; (2)数据接管 外部数据在访问数据库的时候,首先通过数据安全壳,由数据安全壳负责外部数据与数据安全壳内部数据库的数据交换; (3)数据判断 数据安全壳的管理端对外部数据所来自的地址进行记录,将首次访问者的地址记录在访问记录库中,将访问者的地址与访问记录库中的地址表进行匹配,对经常发生攻击行为的地址进行识别; (4)端口接管 数据安全壳的端口转向驱动对数据库的端口进行管理,形成到达数据库的过滤通道; (5)SOL指令过滤 数据安全壳的过滤驱动对所有访问数据库的外部数据进行过滤,将安全的代码放行进入数据库,并对恶意的代码进行过滤和清除。
2.根据权利要求I所述基于数据库的SOL注入攻击防护方法,其特征在于所述数据安全壳的管理端对数据安全壳的端口转向驱动和过滤驱动进行管理,控制过滤驱动的过滤模式和读写行为,并对于数据库经常发生的攻击行为进行查看。
全文摘要
本发明提供一种基于数据库的SOL注入攻击防护方法,在操作系统层建立一个底层驱动数据安全壳,利用硬盘缓存形成一个虚拟空间,将数据库加载在这个虚拟空间内,外部数据在访问数据库的时候,首先通过数据安全壳,由数据安全壳负责外部数据与数据安全壳内部数据库的数据交换;数据安全壳的管理端对外部数据所来自的地址进行记录,数据安全壳的端口转向驱动形成到达数据库的过滤通道,数据安全壳的过滤驱动对所有访问数据库的外部数据进行过滤,将安全的代码放行进入数据库,并对恶意的代码进行过滤和清除。本发明可以从源头上解决SOL注入的风险。
文档编号G06F21/00GK102750483SQ201210210140
公开日2012年10月24日 申请日期2012年6月21日 优先权日2012年6月21日
发明者王衍江, 耿振民 申请人:无锡华御信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1