基于虚拟数据库和虚拟补丁的数据库安全防护系统和方法

文档序号:6370266
专利名称:基于虚拟数据库和虚拟补丁的数据库安全防护系统和方法
技术领域
本发明属于信息安全领域,具体涉及一种基于虚拟数据库和虚拟补丁的数据库安全防护系统和方法。
背景技术
随着计算机技术的飞速发展,数据库的应用十分广泛。数据库系统作为信息的聚集体,是计算机信息系统的核心部件,其安全性至关重要。然而由于数据库本身安全性不足等原因,攻击者可能通过非正常途径来访问数据库,甚至实施缓冲区溢出或SQL注入来攻击数据库,从而造成敏感信息的泄漏,危害数据安全以及信息系统的安全。为保障数据库以及信息系统的安全,各企业和单位采取了许多防护措施,但绝大多数的防护措施和方法只能进行地址、端口、协议等网络层过滤,无法有效抵御针对数据库系统应用层的攻击,例如SQL注入及缓冲区溢出攻击等。 对于数据库本身安全性不足所带来的诸如缓冲区溢出攻击等安全问题,理论上通常可以通过安装数据库相应的补丁来进行修补。但是,由于数据库服务器本身的复杂性及应用的重要性,而且补丁本身对生产数据库存在安全威胁,再加上数据库管理员(DBA)很难承担更新补丁后的繁重测试工作,使得众多的数据库管理员(DBA)即便知道了数据库存在某种安全隐患,也不会贸然地停止数据库服务器来安装相应补丁。而且,在实际的使用过程当中,往往需要保证数据库服务器提供的服务的连续及稳定性,不允许停止数据库服务器和随意更改数据库的相关补丁及配置情况。这就为黑客利用这些漏洞进一步进行攻击提供了一条通路。此外,当数据库服务器直接与用户和应用服务器连接并提供数据服务时,极易遭受各种各样的攻击;数据库系统本身存在的隐通道,也很容易被攻击者利用。数据库服务器通常采用默认的端口,比如Oracle的1521端口。攻击者可以轻易的扫描这些端口,根据服务器的回复信息获得数据库以及操作系统的类型,进而进行更深层次的攻击。

发明内容
为克服上述缺陷,本发明提供了一种基于虚拟数据库和虚拟补丁的数据库安全防护方法和系统,通过数据库服务映射技术将真实数据库服务器隐藏起来,隔离数据库客户端和其他应用程序对数据库服务器的直接访问;同时,在映射后的虚拟数据库服务器中采用基于SQL语句的二次认证及基于IP和用户名的二次权限检查机制来对SQL请求进行进一步合法性验证,严格控制到达真实数据库服务器的数据请求。为实现上述目的,本发明提供一种基于虚拟数据库和虚拟补丁的数据库安全防护系统,其包括数据库服务器和与其进行数据通信的应用服务器;其改进之处在于,所述安全防护系统包括设置在所述数据库服务器和应用服务器之间的虚拟数据库服务器。本发明提供的优选技术方案中,所述虚拟数据库服务器设置有知识库,所述知识库包括缓冲区溢出及SQL注入两种攻击模式的SQL语句。
本发明提供的第二优选技术方案中,所述数据库服务器将提供的服务映射到所述虚拟数据库服务器的IP地址以及相应的空闲端口地址中。本发明提供的第三优选技术方案中,所述虚拟数据库服务器包括服务映射模块,用于接收所述应用服务器的连接请求;授权策略模块,对连接数据库的用户、执行SQL语句的操作类型、操作对象和查询条件等的合法性预先进行配置和定义;TNS协议解析模块,根据TNS协议对所述应用服务器的连接及访问请求进行解析,得到请求发送的IP地址、连接的数据库名、用户名和SQL语句;SQL解析模块,对SQL语句进行语法及词法分析,得出SQL语句的操作类型、操作对象和查询条件;二次认证及二次权限检查模块,检查IP和用户名是否属于已在虚拟数据库服务器中配置的合法组合,判断SQL语句所使用的数据库组件或函数是否为知识库中列出的缓冲区溢出及SQL注入两种攻击模式的语句,并根据配置,对不合法访问进行断开连接的操作;所述服务映射模块、所述授权验证模块、所述TNS协议解析模块、所述SQL解析模块和所述二次认证及二次权限检查模块依次连接。本发明提供的第四优选技术方案中,提供一种基于虚拟数据库和虚拟补丁的数据库安全防护方法,其改进之处在于,所述方法包括如下步骤 (I).在所述应用服务器与所述数据库服务器中间搭建所述虚拟数据库服务器;(2).所述数据库服务器将提供的服务映射到所述虚拟数据库服务器中;(3).所述应用服务器向所述虚拟数据库服务器发出请求以调用所述数据库服务器的服务。

本发明提供的第五优选技术方案中,在所述步骤2中,将所述数据库服务器所提供的各个服务映射到所述虚拟数据库服务器的IP地址以及相应的空闲端口中。本发明提供的第六优选技术方案中,所述步骤3包括如下步骤(3-1).所述应用服务器发出连接请求;(3-2).所述虚拟数据库服务器接受所述应用服务器发出的连接请求,并判断连接的IP是否合法,若结果否定,则关闭连接,否则根据服务的映射关系建立所述虚拟数据库服务器与所述数据库服务器的连接;(3-3).对接收到的客户端请求数据包进行TNS协议解析,从中获取访问的数据库名、用户名和SQL语句;(3-4).检查IP和用户名是否属于已在所述虚拟数据库服务器中配置的合法组合,非法则关闭连接,否则接受SQL语句;(3-5).分析SQL语句的语法及词法,得出SQL语句的操作类型、操作对象和查询条件;(3-6).通过预读取配置的授权策略模块,对SQL语句的操作类型、操作对象和查询条件进行访问权限检查,判断访问权限是否合法,对不合法访问进行断开连接的操作,否则进入步骤3-7 ;(3-7).判断SQL语句所使用的数据库组件或函数是否为知识库中列出的缓冲区溢出及SQL注入两种攻击模式的语句,若结果为是则过滤该SQL语句,否则允许该SQL语句传递给所述数据库服务器。本发明提供的第七优选技术方案中,在所述步骤3-5中,所述SQL语句的操作类型包括增加、删除、修改和查询;操作对象包括表名、视图名和存储过程名。
与现有技术比,本发明提供的一种基于虚拟数据库和虚拟补丁的数据库安全防护系统和方法,可在不安装数据库补丁及修改相应配置情况的前提下达到打补丁的同等防护效果,而且提供了一种新的修补思路,通过数据库服务映射技术将真实数据库服务器隐藏起来,隔离数据库客户端和其他应用程序对数据库服务器的直接访问;同时,在映射后的虚拟数据库服务器中采用基于SQL语句的二次认证及基于IP+用户名的二次权限检查机制来对SQL请求进行进一步合法性验证,将提交参数中的超长字符串和带明显攻击意图的SQL语句等充分过滤,严格控制到达真实数据库服务器的数据请求,使攻击者无法伪造连接到真实数据库服务器进行直接的攻击;再者,由于虚拟数据库服务器提供的是独立的权限管理,即便攻击者通过其他方式成功将自己的角色提高到数据库管理员(DBA)仍然只能获得受限的权限,而不能获取DBA的真正特权,从而达到有效保护数据库安全的目的。


图I为虚拟数据库服务器在网络当中的部署图。图2为虚拟数据库服务器建立服务映射并对外提供服务的示意图。图3为搭建虚拟数据库服务器后SQL请求处理流程图。
具体实施例方式在图I中,虚拟数据库服务器的部署位置在应用服务器与数据库服务器之间,也就是说,数据库服务器与虚拟数据库服务器之间采用串行连接方式,任何到达数据库服务器的SQL请求都必须先通过虚拟数据库服务器进行筛选处理,其目的在于让虚拟数据库对外提供数据服务,以此种方式将真实服务器充分隐藏。在图2中,虚拟数据库服务器部署完毕后,将数据库服务器所提供的服务映射到虚拟数据库服务器的IP地址以及所指定的空闲端口,这样就在虚拟数据库服务器中建立起了一个到数据库服务器的映射关系,虚拟数据库中可以同时建立多个类似的映射关系,分别映射到多个不同的数据库服务器,应用服务器及客户端连接到虚拟数据库服务器中指定映射时,虚拟数据库服务器将进行验证,合法IP来源的请求才会被转发到映射关系所对应的真实数据库服务器,其功能类似于IP防火墙。在图3中,当应用服务器有连接请求时,虚拟数据库服务器的服务映射模块接收请求,并调用授权验证模块进行IP验证,如果该IP在虚拟服务器中被预先配置为非法IP来源,则虚拟数据库服务器关闭该连接请求;否则,如果是合法IP来源,则虚拟数据库服务器进一步创建与真实数据库服务器之间的连接,同时对接收到的应用服务器请求数据包进行TNS协议解析,从连接串中获取访问的数据库名、用户名、SQL语句等信息,然后检查IP和用户名是否属于已在虚拟数据库服务器中配置的合法组合,非法则关闭连接,合法则继续放行;将传入的SQL语句进一步进行语法及词法分析,获取当前语句操作的数据库、模式、表、使用的数据库组件或函数以及传入的参数等信息,并通过预读取在虚拟数据库服务器中配置的授权策略,对传入的用户、数据库、模式、表进行权限检查,并根据配置,对不合法访问进行阻断、断开连接等操作;对于合法的访问,再进一步判断所使用的数据库组件或函数等是否为知识库中列出的有缺陷的对象以及传入的参数是否为不合法的超长字符串等,对已发布的数据库补丁所涉及到的问题进行充分过滤。只有在二次认证和二次权限检查后依然确认合法的请求才最终转发给真实的数据库服务器。需要声明的是,本发明内容及具体实施方式
意在证明本发明所提供技术方案的实际应用,不应解释为对本发明保护范围的限定。本领域技术人员在本发明的精神和原理启发下,可作各种修改、等同替换、或改进。但这些变更或 修改均在申请待批的保护范围内。
权利要求
1.一种基于虚拟数据库和虚拟补丁的数据库安全防护系统,其包括数据库服务器和与其进行数据通信的应用服务器;其特征在于,所述安全防护系统包括设置在所述数据库服务器和应用服务器之间的虚拟数据库服务器。
2.根据权利要求I所述的安全防护系统,其特征在于,所述虚拟数据库服务器设置有知识库,所述知识库包括缓冲区溢出及SQL注入两种攻击模式的SQL语句。
3.根据权利要求2所述的安全防护系统,其特征在于,所述数据库服务器将提供的服务映射到所述虚拟数据库服务器的IP地址以及相应的空闲端口地址中。
4.根据权利要求1-3中任一项所述的安全防护系统,其特征在于,所述虚拟数据库服务器包括服务映射模块,用于接收所述应用服务器的连接请求;授权策略模块,对连接数据库的用户、执行SQL语句的操作类型、操作对象和查询条件等的合法性预先进行配置和定义;TNS协议解析模块,根据TNS协议对所述应用服务器的连接及访问请求进行解析,得到请求发送的IP地址、连接的数据库名、用户名和SQL语句;SQL解析模块,对SQL语句进行 语法及词法分析,得出SQL语句的操作类型、操作对象和查询条件;二次认证及二次权限检查模块,检查IP和用户名是否属于已在虚拟数据库服务器中配置的合法组合,判断SQL语句所使用的数据库组件或函数是否为知识库中列出的缓冲区溢出及SQL注入两种攻击模式的语句,并根据配置,对不合法访问进行断开连接的操作;所述服务映射模块、所述授权验证模块、所述TNS协议解析模块、所述SQL解析模块和所述二次认证及二次权限检查模块依次连接。
5.根据1-5项权利要求任一项所述的数据库安全防护系统的基于虚拟数据库和虚拟补丁的数据库安全防护方法,其特征在于,所述方法包括如下步骤 (1).在所述应用服务器与所述数据库服务器中间搭建所述虚拟数据库服务器; (2).所述数据库服务器将提供的服务映射到所述虚拟数据库服务器中; (3).所述应用服务器向所述虚拟数据库服务器发出请求以调用所述数据库服务器的服务。
6.根据权利要求5所述的安全防护方法,其特征在于,在所述步骤2中,将所述数据库服务器所提供的各个服务映射到所述虚拟数据库服务器的IP地址以及相应的空闲端口中。
7.根据权利要求5所述的安全防护方法,其特征在于,所述步骤3包括如下步骤 (3-1).所述应用服务器发出连接请求; (3-2).所述虚拟数据库服务器接受所述应用服务器发出的连接请求,并判断连接的IP是否合法,若结果否定,则关闭连接,否则根据服务的映射关系建立所述虚拟数据库服务器与所述数据库服务器的连接; (3-3).对接收到的客户端请求数据包进行TNS协议解析,从中获取访问的数据库名、用户名和SQL语句; (3-4).检查IP和用户名是否属于已在所述虚拟数据库服务器中配置的合法组合,非法则关闭连接,否则接受SQL语句; (3-5).分析SQL语句的语法及词法,得出SQL语句的操作类型、操作对象和查询条件; (3-6).通过预读取配置的授权策略模块,对SQL语句的操作类型、操作对象和查询条件进行访问权限检查,判断访问权限是否合法,对不合法访问进行断开连接的操作,否则进入步骤3-7 ; (3-7).判断SQL语句所使用的数据库组件或函数是否为知识库中列出的缓冲区溢出及SQL注入两种攻击模式的语句,若结果为是则过滤该SQL语句,否则允许该SQL语句传递给所述数据库服务器。
8.根据权利要求7所述的安全防护方法,其特征在于,在所述步骤3-5中,所述SQL语句的操作类型包括增加、删除、修改和查询;操作对象包括表、视 图和存储过程。
全文摘要
本发明提供了一种基于虚拟数据库和虚拟补丁的数据库安全防护系统和方法,采用服务映射的方式建立虚拟数据库服务器将真实数据库服务器隐藏,同时融合二次认证和二次权限检查技术,实时处理到达虚拟数据库服务器的网络请求数据包,从而以达到安装数据库补丁的同等安全效果。本发明包括服务映射和二次认证及二次权限检查两种关键技术,所有合法且正常的安全访问可以顺利通过映射后的虚拟数据库服务器,从真实数据库服务器当中获得相关数据;而对于大部分的非授权访问及明显的攻击行为,虚拟数据库服务器中的相关过滤机制会将此类请求进行阻断,从而保证了真实数据库服务器的安全运行以及数据库中敏感数据的安全性。
文档编号G06F21/00GK102722667SQ20121016644
公开日2012年10月10日 申请日期2012年5月25日 优先权日2012年3月7日
发明者张弛, 张波, 张磊, 彭轼, 李凌, 杨鹏, 郑晓崑, 马志程 申请人:中国电力科学研究院, 甘肃省电力公司信息通信公司
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1