公开/公告号CN102722667A
专利类型发明专利
公开/公告日2012-10-10
原文格式PDF
申请/专利权人 甘肃省电力公司信息通信公司;中国电力科学研究院;
申请/专利号CN201210166441.X
申请日2012-05-25
分类号G06F21/00(20060101);G06F17/30(20060101);
代理机构11271 北京安博达知识产权代理有限公司;
代理人徐国文
地址 730050 甘肃省兰州市七里河区西津东路629号
入库时间 2023-12-18 06:52:28
法律状态公告日
法律状态信息
法律状态
2018-01-26
专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F21/62 变更前: 变更后: 变更前: 变更后: 申请日:20120525
专利权人的姓名或者名称、地址的变更
2017-12-22
专利权的转移 IPC(主分类):G06F21/62 登记生效日:20171204 变更前: 变更后: 变更前: 变更后: 申请日:20120525
专利申请权、专利权的转移
2015-12-02
授权
授权
2013-05-29
实质审查的生效 IPC(主分类):G06F21/00 申请日:20120525
实质审查的生效
2012-10-10
公开
公开
技术领域
本发明属于信息安全领域,具体涉及一种基于虚拟数据库和虚拟补丁的数 据库安全防护系统和方法。
背景技术
随着计算机技术的飞速发展,数据库的应用十分广泛。数据库系统作为信 息的聚集体,是计算机信息系统的核心部件,其安全性至关重要。然而由于数 据库本身安全性不足等原因,攻击者可能通过非正常途径来访问数据库,甚至 实施缓冲区溢出或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解析模块和所述二次认证及二 次权限检查模块依次连接。
本发明提供的第四优选技术方案中,提供一种基于虚拟数据库和虚拟补丁 的数据库安全防护方法,其改进之处在于,所述方法包括如下步骤:
(1).在所述应用服务器与所述数据库服务器中间搭建所述虚拟数据库服务 器;
(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的真正特权,从而达到有 效保护数据库安全的目的。
附图说明
图1为虚拟数据库服务器在网络当中的部署图。
图2为虚拟数据库服务器建立服务映射并对外提供服务的示意图。
图3为搭建虚拟数据库服务器后SQL请求处理流程图。
具体实施方式
在图1中,虚拟数据库服务器的部署位置在应用服务器与数据库服务器之 间,也就是说,数据库服务器与虚拟数据库服务器之间采用串行连接方式,任 何到达数据库服务器的SQL请求都必须先通过虚拟数据库服务器进行筛选处理, 其目的在于让虚拟数据库对外提供数据服务,以此种方式将真实服务器充分隐 藏。
在图2中,虚拟数据库服务器部署完毕后,将数据库服务器所提供的服务 映射到虚拟数据库服务器的IP地址以及所指定的空闲端口,这样就在虚拟数据 库服务器中建立起了一个到数据库服务器的映射关系,虚拟数据库中可以同时 建立多个类似的映射关系,分别映射到多个不同的数据库服务器,应用服务器 及客户端连接到虚拟数据库服务器中指定映射时,虚拟数据库服务器将进行验 证,合法IP来源的请求才会被转发到映射关系所对应的真实数据库服务器,其 功能类似于IP防火墙。
在图3中,当应用服务器有连接请求时,虚拟数据库服务器的服务映射模 块接收请求,并调用授权验证模块进行IP验证,如果该IP在虚拟服务器中被预 先配置为非法IP来源,则虚拟数据库服务器关闭该连接请求;否则,如果是合 法IP来源,则虚拟数据库服务器进一步创建与真实数据库服务器之间的连接, 同时对接收到的应用服务器请求数据包进行TNS协议解析,从连接串中获取访 问的数据库名、用户名、SQL语句等信息,然后检查IP和用户名是否属于已在 虚拟数据库服务器中配置的合法组合,非法则关闭连接,合法则继续放行;将 传入的SQL语句进一步进行语法及词法分析,获取当前语句操作的数据库、模 式、表、使用的数据库组件或函数以及传入的参数等信息,并通过预读取在虚 拟数据库服务器中配置的授权策略,对传入的用户、数据库、模式、表进行权 限检查,并根据配置,对不合法访问进行阻断、断开连接等操作;对于合法的 访问,再进一步判断所使用的数据库组件或函数等是否为知识库中列出的有缺 陷的对象以及传入的参数是否为不合法的超长字符串等,对已发布的数据库补 丁所涉及到的问题进行充分过滤。只有在二次认证和二次权限检查后依然确认 合法的请求才最终转发给真实的数据库服务器。
需要声明的是,本发明内容及具体实施方式意在证明本发明所提供技术方 案的实际应用,不应解释为对本发明保护范围的限定。本领域技术人员在本发 明的精神和原理启发下,可作各种修改、等同替换、或改进。但这些变更或修 改均在申请待批的保护范围内。
机译: 用于使用具有公共安全策略功能的虚拟专用数据库功能提供通用数据库安全应用程序的方法,系统和计算机程序产品
机译: 用于使用具有公共安全策略功能的虚拟专用数据库功能提供通用数据库安全应用程序的方法,系统和计算机程序产品
机译: 用于通过具有公共安全策略功能的虚拟专用数据库功能提供通用数据库安全应用程序的方法,系统和计算机程序产品